我在makefile多文件依赖项中遇到了一些问题。理解带有目标和依赖关系的makefile规则。
目标:依赖
但是,如果我有多个依赖项,如何编写makefile,并且任何一个获得更新将触发目标,同时不存在所有依赖项文件,它是可选的。
示例:
target.txt: file1.txt file2.txt file3.txt file4.txt
@echo "Compiling target.txt file"
target_gen.sh -output target.txt
在上面的情况下,file1.txt file2.txt file3.txt file4.txt是可选文件,它们都可以存在或者存在。列出的任何一个依赖文件获得更新都会触发target.txt文件的重新编译。 target_gen.sh是一个脚本,它将搜索file1 - file4并将其编译为单个目标文件。
感谢您的建议, -Kian Boon -
答案 0 :(得分:0)
您可以使用一个功能来抓取所有
OPTIONAL_FILE_DEPS=$(wildcard file*.txt)
target.txt : $(OPTIONAL_FILE_DEPS)
./generate-target $^ > target.txt
当任何文件* .txt比target.txt更新时,这将重建,但如果你删除它,则不会注意到。