Makefile 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. TEST_NAME=test
  2. FUZZ=afl-fuzz
  3. COMPONENTS_DIR=../..
  4. COMPILER_ICLUDE_DIR=$(shell echo `which xtensa-esp32-elf-gcc | xargs dirname | xargs dirname`/xtensa-esp32-elf)
  5. CFLAGS=-g -Wno-unused-value -Wno-missing-declarations -Wno-pointer-bool-conversion -Wno-macro-redefined -Wno-int-to-void-pointer-cast -DHOOK_MALLOC_FAILED -DESP_EVENT_H_ -D__ESP_LOG_H__ -DMDNS_TEST_MODE \
  6. -I. -I.. -I../include -I../private_include -I ./build/config -include esp32_compat.h \
  7. -I$(COMPONENTS_DIR) \
  8. -I$(COMPONENTS_DIR)/driver/include \
  9. -I$(COMPONENTS_DIR)/esp_common/include \
  10. -I$(COMPONENTS_DIR)/esp_event/include \
  11. -I$(COMPONENTS_DIR)/esp_eth/include \
  12. -I$(COMPONENTS_DIR)/esp_hw_support/include \
  13. -I$(COMPONENTS_DIR)/esp_netif/include \
  14. -I$(COMPONENTS_DIR)/esp_netif/private_include \
  15. -I$(COMPONENTS_DIR)/esp_netif/lwip \
  16. -I$(COMPONENTS_DIR)/esp_rom/include \
  17. -I$(COMPONENTS_DIR)/esp_system/include \
  18. -I$(COMPONENTS_DIR)/esp_timer/include \
  19. -I$(COMPONENTS_DIR)/esp_wifi/include \
  20. -I$(COMPONENTS_DIR)/freertos/port/xtensa/include \
  21. -I$(COMPONENTS_DIR)/freertos \
  22. -I$(COMPONENTS_DIR)/freertos/include \
  23. -I$(COMPONENTS_DIR)/hal/include \
  24. -I$(COMPONENTS_DIR)/hal/esp32/include \
  25. -I$(COMPONENTS_DIR)/heap/include \
  26. -I$(COMPONENTS_DIR)/log/include \
  27. -I$(COMPONENTS_DIR)/lwip/lwip/src/include \
  28. -I$(COMPONENTS_DIR)/lwip/port/esp32/include \
  29. -I$(COMPONENTS_DIR)/lwip/lwip/src/include/lwip/apps \
  30. -I$(COMPONENTS_DIR)/newlib/platform_include \
  31. -I$(COMPONENTS_DIR)/soc/include \
  32. -I$(COMPONENTS_DIR)/soc/include \
  33. -I$(COMPONENTS_DIR)/soc/esp32/include \
  34. -I$(COMPONENTS_DIR)/soc/src/esp32/include \
  35. -I$(COMPONENTS_DIR)/tcpip_adapter/include \
  36. -I$(COMPONENTS_DIR)/xtensa/include \
  37. -I$(COMPONENTS_DIR)/xtensa/esp32/include \
  38. -I$(COMPILER_ICLUDE_DIR)/include
  39. MDNS_C_DEPENDENCY_INJECTION=-include mdns_di.h
  40. ifeq ($(INSTR),off)
  41. CC=gcc
  42. CFLAGS+=-DINSTR_IS_OFF
  43. TEST_NAME=test_sim
  44. else
  45. CC=afl-clang-fast
  46. endif
  47. CPP=$(CC)
  48. LD=$(CC)
  49. OBJECTS=esp32_mock.o esp_netif_loopback_mock.o mdns.o test.o esp_netif_objects_mock.o
  50. OS := $(shell uname)
  51. ifeq ($(OS),Darwin)
  52. LDLIBS=
  53. else
  54. LDLIBS=-lbsd
  55. CFLAGS+=-DUSE_BSD_STRING
  56. endif
  57. all: $(TEST_NAME)
  58. %.o: %.c
  59. @echo "[CC] $<"
  60. @$(CC) $(CFLAGS) -c $< -o $@
  61. mdns.o: ../mdns.c
  62. @echo "[CC] $<"
  63. @$(CC) $(CFLAGS) -include mdns_mock.h $(MDNS_C_DEPENDENCY_INJECTION) -c $< -o $@
  64. $(TEST_NAME): $(OBJECTS)
  65. @echo "[LD] $@"
  66. @$(LD) $(OBJECTS) -o $@ $(LDLIBS)
  67. fuzz: $(TEST_NAME)
  68. @$(FUZZ) -i "in" -o "out" -- ./$(TEST_NAME)
  69. clean:
  70. @rm -rf *.o *.SYM $(TEST_NAME) out