Makefile 1.1 KB

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