lite/build.sh

50 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
cflags="-Wall -O3 -g -std=gnu11 -fno-strict-aliasing -Isrc"
lflags="-lm"
if [[ $* == *windows* ]]; then
platform="windows"
outfile="lite.exe"
compiler="x86_64-w64-mingw32-gcc"
cflags="$cflags -DLUA_USE_POPEN -Iwinlib/SDL2-2.0.10/x86_64-w64-mingw32/include"
lflags="$lflags -lSDL2 -Lwinlib/SDL2-2.0.10/x86_64-w64-mingw32/lib"
lflags="-lmingw32 -lSDL2main $lflags -mwindows -o $outfile res.res"
x86_64-w64-mingw32-windres res.rc -O coff -o res.res
else
platform="unix"
outfile="lite"
compiler="cc"
cflags="$cflags -DLUA_USE_POSIX"
lflags="$lflags -o $outfile"
if command -v pkgconf >/dev/null; then
cflags="$cflags $(pkgconf --cflags --silence-errors sdl2)"
lflags="$lflags $(pkgconf --libs --silence-errors sdl2)"
else
lflags="$lflags -lSDL2"
fi
fi
if command -v ccache >/dev/null; then
compiler="ccache $compiler"
fi
echo "compiling ($platform)..."
for f in `find src -name "*.c"`; do
$compiler -c $cflags $f -o "${f//\//_}.o"
if [[ $? -ne 0 ]]; then
got_error=true
fi
done
if [[ ! $got_error ]]; then
echo "linking..."
$compiler *.o $lflags
fi
echo "cleaning up..."
rm *.o
rm res.res 2>/dev/null
echo "done"