|
|
@@ -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 |
|
|
|
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 \ |
|
|
|
-lFuzzingEngine $SRC/json-c/json_c.a |
|
|
|
-lFuzzingEngine $LIB |
|
|
|
done |