| @@ -15,16 +15,38 @@ | |||||
| # | # | ||||
| ################################################################################ | ################################################################################ | ||||
| ./autogen.sh | |||||
| ./configure --enable-static --disable-shared | |||||
| make -j$(nproc) all | |||||
| ar rc json_c.a *.o | |||||
| # This should be run from the top of the json-c source tree. | |||||
| cp $SRC/*.dict $OUT/ | |||||
| mkdir build | |||||
| cd build | |||||
| cmake -DBUILD_SHARED_LIBS=OFF .. | |||||
| make -j$(nproc) | |||||
| LIB=$(pwd)/libjson-c.a | |||||
| cd .. | |||||
| # These seem to be set externally, but let's assign defaults to | |||||
| # make it possible to at least partially test this standalone. | |||||
| : ${SRC:=$(dirname "$0")} | |||||
| : ${OUT:=$SRC/out} | |||||
| : ${CXX:=gcc} | |||||
| : ${CXXFLAGS:=} | |||||
| [ -d "$OUT" ] || mkdir "$OUT" | |||||
| cp $SRC/*.dict $OUT/. | |||||
| # XXX this doesn't seem to make much sense, since $SRC is presumably | |||||
| # the "fuzz" directory, which is _inside_ the json-c repo, rather than | |||||
| # the other way around, but I'm just preserving existing behavior. -erh | |||||
| INCS=$SRC/json-c | |||||
| # Compat when testing standalone | |||||
| [ -e "${INCS}" ] || ln -s .. "${INCS}" | |||||
| set -x | |||||
| set -v | |||||
| for f in $SRC/*_fuzzer.cc; do | for f in $SRC/*_fuzzer.cc; do | ||||
| fuzzer=$(basename "$f" _fuzzer.cc) | fuzzer=$(basename "$f" _fuzzer.cc) | ||||
| $CXX $CXXFLAGS -std=c++11 -I$SRC/json-c \ | |||||
| $CXX $CXXFLAGS -std=c++11 -I$INCS \ | |||||
| $SRC/${fuzzer}_fuzzer.cc -o $OUT/${fuzzer}_fuzzer \ | $SRC/${fuzzer}_fuzzer.cc -o $OUT/${fuzzer}_fuzzer \ | ||||
| -lFuzzingEngine $SRC/json-c/json_c.a | |||||
| -lFuzzingEngine $LIB | |||||
| done | done | ||||