Jedna reguła w moim Makefile zamienia cały katalog (res/
) w plik ZIP. Oczywiście ta reguła musi zostać wykonana, gdy dowolny plik w katalogu res/
ulega zmianie. Dlatego chcę, aby reguła miała jako warunek wstępny wszystkie pliki znajdujące się pod tym katalogiem. Jak mogę wdrożyć tę regułę?Reguła Makefile, która zależy od wszystkich plików w katalogu (w tym w podkatalogach)
W Bash with the globstar
option enabled można uzyskać listę wszystkich plików w tym katalogu przy użyciu wzoru wieloznacznego res/**/*
. Jednak nie wydaje się działać, jeśli podasz go jako warunek wstępny w Makefile:
filename.jar: res/**/*
Nawet po touch
ing plik w res/
, Pozwól nadal zgłasza
make: `filename.jar' is up to date.
więc wyraźnie, że jest nie rozpoznaje wzoru.
Gdybym zadeklarować directory się jako warunek:
filename.jar: res
następnie dokonać nie będzie ponownie uruchomić, gdy plik jest modyfikowany (myślę make
wygląda tylko na datę modyfikacji samego katalogu, co tylko zmienia się, gdy bezpośrednie dzieci są dodawane, usuwane lub mają zmienioną nazwę).
możliwe duplikat [Makefile: zależy od każdego pliku w katalogu] (http://stackoverflow.com/questions/5656913/makefile-depend-on-each-file-of-a-katalog) –