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 に答える