2023-01-12 06:19:06 +00:00
|
|
|
#!/usr/bin/env bash
|
2023-04-14 00:09:40 +01:00
|
|
|
set -euo pipefail
|
2023-01-11 14:58:20 +00:00
|
|
|
|
2023-01-12 06:19:06 +00:00
|
|
|
cd -P -- "$(dirname -- "$0")"
|
|
|
|
|
|
2023-04-14 00:09:40 +01:00
|
|
|
ROOT=../
|
2024-07-20 00:43:34 +01:00
|
|
|
BINARYEN="$ROOT/tools/binaryen/bin"
|
|
|
|
|
WASI_SDK="$ROOT/tools/wasi-sdk/bin"
|
2023-04-14 00:09:40 +01:00
|
|
|
|
2024-08-09 12:45:19 +01:00
|
|
|
trap 'rm -f sqlite3.tmp' EXIT
|
|
|
|
|
|
2024-08-03 00:13:06 +01:00
|
|
|
"$WASI_SDK/clang" --target=wasm32-wasi -std=c23 -g0 -O2 \
|
2024-05-19 01:04:56 +01:00
|
|
|
-Wall -Wextra -Wno-unused-parameter -Wno-unused-function \
|
2023-04-14 00:09:40 +01:00
|
|
|
-o sqlite3.wasm "$ROOT/sqlite3/main.c" \
|
2025-04-17 13:55:44 +01:00
|
|
|
-I"$ROOT/sqlite3/libc" -I"$ROOT/sqlite3" \
|
2023-04-14 00:09:40 +01:00
|
|
|
-mexec-model=reactor \
|
2025-05-13 14:27:26 +01:00
|
|
|
-mmutable-globals -mnontrapping-fptoint \
|
|
|
|
|
-msimd128 -mbulk-memory -msign-ext \
|
|
|
|
|
-mreference-types -mmultivalue \
|
2025-07-29 16:48:33 +01:00
|
|
|
-mno-extended-const \
|
|
|
|
|
-fno-stack-protector \
|
2023-04-14 00:09:40 +01:00
|
|
|
-Wl,--stack-first \
|
|
|
|
|
-Wl,--import-undefined \
|
2024-07-11 13:35:41 +01:00
|
|
|
-Wl,--initial-memory=327680 \
|
2023-06-24 02:18:56 +01:00
|
|
|
-D_HAVE_SQLITE_CONFIG_H \
|
2024-05-16 16:24:33 +01:00
|
|
|
-DSQLITE_CUSTOM_INCLUDE=sqlite_opt.h \
|
2023-04-04 18:32:56 +01:00
|
|
|
$(awk '{print "-Wl,--export="$0}' exports.txt)
|
|
|
|
|
|
2023-04-14 00:09:40 +01:00
|
|
|
"$BINARYEN/wasm-ctor-eval" -g -c _initialize sqlite3.wasm -o sqlite3.tmp
|
2023-11-28 01:10:24 +00:00
|
|
|
"$BINARYEN/wasm-opt" -g --strip --strip-producers -c -O3 \
|
2025-04-15 00:44:31 +01:00
|
|
|
sqlite3.tmp -o sqlite3.wasm --low-memory-unused \
|
2025-05-13 14:27:26 +01:00
|
|
|
--enable-mutable-globals --enable-nontrapping-float-to-int \
|
|
|
|
|
--enable-simd --enable-bulk-memory --enable-sign-ext \
|
|
|
|
|
--enable-reference-types --enable-multivalue
|