gnu Makefile中的后期变量扩展

时间:2013-05-07 19:54:17

标签: gnu-make

我在Makefile食谱中使用split命令分割了一个大文件。

trails : $(OBJ)
    sort -m $? | accumulate.py --threshold 30 | split -C 10MB -d -a 3 - trail.

然后我将结果文件重命名为.acc扩展名。我们的想法是稍后在此扩展上应用隐式规则。

我面临的问题是变量扩展发生在.acc文件生成之前。例如,以下规则不会产生任何结果:

all: $(wildcard *.acc) trails
    @echo $?

使用patsubst功能也不起作用,因为我事先并不知道会产生多少输出文件split

PS。我拆分文件以利用make来平行作业的能力:例如make -j 16

1 个答案:

答案 0 :(得分:1)

你必须使用递归make。在此makefile中执行split操作,然后调用递归make来处理其余的。你的问题并不完全清楚,但我认为你想要这样的事情:

all: trials
         $(MAKE) recurse

trials: $(OBJ)
         sort -m ...

recurse: $(wildcard *.acc)
         echo $?