2012-02-10 19 views
2

ファイルlist.txtを読み込み、内容を含むresult.tarを生成するMakefileを書きたいとします。 list.txtファイルまたはそのファイルのいずれかに変更がある場合は、result.tarを再構築する必要があります。これをMakefileでどのように表現できますか?ファイルから依存関係を作る

result.tar : list.txt 
    cat list.txt | xargs tar -cf result.tar 

しかし、これはlist.txtの内容に依存関係を省略:私は来ている最も近いです。

答えて

5

私はこのような何かがあるはずだと思う:

 
result.tar : list.txt $(shell cat list.txt) 
    cat list.txt | xargs tar -cf result.tar 

それとも、少し良く(変数へlist.txtを抽出し、自動変数を使用して):

 
LIST_FILE := list.txt 
result.tar : $(LIST_FILE) $(shell cat $(LIST_FILE)) 
    cat $< | xargs tar -cf [email protected] 
+1

xargsのは、タールを呼び出す場合、これが壊れます一回以上。各呼び出しは、tarファイルを上書きします。 xargsを削除して正しく動作させるだけです。 –

関連する問題