2013-06-05 2 views
0

나는 많은 바이너리 파일 (이미지 등)을 가지고있다. 내 빌드 프로세스의 일부로 출력 디렉토리에 그 중 일부를 복사해야합니다.파일을 기반으로하는 메이크 파일 동적 규칙

복사해야 할 파일 목록은 다소 복잡한 논리를 기반으로하며 파이썬 스크립트에 의해 동적으로 생성됩니다.

한다고 가정 i를 deps.txt에 다음과 같습니다

a.png 
b.gif 
c.mp4 

가 어떻게 출력 디렉터리에 필요한 파일을 복사 할 메이크 파일을 사용할 수 ?

예를 들어, 출력 directoryalready은 메이크 출력 디렉토리 (하지만 c.mp4)에 a.pngb.gif를 복사합니다 실행 c.mp4b.gif의 오래된 버전의 경우 포함되어 있습니다. 당신이해야합니다, 당신은 GNU를 사용하지 않는 경우

deps.txt.mk: deps.txt 
     cat $< | while read f; do echo "\$$(OUTPUT_DIR)/$$f: $$f ; cp $$< [email protected]"; done > [email protected] 

-include deps.txt.mk 

만들 : 당신이 GNU 만들 사용하는 경우

답변

2

가장 간단한 방법은, 다음과 같이 자동 생성 포함 파일을 사용하는 것입니다 재귀를 대신 사용하십시오 : 메이크 파일을 생성하는 규칙을 가지고 있습니다 (위와 같습니다). $(MAKE) -f deps.txt.mk을 실행하여 실제로 설치합니다. 그 예가 필요한지 알려주십시오.

+0

감사합니다. 나는 당신이 또한 http://mad-scientist.net/make/autodep.html을 쓴 것으로 추측한다. 권장되는 읽기. –

+1

+1! 'cat $ <| 대신 TrueY

관련 문제