1

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例如。

4

1 回答 1

2

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

all: trials
         $(MAKE) recurse

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

recurse: $(wildcard *.acc)
         echo $?
于 2013-05-07T20:02:17.287 回答