我在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
。
答案 0 :(得分:1)
你必须使用递归make。在此makefile中执行split操作,然后调用递归make来处理其余的。你的问题并不完全清楚,但我认为你想要这样的事情:
all: trials
$(MAKE) recurse
trials: $(OBJ)
sort -m ...
recurse: $(wildcard *.acc)
echo $?