我正在玩make文件和VPATH變量。基本上,我從幾個不同的地方(由VPATH指定)獲取源文件,並使用我想要的.o文件列表將其編譯到當前目錄中。使用VPATH的Makefile欺騙和包括
到目前爲止很好,現在我將依賴信息生成一個名爲'.depend'的文件幷包含它。如果Gnumake不存在,Gnumake將嘗試使用迄今爲止定義的規則來創建包含的文件,所以沒關係。基本上,我的makefile看起來像這樣。
VPATH=A/source:B/source:C/source
objects=first.o second.o third.o
executable: $(objects)
.depend: $(objects:.o=.c)
$(CC) -MM $^ > [email protected]
include .depend
現在對於真正的問題,我可以用任何方式抑制.depend文件的生成嗎?我目前正在一個清晰的環境中工作 - > sloooow,所以我更願意在更新依賴信息時有更多的控制權。
這或多或少是一種學術活動,因爲我可以在執行make之前接觸.depend文件的腳本中包裝這個東西(因此使它比任何源文件更新),但知道它會有趣如果我能以某種方式用'純粹'製造來壓制它。
我無法刪除對源文件的依賴關係(即僅使用.depend:
),因爲我依賴於$^
變量來爲我執行VPATH分辨率。
如果有會是沒有辦法只更新相關的更新#include
指令的結果,會是更好的,當然。但我不會拿着我的呼吸爲一個.. :)
爲什麼不包'的.depend:...'目標變成'if'指導工作? – 2010-03-16 12:26:31
@Pavel:有趣的是,我從來沒有想到這一點。 – falstro 2010-03-16 13:44:55