|
|
@@ -0,0 +1,44 @@ |
|
|
|
#!/bin/bash |
|
|
|
|
|
|
|
set -xe |
|
|
|
|
|
|
|
CC=clang |
|
|
|
CFLAGS="-std=gnu17 -Weverything -Werror" |
|
|
|
LDLIBS="-lraylib" |
|
|
|
|
|
|
|
TARGET=umorna |
|
|
|
|
|
|
|
build_type="$1" |
|
|
|
|
|
|
|
if [ -z "$build_type" ] || \ |
|
|
|
[ "$build_type" = debug ]; then |
|
|
|
CFLAGS+=" -O0 -g" |
|
|
|
elif [ "$build_type" = "release" ]; then |
|
|
|
CFLAGS+=" -O3 -flto" |
|
|
|
fi |
|
|
|
|
|
|
|
sources=( |
|
|
|
"source/engine.c" |
|
|
|
"source/render.c" |
|
|
|
"source/game.c" |
|
|
|
"source/menu.c" |
|
|
|
"source/main.c" |
|
|
|
) |
|
|
|
|
|
|
|
objects=() |
|
|
|
|
|
|
|
updated="" |
|
|
|
|
|
|
|
for source in "${sources[@]}"; do |
|
|
|
obj="${source%.*}.o" |
|
|
|
objects+=("$obj") |
|
|
|
|
|
|
|
if [ "$source" -nt "$obj" ]; then |
|
|
|
"$CC" $CFLAGS -c "$source" -o "$obj" |
|
|
|
updated="y" |
|
|
|
fi |
|
|
|
done |
|
|
|
|
|
|
|
if [ ! -f "$TARGET" ] || [ -n "$updated" ]; then |
|
|
|
"$CC" $CFLAGS $LDLIBS "${objects[@]}" -o "$TARGET" |
|
|
|
fi |