From f1e0e21addb3d6829da819713a4c67c2394850aa Mon Sep 17 00:00:00 2001 From: Anthony Samms Date: Mon, 15 Sep 2025 20:34:07 -0400 Subject: [PATCH] idk --- libs/audio/build.sh | 48 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100755 libs/audio/build.sh diff --git a/libs/audio/build.sh b/libs/audio/build.sh new file mode 100755 index 0000000..309a459 --- /dev/null +++ b/libs/audio/build.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# Cross-compilation script for Windows +# Usage: ./build_windows.sh + +# Set cross-compiler +export CC=x86_64-w64-mingw32-gcc +export CXX=x86_64-w64-mingw32-g++ +export AR=x86_64-w64-mingw32-ar +export STRIP=x86_64-w64-mingw32-strip + +# Paths to Windows dependencies +WIN_DEPS_DIR="win-libs" +INCLUDE_DIR="$WIN_DEPS_DIR/include" +LIB_DIR="$WIN_DEPS_DIR/lib" + +# Compiler flags +CFLAGS="-O2 -Wall -I$INCLUDE_DIR -DWIN32 -D_WIN32_WINNT=0x0600" +LDFLAGS="-L$LIB_DIR -static-libgcc" +LIBS="-lportaudio -lsndfile -lsamplerate -lwinmm -lole32 -ldsound" + +# Source files +SOURCES="audio.c" +OUTPUT="libaudio.dll" + +echo "Cross-compiling for Windows..." +echo "CC: $CC" +echo "Includes: $INCLUDE_DIR" +echo "Libraries: $LIB_DIR" + +# Compile shared library +$CC $CFLAGS -shared -o $OUTPUT $SOURCES $LDFLAGS $LIBS + +if [ $? -eq 0 ]; then + echo "✅ Successfully built $OUTPUT" + echo "Size: $(ls -lh $OUTPUT | awk '{print $5}')" + + # Strip symbols to reduce size + $STRIP $OUTPUT + echo "Stripped size: $(ls -lh $OUTPUT | awk '{print $5}')" +else + echo "❌ Build failed" + exit 1 +fi + +# Optional: Create import library +echo "Creating import library..." +$AR rcs lib$(basename $OUTPUT .dll).a $OUTPUT