1
入力ファイルがあるとします(sheet[n].in
)。各入力ファイルに対して、2つの出力ファイル、sheet[n].out
とsolved[n].out
を生成したいと思います。makeで同じ入力から2つのファイルを生成できません
SOURCES = sheet1.in
OUT = $(SOURCES:.in=.out)
SOLVED = $(patsubst sheet%,solved%,$(OUT))
sheets: ${OUT}
solvedsheets: ${SOLVED}
all: sheets solvedsheets
sheet%.out: sheet%.in
cat $< > [email protected]
solved%.out: sheet%.in
cat <% > [email protected]
echo "solved!" >> [email protected]
debug:
@echo "OUT = ${OUT}"
@echo "SOLVED = ${SOLVED}"
私はいくつかのテキストを含むいくつかのダミーsheet1.in
ファイルでそれをテスト:私はこのMakefileを書きました。 make
を実行すると、sheet1.out
が生成されますが、solved1.out
は生成されません。 make debug
利回り:
OUT = sheet1.out
SOLVED = solved1.out
私はsolved%.out
のルールを削除しても、不足しているルールに文句はありませんすることができます。必要な出力ファイルとして、SOLVED
のリストを無視しているようです。何故ですか?
すごいああ。私は、何も引数が与えられていなければ 'all'を呼び出すと仮定して、これまで何年も使っていました。 – flyx