get windows build working
[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 # Main build
42 if [ "$do_build" = true ]; then
43 gcc -Wall -Wstrict-aliasing=3 $lib $flags $src gl/glad.c -o $target $libs -Wl,-rpath=./ $defines
44
45 if [ $? -ne 0 ]; then
46 echo "GCC build failed"
47 exit 1
48 fi
49
50 echo "Build succeeded"
51 fi
52
53 if [[ "$OSTYPE" == "linux-gnu"* ]]; then
54 # Directories to initialize
55 mkdir build.linux/cfg -p
56 mkdir build.linux/textures -p
57
58 cp $target ./build.linux/$target
59 cp ./steam/libsteam_api.so ./build.linux/libsteam_api.so
60 cp -r ./textures/ ./build.linux/
61
62 if [ "$run_after" = true ]; then
63 echo "Playing"
64
65 cd ./build.linux/
66 ./$target
67 cd ./../
68 fi
69 else
70 mkdir build.win32/cfg -p
71 mkdir build.win32/textures -p
72
73 cp $target ./build.win32/$target
74 cp -r ./textures/ ./build.win32/
75 cp ./lib/glfw3.dll ./build.win32/glfw3.dll
76
77 if [ "$run_after" = true ]; then
78 echo "Playing"
79
80 cd ./build.win32/
81 ./$target
82 cd ./../
83 fi
84 fi