2017-05-05 204 views
0

我在makefile中存在多个文件依赖关系中的问题。了解具有目标和依赖关系的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

你可以使用一个函数来抓住他们所有

OPTIONAL_FILE_DEPS=$(wildcard file*.txt) 

target.txt : $(OPTIONAL_FILE_DEPS) 
    ./generate-target $^ > target.txt 

当任何文件* .TXT比target.txt更新这将重建,但如果您删除一个,则不会注意。

+0

谢谢。有用 –