#!/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/