我正在尝试编写一个具有相互关联的预依赖关系的make规则。
a: b $(FILES)
b: $(FILE_1)
$(eval FILES := some_function_using_file($(FILE_1)))
$(FILES):
do something ...
基本上,我需要$(FILE_1)才能获得$(FILES)。当首次读取文件时,下面的规则不存在,因为$(FILES)最初没有定义,但是会动态评估。
$(FILES):
do something ...
有没有办法让这项工作?我想动态创建$(FILES),然后运行其规则。
答案 0 :(得分:0)
在任何目标运行之前评估目标。最好的办法是在发生之前生成列表。
FILES = $(shell ls) new.txt
all: $(FILES)
$(FILES):
echo $@
如果你真的很绝望,你可以在makefile中生成另一个makefile并调用另一个make副本。