我目前有一个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