contrib/fuzz/Makefile
changeset 36679 624cbd1477a6
parent 35670 2b9e2415f5b5
child 36765 04d64163039a
--- a/contrib/fuzz/Makefile	Sat Mar 03 12:39:15 2018 -0800
+++ b/contrib/fuzz/Makefile	Sat Mar 03 18:58:13 2018 -0500
@@ -13,8 +13,28 @@
 	$$CXX $$CXXFLAGS -std=c++11 -I../../mercurial bdiff.cc \
 	  bdiff-oss-fuzz.o -lFuzzingEngine -o $$OUT/bdiff_fuzzer
 
-all: bdiff
+x%.o: ../../mercurial/thirdparty/xdiff/x%.c ../../mercurial/thirdparty/xdiff/*.h
+	clang -g -O1 -fsanitize=fuzzer-no-link,address -c \
+	  -o $@ \
+	  $<
+
+xdiff: xdiff.cc xdiffi.o  xemit.o  xmerge.o  xprepare.o  xutils.o
+	clang -DHG_FUZZER_INCLUDE_MAIN=1 -g -O1 -fsanitize=fuzzer-no-link,address \
+	  -I../../mercurial xdiff.cc \
+	  xdiffi.o xemit.o xmerge.o xprepare.o xutils.o -o xdiff
 
-oss-fuzz: bdiff_fuzzer
+fuzz-x%.o: ../../mercurial/thirdparty/xdiff/x%.c ../../mercurial/thirdparty/xdiff/*.h
+	$$CC $$CFLAGS -c \
+	  -o $@ \
+	  $<
+
+xdiff_fuzzer: xdiff.cc fuzz-xdiffi.o  fuzz-xemit.o  fuzz-xmerge.o  fuzz-xprepare.o  fuzz-xutils.o
+	$$CXX $$CXXFLAGS -std=c++11 -I../../mercurial xdiff.cc \
+	  fuzz-xdiffi.o fuzz-xemit.o fuzz-xmerge.o fuzz-xprepare.o fuzz-xutils.o \
+	  -lFuzzingEngine -o $$OUT/xdiff_fuzzer
+
+all: bdiff xdiff
+
+oss-fuzz: bdiff_fuzzer xdiff_fuzzer
 
 .PHONY: all oss-fuzz