splitter switcher
[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 -DNO_STEAM"
8
9 if [[ "$OSTYPE" != "linux-gnu"* ]]; then
10 echo "Operating system is not GNU/Linux, windows will be assumed."
11 target="fishladder.exe"
12 libs="-lglfw3 -lopengl32 -lm -mwindows"
13 flags="-ggdb3 -Wno-unused-function -DNO_STEAM"
14 fi
15
16 run_after=false
17 do_build=true
18
19 while (( "$#" )); do
20 case $1 in
21 -r|--release)
22 flags="-O3"
23 echo "Release mode"
24 ;;
25 -p|--play)
26 run_after=true
27 echo "& Run"
28 ;;
29 -n|--nobuild)
30 do_build=false
31 echo "no-build"
32 ;;
33 *)
34 echo "Unkown param: $1"
35 exit 1
36 ;;
37 esac
38 shift
39 done
40
41 echo "Building tools"
42 mkdir tools -p
43 gcc -Wall -Wstrict-aliasing=3 $lib $flags mdlcomp.c gl/glad.c -o tools/mdlcomp $libs -Wl,-rpath=./ $defines
44
45 echo "Recompiling models"
46 for f in models/*.obj;
47 do echo "Compiling $f..";
48 ./tools/mdlcomp $f $f.h
49 done
50
51 # Main build
52 if [ "$do_build" = true ]; then
53 gcc -Wall -Wstrict-aliasing=3 $lib $flags $src gl/glad.c -o $target $libs -Wl,-rpath=./ $defines
54
55 if [ $? -ne 0 ]; then
56 echo "GCC build failed"
57 exit 1
58 fi
59
60 echo "Build succeeded"
61 fi
62
63 if [[ "$OSTYPE" == "linux-gnu"* ]]; then
64 # Directories to initialize
65 mkdir build.linux/cfg -p
66 mkdir build.linux/textures -p
67
68 cp $target ./build.linux/$target
69 cp ./steam/libsteam_api.so ./build.linux/libsteam_api.so
70 cp -r ./textures/ ./build.linux/
71
72 if [ "$run_after" = true ]; then
73 echo "Playing"
74
75 cd ./build.linux/
76 ./$target
77 cd ./../
78 fi
79 else
80 mkdir build.win32/cfg -p
81 mkdir build.win32/textures -p
82
83 cp $target ./build.win32/$target
84 cp -r ./textures/ ./build.win32/
85 cp ./lib/glfw3.dll ./build.win32/glfw3.dll
86
87 if [ "$run_after" = true ]; then
88 echo "Playing"
89
90 cd ./build.win32/
91 ./$target
92 cd ./../
93 fi
94 fi