Files
oc2r-native-networking/build.sh
2025-09-07 21:13:15 -04:00

43 lines
1.5 KiB
Bash
Executable File

#!/bin/sh -e
# shellcheck disable=2086
[ -z "$CFLAGS" ] && CFLAGS='-Os -Wall -Wextra -pedantic'
[ -z "$CLANG" ] && CLANG=clang
[ -z "$STRIP" ] && STRIP=llvm-strip
# build for mac
for dep in wget $CLANG $STRIP; do
if ! command -v "$dep" > /dev/null; then
printf "Error: Missing dependency: %s\n" "$dep"
exit 1
fi
done
if ! [ -d macsdk ]; then
wget https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.0.sdk.tar.xz -O- | tar -xJ
mv MacOS* macsdk
fi
mkdir -p build
$CLANG $CFLAGS -std=c99 -Ijni-headers -fuse-ld=lld oc2rnet.c -bundle -target x86_64-apple-macos10.8 -isysroot macsdk -o build/liboc2rnet-x86_64.dylib
$CLANG $CFLAGS -std=c99 -Ijni-headers -fuse-ld=lld oc2rnet.c -bundle -target arm64-apple-macos11.0 -isysroot macsdk -o build/liboc2rnet-arm64.dylib
# build for other platforms
if ! [ -d zig ]; then
wget https://ziglang.org/download/0.14.1/zig-x86_64-linux-0.14.1.tar.xz -O- | tar -xJ
mv zig-* zig
fi
./zig/zig cc $CFLAGS -std=c99 -D_DEFAULT_SOURCE -Ijni-headers oc2rnet.c -shared -target x86_64-linux-gnu -o build/liboc2rnet-linux-x86_64.so
./zig/zig cc $CFLAGS -std=c99 -D_DEFAULT_SOURCE -Ijni-headers oc2rnet.c -shared -target aarch64-linux-gnu -o build/liboc2rnet-linux-arm64.so
./zig/zig cc $CFLAGS -std=c99 -Ijni-headers oc2rnet.c -shared -target x86_64-windows-gnu -o build/oc2rnet-x86_64.dll -licmp
./zig/zig cc $CFLAGS -std=c99 -Ijni-headers oc2rnet.c -shared -target aarch64-windows-gnu -o build/oc2rnet-arm64.dll -licmp
rm build/*.lib
$STRIP ./build/*