제목과 마찬가지로 특정 파일이 존재하지 않는 경우에만 종속성을 만들고 싶습니다.Makefile - 파일이 존재하지 않는 경우에만 종속성 만들기
나는 루트 디렉토리 (makefile이있는 디렉토리)와 "example"이라는 서브 디렉토리를 가지고있다. 내 루트 디렉토리에 4 개의 .h 파일 (functions.h, parser.h, node.h 및 exception.h)이 있습니다.이 파일들이 이미 존재하지 않으면 "example"하위 디렉토리에 복사하고 싶습니다. "예제"에서.
유감스럽게도 "example"의 헤더 파일을 루트에서 "example"으로 복사 할 때마다 "example"의 헤더 파일이 업데이트로 간주되므로 "example"의 헤더 파일을 확인하기 위해 표준 종속성을 설정할 수는 없습니다. make를 실행할 때마다 그 의존성을 트리거 할 것입니다. 나는 makefile이 "example"에 존재하지 않는 경우에만 루트 디렉토리의 "example"에 헤더 파일을 복사하는 방법을 원합니다.
수동 (예 :'$의 @'등의) 자동 변수 래서 내에서 유효 _only_ 것을 매우 분명하다. 목표, 전제 조건 또는 make 조건문을 사용할 수 없습니다 (makefile이 읽혀지는 동안 확장되므로). 이 경우'$ @'는 빈 문자열로 확장됩니다. – MadScientist
나는 본다. 그러나 "example /"을 추가하기 때문에 ifeq()가 여전히 false로 평가할 수있는 것이있다. 그 문제를 해결해 주셔서 감사합니다. 나머지 게시물에 초점을 맞추기 위해 내 게시물을 수정했습니다. – Daniel