• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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