我正在使用makefile編譯一個由多個.c
文件組成的程序,並且任何時候調用make
它只會編譯上次運行後修改的那些文件(此處沒有特別之處)。控制make的詳細程度
爲了避免弄亂我的屏幕,我在每個$(CC)
通話開始時預先考慮@
,和之前我打印定製echo
消息。例如:
%.o: %.c $(h1) $(h3) %.h
@echo -e "\tCompiling <" $<
@$(CC) $(CFLAGS) -c $< -o $(libDir)[email protected]$(MATHOPTS)
我的問題是:我怎麼能控制make
更「動態的方式」的詳細程度,以便能夠:
- 正常行爲:只有一個爲每個執行的生成文件規則打印自定義消息。
- 詳細行爲:打印每個生成文件規則實際執行的命令(就好像根本沒有使用
@
)。
在你的第一部分中,我想還需要重寫'CC = $(CC _ $(V))'。 – 2012-02-16 22:20:19
是的。缺席是我現在要解決的一個大腦放屁。我還應該指出,遞歸變量擴展已經得到了廣泛的實施,但目前在POSIX中還沒有實現(但在未來的版本中將會改變)。 – 2012-02-17 07:34:51
偉大的解決方案@JackKelly。創建'AT'變量的那個簡單而有效! – 2012-02-22 18:47:46