내 응용 프로그램 makefile에 몇 가지 버전 변수가 있으며 make.html 파일을 사용하여 version.h 파일을 생성하고 싶습니다.makefile을 사용하여 버전 정보 생성
version :
@echo "Generating version.h ..."
@echo line > version.h
@echo etc >> version.h
debug : blah blah version blah blah
release : blah blah version blah blah
.DEFAULT_GOAL := debug release
응용 프로그램 수준의 메이크 파일은 다음과 같습니다 :이 작동
MAJOR_VERSION = 1
MINOR_VERSION = 42
include makefile.common
하지만 두 버전의 파일을 생성 끝 나는 현재처럼 설정 일반 메이크있다. 어떻게 한 번만 생성 할 수 있습니까? 예 : version
은 앱 수준의 메이크 파일 변경에 따라 달라집니다. 그것은 그것을 두 번 생성하는 것이 참기 힘들 정도로 느리다는 것이 아닙니다. 나는 이것을 올바르게하고 싶습니다.
또한 버전 정보를 원하지 않는 앱이있을 수 있습니다.이 파일을 조건부로 생성하려면 어떻게해야합니까?
왜 SECONDEXPANSION입니까? – Barry
@Barry 그래서 $$ (MAKEFILE_LIST)는이 순간에 포함 된 메이크 파일뿐만 아니라 이후에도 _all_ 메이크 파일을 평가합니다. 레서피의 일부 변수 값은 그 아래의 코드에 의존 할 수 있기 때문에 필요합니다. –
% .d를 필터링하려면 어떻게해야합니까? 나는 $ (filter-out % .d, $ (MAKEFILE_LIST))가 작동하지만 .SECONDEXPANSION ...에서 작동하는 방법을 알아낼 수 없다. – Barry