我在GNU make中看到了目標特定變量的意外結果。生成文件和先決條件中特定於目標的變量
我想要的是設置一個目標特定的變量,影響依賴關係。我可以使用.SECONDEXPANSION
來實現。
some-target: DEP := debug-dep
debug: some-target
.SECONDEXPANSION:
some-target: $$(DEP)
@echo $^
debug-dep:
make debug
打印debug-dep
。
現在我讀了make defines target-specific variables for descendant rules:
當你定義一個特定目標變量,變量值也爲這一目標的所有先決條件的影響,他們的所有先決條件,等等
但是,當我改變我的makefile來對「父」的目標變量集:
debug: DEP := debug-dep
debug: some-target
.SECONDEXPANSION:
some-target: $$(DEP)
@echo $^
debug-dep:
並做make debug
我得到一個空行。
這似乎與目標特定變量的記錄行爲相矛盾。有什麼我失蹤了嗎?
這是有點類似於make: Using target specific variables in prerequisites,但我所做的是不工作。