2013-07-15 1 views
0

대상을 .PHONY 대상 목록에 추가하고 싶습니다. 그러나 .PHONYMakefile.am에 다시 정의하면 자동 생성 된 Makefile의 이전 값보다 우선합니다. 나는 그것을 확장하고 싶다.autotools extends .PHONY

우아한 방법이 있나요?

답변

3

간단히 말해. .PHONY은 대상 (오히려 변수보다는)과 같은 당신은 재정을하지 않습니다,하지만 당신이 그것에 추가 :이

default: foo bar baz 
    @touch $^ 

.PHONY: foo 
foo: 
    @echo "foo" 
.PHONY: bar 
bar: 
    @echo "bar" 

baz: 
    @echo "baz" 

당신이 볼 수 있듯이, :

는 간단한 Makefile을 고려 두 개의 독립적 인 .PHONY 정의입니다.

처음 실행하면 "foo", "bar"및 "baz"가 출력되고 그런 다음 3 개의 파일을 터치 (생성)합니다. 두 번째 실행에서는 PHONY이므로 "foo"및 "bar"만 인쇄하므로 파일이 있어도 대상이 실행됩니다. Makefile를 결과를 다시 볼 수 여러 .PHONY 목표를 검사

bin_PROGRAMS = foonly 
foonly_SOURCES = main.c 

## an additional phony target: 
.PHONY: test 
test: 
    echo "test" 

:

이제 Makefile.am` 고려한다. 첫 번째 예와 같이 작동합니다 : 서로 오버라이드하기보다는 합산합니다.