2009年5月4日 星期一

[Linux] makefile 指令 note

為了方便記下 makefile 的相關指令
所以寫在這邊做 note


有些 phony 目標是GNU建議的,不見得一定要有,
只是建議目標。例如

all    :內定的編譯動作
install   :安裝binary檔的動作
clean   :清除obj檔的動作
dist    :產生configure的動作
distclean :清除configure所產生的檔

內部變數

$?:代表已被更新的 dependencies 的值。
也就是 dependencies 中,比 targets 還新的值。
$@:代表 targets 的值。
$<:代表第一個 dependencies 的值。 $*:代表 targets 所指定的檔案,但不包含副檔名。


PHONY:
在這個後面的target無條件執行。


.SUFFIXS:
make有一些內定方法編譯特別副檔名,
這些副檔名規則的副檔名 (名單)list,是在SUFFIXS這個變數裡,
可能有.c .o .cpp 等等。 用下列清掉內定副檔名list。

.SUFFIXS:


用下列加上.sgml .hack到內定list。

.SUFFIXS: .sgml .hack



.EXPORT_ALL_VARIABLES:
把所有變數告訴後來sub shell的子程序


好亂。。。看得頭好暈。。。
遲早都要整理過這些指令,那就等有空再說吧(毆飛)

沒有留言:

張貼留言