[嵌入式系統] Makefile詳解
[嵌入式系統]Makefile詳解
參考資料: http://www.linux.org.tw/CLDP/OLD/doc/makefile-ch1.html
第一章 - Makefile語法的基本規則:
1.”每一個命令列的開頭都要是一個tab字元(四個空格)”.
2.makefile會忽略描述檔中的空白行且亦會忽略掉#(註解)
3.設定make clean命令列
|
進階範例第二步:plot_prompt : basic.o prompt.o //宣告plot_prompt由basic.o與prompt.o兩個檔案組成
cc –o plot_prompt basic.o prompt.o
plot_win : basic.o window.o //宣告plot_prompt由basic.o與window.o兩個檔案組成
cc –o plot_win basic.o window.o
basic.o : basic.c //宣告basic.o由basic.c產生
cc –c basic.c
prompt.o : prompt.c //宣告prompt.o由prompt.c產生
cc –c prompt.c
window.o : window.c
cc –c window.c
第二章 - (巨集與後置規則):
Reference:http://www.linux.org.tw/CLDP/OLD/doc/makefile-ch2.html
1.可用$(name) 或${name}定義巨集
2.描述檔中#代表巨集定義結束並開始註解
3.巨集名稱前不允許有tab字元且等號前也不能有冒號:
4.EXECS = ${SOURCES:.c=} //sources的內容 去掉.c
5.$@ and $?(未完成)
7.>>(未完成)
使用make時加上 –e 這個選項,這樣一來,就會把不同來源之巨集定義的優先權變成下面的順序,由最低到最高:(簡單來說就是-e忽略描述檔 ; 非-e就是忽略環境變數).
1.make內部的(default,內定的)已有的定義.
2.在描述檔裡頭的巨集定義.
3.目前的環境變數. 在Korn shell和Bourne shell裡頭,如果把巨集定義在make指令之前的話,此巨集相當於環境變數.
4.在使用make指令時,所定義的巨集,但是是位於make指令之後,相較於第2項,雖然同樣都是在
Reference:http://www.linux.org.tw/CLDP/OLD/doc/makefile-ch2.html
1.可用$(name) 或${name}定義巨集
2.描述檔中#代表巨集定義結束並開始註解
3.巨集名稱前不允許有tab字元且等號前也不能有冒號:
4.EXECS = ${SOURCES:.c=} //sources的內容 去掉.c
5.$@ and $?(未完成)
7.>>(未完成)
使用make時加上 –e 這個選項,這樣一來,就會把不同來源之巨集定義的優先權變成下面的順序,由最低到最高:(簡單來說就是-e忽略描述檔 ; 非-e就是忽略環境變數).
1.make內部的(default,內定的)已有的定義.
2.在描述檔裡頭的巨集定義.
3.目前的環境變數. 在Korn shell和Bourne shell裡頭,如果把巨集定義在make指令之前的話,此巨集相當於環境變數.
4.在使用make指令時,所定義的巨集,但是是位於make指令之後,相較於第2項,雖然同樣都是在
留言
張貼留言