@@ -338,3 +338,81 @@ Feature detection flags:
338
338
* `` __wasm_bulk_memory__ ``
339
339
* `` __wasm_atomics__ ``
340
340
* `` __wasm_mutable_globals__ ``
341
+
342
+ ## Install SDKs and dependencies manually
343
+
344
+ In some cases (e.g. build bots) you may prefer to install build dependencies
345
+ directly on the system instead of using the container image. Total disk size
346
+ of SDKs and cached libraries is about 1.6 GB.
347
+
348
+ ### Install OS dependencies
349
+
350
+ ``` shell
351
+ # Debian/Ubuntu
352
+ apt update
353
+ apt install -y git make xz-utils bzip2 curl python3-minimal ccache
354
+ ```
355
+
356
+ ``` shell
357
+ # Fedora
358
+ dnf install -y git make xz bzip2 which ccache
359
+ ```
360
+
361
+ ### Install [ Emscripten SDK] ( https://emscripten.org/docs/getting_started/downloads.html )
362
+
363
+ ** NOTE** : Follow the on-screen instructions how to add the SDK to `` PATH `` .
364
+
365
+ ``` shell
366
+ git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk
367
+ /opt/emsdk/emsdk install latest
368
+ /opt/emsdk/emsdk activate latest
369
+ ```
370
+
371
+ ### Optionally: pre-build and cache static libraries
372
+
373
+ Emscripten SDK provides static builds of core libraries without PIC
374
+ (position-independent code). Python builds with `` dlopen `` support require
375
+ PIC. To populate the build cache, run:
376
+
377
+ ``` shell
378
+ . /opt/emsdk/emsdk_env.sh
379
+ embuilder build --force zlib bzip2
380
+ embuilder build --force --pic \
381
+ zlib bzip2 libc-mt libdlmalloc-mt libsockets-mt \
382
+ libstubs libcompiler_rt libcompiler_rt-mt crtbegin libhtml5 \
383
+ libc++-mt-noexcept libc++abi-mt-noexcept \
384
+ libal libGL-mt libstubs-debug libc-mt-debug
385
+ ```
386
+
387
+ ### Install [ WASI-SDK] ( https://github.com/WebAssembly/wasi-sdk )
388
+
389
+ ** NOTE** : WASI-SDK's clang may show a warning on Fedora:
390
+ `` /lib64/libtinfo.so.6: no version information available `` ,
391
+ [ RHBZ #1875587 ] ( https://bugzilla.redhat.com/show_bug.cgi?id=1875587 ) .
392
+
393
+ ``` shell
394
+ export WASI_VERSION=16
395
+ export WASI_VERSION_FULL=${WASI_VERSION} .0
396
+ curl -sSf -L -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION} /wasi-sdk-${WASI_VERSION_FULL} -linux.tar.gz
397
+ mkdir -p /opt/wasi-sdk
398
+ tar --strip-components=1 -C /opt/wasi-sdk -xvf wasi-sdk-${WASI_VERSION_FULL} -linux.tar.gz
399
+ rm -f wasi-sdk-${WASI_VERSION_FULL} -linux.tar.gz
400
+ ```
401
+
402
+ ### Install [ wasmtime] ( https://github.com/bytecodealliance/wasmtime ) WASI runtime
403
+
404
+ ** NOTE** : wasmtime 0.37 has a bug. Newer versions should be fine again.
405
+
406
+ ``` shell
407
+ curl -sSf -L -o ~ /install-wasmtime.sh https://wasmtime.dev/install.sh
408
+ chmod +x ~ /install-wasmtime.sh
409
+ ~ /install-wasmtime.sh --version v0.36.0
410
+ ln -srf -t /usr/local/bin/ ~ /.wasmtime/bin/wasmtime
411
+ ```
412
+
413
+ ### Install [ WASIX] ( https://github.com/singlestore-labs/wasix )
414
+
415
+ ``` shell
416
+ git clone https://github.com/singlestore-labs/wasix.git ~ /wasix
417
+ make install -C ~ /wasix
418
+ ```
0 commit comments