#!/bin/bash -eu

# This script is called by the oss-fuzz main project when compiling the fuzz
# targets. This script is regression tested by travisoss.sh.

# Save off the current folder as the build root.
export BUILD_ROOT=$PWD

echo "CC: $CC"
echo "CXX: $CXX"
echo "LIB_FUZZING_ENGINE: $LIB_FUZZING_ENGINE"
echo "CFLAGS: $CFLAGS"
echo "CXXFLAGS: $CXXFLAGS"
echo "OUT: $OUT"

export MAKEFLAGS+="-j$(nproc)"

# Install dependencies
apt-get -y install automake libtool

# Compile the fuzzers.
autoreconf -i
./configure --enable-ossfuzzers
make

# Copy the fuzzers to the output directory.
cp -v test/ossfuzz/json_load_dump_fuzzer $OUT/
cp -v test/ossfuzz/json_pack_unpack_fuzzer $OUT/
cp -v test/ossfuzz/json_equal_copy_fuzzer $OUT/

# Zip up all input files to use as a test corpus
find test/suites -name "input" -print | zip $OUT/json_load_dump_fuzzer_seed_corpus.zip -@
