Una regola nel mio Makefile zippa un'intera directory (res/
) in un file ZIP. Ovviamente, questa regola deve essere eseguita quando qualsiasi file sotto le modifiche alla directory res/
. Quindi, voglio che la regola abbia come prerequisito tutti i file sotto quella directory. Come posso implementare questa regola?Regola Makefile che dipende da tutti i file in una directory (inclusa nelle sottodirectory)
In Bash with the globstar
option enabled, è possibile ottenere un elenco di tutti i file in tale directory utilizzando il modello jolly res/**/*
. Tuttavia, non sembra funzionare se si specifica come un prerequisito nel Makefile:
filename.jar: res/**/*
Anche dopo touch
ing un file in res/
, stendere i rapporti ancora
make: `filename.jar' is up to date.
così chiaramente è non riconoscendo il modello.
Se io dichiaro la directory stessa come prerequisito:
filename.jar: res
poi fare non sarà ri-eseguire quando un file viene modificato (credo make
guarda solo alla data di modifica della directory stessa, che solo cambia quando vengono aggiunti, rimossi o rinominati i bambini immediati).
possibile duplicato di [Makefile: dipende da ogni file di una directory] (http://stackoverflow.com/questions/5656913/makefile-depend-on-every-file-of-a-directory) –