linux同一路径下编写多个makefile实现方法

一、编写
如果在同一路径编写多个makefile的话,只需要修改文件的后缀名为mak,文件名自己定

二、使用makefile
make -f xxx.mak

三、示例
1、编写代码

2、编写makefile

#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"


3、使用
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u010835747/article/details/120667358