Makefile 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # 编译器设置
  2. CC = gcc
  3. C_FLAGS = -std=gnu99 -O2 -Wall -Wextra -Wno-unused-parameter
  4. # 头文件包含目录
  5. CFLAGS_INC = -I ./RyanJson
  6. CFLAGS_INC += -I ./example
  7. CFLAGS_INC += -I ./test
  8. CFLAGS_INC += -I ./test/baseTest
  9. CFLAGS_INC += -I ./test/externalModule/valloc
  10. CFLAGS_INC += -I ./test/externalModule/tlsf
  11. CFLAGS_INC += -I ./test/externalModule/cJSON
  12. CFLAGS_INC += -I ./test/externalModule/yyjson
  13. # 源文件扫描 (排除 fuzzer)
  14. src = $(wildcard ./RyanJson/*.c)
  15. src += $(wildcard ./example/*.c)
  16. src += $(wildcard ./test/*.c)
  17. src += $(wildcard ./test/baseTest/*.c)
  18. src += $(wildcard ./test/externalModule/valloc/*.c)
  19. src += $(wildcard ./test/externalModule/tlsf/*.c)
  20. src += $(wildcard ./test/externalModule/cJSON/*.c)
  21. src += $(wildcard ./test/externalModule/yyjson/*.c)
  22. # 中间对象
  23. obj = $(src:.c=.o)
  24. # 目标程序 - 修改名字避免与源码文件夹 RyanJson 重名
  25. target = app
  26. # 默认规则
  27. all: $(target)
  28. $(target): $(obj)
  29. $(CC) $(obj) $(C_FLAGS) -o $(target) -lm
  30. # 编译模式规则
  31. %.o: %.c
  32. $(CC) $(CFLAGS_INC) $(C_FLAGS) -c $< -o $@
  33. # 清理规则
  34. .PHONY: clean
  35. clean:
  36. rm -f $(obj) $(target)