2013-05-07 116 views
0

我使用Makefile配方中的split命令分割了一個大文件。gnu Makefile中的後期變量擴展

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

您將不得不使用遞歸make。在這個makefile中執行分割操作,然後調用遞歸make來處理其餘部分。你的問題並不完全清楚,但我認爲你想要的東西是這樣的:

all: trials 
     $(MAKE) recurse 

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

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

謝謝你,這正是我需要知道的。 – 2013-05-07 20:50:13