40 lines
694 B
Bash
Executable File
40 lines
694 B
Bash
Executable File
#!/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
|