aboutsummaryrefslogtreecommitdiff
path: root/ext/wasm
diff options
context:
space:
mode:
Diffstat (limited to 'ext/wasm')
-rw-r--r--ext/wasm/GNUmakefile15
-rw-r--r--ext/wasm/api/pre-js.c-pp.js2
-rw-r--r--ext/wasm/fiddle.make2
-rw-r--r--ext/wasm/mkwasmbuilds.c52
4 files changed, 37 insertions, 34 deletions
diff --git a/ext/wasm/GNUmakefile b/ext/wasm/GNUmakefile
index 71978de48..bada548b4 100644
--- a/ext/wasm/GNUmakefile
+++ b/ext/wasm/GNUmakefile
@@ -819,12 +819,11 @@ sqlite3-wasmfs.cfiles := $(sqlite3-wasm.cfiles)
########################################################################
########################################################################
-# SQLITE3.xJS.ESM-EXPORT-DEFAULT is part of SQLITE3-WASMFS.xJS.RECIPE
-# and SETUP_LIB_BUILD_MODE, factored into a separate piece to avoid
-# code duplication. $1 is 1 if the build mode needs this workaround
-# (esm, bundler-friendly, node) and 0 if not (vanilla). $2 must be
-# 0 for all builds except sqlite3-wasmfs.mjs, in which case it
-# must be 1.
+# SQLITE3.xJS.ESM-EXPORT-DEFAULT is used by mkwasmbuilds.c and the
+# wasmfs build. $1 is 1 if the build mode needs this workaround
+# (modes: esm, bundler-friendly, node) and 0 if not (vanilla). $2 must
+# be 0 for all builds except sqlite3-wasmfs.mjs, in which case it must
+# be 1.
#
# Reminder for ESM builds: even if we use -sEXPORT_ES6=0, emcc _still_
# adds:
@@ -843,7 +842,7 @@ sqlite3-wasmfs.cfiles := $(sqlite3-wasm.cfiles)
# use awk instead of sed for this.
define SQLITE3.xJS.ESM-EXPORT-DEFAULT
if [ x1 = x$(1) ]; then \
- echo "Fragile workaround for emscripten/issues/18237. See SQLITE3.xJS.RECIPE."; \
+ echo "Fragile workaround for emscripten/issues/18237. See SQLITE3.xJS.ESM-EXPORT-DEFAULT."; \
{\
awk '/^export default/ && !f{f=1; next} 1' $@ > $@.tmp && mv $@.tmp $@; \
} || exit $$?; \
@@ -1030,9 +1029,7 @@ $(EXPORTED_FUNCTIONS.speedtest1): $(EXPORTED_FUNCTIONS.api.core)
speedtest1.js := $(dir.dout)/speedtest1.js
speedtest1.wasm := $(dir.dout)/speedtest1.wasm
emcc.flags.speedtest1-vanilla := $(cflags.common) -DSQLITE_SPEEDTEST1_WASM
-
speedtest1.cfiles := $(speedtest1.c) $(sqlite3-wasm.c)
-$(eval $(call call-make-pre-post,speedtest1,vanilla))
$(speedtest1.js): $(MAKEFILE) $(speedtest1.cfiles) \
$(pre-post-speedtest1-vanilla.deps) \
$(EXPORTED_FUNCTIONS.speedtest1)
diff --git a/ext/wasm/api/pre-js.c-pp.js b/ext/wasm/api/pre-js.c-pp.js
index 06d44a7a6..4045fb11c 100644
--- a/ext/wasm/api/pre-js.c-pp.js
+++ b/ext/wasm/api/pre-js.c-pp.js
@@ -48,7 +48,7 @@ Module['locateFile'] = function(path, prefix) {
}else{
theFile = prefix + path;
}
- sqlite3InitModuleState.debugModule(
+ this.debugModule(
"locateFile(",arguments[0], ',', arguments[1],")",
'sqlite3InitModuleState.scriptDir =',this.scriptDir,
'up.entries() =',Array.from(up.entries()),
diff --git a/ext/wasm/fiddle.make b/ext/wasm/fiddle.make
index b081d2515..c81379fbb 100644
--- a/ext/wasm/fiddle.make
+++ b/ext/wasm/fiddle.make
@@ -20,7 +20,7 @@ endif
ifeq (,$(SHELL_DEP))
$(error Could not parse SHELL_DEP from $(dir.top)/Makefile.)
endif
-$(dir.top)/shell.c: $(SHELL_DEP) $(dir.top)/tool/mkshellc.tcl $(sqlite3.c)
+$(dir.top)/shell.c: $(SHELL_DEP) $(dir.tool)/mkshellc.tcl $(sqlite3.c)
$(MAKE) -C $(dir.top) shell.c
# /shell.c
########################################################################
diff --git a/ext/wasm/mkwasmbuilds.c b/ext/wasm/mkwasmbuilds.c
index ae31a52ef..f69cac3e6 100644
--- a/ext/wasm/mkwasmbuilds.c
+++ b/ext/wasm/mkwasmbuilds.c
@@ -45,31 +45,15 @@
** "sqlite3-wasmfs" build, only "esm" (ES6 Module) is legal.
*/
#define JS_BUILD_MODES vanilla esm bundler-friendly node
-
-/*
-** Emits common vars needed by the rest of the emitted code (but not
-** needed by code outside of these generated pieces).
-*/
-static void mk_prologue(void){
- ps("########################################################################");
- ps("# extern-post-js* and extern-pre-js* are files for use with");
- ps("# Emscripten's --extern-pre-js and --extern-post-js flags.");
- ps("extern-pre-js.js := $(dir.api)/extern-pre-js.js");
- ps("extern-post-js.js.in := $(dir.api)/extern-post-js.c-pp.js");
- ps("# Emscripten flags for --[extern-][pre|post]-js=... for the");
- ps("# various builds.");
- ps("pre-post-common.flags := --extern-pre-js=$(sqlite3-license-version.js)");
- ps("# pre-post-jses.deps.* = a list of dependencies for the");
- ps("# --[extern-][pre/post]-js files.");
- ps("pre-post-jses.deps.common := $(extern-pre-js.js) $(sqlite3-license-version.js)");
-}
-
+static const char * zBanner =
+ "\n########################################################################\n";
/*
** Emits makefile code for setting up values for the --pre-js=FILE,
** --post-js=FILE, and --extern-post-js=FILE emcc flags, as well as
** populating those files.
*/
static void mk_pre_post(const char *zName, const char *zMode){
+ pf("%s# Begin --pre/--post flags for %s-%s\n", zBanner, zName, zMode);
pf("pre-post-%s-%s.flags ?=\n", zNM);
/* --pre-js=... */
@@ -81,7 +65,7 @@ static void mk_pre_post(const char *zName, const char *zMode){
"$(c-pp.D.%s-%s)))\n", zNM, zNM);
#else
/* This part is needed if/when we re-enable the custom
- ** Module.instantiateModule() impl. */
+ ** Module.instantiateModule() impl in api/pre-js.c-pp.js. */
pf("pre-js.js.%s-%s.intermediary := $(dir.tmp)/pre-js.%s-%s.intermediary.js\n",
zNM, zNM);
pf("$(eval $(call C-PP.FILTER,$(pre-js.js.in),$(pre-js.js.%s-%s.intermediary),"
@@ -123,6 +107,25 @@ static void mk_pre_post(const char *zName, const char *zMode){
zNM, zNM, zNM);
pf("pre-post-%s-%s.deps := $(pre-post-jses.%s-%s.deps) $(dir.tmp)/pre-js.%s-%s.js\n",
zNM, zNM, zNM);
+ pf("# End --pre/--post flags for %s-%s%s", zName, zMode, zBanner);
+}
+
+/*
+** Emits common vars needed by the rest of the emitted code (but not
+** needed by code outside of these generated pieces).
+*/
+static void mk_prologue(void){
+ pf("%s", zBanner);
+ ps("# extern-post-js* and extern-pre-js* are files for use with");
+ ps("# Emscripten's --extern-pre-js and --extern-post-js flags.");
+ ps("extern-pre-js.js := $(dir.api)/extern-pre-js.js");
+ ps("extern-post-js.js.in := $(dir.api)/extern-post-js.c-pp.js");
+ ps("# Emscripten flags for --[extern-][pre|post]-js=... for the");
+ ps("# various builds.");
+ ps("pre-post-common.flags := --extern-pre-js=$(sqlite3-license-version.js)");
+ ps("# pre-post-jses.deps.* = a list of dependencies for the");
+ ps("# --[extern-][pre/post]-js files.");
+ ps("pre-post-jses.deps.common := $(extern-pre-js.js) $(sqlite3-license-version.js)");
}
/*
@@ -144,12 +147,12 @@ static void mk_lib_mode(const char *zName /* build name */,
if( !zCmppD ) zCmppD = "";
if( !zEmcc ) zEmcc = "";
- pf("#################### begin build [%s-%s]\n", zNM);
+ pf("%s# Begin build [%s-%s]\n", zBanner, zNM);
pf("ifneq (1,$(MAKING_CLEAN))\n");
pf("$(info Setting up build [%s-%s]: %s)\n", zNM, zJsOut);
pf("c-pp.D.%s-%s := %s\n", zNM, zCmppD);
mk_pre_post(zNM);
- pf("emcc.flags.%s.%s ?=\n", zNM);
+ pf("\nemcc.flags.%s.%s ?=\n", zNM);
if( zEmcc[0] ){
pf("emcc.flags.%s.%s += %s\n", zNM, zEmcc);
}
@@ -199,7 +202,7 @@ static void mk_lib_mode(const char *zName /* build name */,
pf("all: %s\n", zJsOut);
}
ps("endif\n# ^^^ !$(MAKING_CLEAN)");
- pf("#################### end build [%s-%s]\n\n", zNM);
+ pf("# End build [%s-%s]%s", zNM, zBanner);
}
int main(void){
@@ -221,5 +224,8 @@ int main(void){
"$(sqlite3-api-wasmfs.mjs)", "$(sqlite3-wasmfs.mjs)",
"$(c-pp.D.sqlite3-bundler-friendly) -Dwasmfs",
"-sEXPORT_ES6 -sUSE_ES6_IMPORT_META");
+
+ mk_pre_post("speedtest1","vanilla");
+ mk_pre_post("speedtest1-wasmfs","esm");
return rc;
}