是否有輸出「預處理」的makefile的選項,相當於GCC的-E
選項?GNU Makefile「預處理器」?
我有一個由幾十個模塊層次組成的項目,每個模塊都有它的makefile。該構建是從主makefile中調用的。主master文件包含包含,變量定義,命令行選項因變量等。
所以,基本上,我正在尋找已處理的makefile,包括所有替換。
是否有輸出「預處理」的makefile的選項,相當於GCC的-E
選項?GNU Makefile「預處理器」?
我有一個由幾十個模塊層次組成的項目,每個模塊都有它的makefile。該構建是從主makefile中調用的。主master文件包含包含,變量定義,命令行選項因變量等。
所以,基本上,我正在尋找已處理的makefile,包括所有替換。
不是我所知道的。最接近你的是make -qp
(或類似的)的輸出,它會將make數據庫轉儲給你。
這個請求的部分問題是很多替換/ etc。發生在目標被處理的情況下,並且目標列表不一定是已知的,而實際上並未嘗試構建(至少在某種程度上),因此不一定可能完全展開/ etc。一個makefile就地。
make -d
輸出對於某些與make如何處理makefile但不直接包含makefile內容有關的附帶信息也很有用。
Remake也可能能夠提供一些額外的有用信息。
如果您正在查找一些組裝/ etc的計算值。全球變量然後this埃裏克梅爾斯基博客文章可能會非常有幫助。
tl; dr它將這樣一個目標添加到Makefile中(儘管博客文章中有更多的魔力,所以我建議閱讀它)。
print-%: @echo '$*=$($*)' @echo ' origin = $(origin $*)' @echo ' flavor = $(flavor $*)' @echo ' value = $(value $*)'
儘管在個人使用我更換了的東西第一線更多類似這樣的
@echo '$*=$(subst ','\'',$($*))'
保持正確結果的引用。
在這種情況下make -n沒有用嗎? –
@EugeniuRosca - 看起來像這個選項不會創建我要找的結果。 – ysap