2012-02-10 6 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의 내용에 대한 종속성을 생략합니다.

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

또는 조금 더 나은 (변수 list.txt를 추출하여 자동 변수) :

답변

5

나는 이런 식으로 뭔가가 있어야한다고 생각

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

xargs를 타르를 호출하는 경우가 중단됩니다 두 번 이상. 각 호출은 tar 파일을 겹쳐 씁니다. 제대로 작동하려면 xargs를 제거하십시오. –

관련 문제