Download native/build-prod.sh from Snapkitty/snapkitty-clojure-lisp-bridge: direct link, hf CLI and curl.
- Browser
- Download file 4 kB
-
https://huggingface.co/Snapkitty/snapkitty-clojure-lisp-bridge/resolve/main/native/build-prod.sh
- Command line
-
hf download hf://Snapkitty/snapkitty-clojure-lisp-bridge/native/build-prod.sh
-
curl -L -o build-prod.sh https://huggingface.co/Snapkitty/snapkitty-clojure-lisp-bridge/resolve/main/native/build-prod.sh
4 kB
| # SKC-LISP: Production Build + Cryptographic Linking | |
| # Compiles NASM + C++ binding with libblake3 + libsodium | |
| set -e | |
| echo "=== SKC-LISP Production Build ===" | |
| SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | |
| cd "$SCRIPT_DIR" | |
| # ============================================================================ | |
| # 1. Check for required libraries | |
| # ============================================================================ | |
| echo "[1/5] Checking for libblake3 and libsodium..." | |
| if ! pkg-config --exists libblake3; then | |
| echo "ERROR: libblake3 not found. Install with:" | |
| echo " macOS: brew install blake3" | |
| echo " Ubuntu: sudo apt-get install libblake3-dev" | |
| echo " Or build from: https://github.com/BLAKE3-team/BLAKE3" | |
| exit 1 | |
| fi | |
| if ! pkg-config --exists libsodium; then | |
| echo "ERROR: libsodium not found. Install with:" | |
| echo " macOS: brew install libsodium" | |
| echo " Ubuntu: sudo apt-get install libsodium-dev" | |
| echo " Or build from: https://github.com/jedisct1/libsodium" | |
| exit 1 | |
| fi | |
| echo "✓ libblake3 found: $(pkg-config --modversion libblake3)" | |
| echo "✓ libsodium found: $(pkg-config --modversion libsodium)" | |
| # ============================================================================ | |
| # 2. Compile NASM (production crypto) | |
| # ============================================================================ | |
| echo "[2/5] Compiling NASM assembly (production crypto)..." | |
| if command -v nasm &> /dev/null; then | |
| nasm -f elf64 mutation-validator.asm -o mutation-validator.o | |
| nasm -f elf64 digest-verifier-prod.asm -o digest-verifier-prod.o | |
| echo "✓ NASM compiled" | |
| else | |
| echo "WARNING: nasm not found, skipping assembly compilation" | |
| touch mutation-validator.o digest-verifier-prod.o | |
| fi | |
| # ============================================================================ | |
| # 3. Compile C++ Node.js binding | |
| # ============================================================================ | |
| echo "[3/5] Compiling C++ Node.js binding..." | |
| npx node-gyp configure --release | |
| # Override include/lib paths for libblake3 + libsodium | |
| export CFLAGS="$(pkg-config --cflags libblake3 libsodium)" | |
| export LDFLAGS="$(pkg-config --libs libblake3 libsodium)" | |
| npx node-gyp build --release | |
| echo "✓ Node.js binding compiled" | |
| # ============================================================================ | |
| # 4. Link with crypto libraries | |
| # ============================================================================ | |
| echo "[4/5] Linking with libblake3 + libsodium..." | |
| # Create production binding (if NASM succeeded) | |
| if [ -f "mutation-validator.o" ] && [ -f "digest-verifier-prod.o" ]; then | |
| g++ -shared \ | |
| -fPIC \ | |
| mutation-validator.o \ | |
| digest-verifier-prod.o \ | |
| $(pkg-config --cflags --libs libblake3 libsodium) \ | |
| -o binding-prod.so \ | |
| -lnode | |
| echo "✓ Production binding created: binding-prod.so" | |
| else | |
| echo "⚠ Skipping production binding (NASM objects not found)" | |
| fi | |
| # ============================================================================ | |
| # 5. Verify linking | |
| # ============================================================================ | |
| echo "[5/5] Verifying symbols..." | |
| if [ -f "binding-prod.so" ]; then | |
| echo "Exported symbols in binding-prod.so:" | |
| nm binding-prod.so | grep -E "blake3_verify|ed25519_verify|loadAsmLibrary" || echo " (symbol check may vary by platform)" | |
| fi | |
| echo "" | |
| echo "=== Build Complete ===" | |
| echo "Artifacts:" | |
| echo " - build/Release/binding.node (Node.js addon)" | |
| echo " - binding-prod.so (Crypto-linked library)" | |
| echo " - mutation-validator.o (NASM object)" | |
| echo " - digest-verifier-prod.o (NASM crypto object)" | |
| echo "" | |
| echo "Production Crypto:" | |
| echo " - Blake3: libblake3 linked" | |
| echo " - Ed25519: libsodium linked" | |
| echo "" | |
| echo "Next: Deploy binding-prod.so alongside Node.js runtime" | |