相关疑难解决方法(0)

依赖于目录下所有文件的Makefile规则(包括在子目录中)

我的Makefile中的一条规则将整个目录(res/)压缩为ZIP文件.显然,当目录下的任何文件res/发生更改时,需要执行此规则.因此,我希望规则将该目录下的所有文件作为先决条件.我该如何实施这条规则?

在启用了globstar选项的 Bash中,您可以使用通配符模式获取该目录中所有文件的列表res/**/*.但是,如果将其指定为Makefile中的先决条件,它似乎不起作用:

filename.jar: res/**/*
Run Code Online (Sandbox Code Playgroud)

即使在touch输入文件后res/,仍然可以生成报告

make: `filename.jar' is up to date.
Run Code Online (Sandbox Code Playgroud)

很明显它没有认识到这种模式.

如果我将目录本身声明为先决条件:

filename.jar: res
Run Code Online (Sandbox Code Playgroud)

然后在修改文件时不会重新执行Make(我认为make只查看目录本身的修改日期,只有在添加,删除或重命名直接子项时才会更改).

glob makefile wildcard gnu-make

36
推荐指数
1
解决办法
2万
查看次数

标签 统计

glob ×1

gnu-make ×1

makefile ×1

wildcard ×1