Makefile
146 lines
| 5.3 KiB
| text/x-makefile
|
MakefileLexer
Yuya Nishihara
|
r38232 | CC = clang | ||
CXX = clang++ | ||||
Augie Fackler
|
r38264 | all: bdiff mpatch xdiff | ||
Yuya Nishihara
|
r38233 | |||
Augie Fackler
|
r38191 | fuzzutil.o: fuzzutil.cc fuzzutil.h | ||
Augie Fackler
|
r41048 | $(CXX) $(CXXFLAGS) -g -O1 \ | ||
Augie Fackler
|
r38191 | -std=c++17 \ | ||
-I../../mercurial -c -o fuzzutil.o fuzzutil.cc | ||||
Augie Fackler
|
r38192 | fuzzutil-oss-fuzz.o: fuzzutil.cc fuzzutil.h | ||
Yuya Nishihara
|
r38232 | $(CXX) $(CXXFLAGS) -std=c++17 \ | ||
Augie Fackler
|
r38192 | -I../../mercurial -c -o fuzzutil-oss-fuzz.o fuzzutil.cc | ||
Augie Fackler
|
r41049 | pyutil.o: pyutil.cc pyutil.h | ||
$(CXX) $(CXXFLAGS) -g -O1 \ | ||||
`$$OUT/sanpy/bin/python-config --cflags` \ | ||||
-I../../mercurial -c -o pyutil.o pyutil.cc | ||||
Augie Fackler
|
r35688 | bdiff.o: ../../mercurial/bdiff.c | ||
Yuya Nishihara
|
r38232 | $(CC) $(CFLAGS) -fsanitize=fuzzer-no-link,address -c -o bdiff.o \ | ||
Augie Fackler
|
r35688 | ../../mercurial/bdiff.c | ||
Augie Fackler
|
r38191 | bdiff: bdiff.cc bdiff.o fuzzutil.o | ||
Yuya Nishihara
|
r38232 | $(CXX) $(CXXFLAGS) -DHG_FUZZER_INCLUDE_MAIN=1 -g -O1 -fsanitize=fuzzer-no-link,address \ | ||
Augie Fackler
|
r38191 | -std=c++17 \ | ||
-I../../mercurial bdiff.cc bdiff.o fuzzutil.o -o bdiff | ||||
Augie Fackler
|
r35688 | |||
bdiff-oss-fuzz.o: ../../mercurial/bdiff.c | ||||
Yuya Nishihara
|
r38232 | $(CC) $(CFLAGS) -c -o bdiff-oss-fuzz.o ../../mercurial/bdiff.c | ||
Augie Fackler
|
r35688 | |||
Augie Fackler
|
r38192 | bdiff_fuzzer: bdiff.cc bdiff-oss-fuzz.o fuzzutil-oss-fuzz.o | ||
Yuya Nishihara
|
r38232 | $(CXX) $(CXXFLAGS) -std=c++17 -I../../mercurial bdiff.cc \ | ||
Augie Fackler
|
r38192 | bdiff-oss-fuzz.o fuzzutil-oss-fuzz.o -lFuzzingEngine -o \ | ||
$$OUT/bdiff_fuzzer | ||||
Augie Fackler
|
r35688 | |||
Augie Fackler
|
r38264 | mpatch.o: ../../mercurial/mpatch.c | ||
$(CC) -g -O1 -fsanitize=fuzzer-no-link,address -c -o mpatch.o \ | ||||
../../mercurial/mpatch.c | ||||
mpatch: CXXFLAGS += -std=c++17 | ||||
mpatch: mpatch.cc mpatch.o fuzzutil.o | ||||
$(CXX) $(CXXFLAGS) -DHG_FUZZER_INCLUDE_MAIN=1 -g -O1 -fsanitize=fuzzer-no-link,address \ | ||||
-I../../mercurial mpatch.cc mpatch.o fuzzutil.o -o mpatch | ||||
mpatch-oss-fuzz.o: ../../mercurial/mpatch.c | ||||
$(CC) $(CFLAGS) -c -o mpatch-oss-fuzz.o ../../mercurial/mpatch.c | ||||
mpatch_fuzzer: mpatch.cc mpatch-oss-fuzz.o fuzzutil-oss-fuzz.o | ||||
$(CXX) $(CXXFLAGS) -std=c++17 -I../../mercurial mpatch.cc \ | ||||
mpatch-oss-fuzz.o fuzzutil-oss-fuzz.o -lFuzzingEngine -o \ | ||||
$$OUT/mpatch_fuzzer | ||||
mpatch_corpus.zip: | ||||
python mpatch_corpus.py $$OUT/mpatch_fuzzer_seed_corpus.zip | ||||
Augie Fackler
|
r36697 | x%.o: ../../mercurial/thirdparty/xdiff/x%.c ../../mercurial/thirdparty/xdiff/*.h | ||
Yuya Nishihara
|
r38232 | $(CC) -g -O1 -fsanitize=fuzzer-no-link,address -c \ | ||
Augie Fackler
|
r36697 | -o $@ \ | ||
$< | ||||
Yuya Nishihara
|
r38235 | xdiff: CXXFLAGS += -std=c++17 | ||
Augie Fackler
|
r38191 | xdiff: xdiff.cc xdiffi.o xprepare.o xutils.o fuzzutil.o | ||
Yuya Nishihara
|
r38232 | $(CXX) $(CXXFLAGS) -DHG_FUZZER_INCLUDE_MAIN=1 -g -O1 -fsanitize=fuzzer-no-link,address \ | ||
Augie Fackler
|
r36697 | -I../../mercurial xdiff.cc \ | ||
Augie Fackler
|
r38191 | xdiffi.o xprepare.o xutils.o fuzzutil.o -o xdiff | ||
Augie Fackler
|
r35688 | |||
Augie Fackler
|
r36697 | fuzz-x%.o: ../../mercurial/thirdparty/xdiff/x%.c ../../mercurial/thirdparty/xdiff/*.h | ||
Yuya Nishihara
|
r38232 | $(CC) $(CFLAGS) -c \ | ||
Augie Fackler
|
r36697 | -o $@ \ | ||
$< | ||||
Augie Fackler
|
r38192 | xdiff_fuzzer: xdiff.cc fuzz-xdiffi.o fuzz-xprepare.o fuzz-xutils.o fuzzutil-oss-fuzz.o | ||
Yuya Nishihara
|
r38232 | $(CXX) $(CXXFLAGS) -std=c++17 -I../../mercurial xdiff.cc \ | ||
Augie Fackler
|
r38192 | fuzz-xdiffi.o fuzz-xprepare.o fuzz-xutils.o fuzzutil-oss-fuzz.o \ | ||
Augie Fackler
|
r36697 | -lFuzzingEngine -o $$OUT/xdiff_fuzzer | ||
Augie Fackler
|
r40089 | # TODO use the $OUT env var instead of hardcoding /out | ||
/out/sanpy/bin/python: | ||||
Augie Fackler
|
r41037 | cd /Python-2.7.15/ ; ASAN_OPTIONS=detect_leaks=0 ./configure --without-pymalloc --prefix=$$OUT/sanpy CFLAGS="$(CFLAGS)" LINKCC="$($CXX)" LDFLAGS="$(CXXFLAGS)" | ||
Augie Fackler
|
r40846 | cd /Python-2.7.15/ ; grep -v HAVE_GETC_UNLOCKED < pyconfig.h > tmp && mv tmp pyconfig.h | ||
cd /Python-2.7.15/ ; ASAN_OPTIONS=detect_leaks=0 make && make install | ||||
Augie Fackler
|
r40089 | |||
sanpy: /out/sanpy/bin/python | ||||
manifest.o: sanpy ../../mercurial/cext/manifest.c | ||||
$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \ | ||||
-I../../mercurial \ | ||||
-c -o manifest.o ../../mercurial/cext/manifest.c | ||||
charencode.o: sanpy ../../mercurial/cext/charencode.c | ||||
$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \ | ||||
-I../../mercurial \ | ||||
-c -o charencode.o ../../mercurial/cext/charencode.c | ||||
parsers.o: sanpy ../../mercurial/cext/parsers.c | ||||
$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \ | ||||
-I../../mercurial \ | ||||
-c -o parsers.o ../../mercurial/cext/parsers.c | ||||
dirs.o: sanpy ../../mercurial/cext/dirs.c | ||||
$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \ | ||||
-I../../mercurial \ | ||||
-c -o dirs.o ../../mercurial/cext/dirs.c | ||||
pathencode.o: sanpy ../../mercurial/cext/pathencode.c | ||||
$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \ | ||||
-I../../mercurial \ | ||||
-c -o pathencode.o ../../mercurial/cext/pathencode.c | ||||
revlog.o: sanpy ../../mercurial/cext/revlog.c | ||||
$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \ | ||||
-I../../mercurial \ | ||||
-c -o revlog.o ../../mercurial/cext/revlog.c | ||||
Augie Fackler
|
r41049 | manifest_fuzzer: sanpy manifest.cc manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o | ||
Augie Fackler
|
r40089 | $(CXX) $(CXXFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \ | ||
-Wno-register -Wno-macro-redefined \ | ||||
-I../../mercurial manifest.cc \ | ||||
Augie Fackler
|
r41049 | manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o \ | ||
Augie Fackler
|
r40089 | -lFuzzingEngine `$$OUT/sanpy/bin/python-config --ldflags` \ | ||
-o $$OUT/manifest_fuzzer | ||||
manifest_corpus.zip: | ||||
python manifest_corpus.py $$OUT/manifest_fuzzer_seed_corpus.zip | ||||
Augie Fackler
|
r41050 | revlog_fuzzer: sanpy revlog.cc manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o | ||
$(CXX) $(CXXFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \ | ||||
-Wno-register -Wno-macro-redefined \ | ||||
-I../../mercurial revlog.cc \ | ||||
manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o \ | ||||
-lFuzzingEngine `$$OUT/sanpy/bin/python-config --ldflags` \ | ||||
-o $$OUT/revlog_fuzzer | ||||
revlog_corpus.zip: | ||||
python revlog_corpus.py $$OUT/revlog_fuzzer_seed_corpus.zip | ||||
Augie Fackler
|
r38193 | clean: | ||
Yuya Nishihara
|
r38236 | $(RM) *.o *_fuzzer \ | ||
Augie Fackler
|
r38193 | bdiff \ | ||
Augie Fackler
|
r38264 | mpatch \ | ||
Augie Fackler
|
r38193 | xdiff | ||
Augie Fackler
|
r41050 | oss-fuzz: bdiff_fuzzer mpatch_fuzzer mpatch_corpus.zip xdiff_fuzzer manifest_fuzzer manifest_corpus.zip revlog_fuzzer revlog_corpus.zip | ||
Augie Fackler
|
r35688 | |||
Augie Fackler
|
r40126 | .PHONY: all clean oss-fuzz sanpy | ||