mirror of https://github.com/google/oss-fuzz.git
58 lines
1.8 KiB
Bash
Executable File
58 lines
1.8 KiB
Bash
Executable File
#!/bin/bash -eu
|
|
# Copyright 2017 Google Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# 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
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
################################################################################
|
|
|
|
# Wpantund's configure script is fuzzer-aware, so we
|
|
# move those flags into their own environment variables.
|
|
FUZZ_CFLAGS="${CFLAGS}"
|
|
FUZZ_CXXFLAGS="${CXXFLAGS}"
|
|
unset CFLAGS
|
|
unset CXXFLAGS
|
|
|
|
./bootstrap.sh
|
|
|
|
./configure \
|
|
--enable-fuzz-targets \
|
|
--disable-shared \
|
|
--enable-static \
|
|
CC="${CC}" \
|
|
CXX="${CXX}" \
|
|
FUZZ_LIBS="${LIB_FUZZING_ENGINE}" \
|
|
FUZZ_CFLAGS="${FUZZ_CFLAGS}" \
|
|
FUZZ_CXXFLAGS="${FUZZ_CXXFLAGS}" \
|
|
LDFLAGS="-lpthread" \
|
|
CXXFLAGS="-stdlib=libc++"
|
|
|
|
# Build everything.
|
|
make -j$(nproc)
|
|
|
|
# Copy all fuzzers and related options/dictionaries.
|
|
find . -name '*[-_]fuzz' -type f -exec cp -v '{}' $OUT ';'
|
|
find . -name '*[-_]fuzz.dict' -type f -exec cp -v '{}' $OUT ';'
|
|
find . -name '*[-_]fuzz.options' -type f -exec cp -v '{}' $OUT ';'
|
|
|
|
# Copy all of the fuzzers' related corpi.
|
|
for f in etc/fuzz-corpus/*[-_]fuzz
|
|
do
|
|
fuzzer=$(basename $f)
|
|
if test -d "${f}"
|
|
then zip -j $OUT/${fuzzer}_seed_corpus.zip ${f}/*
|
|
fi
|
|
done
|
|
|
|
# Dump out all of the files in the output.
|
|
find $OUT -type f > /dev/stderr
|