我的Makefile中的一条规则将整个目录(res/
)压缩成ZIP文件。很显然,这个规则需要在res/
目录下的任何文件更改时执行。因此,我希望规则具有该目录下所有文件的先决条件。我怎样才能实现这个规则?Makefile规则依赖于目录下的所有文件(包括子目录下)
在Bash with the globstar
option enabled中,您可以使用通配符res/**/*
获得该目录中所有文件的列表。然而,这似乎并没有,如果你将它指定为在Makefile的前提工作:
touch
filename.jar: res/**/*
荷兰国际集团在res/
文件,使报告仍然
make: `filename.jar' is up to date.
所以显然这是不认识模式。
如果我宣布了目录本身作为一个先决条件:
filename.jar: res
然后让不会重新执行,当一个文件被修改(我认为make
只着眼于目录本身,修改日期只当直接的孩子被添加,移除或重命名时改变)。
的可能重复[Makefile文件:取决于目录的所有文件(http://stackoverflow.com/questions/5656913/makefile-depends-on-every-file-of-a-directory) –