尝试创建使用make连接文件的一般规则

时间:2015-12-15 17:30:26

标签: makefile

我有两个看起来像这样的文件夹:

process:

raw:
a_1.x.txt   a_2.x.txt   b_1.x.txt   b_2.x.txt
a_1.x.dat   a_2.x.dat   b_1.x.dat   b_2.x.dat

这些txt文件是由另一个规则创建的二进制文件*.dat的转储。我想创建一个make文件,它将汇集raw/%_#.txt个文件以创建process/%.txt。我可以用...来做到这一点。

process/a.txt : raw/a_1.x.txt raw/a_2.x.txt
    cat $^ > $@

process/b.txt : raw/b_1.x.txt raw/b_2.x.txt
    cat $^ > $@

...当我make process/a.txtmake process/b.txt时。但在我的现实生活中,我有一个,b,c等,每个文件在raw文件夹中都有可变数量的文件。所以,我想为我创建一个通用规则。

我试过......

.SECONDEXPANSION:
process/%.txt : $$(join $$(join raw/,%),$$(wildcard *.x.txt)))
    cat $^ > $@

但make命令以

返回

make: *** No rule to make target 'process/a.txt'. Stop.

同上:

process/%.txt : $$(patsubst raw,process,$$(patsubst .txt, $$(wildcard *.x.txt),))
    cat $^ > $@`

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

也许这会有所帮助:

echo !dynamic_sidebar( 'header_area' );