0

互いに依存している 2 つのファイルがあるとします。

./pictures/1_data.tex
           |
           V
      ./data/1.pl

したがって、Perl ファイルから 1_data.tex が生成されます。それを行うには、メイクファイルに次のルールがあります。

./pictures/1_data.tex: ./data/1.pl
    perl given.pl 1 > $@

このパターンのファイルが複数ある場合:

./data/1.pl
./data/2.pl
...
./data/n.pl

それらを処理するためにワイルドカードを使用したいと思います。私はこれを試しました:

./pictures/*_data.tex: ./data/*.pl
    perl given.pl $* > $@

しかし、それは間違ったコマンドを生成します:

perl given.pl pictures/1_data > pictures/1_data.tex

1ターゲット全体ではなく、のみを後方参照することは可能ですか? そう$*です。

4

1 に答える 1

0

パターン ルールを使用します。

all: $(patsubst ./data/%.pl,./pictures/%_data.tex,$(wildcard ./data/*.pl))

./pictures/%_data.tex : ./data/%.pl
        perl given.pl $* > $@
于 2013-04-27T21:35:59.767 に答える