Re: [問題] 請問 Makefile 精簡輸出...
※ 引述《KENyroj (難得一身雞蛋糕...)》之銘言:
: ※ [本文轉錄自 C_and_CPP 看板]
: 作者: KENyroj (難得一身雞蛋糕...) 看板: C_and_CPP
: 標題: [問題] 請問 Makefile 精簡輸出...
: 時間: Tue Dec 26 16:52:27 2006
: 不好意思... 標題下得有點言不及意...
: 請問一下在 linux 下寫程式的大大們...
: 有沒有辦法在下 make 指令時... 不要讓它冒出那麼多訊息...
: 它會把所有的 -L -I 展開... 輸出到畫面上看起來還蠻累的...
: 有沒有辦法讓它只秀出... 比如說 target name(XXX.o) 呢??
: 謝謝大家
: __yroj
其實 make 的功能非常強大,如果只是單純要跑 slient 模式
可以在 make 時加入 -s 參數即可
但如果要達到您的需求,顯示特定 target (如 build kernel 一般)
可以花一些時間研究 kernel 的 KBuild 的作法,但畢竟這是牛刀
如果只是要殺雞,最簡單方式可以用下面這種方式
CC = gcc
OBJS = sss.o sss_socks.o sss_data.o sss_rule.o errexit.o \
passivesock.o connectsock.o vstream.o
CFLAGS += -Wunused -g -O2
PACKET = sss
.PHONY: all clean
all: $(PACKET)
$(PACKET): $(OBJS)
@echo " LINK $@";$(CC) $(CFLAGS) $^ -o $@
%.o: %.c
@echo " GCC $@";$(CC) $(CFLAGS) $(CPPFLAGS) -c $<
clean:
@rm -rf *.o $(PACKET)
在 makefile 裡面,每一個以 tab 開頭的行都是 fork 一個 shell 去執行,而前面的
@ 符號,就是告訴 make 不要將 shell 要執行的指令印出來,所以我在上面 command
部分使用 @ 使 make 不顯示指令,並以 echo 方式將現在要做的事情印出來,簡化訊息
by the way, 在 KBuild 是利用 V 這個 variable 來控制顯示的狀態,可以是 verbose
mode 或是加 -s 成為 slient mode, 或是預設的 brief mode
詳細 Make 的用法可以參考 O'Reilly 的 GNU Make 3rd
http://www.oreilly.com.tw/product_unix.php?id=a164
3rd 和 2st 因為作者換人寫,內容也幾乎完全不一樣,以實務角度來看,我比較推薦
3rd, 當然很多人持相反意見,參考看看囉...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.188.188
推
12/26 22:31, , 1F
12/26 22:31, 1F
→
12/26 23:14, , 2F
12/26 23:14, 2F
→
12/26 23:17, , 3F
12/26 23:17, 3F
※ 編輯: andytzeng 來自: 220.135.188.188 (12/27 02:09)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章