Something went wrong. Try again.
javascript for 🐜's, a tiny runtime with big ambitions antjs.org
Something went wrong. Try again.
Shell
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980#!/bin/bashset -e
. "$(dirname "$0")/common.sh"
DIST_DIR="$SCRIPT_DIR/dist"mkdir -p "$DIST_DIR"
bundle_lib() { NAME="$1" EXCLUDE="$2" OUTPUT="$BUILD_DIR/$NAME" echo "Bundling $NAME..." TMPDIR=$(mktemp -d) LIBS=$(find "$BUILD_DIR" -name '*.a' \ ! -name 'libant.a' \ ! -name 'libant-lto.a' \ ! -name 'libpkg.a' \ ! -path '*/oxc-target/release/deps/*' \ ! -path '*/.external/*' \ 2>/dev/null | grep -E -v "$EXCLUDE" | sort -u) cd "$TMPDIR" for lib in $LIBS; do libname=$(basename "$lib" .a) mkdir -p "$libname" (cd "$libname" && llvm-ar x "$lib" 2>/dev/null || ar x "$lib") done find . -name '*.o' > objects.txt if [ ! -s objects.txt ]; then echo "No objects found, skipping $NAME" rm -rf "$TMPDIR" cd "$SCRIPT_DIR" return fi if command -v llvm-ar >/dev/null 2>&1; then llvm-ar rcs "$OUTPUT" $(cat objects.txt) else ar rcs "$OUTPUT" $(cat objects.txt) fi rm -rf "$TMPDIR" cd "$SCRIPT_DIR" cp "$OUTPUT" "$DIST_DIR/" echo "Created: $DIST_DIR/$NAME ($(du -h "$OUTPUT" | cut -f1))"}
bundle_lib "libant.a" "_lto"
if [ -f "$BUILD_DIR/libant_core_lto.a" ]; then bundle_lib "libant-lto.a" "libant_core.a"fi
if [ -f "$BUILD_DIR/libant.h" ]; then cp "$BUILD_DIR/libant.h" "$DIST_DIR/ant.h" echo "Created: $DIST_DIR/ant.h"fi
pkg_lib_path=$(find "$BUILD_DIR" -name 'libpkg.a' -print | head -n 1)if [ -n "$pkg_lib_path" ] && [ -f "$pkg_lib_path" ]; then cp "$pkg_lib_path" "$DIST_DIR/libpkg.a" echo "Created: $DIST_DIR/libpkg.a ($(du -h "$pkg_lib_path" | cut -f1))"fi
if [ -f "$ROOT_DIR/include/pkg.h" ]; then cp "$ROOT_DIR/include/pkg.h" "$DIST_DIR/pkg.h" echo "Created: $DIST_DIR/pkg.h"fi
echo ""echo "Done! Distribution files in $DIST_DIR:"ls -lh "$DIST_DIR"/ 2>/dev/null || echo "No files found"