From 0e040301312ccb5c2565875f99eb931ebf23c1e1 Mon Sep 17 00:00:00 2001 From: Francesco Abbate Date: Thu, 18 Jun 2020 15:53:31 +0200 Subject: [PATCH] Fix and improve build script --- .gitignore | 2 +- build.sh | 24 ++++++++---------------- lib/font_renderer/build.sh | 27 +++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 17 deletions(-) create mode 100644 lib/font_renderer/build.sh diff --git a/.gitignore b/.gitignore index 620bcf91..cf6be389 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -build* +.build* diff --git a/build.sh b/build.sh index 0b29ac14..96afb71c 100755 --- a/build.sh +++ b/build.sh @@ -1,36 +1,28 @@ #!/bin/bash cflags="-Wall -O3 -g -std=gnu11 -fno-strict-aliasing -Isrc -Ilib/font_renderer" -cxxflags="-Wall -O3 -g -std=c++03 -fno-exceptions -fno-rtti -Isrc -Ilib/font_renderer" -libcflags= +cflags+=" $(pkg-config --cflags lua5.2) $(sdl2-config --cflags)" lflags="-static-libgcc -static-libstdc++" for package in libagg freetype2 lua5.2; do - libcflags+=" $(pkg-config --cflags $package)" lflags+=" $(pkg-config --libs $package)" done -libcflags+=" $(sdl2-config --cflags)" lflags+=" $(sdl2-config --libs) -lm" if [[ $* == *windows* ]]; then echo "cross compiling for windows is not yet supported" exit 1 else - platform="unix" outfile="lite" compiler="gcc" cxxcompiler="g++" fi -echo "compiling ($platform)..." -for f in `find src -name "*.c"`; do - $compiler -c $cflags $f -o "${f//\//_}.o" $libcflags - if [[ $? -ne 0 ]]; then - got_error=true - fi -done +lib/font_renderer/build.sh || exit 1 +libs=libfontrenderer.a -for f in `find lib -name "*.cpp"`; do - $cxxcompiler -c $cxxflags $f -o "${f//\//_}.o" $libcflags +echo "compiling lite..." +for f in `find src -name "*.c"`; do + $compiler -c $cflags $f -o "${f//\//_}.o" if [[ $? -ne 0 ]]; then got_error=true fi @@ -38,10 +30,10 @@ done if [[ ! $got_error ]]; then echo "linking..." - $cxxcompiler -o $outfile *.o $lflags + $cxxcompiler -o $outfile *.o $libs $lflags fi echo "cleaning up..." -rm *.o +rm *.o *.a echo "done" diff --git a/lib/font_renderer/build.sh b/lib/font_renderer/build.sh new file mode 100644 index 00000000..364c4b6a --- /dev/null +++ b/lib/font_renderer/build.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +cxxcompiler="g++" +cxxflags="-Wall -O3 -g -std=c++03 -fno-exceptions -fno-rtti -Isrc -Ilib/font_renderer" +cxxflags+=" -DFONT_RENDERER_HEIGHT_HACK" +for package in libagg freetype2; do + cxxflags+=" $(pkg-config --cflags $package)" +done + +echo "compiling font renderer library..." + +for f in `find lib -name "*.cpp"`; do + $cxxcompiler -c $cxxflags $f -o "${f//\//_}.o" + if [[ $? -ne 0 ]]; then + got_error=true + fi +done + +if [[ $got_error ]]; then + rm -f *.o + exit 1 +fi + +ar -rcs libfontrenderer.a *.o + +rm *.o +echo "font renderer library created"