- makefile 常用的變數
$? 代表需要重建(被修改)的相依性項目。 $@ 目前的目標項目名稱。 $< 代表目前的相依性項目。 $* 代表目前的相依性項目,不過不含副檔名。
- 例:以 $@ 代表目前的目標 (target) 項目。
LIBS = -lm OBJS = main.o haha.o sin_value.o cos_value.o CFLAGS = -Wall main: ${OBJS} gcc -o $@ ${OBJS} ${LIBS} <== 在此 $@ 即 main 。 clean: rm -f main ${OBJS}
- 例:以 $@ 代表目前的目標 (target) 項目。
- makefile 中兩個特別字元,可以加在要執行的命令之前:
- - :make 會忽略命令的錯誤。
- 如果希望產生一個目錄,但希望忽略錯誤,可能是因為該目錄已經存在。
-mkdir /usr/local/repository
- 如果希望清除目標檔案,但希望忽略錯誤,可能是因為該檔案不存在。
clean: -rm main.o 2.o 3.o
- 如果希望產生一個目錄,但希望忽略錯誤,可能是因為該目錄已經存在。
- @ :make 不會在標準輸出上,顯示要執行的命令。
- 判斷式 if 起始為符號 @,讓 make 在執行該法則時,停止印出標準輸出的文字。
install: myapp @if [ -d $(INSTDIR) ]; \ then \ ...;\ fi
- - :make 會忽略命令的錯誤。
沒有留言:
張貼留言