2016-08-01 2 views
1

나는이 간단한 메이크가메이크 재 형성 디렉토리 대상

% ls 
dir_a dir_a.tar.gz dir_b dir_b.tar.gz Makefile 

을하지만 make를 실행할 때 재 구축 dir_a 대상 유지 :

% make 
tar xf dir_a.tar.gz 
% make 
tar xf dir_a.tar.gz 

유일한 차이점은 dir_a입니다. 종속성으로 지정된 tar 파일. 이 tar 파일은 변경되지 않습니다. 어떤 이유로 든 리메이크를 계속합니다 dir_a?

답변

1

dir_a을 작성하면 보관 파일보다 오래되면 make가 요리법을 다시 실행하도록 만드는 아카이브에 의존하게됩니다. 압축 해제 후 폴더 또는 파일 자체의 일부 파일을 건드리지 않으면 항상 적용됩니다 기본적으로 tar는 원본 파일 타임 스탬프를 보존합니다.

--touch/-m 플래그를 사용하면 tar가 아카이브 타임 스탬프 대신 파일을 추출한 시간을 설정할 수 있습니다. 나는 또한 두 가지 일을 정리할 자유를 취했다.

.PHONY: all 
all: dir_a dir_b 

dir_a dir_b: %: %.tar.gz 
     tar xmf $< 
+0

감사합니다. 'tar xmf'가 그것을 고쳤습니다. – mishik

관련 문제