0
這裏是我的makefile片段:打印CFLAGS在GNU使exaclty一次如果源文件已更改
all: $(TARGET)
$(C_OBJS): %.o: %.c
@ echo -n "Compiling " $*.c;
@ $(CC) -c $(CFLAGS) $*.c -o $*.o
@ echo " ...... Done"
$(TARGET): $(C_OBJS)
@ $(AR) rus [email protected] $(C_OBJS);
print_cflags:
@ echo "CFLAGS: " $(CFLAGS) "\n"
展望未來,我要
- 打印
CFLAGS
一次如果編譯發生。 - 如果以前的構建沒有進行任何修改,則獲取
make: Nothing to be done for "all"
消息。在這種情況下,打印CFLAGS
是可選的。
我覺得,它可以通過保持一個櫃檯內部$(C_OBJS): %.o: %.c
但是有沒有更好的方法來實現這一目標? 我知道這是一個非常具體的問題,但任何幫助將不勝感激。
加上'print_cflags'作爲'訂單only'前提,以'$(TARGET)'規則? – 2014-09-10 15:21:05
@EtanReisner感謝您的評論,但通過將'print_cflags'添加爲'僅限訂單'的先決條件'make:無需完成所有「消息。 – govind 2014-09-10 15:36:03
嗯...好的。你總是可以停止使用make目標,並將打印結果貼在'$(TARGET)'規則體中。 – 2014-09-10 15:39:38