Makefile 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. .PHONY: build clean
  2. # 头文件
  3. INCS += -I.
  4. INCS += -I../swapi
  5. INCS += -I./include
  6. INCS += -I./nmealib/include
  7. # 源文件
  8. NMEA_SRCS := $(wildcard ./nmealib/src/*.c)
  9. SRCS += $(filter-out ../swapi/testLib.c, $(wildcard ../swapi/*.c))
  10. SRCS += ../swapi/subjects/serial/serial.c air530z.c
  11. SRCS += $(NMEA_SRCS)
  12. # .o文件
  13. OBJS := $(SRCS:.c=.o)
  14. # 编译器
  15. CC := gcc
  16. CFLAGS := -Wall -fPIC -O2 -g
  17. CFLAGS_NMEA := $(CFLAGS) -Wno-unused-but-set-variable
  18. DEFINS := -D_GNU_SOURCE
  19. # 单元测试时使用用, 开启调试模式, 正式编译时需要注释掉
  20. # DEFINS += -D_DEBUG
  21. target ?= x86_64
  22. ifeq ($(target),armv7hf)
  23. CC := arm-linux-gnueabihf-gcc
  24. AR := arm-linux-gnueabihf-ar
  25. endif
  26. # 库文件
  27. LIBS += -Wl,-Bdynamic -lc -lm -ldl -lpthread
  28. # 编译和清理
  29. build : libair530z.a air530z_test.out
  30. %.o : %.c
  31. $(CC) $(DEFINS) $(CFLAGS) -c $< $(INCS) -o $@
  32. nmealib/src/%.o: nmealib/src/%.c
  33. $(CC) $(DEFINS) $(CFLAGS_NMEA) -c $< $(INCS) -o $@
  34. libair530z.a : $(OBJS)
  35. $(AR) -cr $@ $(OBJS)
  36. air530z_test.out : $(OBJS) air530z_test.c
  37. $(CC) $(DEFINS) $(CFLAGS) $(OBJS) air530z_test.c $(INCS) $(LIBS) -o $@
  38. clean :
  39. rm -rf $(OBJS) *.out *.a config/ log/ status/ var/