X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=build.sh;h=b449611c5cbbcb1d6e3ce212996e2c0973925771;hb=ae365687964bb357d4f371f685c02731ce3d0e00;hp=f21790a9a336d89783d4147f8e656664c2ab757a;hpb=f17b92e32e2edae3692d5ea87844fbdf4a779952;p=fishladder.git diff --git a/build.sh b/build.sh index f21790a..b449611 100755 --- a/build.sh +++ b/build.sh @@ -4,15 +4,29 @@ src="fishladder.c" target="fishladder" lib="-I. -L./lib -L./" libs="-lGL -lglfw -lX11 -lXxf86vm -lXrandr -lm -lpthread -lXi -ldl -l:steam/libsteam_api.so" -flags="-fsanitize=address -ggdb3" +flags="-fsanitize=address -ggdb3 -Wno-unused-function" +build_dir="build.linux" +steam_api="libsteam_api.so" + +if [[ "$OSTYPE" != "linux-gnu"* ]]; then + echo "Operating system is not GNU/Linux, windows will be assumed." + + target="fishladder.exe" + libs="-lglfw3 -lopengl32 -lm -mwindows -l:steam/steam_api.dll" + flags="-ggdb3 -Wno-unused-function" + build_dir="build.win32" + steam_api="steam_api.dll" +fi run_after=false do_build=true +compile_tools=false +#compile_models=false while (( "$#" )); do case $1 in -r|--release) - flags="-O3" + flags="-O3 -Wno-unused-function" echo "Release mode" ;; -p|--play) @@ -23,6 +37,14 @@ while (( "$#" )); do do_build=false echo "no-build" ;; + -t|--tools) + compile_tools=true + echo "build-tools" + ;; + #-m|--models) + # compile_models=true + # echo "build-models" + #;; *) echo "Unkown param: $1" exit 1 @@ -31,6 +53,32 @@ while (( "$#" )); do shift done +# Tools +if [ "$compile_tools" = true ]; then + echo "Building tools" + mkdir tools -p + gcc -Wall -Wstrict-aliasing=3 $lib $flags mdlcomp.c gl/glad.c -o tools/mdlcomp $libs -Wl,-rpath=./ $defines + gcc -Wall -Wstrict-aliasing=3 $lib $flags fontcomp.c gl/glad.c -o tools/fontcomp $libs -Wl,-rpath=./ $defines + gcc $lib qoiconv.c -std=c99 -O3 -o tools/qoiconv +fi + +# Resources +mkdir _temp_textures +# Convert all png to qoi +echo "Compiling textures" +for f in textures/*.png; + do echo "-> qoi: $f"; + ./tools/qoiconv $f ./_temp_textures/"$(basename "$f" .png).qoi" +done + +#if [ "$compile_models" = true ]; then +# echo "Recompiling models" +# for f in models/*.obj; +# do echo "Compiling $f.."; +# ./tools/mdlcomp $f $f.h +# done +#fi + # Main build if [ "$do_build" = true ]; then gcc -Wall -Wstrict-aliasing=3 $lib $flags $src gl/glad.c -o $target $libs -Wl,-rpath=./ $defines @@ -43,15 +91,23 @@ if [ "$do_build" = true ]; then echo "Build succeeded" fi -# Directories to initialize -mkdir build.linux/cfg -p -cp $target ./build.linux/$target -cp ./steam/libsteam_api.so ./build.linux/libsteam_api.so +mkdir $build_dir/cfg -p +mkdir $build_dir/textures -p +mkdir $build_dir/sound -p +mkdir $build_dir/maps -p +mkdir $build_dir/sav -p + +cp $target $build_dir/$target +cp ./steam/$steam_api $build_dir/$steam_api +rm -r $build_dir/textures +mv ./_temp_textures/ $build_dir/textures +cp -r ./sound/ $build_dir +cp -r ./maps/ $build_dir if [ "$run_after" = true ]; then echo "Playing" - cd ./build.linux/ + cd $build_dir ./$target cd ./../ fi