1AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS) $(CODE_COVERAGE_CFLAGS)
2AM_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir) -I$(top_builddir)/lib -I$(top_srcdir)/lib \
3 $(CODE_COVERAGE_CPPFLAGS) \
4 -DSRCDIR=\"$(abs_srcdir)\"
5LDADD = ../lib/libgnu.a \
6 $(GETADDRINFO_LIB) $(HOSTENT_LIB) $(INET_NTOP_LIB) $(INET_PTON_LIB) \
7 $(LIBSOCKET) $(LIB_CLOCK_GETTIME) $(LIB_CRYPTO) $(LIB_GETLOGIN) $(LIB_NANOSLEEP) $(LIB_POLL) \
8 $(LIB_POSIX_SPAWN) $(LIB_PTHREAD_SIGMASK) $(LIB_SELECT) $(LIBICONV) $(LIBINTL) \
9 $(LIBMULTITHREAD) $(LIBTHREAD) $(SERVENT_LIB) @INTL_MACOSX_LIBS@ \
10 $(FUZZ_LIBS) $(CODE_COVERAGE_LIBS)
11
12WGET_TESTS = \
13 wget_cookie_fuzzer$(EXEEXT) \
14 wget_css_fuzzer$(EXEEXT) \
15 wget_ftpls_fuzzer$(EXEEXT) \
16 wget_html_fuzzer$(EXEEXT) \
17 wget_netrc_fuzzer$(EXEEXT) \
18 wget_options_fuzzer$(EXEEXT) \
19 wget_progress_fuzzer$(EXEEXT) \
20 wget_read_hunk_fuzzer$(EXEEXT) \
21 wget_robots_fuzzer$(EXEEXT) \
22 wget_url_fuzzer$(EXEEXT)
23
24EXTRA_DIST = test-runner.sh
25
26if WITH_NTLM
27  WGET_TESTS += wget_ntlm_fuzzer$(EXEEXT)
28endif
29
30if FUZZING
31  bin_PROGRAMS = $(WGET_TESTS)
32  LDADD += $(LIB_FUZZING_ENGINE)
33  MAIN = fuzzer.h
34#  AM_LDFLAGS = -no-install -all-static
35else
36  AM_CPPFLAGS += -DTEST_RUN
37  AM_TESTS_ENVIRONMENT = export VALGRIND_TESTS"=@VALGRIND_TESTS@";
38  LOG_COMPILER = $(top_srcdir)/fuzz/test-runner.sh
39  TESTS = $(WGET_TESTS)
40  check_PROGRAMS = $(WGET_TESTS)
41  MAIN = main.c fuzzer.h
42endif
43
44# Make libunittest "PHONY" so we're always sure we're up-to-date.
45.PHONY: ../src/libunittest.a
46../src/libunittest.a:
47	$(MAKE) $(AM_MAKEFLAGS) -C ../src libunittest.a
48
49wget_cookie_fuzzer_SOURCES = wget_cookie_fuzzer.c $(MAIN)
50wget_cookie_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
51
52wget_css_fuzzer_SOURCES = wget_css_fuzzer.c $(MAIN)
53wget_css_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
54
55wget_ftpls_fuzzer_SOURCES = wget_ftpls_fuzzer.c $(MAIN)
56wget_ftpls_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
57
58wget_html_fuzzer_SOURCES = wget_html_fuzzer.c $(MAIN)
59wget_html_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
60
61wget_netrc_fuzzer_SOURCES = wget_netrc_fuzzer.c $(MAIN)
62wget_netrc_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
63
64wget_ntlm_fuzzer_SOURCES = wget_ntlm_fuzzer.c $(MAIN)
65wget_ntlm_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
66
67wget_options_fuzzer_SOURCES = wget_options_fuzzer.c $(MAIN)
68wget_options_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
69
70wget_progress_fuzzer_SOURCES = wget_progress_fuzzer.c $(MAIN)
71wget_progress_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
72
73wget_read_hunk_fuzzer_SOURCES = wget_read_hunk_fuzzer.c $(MAIN)
74wget_read_hunk_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
75
76wget_robots_fuzzer_SOURCES = wget_robots_fuzzer.c $(MAIN)
77wget_robots_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
78
79wget_url_fuzzer_SOURCES = wget_url_fuzzer.c $(MAIN)
80wget_url_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
81
82#EXTRA_DIST = $(wildcard *.options) $(wildcard *.dict) \
83# $(wildcard *.in) $(wildcard *.repro)
84
85dist-hook:
86	find $(srcdir) -name '*.options' -exec cp -v '{}' $(distdir) ';'
87	find $(srcdir) -name '*.dict' -exec cp -v '{}' $(distdir) ';'
88#	find $(srcdir) -name '*.in' -exec cp -vr '{}' $(distdir) ';'
89	find $(srcdir) -name '*.repro' -exec cp -vr '{}' $(distdir) ';'
90
91clean-local:
92	rm -rf *.gc?? *.log lcov
93
94oss-fuzz:
95	if test "$$OUT" != ""; then \
96	XLIBS="-lpsl -lgnutls -lhogweed -lnettle -lidn2 -lunistring"; \
97	for ccfile in wget*_fuzzer.c; do \
98	fuzzer=$$(basename $$ccfile .c); \
99	$$CXX $$CXXFLAGS -I$(top_srcdir)/src -I$(top_srcdir) -I$(top_srcdir)/lib \
100	"$${fuzzer}.c" -o "$${fuzzer}" \
101	../src/libunittest.a ../lib/libgnu.a $${LIB_FUZZING_ENGINE} \
102	-Wl,-Bstatic $${XLIBS} -Wl,-Bdynamic; \
103	done; \
104	fi
105
106.PHONY: oss-fuzz
107