28 lines
996 B
Bash

cd "$(git rev-parse --show-toplevel)"
CFLAGS="$CFLAGS -std=c11 -pedantic -Wall -Wextra"
CFLAGS="$CFLAGS -O0 -ggdb"
CFLAGS="$CFLAGS -Ilib/include"
CFLAGS="$CFLAGS -fsanitize=address,undefined"
mkdir -p build
# Build library
clang $CFLAGS -c -o build/evaluator.o lib/evaluator.c
clang $CFLAGS -c -o build/memory_pool.o lib/memory_pool.c
clang $CFLAGS -c -o build/reader.o lib/reader.c
ar -crs build/lib.a build/evaluator.o build/memory_pool.o build/reader.o
# Build tests
clang $CFLAGS -Itests -c -o build/testing.o tests/testing.c
clang $CFLAGS -Itests -c -o build/evaluator_tests.o tests/evaluator_tests.c
clang $CFLAGS -o build/evaluator_tests \
build/evaluator_tests.o build/lib.a build/testing.o
clang $CFLAGS -Itests -c -o build/reader_tests.o tests/reader_tests.c
clang $CFLAGS -o build/reader_tests \
build/reader_tests.o build/lib.a build/testing.o
# Build application
clang $CFLAGS -c -o build/main.o app/main.c
clang $CFLAGS -o build/infix-calculator build/main.o build/lib.a