#!/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
CFLAGS="-Wall -Werror -pedantic "
LIBFLAGS="-fPIC -shared"
INCLUDE="\
	$(find src -type d | xargs -I{} echo -n "-I{} ") \
"
SRC="\
	$(find src -type f -name "*.c" | xargs -I{} echo -n "{} ") \
"
if [[ $BUILD_TYPE == "release" ]]; then
  CFLAGS+="-O3"
else
  CFLAGS+="-g -fsanitize=address -fsanitize=undefined"
fi

OUT="libwapp.so"

(set -x ; $CC $CFLAGS $LIBFLAGS $INCLUDE $SRC -o $OUT)

if [[ -f ./test.c ]]; then
	(set -x ; $CC $CFLAGS $INCLUDE $SRC ./test.c -o test)
fi