Linux的通用makefile模闆
# 下面的變量可以在shell 的環境變量裡面指定。
# 也可以象下面這樣在 Makefile 裡面指定。
# CC=gcc # 編譯器
# CFLAGS=-Wall -Werror -g # 編譯器參數
# LD=gcc # 連接配接器參數
# LDFLAGS= $(LIBS) -lpthread # 連接配接器參數
# DEPENDFLAG=-MM # 生成依賴關系檔案的參數
# INCLUDES=-Idir1 -Idir2 # 指明包含外部頭檔案的目錄
# LIBS=-la -lb -lc # 指明引用外部的庫檔案
CFLAGS:=$(CFLAGS) $(INCLUDES)
LDFLAGS:=$(LDFLAGS) $(LIBS)
#指明項目中,包含源程式的所有的子目錄。
SRCDIRS=.
#指明最終生成的可執行檔案的名稱
PROGRAMS=test.exe
#下面的部分一般不用改動
#從所有子目錄中得到源代碼的清單
SRCS=$(foreach dir,$(SRCDIRS),$(wildcard $(dir)/):?$(basename $<).o $(basename $<).d :?g" /
> [email protected] || $(RM) [email protected]
$(PROGRAMS): $(OBJS)
$(CC) $(LDFLAGS) -o [email protected] $(filter %.o ,$+)
# 包含入依賴關系檔案
include $(DEPENDS)
# 删除生成的中間檔案
clean:
rm $(OBJS) $(DEPENDS) $(PROGRAMS)