2
大項目通常具有複雜的Makefile系統。很多變量定義和目標先決條件依賴關係分散在不同的Makefiles中。任何方便的方式來打印所有的先決條件和建立目標規則?如何使用make來打印目標的所有先決條件和構建規則
具體而言,有兩個問題:
問題1
說我有四個Makefile文件:
Makefile1:
p: a b
[some rule]
Makefile2:
q: c d
[some rule]
Makefile3:
r: e f
[some rule]
的Makefile:
all: p q r
[some rule]
我可以調用一些命令來獲得類似於下面的一些輸出?
all: a b c d e f
[rule 1]
[rule 2]
[rule 3]
......
問題2
而且,如果我要檢查的實體只是一個普通的二進制,而不是在Makefile中指定一個目標是什麼?例如,如何獲取coreutils中的sha1sum
的先決條件和構建規則? (很顯然,在coreutils的Makefile中沒有命名爲sha1sum
的目標。)
我已經查看了make
的幫助和手冊,但徒勞無功。也許我沒有弄清楚Google搜索的正確關鍵字。誰能幫我?謝謝!
我不確定這會從其他Makefiles中獲取先決條件,但將其添加到目標會打印目標和先決條件:@echo $ @:$^ – cmotley
@cmotley我試過了,但結果顯示此規則不會從其他Makefile中選取先決條件。不管怎樣,謝謝!關於第二個問題,你有什麼想法嗎?這實際上是我需要的。 – antiAgainst
make -n可能是部分解決方案。它確實會丟失特定的目標信息,只是打印食譜。 –