一、编写生成库文件
#build tools
SHELL = /bin/sh
CC = gcc
AR = ar
VERSION = V1.0
#target
LIB_TARGET = mqtt_fun.a
#add define
DEBUG = -DMQTTCLIENT_PLATFORM_HEADER=MQTTLinux.h
#add build options
CFLAGS += -O -w -lpthread -lm
#add include files path
INCLUES += -I ../../src/linux
INCLUES += -I ../../../MQTTPacket/src
INCLUES += -I ../../src
#add src files path
VPATH += ../../src/linux
VPATH += ../../../MQTTPacket/src
#add lib files path
#LIBS +=
#LIB_PATH += -L .
#obj files
OBJS = MQTTClient.o mqtt_top.o mqtt_scheduler.o cJSON.o mqtt_fun_alarm.o mqtt_fun_device_status.o mqtt_fun_device_tag.o mqtt_fun_log.o mqtt_fun_ota.o mqtt_fun_set_para.o mqtt_fun_vpn.o mqtt_interface.o MQTTLinux.o MQTTFormat.o MQTTPacket.o MQTTDeserializePublish.o MQTTConnectClient.o MQTTSubscribeClient.o MQTTSerializePublish.o MQTTConnectServer.o MQTTSubscribeServer.o MQTTUnsubscribeServer.o MQTTUnsubscribeClient.o
#build rules
$(LIB_TARGET):$(OBJS)
cp ../../src/MQTTClient.c .
sed -e 's/""/"MQTTLinux.h"/g' ../../src/MQTTClient.h > MQTTClient.h
$(AR) -rc $@ $^
@mkdir -p obj
@mv *.o obj
@mv *.a obj
%.o:%.c
$(CC) $(INCLUES) -c $^ -o $@ $(CFLAGS) $(DEBUG)
clean:
rm -rf mqtt_fun.a *.o
echo "rm -rf mqtt_fun.a *.o"
二、编译生成执行文件
#build tools
SHELL = /bin/sh
CC = gcc
AR = ar
VERSION = V1.0
#target
LIB_TARGET = mqtt_fun
#add define
DEBUG = -DMQTTCLIENT_PLATFORM_HEADER=MQTTLinux.h
#add build options
CFLAGS += -w -lpthread -lm
#add include files path
INCLUES += -I ../../src/linux
INCLUES += -I ../../../MQTTPacket/src
INCLUES += -I ../../src
#add src files path
VPATH += ../../src/linux
VPATH += ../../../MQTTPacket/src
#add lib files path
#LIBS +=
#LIB_PATH += -L .
#obj files
OBJS = MQTTClient.o mqtt_top.o mqtt_scheduler.o cJSON.o mqtt_fun_alarm.o mqtt_fun_device_status.o mqtt_fun_device_tag.o mqtt_fun_log.o mqtt_fun_ota.o mqtt_fun_set_para.o mqtt_fun_vpn.o mqtt_interface.o MQTTLinux.o MQTTFormat.o MQTTPacket.o MQTTDeserializePublish.o MQTTConnectClient.o MQTTSubscribeClient.o MQTTSerializePublish.o MQTTConnectServer.o MQTTSubscribeServer.o MQTTUnsubscribeServer.o MQTTUnsubscribeClient.o
#build rules
$(LIB_TARGET):$(OBJS)
cp ../../src/MQTTClient.c .
sed -e 's/""/"MQTTLinux.h"/g' ../../src/MQTTClient.h > MQTTClient.h
$(CC) $(INCLUES) $^ main.c -o $@ $(CFLAGS) $(DEBUG)
%.o:%.c
$(CC) $(INCLUES) -c $^ -o $@ $(CFLAGS) $(DEBUG)
clean:
rm -rf mqtt_fun.a *.o
echo "rm -rf mqtt_fun.a *.o"