私のMakefile内の1つのルールは、ディレクトリ全体(res/
)をZIPファイルに圧縮します。明らかに、このルールはディレクトリの下にあるファイルが変更されたときに実行する必要があります。したがって、そのディレクトリの下にあるすべてのファイルを前提条件としてルールを設定します。このルールはどのように実装できますか?ディレクトリ下のすべてのファイル(サブディレクトリ内を含む)に依存するMakefileルール
Bash with the globstar
option enabledでは、ワイルドカードパターンres/**/*
を使用して、そのディレクトリ内のすべてのファイルのリストを取得できます。メイクはまだそれほど明確にそれがある
make: `filename.jar' is up to date.
を報告
filename.jar: res/**/*
でも、res/
でファイルをINGのtouch
後:しかし、あなたがMakefileの前提条件として、それを指定した場合に動作するようには思えませんパターンを認識できません。私は前提条件として、ディレクトリ自体を宣言すると
は:
filename.jar: res
そのファイルが変更されたときに再実行されません確認します(私はmake
だけいるだけで、ディレクトリ自体の更新日時を見て考えます直下の子が追加、削除、または名前変更されたときに変更されます)。
可能重複/ 5656913/makefile-of-a-directory-of-every-of-a-directory) –