2017-05-05 252 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

謝謝。有用 –