我的Makefile中的一条规则将整个目录( res/
)压缩为ZIP文件 . 显然,当 res/
目录下的任何文件发生更改时,需要执行此规则 . 因此,我希望规则将该目录下的所有文件作为先决条件 . 我该如何实施这条规则?
在Bash with the globstar option enabled中,您可以使用通配符模式 res/**/*
获取该目录中所有文件的列表 . 但是,如果将其指定为Makefile中的先决条件,它似乎不起作用:
filename.jar: res/**/*
即使在 res/
中输入文件后,仍然会生成报告
make: `filename.jar' is up to date.
很明显它没有认识到这种模式 .
如果我将目录本身声明为先决条件:
filename.jar: res
然后在修改文件时不会重新执行Make(我认为 make
只查看目录本身的修改日期,只有在添加,删除或重命名直接子项时才会更改) .
1 回答
这个:
似乎工作,至少在某些平台上 .
EDIT:
或者更好,只是切结: