#指定头文件搜索路径的目录列表,
INCLUDE=-I$(INC_DIR) INCLUDE += -I$(INC_DIR2) INCLUDE += -I. INCLUDE += -I../parson-master INCLUDE += -I../azure-uamqp-c/inc INCLUDE += -I./src INCLUDE += -I../umqtt/inc #指定库文件搜索路径列表 LIBDIR=-L./ # CFLAGS = $(INCLUDE) -pipe #指定gcc编译的-pipe特性, OPTCFLAGS = -Wall #开启gcc编译的警告消息 OPTCFLAGS += -O3 #O3优化 TARGET_LIB=iothub_client.so TARGET=iothub_client.so #TARGET=test CFLAGS += -Wall -fPIC -std=c99 #开启gcc警告,c99标准 #LDFLAGS += -L../c-utility -c-utility
#在$(SRC_DIR)路径中找到所有的*.c文件,形成呢个以空格问间隔的*.c文件列表
SRC_CODE = $(patsubst $(SRC_DIR)/%.c,$(SRC_DIR)/%.c, $(wildcard $(SRC_DIR)/*.c)) #在$(SRC_DIR)路径中找到所有的*.c文件,并把.c替换成.o形成以空格问间隔的*.o文件列表 OBJET_O=$(patsubst $(SRC_DIR)/%.c,$(SRC_DIR)/%.o, $(wildcard $(SRC_DIR)/*.c))#在$(INC_DIR)路径中找到所有的*.h文件,形成以空格问间隔的*.h文件列表
HEADER=$(patsubst $(INC_DIR)/%.h,$(INC_DIR)/%.h, $(wildcard $(INC_DIR)/*.h)) all:$(TARGET) #all已经被.PHONY声明为为目标,那么$(TARGET)目标依赖会全部生成 $(TARGET):$(OBJET_O) #目标:依赖关系 $(LD) -shared -o $@ $^ #ld,将.o目标连接成共享库文件$TARGET,也就是iothub_client.so # $(AR) -rs $@ $^ .c.o: #相当于 %o:%c $(CC) $(CFLAGS) -c $^ -o $@ clean: rm $(OBJET_O) rm ./$(TARGET) install: all #all形成,为目标可以不形成,其依赖的目标要形成,如$(TARGET) install -D $(TARGET) $(ROOTFS_PATH)/apps/lib/$(TARGET) uninstall: #和clean类似 rm -f $(ROOTFS_PATH)/apps/lib/$(TARGET) .PHONY:all clean test