Blame simple-build/simple-build.sh

Ivan Mahonin 4e51e8
#!/bin/bash
Ivan Mahonin 4e51e8
Ivan Mahonin 4e51e8
set -e
Ivan Mahonin 4e51e8
Ivan Mahonin 97706c
# build options
Ivan Mahonin 4e51e8
DEPS="sdl2 SDL2_mixer SDL2_image freetype2"
Ivan Mahonin 4e51e8
CFLAGS="$CFLAGS -DNDEBUG -fPIC -O3 `pkg-config --cflags $DEPS`"
Ivan Mahonin 4e51e8
LDFLAGS="$LDFLAGS -lm -lGL `pkg-config --libs $DEPS`"
Ivan Mahonin 97706c
BUILDDIR="$PWD"
Ivan Mahonin 4e51e8
Ivan Mahonin 4e51e8
Ivan Mahonin 97706c
# just helping function
Ivan Mahonin 4e51e8
function echodo() {
Ivan Mahonin 4e51e8
    echo "$@"
Ivan Mahonin 4e51e8
    "$@"
Ivan Mahonin 4e51e8
}
Ivan Mahonin 4e51e8
Ivan Mahonin 4e51e8
Ivan Mahonin 97706c
# compile files
Ivan Mahonin 4e51e8
mkdir -p src
Ivan Mahonin 4e51e8
cd ..
Ivan Mahonin 4e51e8
for file in src/*.c src/*.S; do
Ivan Mahonin 4e51e8
    echodo cc -c $CFLAGS "$file" -o "$BUILDDIR/$file.o"
Ivan Mahonin 4e51e8
done
Ivan Mahonin 4e51e8
cd "$BUILDDIR"
Ivan Mahonin 4e51e8
Ivan Mahonin 97706c
Ivan Mahonin 97706c
# make static library
Ivan Mahonin 97706c
echodo ar rcs libhelianthus.a src/*.o
Ivan Mahonin 97706c
Ivan Mahonin 97706c
Ivan Mahonin 97706c
# make shader library
Ivan Mahonin 4e51e8
echodo ld src/*.o $LDFLAGS -shared -o libhelianthus.so.0.1.0
Ivan Mahonin 4e51e8
echodo ln -s libhelianthus.so.0.1.0 libhelianthus.so.0
Ivan Mahonin 4e51e8
echodo ln -s libhelianthus.so.0.1.0 libhelianthus.so
Ivan Mahonin 4e51e8
Ivan Mahonin 97706c
Ivan Mahonin 97706c
# build demo (this ste is not required)
Ivan Mahonin 4e51e8
echodo ln -sf ../src helianthus
Ivan Mahonin 4e51e8
echodo ln -sf ../demo/data
Ivan Mahonin 4e51e8
echodo cc $CFLAGS -I. -I./helianthus ../demo/src/*.c $LDFLAGS "$BUILDDIR/libhelianthus.so" -o demo
Ivan Mahonin 4e51e8
Ivan Mahonin 97706c
Ivan Mahonin 4e51e8
echo "done"