私は別のステップでメイクファイルにあなたのファイルリストを変換することによって、これを行うだろう:
# Makefileall:
all: depsfromfile.out
depsfromfile.mk:
(echo "depsfromfile:"; cat depsfromfile)| sed -e '/^#/d' -e 's/$/ \\/' -e '$s/ \\//' > depsfromfile.mk # there is a \t at the beginnging of this line!
-include depsfromfile.mk
depsfromfile.out: depsfromfile
@touch depsfromfile depsfromfile.out
depsfromfile:
cat $^ > [email protected]
@touch depsfromfile
ファイルリストで
# depsfromfile
a
b
c
depsfromfileのMakefileはそのを自動生成しますファイルはdepsfromfile
からの依存関係です。テストターゲットはdepsfromfile
を使用して出力を生成します。
depsfromfile.mk
に自動生成されたdepsfromfile:
ターゲットは、依存関係を含んでいます。
depsfromfile.out
ターゲットは、depsfromfileの依存関係が変更されたときにのみ再生成されます。
今あなたがこれまでに試してみました何
# echo "test a" > a
# echo "test b" > b
# echo "test c" > c
# make
cat a b c > depsfromfile.out
# make
make: Nothing to be done for 'all'.
をできますか? – hering
これは非常に簡単ですが、なぜそれが必要ですか?しかし、知られている の前提条件のリストをファイルに入れておき、それを 'make 'に読み込むだけでは、メイクファイルにリストを入れるのはもっと複雑で壊れやすいだけです。 –
私はまだ何かを試してみませんか?私がファイルリストになるenv変数の定義をどこに置くことができるのか分かりません。 –