#!/bin/bash -eu
# Copyright 2020 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.
#
################################################################################

export CFLAGS="$CFLAGS -Wno-error=non-c-typedef-for-linkage"
export CXXFLAGS="$CXXFLAGS -Wno-error=non-c-typedef-for-linkage"

${SRC}/buildcorpus.sh

./bootstrap
./configure --enable-static --disable-shared --disable-java --without-afflib --without-libewf --without-libvhdi --without-libvmdk
make -j$(nproc)

declare -A TSK_FS_TYPES=(
  ["ext"]="TSK_FS_TYPE_EXT_DETECT"
  ["fat"]="TSK_FS_TYPE_FAT_DETECT"
  ["hfs"]="TSK_FS_TYPE_HFS"
  ["ntfs"]="TSK_FS_TYPE_NTFS"
  ["iso9660"]="TSK_FS_TYPE_ISO9660"
)

declare -A TSK_VS_TYPES=(
  ["dos"]="TSK_VS_TYPE_DOS"
  ["gpt"]="TSK_VS_TYPE_GPT"
  ["mac"]="TSK_VS_TYPE_MAC"
  ["sun"]="TSK_VS_TYPE_SUN"
)

# The fls APFS fuzz target has a seperate source file since it uses the libtsk
# pool layer.
$CXX $CXXFLAGS -std=c++14 -I.. -I. -Itsk \
    $SRC/sleuthkit_fls_apfs_fuzzer.cc -o $OUT/sleuthkit_fls_apfs_fuzzer \
    $LIB_FUZZING_ENGINE $SRC/sleuthkit/tsk/.libs/libtsk.a

for type in ${!TSK_FS_TYPES[@]}; do
  $CXX $CXXFLAGS -std=c++14 -I.. -I. -Itsk -DFSTYPE=${TSK_FS_TYPES[$type]} \
      $SRC/sleuthkit_fls_fuzzer.cc -o $OUT/sleuthkit_fls_${type}_fuzzer \
      $LIB_FUZZING_ENGINE $SRC/sleuthkit/tsk/.libs/libtsk.a
done

for type in ${!TSK_VS_TYPES[@]}; do
  $CXX $CXXFLAGS -std=c++14 -I.. -I. -Itsk -DVSTYPE=${TSK_VS_TYPES[$type]} \
      $SRC/sleuthkit_mmls_fuzzer.cc -o $OUT/sleuthkit_mmls_${type}_fuzzer \
      $LIB_FUZZING_ENGINE $SRC/sleuthkit/tsk/.libs/libtsk.a
done
