Makefile 1012 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. .PHONY: all clean cleanall
  2. CC = gcc
  3. INC_PATH = ../include
  4. MY_CFLAGS = -I../include -I../paho.mqtt.c/src/
  5. CFLAGS = $(MY_CFLAGS) -Os -lrt -g -Wall -W -Wpointer-arith -Wstrict-prototypes -c
  6. OBJS = decode.o globle.o mysql.sdk.o init.o
  7. #定义最后生成的静态库文件
  8. LIB_A=libcommon.a
  9. AR= ar rcu
  10. RANLIB= ranlib
  11. all: $(LIB_A)
  12. #生成 lib.a 方便外面引用
  13. #依赖于 $(OBJS),即四个源文件编译得到的目标文件
  14. $(LIB_A):$(OBJS)
  15. #使用 ar 工具将目标文件打包成静态库
  16. $(AR) $@ $(OBJS)
  17. #运行 ranlib 命令更新静态库的索引,以确保正确性
  18. $(RANLIB) $@
  19. @echo -e "\\033[32m $(LIB_A) is OK \\033[0m"
  20. decode.o: decode.c $(INC_PATH)/decode.h
  21. $(CC) $(CFLAGS) $<
  22. globle.o: globle.c $(INC_PATH)/globle.h
  23. $(CC) $(CFLAGS) $<
  24. mysql.sdk.o:mysql.sdk.c
  25. $(CC) $(CFLAGS) $<
  26. init.o:init.c
  27. $(CC) $(CFLAGS) $<
  28. clean: cleanall
  29. cleanall:
  30. ifneq (,$(wildcard *.c))
  31. @#如果存在 c 则需要清除及重新编译
  32. rm -f $(OBJS) $(LIB_A)
  33. endif
  34. @echo "clean DONE"