在我的Makefile中一个规则的拉链整个目录( res/
)到一个ZIP文件。 显然,这种规则需要根据执行时的任何文件res/
目录的变化。 因此,我希望规则有一个先决条件,即目录下的所有文件。 我怎样才能实现这个规则?
在bash 与globstar
启用选项 ,您可以使用通配符模式获得该目录中的所有文件的列表res/**/*
。 然而,这似乎并没有,如果你将它指定为在Makefile的前提工作:
filename.jar: res/**/*
即使在touch
荷兰国际集团在文件res/
,使仍报告
make: `filename.jar' is up to date.
所以显然这是不承认的格局。
如果我宣布了目录本身作为一个先决条件:
filename.jar: res
然后让不会重新执行,当一个文件被修改(我觉得make
只着眼于目录本身,仅当直接孩子添加,删除或重命名改变的修改的日期)。