Imported Upstream version 0.17
[platform/upstream/json-c.git] / fuzz / build.sh
index 30c3f77..7a42e0b 100755 (executable)
@@ -5,7 +5,7 @@
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
 #
-#      http://www.apache.org/licenses/LICENSE-2.0
+#      https://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 #
 ################################################################################
 
-./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