leaderboard seems to have segfault. fixed typos
[fishladder.git] / build.sh
1 # Copyright (C) 2021 Harry Godden (hgn) - All Rights Reserved
2
3 src="fishladder.c"
4 target="fishladder"
5 lib="-I. -L./lib -L./"
6 libs="-lGL -lglfw -lX11 -lXxf86vm -lXrandr -lm -lpthread -lXi -ldl -l:steam/libsteam_api.so"
7 flags="-fsanitize=address -ggdb3 -Wno-unused-function"
8 build_dir="build.linux"
9 steam_api="libsteam_api.so"
10
11 if [[ "$OSTYPE" != "linux-gnu"* ]]; then
12 echo "Operating system is not GNU/Linux, windows will be assumed."
13
14 target="fishladder.exe"
15 libs="-lglfw3 -lopengl32 -lm -mwindows -l:steam/steam_api.dll"
16 flags="-ggdb3 -Wno-unused-function"
17 build_dir="build.win32"
18 steam_api="steam_api.dll"
19 fi
20
21 run_after=false
22 do_build=true
23 compile_tools=false
24 #compile_models=false
25
26 while (( "$#" )); do
27 case $1 in
28 -r|--release)
29 flags="-O3 -Wno-unused-function"
30 echo "Release mode"
31 ;;
32 -p|--play)
33 run_after=true
34 echo "& Run"
35 ;;
36 -n|--nobuild)
37 do_build=false
38 echo "no-build"
39 ;;
40 -t|--tools)
41 compile_tools=true
42 echo "build-tools"
43 ;;
44 #-m|--models)
45 # compile_models=true
46 # echo "build-models"
47 #;;
48 *)
49 echo "Unkown param: $1"
50 exit 1
51 ;;
52 esac
53 shift
54 done
55
56 # Tools
57 if [ "$compile_tools" = true ]; then
58 echo "Building tools"
59 mkdir tools -p
60 gcc -Wall -Wstrict-aliasing=3 $lib $flags mdlcomp.c gl/glad.c -o tools/mdlcomp $libs -Wl,-rpath=./ $defines
61 gcc -Wall -Wstrict-aliasing=3 $lib $flags fontcomp.c gl/glad.c -o tools/fontcomp $libs -Wl,-rpath=./ $defines
62 gcc $lib qoiconv.c -std=c99 -O3 -o tools/qoiconv
63 fi
64
65 # Resources
66 mkdir _temp_textures
67 # Convert all png to qoi
68 echo "Compiling textures"
69 for f in textures/*.png;
70 do echo "-> qoi: $f";
71 ./tools/qoiconv $f ./_temp_textures/"$(basename "$f" .png).qoi"
72 done
73
74 #if [ "$compile_models" = true ]; then
75 # echo "Recompiling models"
76 # for f in models/*.obj;
77 # do echo "Compiling $f..";
78 # ./tools/mdlcomp $f $f.h
79 # done
80 #fi
81
82 # Main build
83 if [ "$do_build" = true ]; then
84 gcc -Wall -Wstrict-aliasing=3 $lib $flags $src gl/glad.c -o $target $libs -Wl,-rpath=./ $defines
85
86 if [ $? -ne 0 ]; then
87 echo "GCC build failed"
88 exit 1
89 fi
90
91 echo "Build succeeded"
92 fi
93
94 mkdir $build_dir/cfg -p
95 mkdir $build_dir/textures -p
96 mkdir $build_dir/sound -p
97 mkdir $build_dir/maps -p
98 mkdir $build_dir/sav -p
99
100 cp $target $build_dir/$target
101 cp ./steam/$steam_api $build_dir/$steam_api
102 rm -r $build_dir/textures
103 mv ./_temp_textures/ $build_dir/textures
104 cp -r ./sound/ $build_dir
105 cp -r ./maps/ $build_dir
106
107 if [ "$run_after" = true ]; then
108 echo "Playing"
109
110 cd $build_dir
111 ./$target
112 cd ./../
113 fi