Makefile 1.2 KB

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