#!/bin/bash

BUILD_TYPE="debug"

while [[ $# > 0 ]];do
  case $1 in
    --release)
      BUILD_TYPE="release"
      shift
      ;;
    *|-*|--*)
      echo "Unknown option $1"
      exit 1
      ;;
  esac
done

CC=clang

if [[ $BUILD_TYPE == "release" ]]; then
  CFLAGS="-O3 -Wall -Werror -pedantic"
else
  CFLAGS="-g -Wall -Werror -pedantic -fsanitize=address -fsanitize=undefined -DDEBUG"
fi

INCLUDES="\
  -I$(find ./src -type d | xargs -I{} echo -n "-I{} ") \
  $(find intern/wizapp/src -type d | xargs -I{} echo -n "-I{} ") \
  $(pkg-config --cflags sdl2) \
"
LIBS="\
  -lm \
  -pthread \
  $(pkg-config --libs sdl2) \
"
SRC="\
  $(find ./src -name "*.c" | xargs -I{} echo -n "{} ") \
  $(find intern/wizapp/src -type f -name "*.c" | xargs -I{} echo -n "{} ") \
"
OUT=tiffread

( set -x ; $CC $CFLAGS $INCLUDES $LIBS $SRC -o $OUT )