makefile點滴整理

makefile描述規則

target...:prerequisites...

command...

其中target爲目標文件,prerequisites爲依賴文件,command爲生成規則


“-”號:

在makefile命令前加一個減號,表示不管命令是否出錯,都繼續執行後面的操作


自動化變量:

$@表示規則中目標集合;

$<表示規則中首個依賴文件(the first prerequisite);

$?表示規則中所有被改變過的依賴文件;

$^表示所有依賴文件集合。

$+類似$^,但保留了依賴文件中重複出現的文件,主要用於程序鏈接時庫交叉引用的場合。

參見http://www.2cto.com/os/201302/191344.html


override指示符

override爲了防止命令行變量定義的值替代Makefile中變量定義的值。需要在Makefile中使用指示符“override”來聲明這個變量,語法爲

override<variable>=<value>

override <variable>:=<value>

舉例:假定Makefile爲

.PHONY: all
override foo = x
all:
    @echo "foo = $(foo)"

執行make -f Makefile foo=abc

輸出爲 foo = x,去掉override,輸出爲 foo=abc。


部分函數


字符串替換函數subst:$(subst <from>,<to>,<text>)

將字串<text>中的<from>字符串替換成<to>,返回被替換過後的字符串。


函數shell:運行shell命令

參數爲操作系統Shell的命令,將執行shell命令後的輸出作爲函數返回。


@echo:顯示命令


參見《跟我一起寫makefile》




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章