Commit: 743d0b3de122b621079b079c91a55086139cd625
Parent: b10c7301ef0db4d89ea9493b2950c4393d55e316
Author: Randy Palamar
Date: Tue, 30 Jul 2024 14:12:41 -0600
add optional static raylib build
Diffstat:
4 files changed, 43 insertions(+), 14 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -0,0 +1,5 @@
+ogl
+*.so
+*.mexa64
+external/lib
+external/include/r*.h
diff --git a/.gitmodules b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "external/raylib"]
+ path = external/raylib
+ url = https://github.com/raysan5/raylib.git
diff --git a/build.sh b/build.sh
@@ -1,34 +1,54 @@
#!/bin/sh
-cflags="-march=native -ggdb -O0 -Wall -I./external/include"
+cflags="-march=native -O3 -Wall -I./external/include"
ldflags="-lraylib"
+debug=${DEBUG}
+
+cc=${CC:-cc}
+system_raylib=${USE_SYSTEM_RAYLIB:-$debug}
+
+if [ "$system_raylib" ]; then
+ ldflags="-L/usr/local/lib $ldflags"
+else
+ ldflags="-L./external/lib $ldflags"
+ if [ ! -f external/lib/libraylib.a ]; then
+ git submodule update --init --depth=1 external/raylib
+ cmake --install-prefix="${PWD}/external" \
+ -G "Ninja" -B external/raylib/build -S external/raylib \
+ -D CMAKE_INSTALL_LIBDIR=lib -D CMAKE_BUILD_TYPE="Release" \
+ -DCUSTOMIZE_BUILD=ON -DBUILD_EXAMPLES=OFF -DWITH_PIC=ON \
+ -DOPENGL_VERSION=4.3 -DUSE_AUDIO=OFF -DSUPPORT_MODULE_RAUDIO=OFF
+ cmake --build external/raylib/build
+ cmake --install external/raylib/build
+ fi
+fi
case "$1" in
"win32")
- ldflags="$ldflags -lgdi32 -lwinmm -L./external"
- cc $cflags -o ogl main.c $ldflags
+ ldflags="$ldflags -lgdi32 -lwinmm"
+ ${cc} $cflags -o ogl main.c $ldflags
;;
"win32lib")
libcflags="$cflags -fPIC -shared"
- cc $libcflags -I'C:/Program Files/MATLAB/R2022a/extern/include' \
+ ${cc} $libcflags -I'C:/Program Files/MATLAB/R2022a/extern/include' \
helpers/ogl_beamformer_lib.c -o helpers/ogl_beamformer_lib.dll \
-L'C:/Program Files/MATLAB/R2022a/extern/lib/win64/microsoft' \
-llibmat -llibmex
;;
"lib")
libcflags="$cflags -I"/opt/matlab/extern/include" -shared -fPIC"
- cc $libcflags helpers/ogl_beamformer_lib.c -o helpers/ogl_beamformer_lib.so
+ ${cc} $libcflags helpers/ogl_beamformer_lib.c -o helpers/ogl_beamformer_lib.so
;;
*)
- ldflags="$ldflags -lGL"
-
+ ldflags="$ldflags -lm"
# Hot Reloading/Debugging
- cflags="$cflags -D_DEBUG -Wno-unused-function"
- #cflags="$cflags -fsanitize=address,undefined"
-
- libcflags="$cflags -fPIC -Wno-unused-function"
- libldflags="$ldflags -shared"
+ if [ "$debug" ]; then
+ cflags="$cflags -O0 -ggdb -D_DEBUG -Wno-unused-function"
+ #cflags="$cflags -fsanitize=address,undefined"
- cc $libcflags beamformer.c -o beamformer.so $libldflags
- cc $cflags -o ogl main.c $ldflags
+ libcflags="$cflags -fPIC"
+ libldflags="$ldflags -shared"
+ ${cc} $libcflags beamformer.c -o beamformer.so $libldflags
+ fi
+ ${cc} $cflags -o ogl main.c $ldflags
;;
esac
diff --git a/external/raylib b/external/raylib
@@ -0,0 +1 @@
+Subproject commit 9e39788e077f1d35c5fe54600f2143423a80bb3d