summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorArseny Kapoulkine <arseny.kapoulkine@gmail.com>2017-04-03 21:09:37 -0700
committerArseny Kapoulkine <arseny.kapoulkine@gmail.com>2017-04-03 21:09:37 -0700
commit24d1a4562b36ecfcd7a6b3b843921d553332a0f0 (patch)
tree3ce4dbf4c2da158c5232a3306ab09187d90fca26 /Makefile
parent0eb1ddb975e867079e87e2345e59a520890b275a (diff)
Move libFuzzer build to Makefile
Now the only thing fuzz_setup.sh does is installing new clang; if system clang supports -fsanitize-coverage then fuzz_setup.sh is not required.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile9
1 files changed, 7 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 75528fe..edc3c42 100644
--- a/Makefile
+++ b/Makefile
@@ -86,9 +86,14 @@ build/pugixml-%: .FORCE | $(RELEASE)
$(EXECUTABLE): $(OBJECTS)
$(CXX) $(OBJECTS) $(LDFLAGS) -o $@
-$(BUILD)/fuzz_%: tests/fuzz_%.cpp src/pugixml.cpp
+build/libFuzzer.o:
+ svn co http://llvm.org/svn/llvm-project/llvm/trunk/lib/Fuzzer build/Fuzzer
+ ls build/Fuzzer/*.cpp | xargs printf '#include "%s"\n' >build/libFuzzer.cpp
+ clang++ build/libFuzzer.cpp -c -g -O2 -fno-omit-frame-pointer -std=c++11 -I . -o build/libFuzzer.o
+
+$(BUILD)/fuzz_%: tests/fuzz_%.cpp src/pugixml.cpp build/libFuzzer.o
@mkdir -p $(BUILD)
- clang++ $(CXXFLAGS) -fsanitize=address -fsanitize-coverage=trace-pc-guard $^ libFuzzer.a -o $@
+ clang++ $(CXXFLAGS) -fsanitize=address -fsanitize-coverage=trace-pc-guard $^ -o $@
$(BUILD)/%.o: %
@mkdir -p $(dir $@)