Makefile make:依赖项中的百分比超过1%
我希望使用以下表单的模板依赖项Makefile make:依赖项中的百分比超过1%,makefile,gnu-make,Makefile,Gnu Make,我希望使用以下表单的模板依赖项 data/%/ld.data :: data/%/%LD.jsn 现在,只有第一个百分比登录依赖项data/%/%LD.jsn被目标目录替换,如GNUmake手册中所指定 是否有任何简单的方法可以获得所需的功能,即指定格式为data/Folder/ld.data的所有文件依赖于相应的文件data/Folder/FolderLD.data 我可以使用循环构建规则,但这需要预先指定所有相关文件夹,并在添加新文件夹时编辑makefile(或在makefile开始时动态
data/%/ld.data :: data/%/%LD.jsn
现在,只有第一个百分比登录依赖项data/%/%LD.jsn
被目标目录替换,如GNUmake手册中所指定
是否有任何简单的方法可以获得所需的功能,即指定格式为data/Folder/ld.data的所有文件依赖于相应的文件data/Folder/FolderLD.data
我可以使用循环构建规则,但这需要预先指定所有相关文件夹,并在添加新文件夹时编辑makefile(或在makefile开始时动态查找它们)我采用的一种解决方案如下
.SECONDEXPANSION:
data/%/ld.data: LANGNAME=$(notdir $(patsubst %/,%,$(dir $@)))
data/%/ld.data: LDFILE=data/$(LANGNAME)/$(LANGNAME)LD.jsn
data/%/ld.data: $$(LDFILE)
actions
但是这看起来很麻烦,更不用说疯狂的方式
$(notdir…
和$(dir…
不能一起工作了我采用的一种解决方案是这样的
.SECONDEXPANSION:
data/%/ld.data: LANGNAME=$(notdir $(patsubst %/,%,$(dir $@)))
data/%/ld.data: LDFILE=data/$(LANGNAME)/$(LANGNAME)LD.jsn
data/%/ld.data: $$(LDFILE)
actions
但是这看起来很麻烦,更不用说疯狂的方式
$(notdir…
和$(dir…
不能一起工作了是的,有一种更简单的方法;在第二次扩展期间使用自动变量(这实际上是第二次扩展最初创建时允许的):
是的,有一个更简单的方法;在第二次扩展期间使用自动变量(这实际上是第二次扩展最初创建时允许的):