1AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS) 2AM_CPPFLAGS = -I$(top_srcdir)/include -I$(srcdir) -DSRCDIR=\"$(abs_srcdir)\" -DTEST_RUN 3#AM_LDFLAGS = -static 4AM_LDFLAGS = -no-install 5LDADD = ../src/libpsl.la $(LIBICU_LIBS) $(LIBIDN_LIBS) $(LIBIDN2_LIBS) 6 7if WITH_LIBICU 8 XLIBS = $(LIBICU_LIBS) 9 XTYPE = _icu 10 libpsl_icu_fuzzer_SOURCES = libpsl_fuzzer.c main.c fuzzer.h 11 libpsl_icu_load_fuzzer_SOURCES = libpsl_load_fuzzer.c main.c fuzzer.h 12 libpsl_icu_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c main.c fuzzer.h 13 PSL_TESTS = \ 14 libpsl_icu_fuzzer$(EXEEXT) \ 15 libpsl_icu_load_fuzzer$(EXEEXT) \ 16 libpsl_icu_load_dafsa_fuzzer$(EXEEXT) 17else 18if WITH_LIBIDN2 19 XLIBS = -lidn2 -lunistring 20 XTYPE = _idn2 21 libpsl_idn2_fuzzer_SOURCES = libpsl_fuzzer.c main.c fuzzer.h 22 libpsl_idn2_load_fuzzer_SOURCES = libpsl_load_fuzzer.c main.c fuzzer.h 23 libpsl_idn2_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c main.c fuzzer.h 24 PSL_TESTS = \ 25 libpsl_idn2_fuzzer$(EXEEXT) \ 26 libpsl_idn2_load_fuzzer$(EXEEXT) \ 27 libpsl_idn2_load_dafsa_fuzzer$(EXEEXT) 28else 29if WITH_LIBIDN 30 XLIBS = -lidn -lunistring 31 XTYPE = _idn 32 libpsl_idn_fuzzer_SOURCES = libpsl_fuzzer.c main.c fuzzer.h 33 libpsl_idn_load_fuzzer_SOURCES = libpsl_load_fuzzer.c main.c fuzzer.h 34 libpsl_idn_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c main.c fuzzer.h 35 PSL_TESTS = \ 36 libpsl_idn_fuzzer$(EXEEXT) \ 37 libpsl_idn_load_fuzzer$(EXEEXT) \ 38 libpsl_idn_load_dafsa_fuzzer$(EXEEXT) 39else 40 XLIBS = 41 XTYPE = 42 libpsl_fuzzer_SOURCES = libpsl_fuzzer.c main.c fuzzer.h 43 libpsl_load_fuzzer_SOURCES = libpsl_load_fuzzer.c main.c fuzzer.h 44 libpsl_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c main.c fuzzer.h 45 PSL_TESTS = \ 46 libpsl_fuzzer$(EXEEXT) \ 47 libpsl_load_fuzzer$(EXEEXT) \ 48 libpsl_load_dafsa_fuzzer$(EXEEXT) 49endif 50endif 51endif 52 53check_PROGRAMS = $(PSL_TESTS) 54 55EXTRA_DIST = meson.build 56 57dist-hook: 58 find . -name '*.options' -exec cp -v '{}' $(distdir) ';' 59 find . -name '*.dict' -exec cp -v '{}' $(distdir) ';' 60 find . -name '*.in' -exec cp -vr '{}' $(distdir) ';' 61 find . -name '*.repro' -exec cp -vr '{}' $(distdir) ';' 62 63TESTS_ENVIRONMENT = TESTS_VALGRIND="@VALGRIND_ENVIRONMENT@" 64TESTS = $(PSL_TESTS) 65 66clean-local: 67 rm -rf *.gc?? *.log lcov coverage.info *_fuzzer *.o 68 69fuzz-coverage: $(PSL_TESTS) 70 find . -name '*_fuzzer' -exec ./coverage.sh '{}' ';' 71 72CXX ?= clang-5.0 73CXXFLAGS ?= $(CFLAGS) 74 75oss-fuzz: 76 if test "$$OUT" != ""; then \ 77 for cfile in `ls *_fuzzer.c`; do \ 78 fuzzer="libpsl$(XTYPE)_"$$(basename $$cfile .c|cut -d'_' -f2-); \ 79 $$CXX $$CXXFLAGS $$CPPFLAGS -I$(top_srcdir)/include -I$(top_srcdir) \ 80 "$${cfile}" -o "$${fuzzer}" \ 81 ../src/.libs/libpsl.a $${LIB_FUZZING_ENGINE} \ 82 -Wl,-Bstatic \ 83 $(XLIBS) \ 84 -Wl,-Bdynamic; \ 85 done; \ 86 fi 87 88.PHONY: oss-fuzz 89