前言
今天我們要來繼續討論 Makefile,
我們來學習 Makefile 的常用變數 -「$@」, 「$^」
(使用時請輸入小寫,這邊因為會吃到語法,所以改用全形大寫。)
我們的今天的 Makefile
這份檔案與上次的 Makefile 「功能」是完全相同的,
而我們要注意的是兩者不同的地方,「關於一些重複字詞的優化」。
RM=rm
T=touch
otherfiles = myfile myotherfile
buildfiles = myfile2
all: $(buildfiles)
myfile:
$(T) $@
myotherfile: # @ = echo to target
$(T) $@
myfile2: $(otherfiles) # ^ = all dependency
cat $^ > $@
clean:
$(RM) $(buildfiles)
$(RM) $(otherfiles)
說明 - 「$@」, 「$^」
與 day2 不同的是,這邊多使用了兩種特別的符號「$@」, 「$^」
「$@」, 「$^」是在 Makefile 裡面常見的符號,
我們可以透過這兩者分別取代以下說明的內容:
- 「$@」:取代 target 名稱,因為我們時常會讓 target 等同於要製作出的檔名,我們就會使用「$@」代替
此外,在其他多參數的時候,「^」取代的是全部的 dependency,也就是所有做為參數的都會被參考到。