summaryrefslogtreecommitdiffstats
path: root/fuzz/Makefile.am
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2017-05-29 04:08:29 +0200
committerGravatar Nikias Bassen2017-05-29 04:08:29 +0200
commit99f3ab144dcaa97a2be37e562740dbff2de350c6 (patch)
treeb6540c04944d1e493e95693c70b2d39e8b01302b /fuzz/Makefile.am
parent1e89644636438269bcedb50f3eabf0780d0074ac (diff)
downloadlibplist-99f3ab144dcaa97a2be37e562740dbff2de350c6.tar.gz
libplist-99f3ab144dcaa97a2be37e562740dbff2de350c6.tar.bz2
Integrate fuzzers into build system
Diffstat (limited to 'fuzz/Makefile.am')
-rw-r--r--fuzz/Makefile.am36
1 files changed, 36 insertions, 0 deletions
diff --git a/fuzz/Makefile.am b/fuzz/Makefile.am
new file mode 100644
index 0000000..b9798f9
--- /dev/null
+++ b/fuzz/Makefile.am
@@ -0,0 +1,36 @@
+if BUILD_FUZZERS
+
+libFuzzer.a: Fuzzer/build.sh
+ @echo "Building $@"
+ @./Fuzzer/build.sh
+
+Fuzzer/build.sh: LIBFUZZER_SRC
+
+LIBFUZZER_SRC:
+ @if test -d Fuzzer ; then \
+ if test -d Fuzzer/.git ; then \
+ echo Making sure libFuzzer source tree is up-to-date... ; \
+ cd Fuzzer && git checkout . && git pull && cd .. ; \
+ fi \
+ else \
+ echo Checking out libFuzzer source code... ; \
+ git clone https://chromium.googlesource.com/chromium/llvm-project/llvm/lib/Fuzzer ; \
+ fi
+
+CLEANFILES = libFuzzer.a
+
+noinst_PROGRAMS = xplist_fuzzer bplist_fuzzer
+
+xplist_fuzzer_SOURCES = xplist_fuzzer.cc
+xplist_fuzzer_LDFLAGS = -static
+xplist_fuzzer_LDADD = $(top_builddir)/src/libplist.la libFuzzer.a
+
+bplist_fuzzer_SOURCES = bplist_fuzzer.cc
+bplist_fuzzer_LDFLAGS = -static
+bplist_fuzzer_LDADD = $(top_builddir)/src/libplist.la libFuzzer.a
+
+TESTS = fuzzers.test
+
+EXTRA_DIST = bplist.dict xplist.dict init-fuzzers.sh test-fuzzers.sh fuzzers.test
+
+endif