Making...
This commit is contained in:
parent
0aa8ec2987
commit
95aecd2be9
44
make.sh
Normal file
44
make.sh
Normal file
@ -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
|
33
makefile
Normal file
33
makefile
Normal file
@ -0,0 +1,33 @@
|
||||
.PHONY: all debug release clean
|
||||
|
||||
CFLAGS := -std=gnu17 -pedantic -Wall -Wextra ${CFLAGS}
|
||||
LDLIBS :=
|
||||
|
||||
sources := source/engine.c \
|
||||
source/game.c \
|
||||
source/main.c \
|
||||
source/menu.c \
|
||||
source/render.c \
|
||||
source/source.c \
|
||||
source/system.c
|
||||
|
||||
obj = ${sources:.c=.o}
|
||||
dep = ${sources:.c=.d}
|
||||
|
||||
.c.o:
|
||||
$(CC) -MD -MP $(CFLAGS) -c $< -o $@
|
||||
|
||||
all: debug
|
||||
|
||||
debug: CFLAGS += -g
|
||||
release: CFLAGS += -O3
|
||||
|
||||
debug release: umorna
|
||||
|
||||
umorna: $(obj)
|
||||
$(CC) $(LDLIBS) $< -o $@
|
||||
|
||||
clean:
|
||||
rm -f umorna ${obj} ${dep}
|
||||
|
||||
-include ${dep}
|
Loading…
Reference in New Issue
Block a user