0
我想將目標添加到.PHONY
目標列表。 但是,當我重新定義.PHONY
時,它在Makefile.am
中覆蓋了自動生成的Makefile
中的前一個。我只想擴展它。自動工具擴展.PHONY
有沒有一個優雅的方式來做到這一點?
我想將目標添加到.PHONY
目標列表。 但是,當我重新定義.PHONY
時,它在Makefile.am
中覆蓋了自動生成的Makefile
中的前一個。我只想擴展它。自動工具擴展.PHONY
有沒有一個優雅的方式來做到這一點?
乾脆就這樣做。 .PHONY
是一個目標(而不是變量),因此你不覆蓋,但你添加到它:
考慮簡單的Makefile:
default: foo bar baz
@touch $^
.PHONY: foo
foo:
@echo "foo"
.PHONY: bar
bar:
@echo "bar"
baz:
@echo "baz"
,你可以看到,有是兩個獨立的.PHONY
定義。
第一次運行時,會打印出「foo」,「bar」和「baz」,然後觸摸(創建)3個文件。 在第二次運行時,它只會打印「foo」和「bar」,因爲它們是PHONY,所以即使文件存在,目標也會運行。
現在考慮Makefile.am`:
bin_PROGRAMS = foonly
foonly_SOURCES = main.c
## an additional phony target:
.PHONY: test
test:
echo "test"
檢查導致Makefile
,你將再次看到多個.PHONY
目標。他們會像第一個例子那樣表現:加起來,而不是相互壓倒。