.PHONY: build clean # 头文件 INCS += -I. INCS += -I../swapi INCS += -I./include INCS += -I./nmealib/include # 源文件 NMEA_SRCS := $(wildcard ./nmealib/src/*.c) SRCS += $(filter-out ../swapi/testLib.c, $(wildcard ../swapi/*.c)) SRCS += ../swapi/subjects/serial/serial.c air530z.c SRCS += $(NMEA_SRCS) # .o文件 OBJS := $(SRCS:.c=.o) # 编译器 CC := gcc CFLAGS := -Wall -fPIC -O2 -g CFLAGS_NMEA := $(CFLAGS) -Wno-unused-but-set-variable DEFINS := -D_GNU_SOURCE # 单元测试时使用用, 开启调试模式, 正式编译时需要注释掉 # DEFINS += -D_DEBUG target ?= x86_64 ifeq ($(target),armv7hf) CC := arm-linux-gnueabihf-gcc AR := arm-linux-gnueabihf-ar endif # 库文件 LIBS += -Wl,-Bdynamic -lc -lm -ldl -lpthread # 编译和清理 build : libair530z.a air530z_test.out %.o : %.c $(CC) $(DEFINS) $(CFLAGS) -c $< $(INCS) -o $@ nmealib/src/%.o: nmealib/src/%.c $(CC) $(DEFINS) $(CFLAGS_NMEA) -c $< $(INCS) -o $@ libair530z.a : $(OBJS) $(AR) -cr $@ $(OBJS) air530z_test.out : $(OBJS) air530z_test.c $(CC) $(DEFINS) $(CFLAGS) $(OBJS) air530z_test.c $(INCS) $(LIBS) -o $@ clean : rm -rf $(OBJS) *.out *.a config/ log/ status/ var/