32 lines
1.1 KiB
Bash

cd "$(git rev-parse --show-toplevel)"
CFLAGS="$CFLAGS -std=c11 -pedantic -Wall -Wextra"
CFLAGS="$CFLAGS -O0 -ggdb"
CFLAGS="$CFLAGS -Ilib/include"
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
clang $CFLAGS -c -o build/repl.o lib/repl.c
ar -crs build/lib.a \
build/evaluator.o build/memory_pool.o build/reader.o build/repl.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
clang $CFLAGS -Itests -c -o build/repl_tests.o tests/repl_tests.c
clang $CFLAGS -o build/repl_tests \
build/repl_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