include.am 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. FUZZING_CPPFLAGS = \
  2. $(src_test_AM_CPPFLAGS) $(TEST_CPPFLAGS)
  3. FUZZING_CFLAGS = \
  4. $(AM_CFLAGS) $(TEST_CFLAGS)
  5. FUZZING_LDFLAG = \
  6. @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ @TOR_LDFLAGS_libevent@
  7. FUZZING_LIBS = \
  8. src/or/libtor-testing.a \
  9. src/common/libor-crypto-testing.a \
  10. $(LIBKECCAK_TINY) \
  11. $(LIBDONNA) \
  12. src/common/libor-testing.a \
  13. src/common/libor-ctime-testing.a \
  14. src/common/libor-event-testing.a \
  15. src/trunnel/libor-trunnel-testing.a \
  16. @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ \
  17. @TOR_LIBEVENT_LIBS@ \
  18. @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@ \
  19. @TOR_SYSTEMD_LIBS@
  20. noinst_HEADERS += \
  21. src/test/fuzz/fuzzing.h
  22. src_test_fuzz_fuzz_consensus_SOURCES = \
  23. src/test/fuzz/fuzzing_common.c \
  24. src/test/fuzz/fuzz_consensus.c
  25. src_test_fuzz_fuzz_consensus_CPPFLAGS = $(FUZZING_CPPFLAGS)
  26. src_test_fuzz_fuzz_consensus_CFLAGS = $(FUZZING_CFLAGS)
  27. src_test_fuzz_fuzz_consensus_LDFLAGS = $(FUZZING_LDFLAG)
  28. src_test_fuzz_fuzz_consensus_LDADD = $(FUZZING_LIBS)
  29. src_test_fuzz_fuzz_descriptor_SOURCES = \
  30. src/test/fuzz/fuzzing_common.c \
  31. src/test/fuzz/fuzz_descriptor.c
  32. src_test_fuzz_fuzz_descriptor_CPPFLAGS = $(FUZZING_CPPFLAGS)
  33. src_test_fuzz_fuzz_descriptor_CFLAGS = $(FUZZING_CFLAGS)
  34. src_test_fuzz_fuzz_descriptor_LDFLAGS = $(FUZZING_LDFLAG)
  35. src_test_fuzz_fuzz_descriptor_LDADD = $(FUZZING_LIBS)
  36. src_test_fuzz_fuzz_http_SOURCES = \
  37. src/test/fuzz/fuzzing_common.c \
  38. src/test/fuzz/fuzz_http.c
  39. src_test_fuzz_fuzz_http_CPPFLAGS = $(FUZZING_CPPFLAGS)
  40. src_test_fuzz_fuzz_http_CFLAGS = $(FUZZING_CFLAGS)
  41. src_test_fuzz_fuzz_http_LDFLAGS = $(FUZZING_LDFLAG)
  42. src_test_fuzz_fuzz_http_LDADD = $(FUZZING_LIBS)
  43. src_test_fuzz_fuzz_hsdescv2_SOURCES = \
  44. src/test/fuzz/fuzzing_common.c \
  45. src/test/fuzz/fuzz_hsdescv2.c
  46. src_test_fuzz_fuzz_hsdescv2_CPPFLAGS = $(FUZZING_CPPFLAGS)
  47. src_test_fuzz_fuzz_hsdescv2_CFLAGS = $(FUZZING_CFLAGS)
  48. src_test_fuzz_fuzz_hsdescv2_LDFLAGS = $(FUZZING_LDFLAG)
  49. src_test_fuzz_fuzz_hsdescv2_LDADD = $(FUZZING_LIBS)
  50. src_test_fuzz_fuzz_iptsv2_SOURCES = \
  51. src/test/fuzz/fuzzing_common.c \
  52. src/test/fuzz/fuzz_iptsv2.c
  53. src_test_fuzz_fuzz_iptsv2_CPPFLAGS = $(FUZZING_CPPFLAGS)
  54. src_test_fuzz_fuzz_iptsv2_CFLAGS = $(FUZZING_CFLAGS)
  55. src_test_fuzz_fuzz_iptsv2_LDFLAGS = $(FUZZING_LDFLAG)
  56. src_test_fuzz_fuzz_iptsv2_LDADD = $(FUZZING_LIBS)
  57. src_test_fuzz_fuzz_extrainfo_SOURCES = \
  58. src/test/fuzz/fuzzing_common.c \
  59. src/test/fuzz/fuzz_extrainfo.c
  60. src_test_fuzz_fuzz_extrainfo_CPPFLAGS = $(FUZZING_CPPFLAGS)
  61. src_test_fuzz_fuzz_extrainfo_CFLAGS = $(FUZZING_CFLAGS)
  62. src_test_fuzz_fuzz_extrainfo_LDFLAGS = $(FUZZING_LDFLAG)
  63. src_test_fuzz_fuzz_extrainfo_LDADD = $(FUZZING_LIBS)
  64. src_test_fuzz_fuzz_microdesc_SOURCES = \
  65. src/test/fuzz/fuzzing_common.c \
  66. src/test/fuzz/fuzz_microdesc.c
  67. src_test_fuzz_fuzz_microdesc_CPPFLAGS = $(FUZZING_CPPFLAGS)
  68. src_test_fuzz_fuzz_microdesc_CFLAGS = $(FUZZING_CFLAGS)
  69. src_test_fuzz_fuzz_microdesc_LDFLAGS = $(FUZZING_LDFLAG)
  70. src_test_fuzz_fuzz_microdesc_LDADD = $(FUZZING_LIBS)
  71. FUZZERS = \
  72. src/test/fuzz/fuzz-consensus \
  73. src/test/fuzz/fuzz-descriptor \
  74. src/test/fuzz/fuzz-extrainfo \
  75. src/test/fuzz/fuzz-http \
  76. src/test/fuzz/fuzz-hsdescv2 \
  77. src/test/fuzz/fuzz-iptsv2 \
  78. src/test/fuzz/fuzz-microdesc
  79. LIBFUZZER = /home/nickm/build/libfuzz/libFuzzer.a
  80. LIBFUZZER_CPPFLAGS = $(FUZZING_CPPFLAGS) -DLLVM_FUZZ
  81. LIBFUZZER_CFLAGS = $(FUZZING_CFLAGS)
  82. LIBFUZZER_LDFLAG = $(FUZZING_LDFLAG)
  83. LIBFUZZER_LIBS = $(FUZZING_LIBS) $(LIBFUZZER) -lstdc++
  84. if LIBFUZZER_ENABLED
  85. src_test_fuzz_lf_fuzz_consensus_SOURCES = \
  86. $(src_test_fuzz_fuzz_consensus_SOURCES)
  87. src_test_fuzz_lf_fuzz_consensus_CPPFLAGS = $(LIBFUZZER_CPPFLAGS)
  88. src_test_fuzz_lf_fuzz_consensus_CFLAGS = $(LIBFUZZER_CFLAGS)
  89. src_test_fuzz_lf_fuzz_consensus_LDFLAGS = $(LIBFUZZER_LDFLAG)
  90. src_test_fuzz_lf_fuzz_consensus_LDADD = $(LIBFUZZER_LIBS)
  91. src_test_fuzz_lf_fuzz_descriptor_SOURCES = \
  92. $(src_test_fuzz_fuzz_descriptor_SOURCES)
  93. src_test_fuzz_lf_fuzz_descriptor_CPPFLAGS = $(LIBFUZZER_CPPFLAGS)
  94. src_test_fuzz_lf_fuzz_descriptor_CFLAGS = $(LIBFUZZER_CFLAGS)
  95. src_test_fuzz_lf_fuzz_descriptor_LDFLAGS = $(LIBFUZZER_LDFLAG)
  96. src_test_fuzz_lf_fuzz_descriptor_LDADD = $(LIBFUZZER_LIBS)
  97. src_test_fuzz_lf_fuzz_extrainfo_SOURCES = \
  98. $(src_test_fuzz_fuzz_extrainfo_SOURCES)
  99. src_test_fuzz_lf_fuzz_extrainfo_CPPFLAGS = $(LIBFUZZER_CPPFLAGS)
  100. src_test_fuzz_lf_fuzz_extrainfo_CFLAGS = $(LIBFUZZER_CFLAGS)
  101. src_test_fuzz_lf_fuzz_extrainfo_LDFLAGS = $(LIBFUZZER_LDFLAG)
  102. src_test_fuzz_lf_fuzz_extrainfo_LDADD = $(LIBFUZZER_LIBS)
  103. src_test_fuzz_lf_fuzz_http_SOURCES = \
  104. $(src_test_fuzz_fuzz_http_SOURCES)
  105. src_test_fuzz_lf_fuzz_http_CPPFLAGS = $(LIBFUZZER_CPPFLAGS)
  106. src_test_fuzz_lf_fuzz_http_CFLAGS = $(LIBFUZZER_CFLAGS)
  107. src_test_fuzz_lf_fuzz_http_LDFLAGS = $(LIBFUZZER_LDFLAG)
  108. src_test_fuzz_lf_fuzz_http_LDADD = $(LIBFUZZER_LIBS)
  109. src_test_fuzz_lf_fuzz_hsdescv2_SOURCES = \
  110. $(src_test_fuzz_fuzz_hsdescv2_SOURCES)
  111. src_test_fuzz_lf_fuzz_hsdescv2_CPPFLAGS = $(LIBFUZZER_CPPFLAGS)
  112. src_test_fuzz_lf_fuzz_hsdescv2_CFLAGS = $(LIBFUZZER_CFLAGS)
  113. src_test_fuzz_lf_fuzz_hsdescv2_LDFLAGS = $(LIBFUZZER_LDFLAG)
  114. src_test_fuzz_lf_fuzz_hsdescv2_LDADD = $(LIBFUZZER_LIBS)
  115. src_test_fuzz_lf_fuzz_iptsv2_SOURCES = \
  116. $(src_test_fuzz_fuzz_iptsv2_SOURCES)
  117. src_test_fuzz_lf_fuzz_iptsv2_CPPFLAGS = $(LIBFUZZER_CPPFLAGS)
  118. src_test_fuzz_lf_fuzz_iptsv2_CFLAGS = $(LIBFUZZER_CFLAGS)
  119. src_test_fuzz_lf_fuzz_iptsv2_LDFLAGS = $(LIBFUZZER_LDFLAG)
  120. src_test_fuzz_lf_fuzz_iptsv2_LDADD = $(LIBFUZZER_LIBS)
  121. src_test_fuzz_lf_fuzz_microdesc_SOURCES = \
  122. $(src_test_fuzz_fuzz_microdesc_SOURCES)
  123. src_test_fuzz_lf_fuzz_microdesc_CPPFLAGS = $(LIBFUZZER_CPPFLAGS)
  124. src_test_fuzz_lf_fuzz_microdesc_CFLAGS = $(LIBFUZZER_CFLAGS)
  125. src_test_fuzz_lf_fuzz_microdesc_LDFLAGS = $(LIBFUZZER_LDFLAG)
  126. src_test_fuzz_lf_fuzz_microdesc_LDADD = $(LIBFUZZER_LIBS)
  127. LIBFUZZER_FUZZERS = \
  128. src/test/fuzz/lf-fuzz-consensus \
  129. src/test/fuzz/lf-fuzz-descriptor \
  130. src/test/fuzz/lf-fuzz-extrainfo \
  131. src/test/fuzz/lf-fuzz-http \
  132. src/test/fuzz/lf-fuzz-hsdescv2 \
  133. src/test/fuzz/lf-fuzz-iptsv2 \
  134. src/test/fuzz/lf-fuzz-microdesc
  135. else
  136. LIBFUZZER_FUZZERS =
  137. endif
  138. noinst_PROGRAMS += $(FUZZERS) $(LIBFUZZER_FUZZERS)
  139. fuzzers: $(FUZZERS) $(LIBFUZZER_FUZZERS)