makefile模板一
阿新 • • 發佈:2019-09-28
linux 下開發經常要編寫makefile,記錄下這些常用的模板,直接套用,簡單方便
下面這個模板是編譯linux環境,.c工程的makefile模板
工程連結:https://github.com/jorinzou/MQTT-TLS.git
CC=gcc
OBJ=Emqtt_client
all:$(OBJ)
HERE=./
SRC_INC=$(HERE)/src/
POLARSSL_INC=$(HERE)/lib/mbedtls-1.3.14/include/
incs=-I$(HERE)
incs+=-I$(SRC_INC)
incs+=-I$(POLARSSL_INC)
POLARSSL_LIB_DIR=$(HERE)/lib/mbedtls-1.3.14/library/
SRC_DIR=$(HERE)/src/
#一次性包含某個目錄下的所有.c檔案
files:=$(foreach dir,$(SRC_DIR),$(wildcard $(SRC_DIR)/*.c))
files+=$(foreach dir,$(POLARSSL_LIB_DIR),$(wildcard $(POLARSSL_LIB_DIR)/*.c))
OBJS_C := $(patsubst %.c,%.o,$(files))
CFLAGS=-O0 -g
CFLAGS+=$(incs)
LDFLAGS=-lpthread
$(OBJ):$(OBJS_C)
$(CC) $(LDFLAGS) -o $@ $^
$(OBJS_C):%.o:%.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -rf $(SRC_INC)/*.o
rm -rf $(POLARSSL_LIB_DIR)/*.o
rm -rf $(