blob: a0a017fddaa0b8e876d648563f42d9bb0103ef99 [file]
#!/bin/bash
set -euo pipefail
rm -rf build/
rm -f src/zpipe.c
touch build.log
BUILD_LOG="$(realpath build.log)"
echo "Built on $(date -u '+%Y-%m-%dT%H:%M:%SZ')" | tee "$BUILD_LOG"
echo "Toolchain versions" | tee -a "$BUILD_LOG"
emcc --version | head -n1 | tee -a "$BUILD_LOG"
echo "Getting zpipe.c example source..." | tee -a "$BUILD_LOG"
curl -o "src/zpipe.c" https://www.zlib.net/zpipe.c
echo "Building..." | tee -a "$BUILD_LOG"
mkdir build/
emcc -o build/zlib.js \
-s WASM=1 -O2 \
-g1 --emit-symbol-map \
-s USE_ZLIB=1 -s FORCE_FILESYSTEM=1 \
-s MODULARIZE=1 -s EXPORT_NAME=setupModule -s EXPORTED_RUNTIME_METHODS=FS,stringToNewUTF8 -s EXPORTED_FUNCTIONS=_compressFile,_decompressFile,_free \
src/zpipe.c src/main.c | tee -a "$BUILD_LOG"
# If you want the native build for reference:
# clang -o build/zlib -O2 -lz src/zpipe.c src/main.c
echo "Building done" | tee -a "$BUILD_LOG"
ls -lth build/