X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=build.sh;h=d807648f5c4c0b8567c1d98974b8037da16bbe8d;hb=HEAD;hp=c22ad791c750c60902445519645bcefc33ac33f0;hpb=b68e3832a078dc6a4a3c8c4670632148c8288bf8;p=fishladder.git diff --git a/build.sh b/build.sh index c22ad79..d807648 100755 --- a/build.sh +++ b/build.sh @@ -1,132 +1 @@ -# Copyright (C) 2021 Harry Godden (hgn) - All Rights Reserved - -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 -Wno-unused-function -DNO_STEAM" - -if [[ "$OSTYPE" != "linux-gnu"* ]]; then - echo "Operating system is not GNU/Linux, windows will be assumed." - target="fishladder.exe" - libs="-lglfw3 -lopengl32 -lm -mwindows" - flags="-ggdb3 -Wno-unused-function -DNO_STEAM" -fi - -run_after=false -do_build=true -compile_tools=false -compile_models=false - -while (( "$#" )); do - case $1 in - -r|--release) - flags="-O3 -Wno-unused-function -DNO_STEAM" - echo "Release mode" - ;; - -p|--play) - run_after=true - echo "& Run" - ;; - -n|--nobuild) - 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 - ;; - esac - 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 -if [ "$compile_models" = true ]; then - echo "Recompiling models" - for f in models/*.obj; - do echo "Compiling $f.."; - ./tools/mdlcomp $f $f.h - done -fi - -# Convert all png to qoi -echo "Compiling textures" -mkdir _temp_textures -for f in textures/*.png; - do echo "-> qoi: $f"; - ./tools/qoiconv $f ./_temp_textures/"$(basename "$f" .png).qoi" -done - -# Main build -if [ "$do_build" = true ]; then - gcc -Wall -Wstrict-aliasing=3 $lib $flags $src gl/glad.c -o $target $libs -Wl,-rpath=./ $defines - - if [ $? -ne 0 ]; then - echo "GCC build failed" - exit 1 - fi - - echo "Build succeeded" -fi - -if [[ "$OSTYPE" == "linux-gnu"* ]]; then - # Directories to initialize - mkdir build.linux/cfg -p - mkdir build.linux/textures -p - mkdir build.linux/sound -p - mkdir build.linux/maps -p - mkdir build.linux/sav -p - - cp $target ./build.linux/$target - cp ./steam/libsteam_api.so ./build.linux/libsteam_api.so - rm -r ./build.linux/textures - mv ./_temp_textures/ ./build.linux/textures - cp -r ./sound/ ./build.linux/ - cp -r ./maps/ ./build.linux/ - - if [ "$run_after" = true ]; then - echo "Playing" - - cd ./build.linux/ - ./$target - cd ./../ - fi -else - mkdir build.win32/cfg -p - mkdir build.win32/textures -p - mkdir build.win32/sound -p - mkdir build.win32/maps -p - mkdir build.win32/sav -p - - cp $target ./build.win32/$target - rm -r ./build.win32/textures - mv ./_temp_textures/ ./build.win32/textures - cp -r ./sound/ ./build.win32/ - cp -r ./maps/ ./build.win32/ - cp ./lib/glfw3.dll ./build.win32/glfw3.dll - - if [ "$run_after" = true ]; then - echo "Playing" - - cd ./build.win32/ - ./$target - cd ./../ - fi -fi +clang -fsanitize=address -O0 -I./vg build.c -o /tmp/tmpsr && /tmp/tmpsr $@