我目前有一個makefile來處理一些數據。 makefile通過獲取CONFIG文件來獲取數據處理的輸入,CONFIG文件定義了變量中的輸入數據。目前,我輸入文件的符號鏈接到本地目錄,即生成文件包含:如何從變量生成makefile目標?
tmp/%.txt: tmp
ln -fs $(shell echo $(INPUTS) | tr ' ' '\n' | grep $(patsubst tmp/%,%,[email protected])) [email protected]
這不是非常優雅,但似乎工作。有沒有更好的辦法?基本上,給出
INPUTS = /foo/bar.txt /zot/snarf.txt
上面將全部輸入文件鏈接到TMP /,這樣我可以像
%.out: tmp/%.txt
some command
的規則處理它們
以及根據所有$(INPUT)文件合併結果的目標。
此外,除了klugosity之外,makefile不能正確使用-j,這對分析在合理的時間內完成至關重要。我想這是GNU make的一個錯誤,但歡迎提供任何提示。
你試過了嗎? GNU支持你想要的語法。 –
我用另一個替換了kludge,無條件鏈接所有輸入作爲變量初始化的一部分。這似乎工作,並不再使用-j時掛起。 LINKTMPFILES:= $(殼MKDIR -p TMP /; RM TMP/*; LN -fs $(輸入)TMP /) : %的.out:%的.txt 一些命令 還沒成爲優雅的典範,但是...... ***對不起,我沒有被允許作爲一個單獨的答案發布它*** – Ketil
@JoachimPileborg:呃,你可能會更具體嗎? – Ketil