Makefile 825 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. .PHONY: build clean
  2. # 头文件
  3. INCS += -I.
  4. INCS += -I../swapi
  5. INCS += -I./include
  6. # 源文件
  7. SRCS += $(filter-out ../swapi/testLib.c, $(wildcard ../swapi/*.c))
  8. SRCS += ../swapi/subjects/serial/serial.c ec200u.c
  9. # .o文件
  10. OBJS := $(SRCS:.c=.o)
  11. # 编译器
  12. CC := gcc
  13. CFLAGS := -Wall -fPIC -O2 -g
  14. DEFINS := -D_GNU_SOURCE
  15. target ?= x86_64
  16. ifeq ($(target),armv7hf)
  17. CC := arm-linux-gnueabihf-gcc
  18. AR := arm-linux-gnueabihf-ar
  19. endif
  20. # 库文件
  21. LIBS += -Wl,-Bdynamic -lc -lm -ldl -lpthread
  22. # 编译和清理
  23. build : libec200u.a ec200u_test.out
  24. %.o : %.c
  25. $(CC) $(DEFINS) $(CFLAGS) -c $< $(INCS) -o $@
  26. libec200u.a : $(OBJS)
  27. $(AR) -cr $@ $(OBJS)
  28. ec200u_test.out : $(OBJS) ec200u_test.c
  29. $(CC) $(DEFINS) $(CFLAGS) $(OBJS) ec200u_test.c $(INCS) $(LIBS) -o $@
  30. clean :
  31. rm -rf $(OBJS) *.out *.a config/ log/ status/ var/