]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
In the wasm makefiles, replace X:=Y with X=Y because := has different semantics depen...
authorstephan <stephan@noemail.net>
Wed, 16 Jul 2025 14:51:23 +0000 (14:51 +0000)
committerstephan <stephan@noemail.net>
Wed, 16 Jul 2025 14:51:23 +0000 (14:51 +0000)
FossilOrigin-Name: d4203311a2f39189ed8f30d519468aed8983af7772a5b247e7557d3e1936064e

ext/wasm/GNUmakefile
ext/wasm/config.make.in
ext/wasm/dist.make
ext/wasm/fiddle.make
ext/wasm/mkwasmbuilds.c
ext/wasm/speedtest1.html
ext/wasm/wasmfs.make
manifest
manifest.uuid

index 1c07953a80f2667b79f17b1d5c0fb76c05ce8985..87c2ca2fcb065898131a078c9faaeee57d0e29f9 100644 (file)
 ########################################################################
 default: all
 #default: quick
-MAKEFILE := $(lastword $(MAKEFILE_LIST))
-CLEAN_FILES :=
-DISTCLEAN_FILES := config.make
-MAKING_CLEAN := $(if $(filter %clean,$(MAKECMDGOALS)),1,0)
+MAKEFILE = $(lastword $(MAKEFILE_LIST))
+MAKEFILE.fiddle = fiddle.make
+CLEAN_FILES =
+DISTCLEAN_FILES = config.make
+MAKING_CLEAN = $(if $(filter %clean,$(MAKECMDGOALS)),1,0)
 .PHONY: clean distclean
 clean:
        -rm -f $(CLEAN_FILES)
@@ -53,17 +54,17 @@ distclean: clean
 ########################################################################
 # Special-case builds for which we require certain pre-conditions
 # which, if not met, may cause warnings or fatal errors in the build.
-# This also affects the default optimization level flags. Note that
-# the fiddle targets are in this list because they are used for
-# generating sqlite.org/fiddle.
-OPTIMIZED_TARGETS := dist snapshot fiddle fiddle.debug
+# This also affects the default optimization level flags.  The fiddle
+# targets are in this list because they are used for generating
+# sqlite.org/fiddle.
+OPTIMIZED_TARGETS = dist snapshot fiddle fiddle.debug
 
 ifeq (1,$(MAKING_CLEAN))
-  bin.wasm-strip := echo "not stripping"
-  bin.wasm-opt := irrelevant
-  bin.emcc := irrelevant
-  bin.bash := irrelevant
-  emcc.version := unknown
+  bin.wasm-strip = echo "not stripping"
+  bin.wasm-opt = irrelevant
+  bin.emcc = irrelevant
+  bin.bash = irrelevant
+  emcc.version = unknown
 else
   # Include config.make and perform some bootstrapping...
   ifeq (,$(wildcard ./config.make))
@@ -76,7 +77,7 @@ else
   ifeq (,$(bin.emcc))
     $(error Configure script did not find emcc)
   endif
-  emcc.version := $(shell $(bin.emcc) --version | sed -n 1p | sed -e 's/^.* \([3-9][^ ]*\) .*$$/\1/;')
+  emcc.version = $(shell $(bin.emcc) --version | sed -n 1p | sed -e 's/^.* \([3-9][^ ]*\) .*$$/\1/;')
   $(info using emcc version [$(emcc.version)])
   ifeq (,$(bin.wasm-strip))
     ####################################################################
@@ -98,7 +99,7 @@ else
     ifneq (,$(filter $(OPTIMIZED_TARGETS),$(MAKECMDGOALS)))
       $(error Cannot make release-quality binary because wasm-strip is not available.)
     endif
-    bin.wasm-strip := echo "not wasm-stripping"
+    bin.wasm-strip = echo "not wasm-stripping"
   endif
   ifeq (,$(filter $(OPTIMIZED_TARGETS),$(MAKECMDGOALS)))
     $(info ==============================================================)
@@ -108,7 +109,7 @@ else
   endif
 endif
 # ^^^ end of are-we-MAKING_CLEAN
-maybe-wasm-strip := $(bin.wasm-strip)
+maybe-wasm-strip = $(bin.wasm-strip)
 
 ########################################################################
 # JS_BUILD_NAMES exists for documentation purposes only. It enumerates
@@ -118,7 +119,7 @@ maybe-wasm-strip := $(bin.wasm-strip)
 #
 # - sqlite3-wasmfs = WASMFS-capable library build
 #
-JS_BUILD_NAMES := sqlite3 sqlite3-wasmfs
+JS_BUILD_NAMES = sqlite3 sqlite3-wasmfs
 
 ########################################################################
 # JS_BUILD_MODES exists for documentation purposes only. It enumerates
@@ -140,31 +141,31 @@ JS_BUILD_NAMES := sqlite3 sqlite3-wasmfs
 #   that persistent storage (OPFS) is not available in these builds.
 #   These builds are UNTESTED and UNSUPPORTED!
 #
-JS_BUILD_MODES := vanilla esm bunder-friendly node
+JS_BUILD_MODES = vanilla esm bunder-friendly node
 
 ########################################################################
 # dir.top = the top dir of the canonical build tree, where
 # sqlite3.[ch] live.
-dir.top := ../..
+dir.top = ../..
 # Maintenance reminder: some Emscripten flags require absolute paths
 # but we want relative paths for most stuff simply to reduce
 # noise. The $(abspath...) GNU make function can transform relative
 # paths to absolute.
-dir.wasm := $(patsubst %/,%,$(dir $(MAKEFILE)))
-dir.api := api
-dir.jacc := jaccwabyt
-dir.common := common
-dir.fiddle := fiddle
-dir.fiddle-debug := fiddle-debug
-dir.tool := $(dir.top)/tool
+dir.wasm = $(patsubst %/,%,$(dir $(MAKEFILE)))
+dir.api = api
+dir.jacc = jaccwabyt
+dir.common = common
+dir.fiddle = fiddle
+dir.fiddle-debug = fiddle-debug
+dir.tool = $(dir.top)/tool
 # dir.dout = output dir for deliverables
-dir.dout := $(dir.wasm)/jswasm
+dir.dout = $(dir.wasm)/jswasm
 # dir.tmp = output dir for intermediary build files, as opposed to
 # end-user deliverables.
-dir.tmp := $(dir.wasm)/bld
-dir.wasmfs := $(dir.dout)
+dir.tmp = $(dir.wasm)/bld
+dir.wasmfs = $(dir.dout)
 
-MKDIR.bld := $(dir.tmp)
+MKDIR.bld = $(dir.tmp)
 $(MKDIR.bld):
        @mkdir -p $@ $(dir.dout)
 
@@ -188,17 +189,17 @@ CLEAN_FILES += *~ $(dir.jacc)/*~ $(dir.api)/*~ $(dir.common)/*~ $(dir.fiddle)/*~
 # $(sqlite3.canonical.c) must point to the sqlite3.c in
 # the sqlite3 canonical source tree, as that source file
 # is required for certain utility and test code.
-sqlite3.canonical.c := $(dir.top)/sqlite3.c
+sqlite3.canonical.c = $(dir.top)/sqlite3.c
 sqlite3.c ?= $(firstword $(wildcard $(dir.top)/sqlite3-see.c) $(sqlite3.canonical.c))
-sqlite3.h := $(dir.top)/sqlite3.h
+sqlite3.h = $(dir.top)/sqlite3.h
 
 ifeq (1,$(MAKING_CLEAN))
-  SQLITE_C_IS_SEE := 0
+  SQLITE_C_IS_SEE = 0
 else
   ifeq (,$(shell grep sqlite3_activate_see $(sqlite3.c)))
-    SQLITE_C_IS_SEE := 0
+    SQLITE_C_IS_SEE = 0
   else
-    SQLITE_C_IS_SEE := 1
+    SQLITE_C_IS_SEE = 1
     $(info This is an SEE build)
   endif
 endif
@@ -216,19 +217,19 @@ $(sqlite3.c): $(sqlite3.h)
 # barebones=1 disables all "extraneous" stuff from sqlite3-wasm.c, the
 # goal being to create a WASM file with only the core APIs.
 ifeq (1,$(barebones))
-  wasm-bare-bones := 1
+  wasm-bare-bones = 1
   $(info ==============================================================)
   $(info == This is a bare-bones build. It trades away features for)
   $(info == a smaller .wasm file.)
   $(info ==============================================================)
 else
-  wasm-bare-bones := 0
+  wasm-bare-bones = 0
 endif
 # undefine barebones # relatively new gmake feature, not ubiquitous
 
 # Common options for building sqlite3-wasm.c and speedtest1.c.
 # Explicit ENABLEs...
-SQLITE_OPT.common := \
+SQLITE_OPT.common = \
   -DSQLITE_THREADSAFE=0 \
   -DSQLITE_TEMP_STORE=2 \
   -DSQLITE_ENABLE_MATH_FUNCTIONS \
@@ -249,7 +250,7 @@ SQLITE_OPT.common := \
 SQLITE_OPT.common += -DSQLITE_WASM_ENABLE_C_TESTS
 
 # Extra flags for full-featured builds...
-SQLITE_OPT.full-featured := \
+SQLITE_OPT.full-featured = \
   -DSQLITE_ENABLE_BYTECODE_VTAB \
   -DSQLITE_ENABLE_DBPAGE_VTAB \
   -DSQLITE_ENABLE_DBSTAT_VTAB \
@@ -265,12 +266,12 @@ SQLITE_OPT.full-featured := \
 
 ifeq (0,$(wasm-bare-bones))
   # The so-called canonical build is full-featured:
-  SQLITE_OPT := \
+  SQLITE_OPT = \
     $(SQLITE_OPT.common) \
     $(SQLITE_OPT.full-featured)
 else
   # The so-called bare-bones build is exactly that:
-  SQLITE_OPT := \
+  SQLITE_OPT = \
     $(SQLITE_OPT.common) \
     -DSQLITE_WASM_BARE_BONES
   # SQLITE_WASM_BARE_BONES tells sqlite3-wasm.c to explicitly omit
@@ -345,10 +346,10 @@ endif
 # See example_extra_init.c for an example implementation.
 ########################################################################
 sqlite3_wasm_extra_init.c ?= $(wildcard sqlite3_wasm_extra_init.c)
-cflags.wasm_extra_init :=
+cflags.wasm_extra_init =
 ifneq (,$(sqlite3_wasm_extra_init.c))
   $(info Enabling SQLITE_EXTRA_INIT via $(sqlite3_wasm_extra_init.c).)
-  cflags.wasm_extra_init := -DSQLITE_WASM_EXTRA_INIT
+  cflags.wasm_extra_init = -DSQLITE_WASM_EXTRA_INIT
 endif
 
 #########################################################################
@@ -362,7 +363,7 @@ endif
 # end result is that the generated JS files may have static version
 # info from $(bin.version-info) which differ from their runtime-emitted
 # version info (e.g. from sqlite3_libversion()).
-bin.version-info := $(dir.top)/version-info
+bin.version-info = $(dir.top)/version-info
 .NOTPARALLEL: $(bin.version-info)
 $(bin.version-info): $(dir.tool)/version-info.c $(sqlite3.h) $(dir.top)/Makefile
        $(MAKE) -C $(dir.top) version-info
@@ -373,7 +374,7 @@ $(bin.version-info): $(dir.tool)/version-info.c $(sqlite3.h) $(dir.top)/Makefile
 # don't need for all builds. That app's -k flag is of particular
 # importance here, as it allows us to retain the opening comment
 # block(s), which contain the license header and version info.
-bin.stripccomments := $(dir.tool)/stripccomments
+bin.stripccomments = $(dir.tool)/stripccomments
 $(bin.stripccomments): $(bin.stripccomments).c $(MAKEFILE)
        $(CC) -o $@ $<
 DISTCLEAN_FILES += $(bin.stripccomments)
@@ -410,7 +411,7 @@ DISTCLEAN_FILES += $(bin.stripccomments)
 #
 # -D... flags which should be included in all invocations should be
 # appended to $(SQLITE.CALL.C-PP.FILTER.global).
-bin.c-pp := ./c-pp
+bin.c-pp = ./c-pp
 $(bin.c-pp): c-pp.c $(sqlite3.c) # $(MAKEFILE)
        $(CC) -O0 -o $@ c-pp.c $(sqlite3.c) '-DCMPP_DEFAULT_DELIM="//#"' -I$(dir.top) \
                -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_UTF16 \
@@ -435,7 +436,7 @@ endef
 ########################################################################
 
 # cflags.common = C compiler flags for all builds
-cflags.common :=  -I. -I$(dir $(sqlite3.c))
+cflags.common =  -I. -I$(dir $(sqlite3.c))
 # emcc.WASM_BIGINT = 1 for BigInt (C int64) support, else 0.  The API
 # disables certain features if BigInt is not enabled and such builds
 # _are not tested_ on any regular basis.
@@ -458,7 +459,7 @@ endif
 
 # When passing emcc_opt from the CLI, += and re-assignment have no
 # effect, so emcc_opt+=-g3 doesn't work. So...
-emcc_opt_full := $(emcc_opt) -g3
+emcc_opt_full = $(emcc_opt) -g3
 # ^^^ ALWAYS use -g3. See below for why.
 #
 # ^^^ -flto improves runtime speed at -O0 considerably but doubles
@@ -489,28 +490,28 @@ emcc_opt_full := $(emcc_opt) -g3
 ########################################################################
 # EXPORTED_FUNCTIONS.* = files for use with Emscripten's
 # -sEXPORTED_FUNCTION flag.
-EXPORTED_FUNCTIONS.api.core := $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-core
-EXPORTED_FUNCTIONS.api.in := $(EXPORTED_FUNCTIONS.api.core)
+EXPORTED_FUNCTIONS.api.core = $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-core
+EXPORTED_FUNCTIONS.api.in = $(EXPORTED_FUNCTIONS.api.core)
 ifeq (1,$(SQLITE_C_IS_SEE))
   EXPORTED_FUNCTIONS.api.in += $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-see
 endif
 ifeq (0,$(wasm-bare-bones))
   EXPORTED_FUNCTIONS.api.in += $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-extras
 endif
-EXPORTED_FUNCTIONS.api := $(dir.tmp)/EXPORTED_FUNCTIONS.api
+EXPORTED_FUNCTIONS.api = $(dir.tmp)/EXPORTED_FUNCTIONS.api
 $(EXPORTED_FUNCTIONS.api): $(MKDIR.bld) $(EXPORTED_FUNCTIONS.api.in) $(sqlite3.c) $(MAKEFILE)
        cat $(EXPORTED_FUNCTIONS.api.in) > $@
 
 ########################################################################
 # sqlite3-license-version.js = generated JS file with the license
 # header and version info.
-sqlite3-license-version.js := $(dir.tmp)/sqlite3-license-version.js
+sqlite3-license-version.js = $(dir.tmp)/sqlite3-license-version.js
 # sqlite3-api-build-version.js = generated JS file which populates the
 # sqlite3.version object using $(bin.version-info).
-sqlite3-api-build-version.js := $(dir.tmp)/sqlite3-api-build-version.js
+sqlite3-api-build-version.js = $(dir.tmp)/sqlite3-api-build-version.js
 # sqlite3-api.jses = the list of JS files which make up
 # $(sqlite3-api.js.in), in the order they need to be assembled.
-sqlite3-api.jses := $(sqlite3-license-version.js)
+sqlite3-api.jses = $(sqlite3-license-version.js)
 # sqlite3-api-prologue.js: initial bootstrapping bits:
 sqlite3-api.jses += $(dir.api)/sqlite3-api-prologue.js
 # whwhasm.js and jaccwabyt.js: Low-level utils, mostly replacing
@@ -544,13 +545,13 @@ sqlite3-api.jses += $(dir.api)/sqlite3-api-cleanup.js
 # SOAP.js is an external API file which is part of our distribution
 # but not part of the sqlite3-api.js amalgamation. It's a component of
 # the first OPFS VFS and necessarily an external file.
-SOAP.js := $(dir.api)/sqlite3-opfs-async-proxy.js
-SOAP.js.bld := $(dir.dout)/$(notdir $(SOAP.js))
+SOAP.js = $(dir.api)/sqlite3-opfs-async-proxy.js
+SOAP.js.bld = $(dir.dout)/$(notdir $(SOAP.js))
 #
 # $(sqlite3-api.ext.jses) = API-related files which are standalone files,
 #   not part of the amalgamation.
 #
-sqlite3-api.ext.jses := $(SOAP.js.bld)
+sqlite3-api.ext.jses = $(SOAP.js.bld)
 $(SOAP.js.bld): $(SOAP.js)
        cp $< $@
 
@@ -573,7 +574,7 @@ $(SOAP.js.bld): $(SOAP.js)
 # sqlite3-api.js.in = the amalgamated sqlite3-api.js before it gets
 # preprocessed. It contains all of $(sqlite3-api.jses) but none of the
 # Emscripten-specific headers and footers.
-sqlite3-api.js.in := $(dir.tmp)/sqlite3-api.c-pp.js
+sqlite3-api.js.in = $(dir.tmp)/sqlite3-api.c-pp.js
 $(sqlite3-api.js.in): $(MKDIR.bld) $(sqlite3-api.jses) $(MAKEFILE)
        @echo "Making $@ ..."
        @for i in $(sqlite3-api.jses); do \
@@ -584,7 +585,7 @@ $(sqlite3-api.js.in): $(MKDIR.bld) $(sqlite3-api.jses) $(MAKEFILE)
 
 ########################################################################
 # emcc flags for .c/.o/.wasm/.js.
-emcc.flags :=
+emcc.flags =
 ifeq (1,$(emcc.verbose))
 emcc.flags += -v
 # -v is _very_ loud but also informative about what it's doing
@@ -593,7 +594,7 @@ endif
 
 ########################################################################
 # emcc flags for .c/.o.
-emcc.cflags :=
+emcc.cflags =
 emcc.cflags += -std=c99 -fPIC
 # -------------^^^^^^^^ we need c99 for $(sqlite3-wasm.c), primarily
 # for variadic macros and snprintf() to implement
@@ -601,14 +602,14 @@ emcc.cflags += -std=c99 -fPIC
 emcc.cflags += -I. -I$(dir.top)
 ########################################################################
 # emcc flags specific to building .js/.wasm files...
-emcc.jsflags := -fPIC
+emcc.jsflags = -fPIC
 emcc.jsflags += --no-entry
 emcc.jsflags += -sWASM_BIGINT=$(emcc.WASM_BIGINT)
 emcc.jsflags += -sMODULARIZE
 emcc.jsflags += -sDYNAMIC_EXECUTION=0
 emcc.jsflags += -sNO_POLYFILL
 emcc.jsflags += -sEXPORTED_FUNCTIONS=@$(EXPORTED_FUNCTIONS.api)
-emcc.exportedRuntimeMethods := \
+emcc.exportedRuntimeMethods = \
     -sEXPORTED_RUNTIME_METHODS=wasmMemory
 # wasmMemory ==> required by our code for use with -sIMPORTED_MEMORY
 # Emscripten 4.0.7 (2025-04-15) stops exporting HEAP* by default.
@@ -633,10 +634,10 @@ emcc.jsflags += -sSTRICT_JS=0
 # tools should be installing, e.g. __syscall_geteuid32
 
 # -sENVIRONMENT values for the various build modes:
-emcc.environment.vanilla := web,worker
-emcc.environment.bundler-friendly := $(emcc.environment.vanilla)
-emcc.environment.esm := $(emcc.environment.vanilla)
-emcc.environment.node := node
+emcc.environment.vanilla = web,worker
+emcc.environment.bundler-friendly = $(emcc.environment.vanilla)
+emcc.environment.esm = $(emcc.environment.vanilla)
+emcc.environment.node = node
 # Note that adding ",node" to the list for the other builds causes
 # Emscripten to generate code which confuses node: it cannot reliably
 # determine whether the build is for a browser or for node.
@@ -658,12 +659,12 @@ emcc.environment.node := node
 # supported in all configurations (#21071)."
 # https://github.com/emscripten-core/emscripten/blob/main/ChangeLog.md
 emcc.jsflags += -sALLOW_MEMORY_GROWTH
-emcc.INITIAL_MEMORY.128 := 134217728
-emcc.INITIAL_MEMORY.96  := 100663296
-emcc.INITIAL_MEMORY.64  := 67108864
-emcc.INITIAL_MEMORY.32  := 33554432
-emcc.INITIAL_MEMORY.16  := 16777216
-emcc.INITIAL_MEMORY.8   := 8388608
+emcc.INITIAL_MEMORY.128 = 134217728
+emcc.INITIAL_MEMORY.96  = 100663296
+emcc.INITIAL_MEMORY.64  = 67108864
+emcc.INITIAL_MEMORY.32  = 33554432
+emcc.INITIAL_MEMORY.16  = 16777216
+emcc.INITIAL_MEMORY.8   = 8388608
 emcc.INITIAL_MEMORY ?= 16
 ifeq (,$(emcc.INITIAL_MEMORY.$(emcc.INITIAL_MEMORY)))
 $(error emcc.INITIAL_MEMORY must be one of: 8, 16, 32, 64, 96, 128 (megabytes))
@@ -696,7 +697,7 @@ emcc.jsflags += -sSTACK_SIZE=512KB
 # symbols: we cannot "delete" the Emscripten-defined
 # $(sqlite3.js.init-func) from vanilla builds (as opposed to ESM
 # builds) because it's declared with "var".
-sqlite3.js.init-func := sqlite3InitModule
+sqlite3.js.init-func = sqlite3InitModule
 emcc.jsflags += -sEXPORT_NAME=$(sqlite3.js.init-func)
 emcc.jsflags += -sGLOBAL_BASE=4096 # HYPOTHETICALLY keep func table indexes from overlapping w/ heap addr.
 #emcc.jsflags += -sSTRICT # fails due to missing __syscall_...()
@@ -786,9 +787,9 @@ $(sqlite3-license-version.js): $(MKDIR.bld) $(sqlite3.h) \
 # --post-js injects code which runs after the WASM module is loaded
 # and includes the entirety of the library plus some
 # Emscripten-specific post-bootstrapping code.
-pre-js.js.in := $(dir.api)/pre-js.c-pp.js
-post-js.js.in := $(dir.tmp)/post-js.c-pp.js
-post-jses.js := \
+pre-js.js.in = $(dir.api)/pre-js.c-pp.js
+post-js.js.in = $(dir.tmp)/post-js.c-pp.js
+post-jses.js = \
   $(dir.api)/post-js-header.js \
   $(sqlite3-api.js.in) \
   $(dir.api)/post-js-footer.js
@@ -804,10 +805,10 @@ $(post-js.js.in): $(MKDIR.bld) $(post-jses.js) $(MAKEFILE)
 # Undocumented Emscripten feature: if the target file extension is
 # "mjs", it defaults to ES6 module builds:
 # https://github.com/emscripten-core/emscripten/issues/14383
-sqlite3.wasm := $(dir.dout)/sqlite3.wasm
-sqlite3-wasm.c := $(dir.api)/sqlite3-wasm.c
-sqlite3-wasm.cfiles := $(sqlite3-wasm.c) $(sqlite3_wasm_extra_init.c)
-sqlite3-wasmfs.cfiles := $(sqlite3-wasm.cfiles)
+sqlite3.wasm = $(dir.dout)/sqlite3.wasm
+sqlite3-wasm.c = $(dir.api)/sqlite3-wasm.c
+sqlite3-wasm.cfiles = $(sqlite3-wasm.c) $(sqlite3_wasm_extra_init.c)
+sqlite3-wasmfs.cfiles = $(sqlite3-wasm.cfiles)
 # sqlite3-wasm.o vs sqlite3-wasm.c: building against the latter
 # (predictably) results in a slightly faster binary. We're close
 # enough to the target speed requirements that the 500ms makes a
@@ -852,9 +853,9 @@ if [ x1 = x$(1) ]; then \
 fi
 endef
 
-sqlite3.js := $(dir.dout)/sqlite3.js
-sqlite3.mjs := $(dir.dout)/sqlite3.mjs
-EXPORTED_FUNCTIONS.fiddle := $(dir.tmp)/EXPORTED_FUNCTIONS.fiddle
+sqlite3.js = $(dir.dout)/sqlite3.js
+sqlite3.mjs = $(dir.dout)/sqlite3.mjs
+EXPORTED_FUNCTIONS.fiddle = $(dir.tmp)/EXPORTED_FUNCTIONS.fiddle
 
 # The various -D... values used by *.c-pp.js include:
 #
@@ -907,7 +908,7 @@ ifneq (1,$(MAKING_CLEAN))
 #
 # Maintenance note: the various $(c-pp.D.XYZ) vars are defined in this
 # step.
-bin.mkwb := ./mkwasmbuilds
+bin.mkwb = ./mkwasmbuilds
 $(bin.mkwb): $(bin.mkwb).c $(MAKEFILE)
        $(CC) -o $@ $<
 DISTCLEAN_FILES += $(bin.mkwb)
@@ -967,11 +968,11 @@ q: quick
 ########################################################################
 # batch-runner.js is part of one of the test apps which reads in SQL
 # dumps generated by $(speedtest1) and executes them.
-dir.sql := sql
-speedtest1 := ../../speedtest1
-speedtest1.c := ../../test/speedtest1.c
-speedtest1.sql := $(dir.sql)/speedtest1.sql
-speedtest1.cliflags := --size 10 --big-transactions
+dir.sql = sql
+speedtest1 = ../../speedtest1
+speedtest1.c = ../../test/speedtest1.c
+speedtest1.sql = $(dir.sql)/speedtest1.sql
+speedtest1.cliflags = --size 10 --big-transactions
 $(speedtest1):
        $(MAKE) -C ../.. speedtest1
 $(speedtest1.sql): $(speedtest1) $(MAKEFILE)
@@ -992,8 +993,8 @@ batch: batch-runner.list
 #
 # emcc.speedtest1.common = emcc flags used by multiple builds of speedtest1
 # emcc.speedtest1 = emcc flags used by main build of speedtest1
-emcc.speedtest1.common := $(emcc_opt_full)
-emcc.speedtest1 := -I. -I$(dir $(sqlite3.canonical.c))
+emcc.speedtest1.common = $(emcc_opt_full)
+emcc.speedtest1 = -I. -I$(dir $(sqlite3.canonical.c))
 emcc.speedtest1 += -sENVIRONMENT=web
 emcc.speedtest1 += -sALLOW_MEMORY_GROWTH
 emcc.speedtest1 += -sINITIAL_MEMORY=$(emcc.INITIAL_MEMORY.$(emcc.INITIAL_MEMORY))
@@ -1006,7 +1007,7 @@ emcc.speedtest1.common += -Wno-limited-postlink-optimizations
 emcc.speedtest1.common += -Wno-unused-main
 # ^^^^ -Wno-unused-main is for emcc 3.1.52+. speedtest1 has a wasm_main() which is
 # exported and called by the JS code.
-EXPORTED_FUNCTIONS.speedtest1 := $(abspath $(dir.tmp)/EXPORTED_FUNCTIONS.speedtest1)
+EXPORTED_FUNCTIONS.speedtest1 = $(abspath $(dir.tmp)/EXPORTED_FUNCTIONS.speedtest1)
 emcc.speedtest1.common += -sSTACK_SIZE=512KB
 emcc.speedtest1.common += -sEXPORTED_FUNCTIONS=@$(EXPORTED_FUNCTIONS.speedtest1)
 emcc.speedtest1.common += $(emcc.exportedRuntimeMethods)
@@ -1015,8 +1016,8 @@ emcc.speedtest1.common += -sDYNAMIC_EXECUTION=0
 emcc.speedtest1.common += --minify 0
 emcc.speedtest1.common += -sEXPORT_NAME=$(sqlite3.js.init-func)
 emcc.speedtest1.common += -sWASM_BIGINT=$(emcc.WASM_BIGINT)
-speedtest1.exit-runtime0 := -sEXIT_RUNTIME=0
-speedtest1.exit-runtime1 := -sEXIT_RUNTIME=1
+speedtest1.exit-runtime0 = -sEXIT_RUNTIME=0
+speedtest1.exit-runtime1 = -sEXIT_RUNTIME=1
 # Re -sEXIT_RUNTIME=1 vs 0: if it's 1 and speedtest1 crashes, we get
 # this error from emscripten:
 #
@@ -1037,10 +1038,10 @@ speedtest1.exit-runtime1 := -sEXIT_RUNTIME=1
 $(EXPORTED_FUNCTIONS.speedtest1): $(MKDIR.bld) $(EXPORTED_FUNCTIONS.api.core)
        @echo "Making $@ ..."
        @{ echo _wasm_main; cat $(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)
+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)
 $(speedtest1.js): $(MAKEFILE) $(speedtest1.cfiles) \
     $(pre-post-speedtest1-vanilla.deps) \
     $(EXPORTED_FUNCTIONS.speedtest1)
@@ -1098,7 +1099,7 @@ quick: $(sqlite3.js)
 # painful.
 
 .PHONY: o0 o1 o2 o3 os oz
-emcc-opt-extra :=
+emcc-opt-extra =
 #ifeq (1,$(wasm-bare-bones))
 #emcc-opt-extra += -flto
 # ^^^^ -flto can have a considerably performance boost at -O0 but
@@ -1126,7 +1127,7 @@ oz: clean
 # Sub-makes...
 
 # sqlite.org/fiddle application...
-include fiddle.make
+include $(MAKEFILE.fiddle)
 
 # Only add wasmfs if wasmfs.enable=1 or we're running (dist)clean
 ifneq (,$(filter wasmfs,$(MAKECMDGOALS)))
@@ -1144,16 +1145,17 @@ ifeq (1,$(wasmfs.enable))
 # little benefit.
 #
 ########################################################################
-# Some platforms do not support the WASMFS build. Raspberry Pi OS is one
-# of them. As such platforms are discovered, add their (uname -m) name
-# to PLATFORMS_WITH_NO_WASMFS to exclude the wasmfs build parts.
-PLATFORMS_WITH_NO_WASMFS := aarch64 # add any others here
-THIS_ARCH := $(shell /usr/bin/uname -m)
+# Some platforms do not support the WASMFS build. Raspberry Pi OS is
+# one of them (or was when that comment was initially written). As
+# such platforms are discovered, add their (uname -m) name to
+# PLATFORMS_WITH_NO_WASMFS to exclude the wasmfs build parts.
+PLATFORMS_WITH_NO_WASMFS = aarch64 # add any others here
+THIS_ARCH = $(shell /usr/bin/uname -m)
 ifneq (,$(filter $(THIS_ARCH),$(PLATFORMS_WITH_NO_WASMFS)))
 $(info This platform does not support the WASMFS build.)
-HAVE_WASMFS := 0
+HAVE_WASMFS = 0
 else
-HAVE_WASMFS := 1
+HAVE_WASMFS = 1
 include wasmfs.make
 endif
 endif
@@ -1191,7 +1193,7 @@ update-docs:
        echo "Pass wasm.docs.home=/path/to/wasm/docs/checkout or edit this makefile to suit."; \
        exit 127
 else
-wasm.docs.jswasm := $(wasm.docs.home)/jswasm
+wasm.docs.jswasm = $(wasm.docs.home)/jswasm
 update-docs: $(bin.stripccomments) $(sqlite3.js) $(sqlite3.wasm)
        @echo "Copying files to the /wasm docs. Be sure to use an -Oz build for this!"
        cp $(sqlite3.wasm) $(wasm.docs.jswasm)/.
index f30baac3f1ad5d9484271728c004b3a0bb6fed28..4c8d7893b3ac3debdc8d3317dde76f974969a89d 100644 (file)
@@ -1,15 +1,16 @@
-# Gets filtered by the configure script
+# config.make.in gets filtered by the top-most configure script to
+# create config.make.
 bin.bash = @BIN_BASH@
 bin.emcc = @EMCC_WRAPPER@
 bin.wasm-strip = @BIN_WASM_STRIP@
 bin.wasm-opt = @BIN_WASM_OPT@
 
-SHELL := $(bin.bash)
+SHELL = $(bin.bash)
 
 # The following overrides can be uncommented to test various
 # validation and if/else branches the makefile code:
 #
-#bin.bash :=
-#bin.emcc :=
-#bin.wasm-strip :=
-#bin.wasm-opt :=
+#bin.bash =
+#bin.emcc =
+#bin.wasm-strip =
+#bin.wasm-opt =
index 60699ff5c0fe55dff43b2b3e80d67aa0db69d7fb..176972fd705fa37ce374f177be963ddd4bebb264 100644 (file)
@@ -11,7 +11,7 @@
 # distinctly different zip file and top directory name to distinguish
 # them from release builds.
 #######################################################################
-MAKEFILE.dist := $(lastword $(MAKEFILE_LIST))
+MAKEFILE.dist = $(lastword $(MAKEFILE_LIST))
 
 ########################################################################
 # Chicken/egg situation: we need $(bin.version-info) to get the
@@ -20,16 +20,16 @@ MAKEFILE.dist := $(lastword $(MAKEFILE_LIST))
 # have to use a temporary name for the archive until we can get
 # that binary built.
 ifeq (1,$(SQLITE_C_IS_SEE))
-dist-name-extra := -see
+dist-name-extra = -see
 else
-dist-name-extra :=
+dist-name-extra =
 endif
 ifeq (,$(filter snapshot,$(MAKECMDGOALS)))
-dist-name-prefix := sqlite-wasm$(dist-name-extra)
+dist-name-prefix = sqlite-wasm$(dist-name-extra)
 else
-dist-name-prefix := sqlite-wasm$(dist-name-extra)-snapshot-$(shell /usr/bin/date +%Y%m%d)
+dist-name-prefix = sqlite-wasm$(dist-name-extra)-snapshot-$(shell /usr/bin/date +%Y%m%d)
 endif
-dist-name := $(dist-name-prefix)-TEMP
+dist-name = $(dist-name-prefix)-TEMP
 
 ########################################################################
 # dist.build must be the name of a target which triggers the build of
@@ -45,10 +45,10 @@ dist-name := $(dist-name-prefix)-TEMP
 # reason not to.
 dist.build ?= oz
 
-dist-dir.top := $(dist-name)
-dist-dir.jswasm := $(dist-dir.top)/$(notdir $(dir.dout))
-dist-dir.common := $(dist-dir.top)/common
-dist.top.extras := \
+dist-dir.top = $(dist-name)
+dist-dir.jswasm = $(dist-dir.top)/$(notdir $(dir.dout))
+dist-dir.common = $(dist-dir.top)/common
+dist.top.extras = \
     demo-123.html demo-123-worker.html demo-123.js \
     tester1.html tester1-worker.html tester1-esm.html \
     tester1.js tester1.mjs \
@@ -56,9 +56,9 @@ dist.top.extras := \
     demo-worker1.html demo-worker1.js \
     demo-worker1-promiser.html demo-worker1-promiser.js \
     demo-worker1-promiser-esm.html demo-worker1-promiser.mjs
-dist.jswasm.extras := $(sqlite3.wasm) \
+dist.jswasm.extras = $(sqlite3.wasm) \
   $(sqlite3-api.ext.jses)
-dist.common.extras := \
+dist.common.extras = \
     $(wildcard $(dir.common)/*.css) \
     $(dir.common)/SqliteTestUtil.js
 
@@ -77,12 +77,12 @@ $(bin.stripccomments) $(2) < $(1) > $(dist-dir.jswasm)/$(notdir $(1)) || exit;
 endef
 # STRIP_K1.js = list of JS files which need to be passed through
 # $(bin.stripcomments) with a single -k flag.
-STRIP_K1.js := $(sqlite3-worker1.js) $(sqlite3-worker1-promiser.js) \
+STRIP_K1.js = $(sqlite3-worker1.js) $(sqlite3-worker1-promiser.js) \
   $(sqlite3-worker1-bundler-friendly.js) \
   $(sqlite3-api.ext.jses)
 # STRIP_K2.js = list of JS files which need to be passed through
 # $(bin.stripcomments) with two -k flags.
-STRIP_K2.js := $(sqlite3.js) $(sqlite3.mjs) \
+STRIP_K2.js = $(sqlite3.js) $(sqlite3.mjs) \
   $(sqlite3-bundler-friendly.mjs) $(sqlite3-node.mjs)
 ########################################################################
 # dist: create the end-user deliverable archive.
@@ -104,8 +104,8 @@ STRIP_K2.js := $(sqlite3.js) $(sqlite3.mjs) \
 # to know that it's in a regex or string literal. Because of that,
 # comment-stripping is currently disabled, which means the builds will
 # be significantly larger than before.
-#apply_comment_stripper := false
-apply_comment_stripper := true
+#apply_comment_stripper = false
+apply_comment_stripper = true
 # ^^^ shell command true or false
 dist: \
     $(bin.stripccomments) $(bin.version-info) \
index 5b1eb5e778f92f9c549dea5da7463464ae79d5e7..0cd6b4d367b34e88bd1ff49935ddaa101b6c4fdf 100644 (file)
@@ -3,13 +3,12 @@
 #
 # Intended to include'd by ./GNUmakefile.
 #######################################################################
-MAKEFILE.fiddle := $(lastword $(MAKEFILE_LIST))
 
 ########################################################################
 # shell.c and its build flags...
 ifneq (1,$(MAKING_CLEAN))
-  make-np-0 := make -C  $(dir.top) -n -p
-  make-np-1 := sed -e 's/(TOP)/(dir.top)/g'
+  make-np-0 = make -C  $(dir.top) -n -p
+  make-np-1 = sed -e 's/(TOP)/(dir.top)/g'
   # Extract SHELL_OPT and SHELL_DEP from the top-most makefile and import
   # them as vars here...
   $(eval $(shell $(make-np-0) | grep -e '^SHELL_OPT ' | $(make-np-1)))
@@ -27,7 +26,7 @@ endif
 # /shell.c
 ########################################################################
 
-EXPORTED_FUNCTIONS.fiddle := $(dir.tmp)/EXPORTED_FUNCTIONS.fiddle
+EXPORTED_FUNCTIONS.fiddle = $(dir.tmp)/EXPORTED_FUNCTIONS.fiddle
 fiddle.emcc-flags = \
   $(emcc.cflags) $(emcc_opt_full) \
   --minify 0 \
@@ -52,12 +51,12 @@ fiddle.emcc-flags = \
 
 # Flags specifically for debug builds of fiddle. Performance suffers
 # greatly in debug builds.
-fiddle.emcc-flags.debug := $(fiddle.emcc-flags) \
+fiddle.emcc-flags.debug = $(fiddle.emcc-flags) \
   -DSQLITE_DEBUG \
   -DSQLITE_ENABLE_SELECTTRACE \
   -DSQLITE_ENABLE_WHERETRACE
 
-fiddle.EXPORTED_FUNCTIONS.in := \
+fiddle.EXPORTED_FUNCTIONS.in = \
     EXPORTED_FUNCTIONS.fiddle.in \
     $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-core \
     $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-extras
@@ -66,7 +65,7 @@ $(EXPORTED_FUNCTIONS.fiddle): $(MKDIR.bld) $(fiddle.EXPORTED_FUNCTIONS.in) \
     $(MAKEFILE.fiddle)
        sort -u $(fiddle.EXPORTED_FUNCTIONS.in) > $@
 
-fiddle.cses := $(dir.top)/shell.c $(sqlite3-wasm.c)
+fiddle.cses = $(dir.top)/shell.c $(sqlite3-wasm.c)
 
 fiddle: $(fiddle-module.js) $(fiddle-module.js.debug)
 fiddle.debug: $(fiddle-module.js.debug)
@@ -83,10 +82,9 @@ clean-fiddle:
 all: fiddle
 
 ########################################################################
-# fiddle_remote is the remote destination for the fiddle app. It
-# must be a [user@]HOST:/path for rsync.
-# Note that the target "should probably" contain a symlink of
-# index.html -> fiddle.html.
+# fiddle_remote is the remote destination for the fiddle app. It must
+# be a [user@]HOST:/path for rsync.  The target "should probably"
+# contain a symlink of index.html -> fiddle.html.
 fiddle_remote ?=
 ifeq (,$(fiddle_remote))
 ifneq (,$(wildcard /home/stephan))
@@ -153,11 +151,6 @@ push-fiddle: fiddle
 #  because certain execution environments disallow those constructs.
 #  This flag is not strictly necessary, however.
 #
-# -sWASM_BIGINT is UNTESTED but "should" allow the int64-using C APIs
-#  to work with JS/wasm, insofar as the JS environment supports the
-#  BigInt type. That support requires an extremely recent browser:
-#  Safari didn't get that support until late 2020.
-#
 # --no-entry: for compiling library code with no main(). If this is
 #  not supplied and the code has a main(), it is called as part of the
 #  module init process. Note that main() is #if'd out of shell.c
@@ -179,14 +172,15 @@ push-fiddle: fiddle
 #  minification makes little difference in terms of overall
 #  distributable size.
 #
-# --minify 0: disables minification of the generated JS code,
-#  regardless of optimization level. Minification of the JS has
-#  minimal overall effect in the larger scheme of things and results
-#  in JS files which can neither be edited nor viewed as text files in
-#  Fossil (which flags them as binary because of their extreme line
-#  lengths). Interestingly, whether or not the comments in the
-#  generated JS file get stripped is unaffected by this setting and
-#  depends entirely on the optimization level. Higher optimization
+# --minify 0: supposedly disables minification of the generated JS
+#  code, regardless of optimization level, but that's not quite true:
+#  search the main makefile for wasm-strip for details. Minification
+#  of the JS has minimal overall effect in the larger scheme of things
+#  and results in JS files which can neither be edited nor viewed as
+#  text files in Fossil (which flags them as binary because of their
+#  extreme line lengths). Interestingly, whether or not the comments
+#  in the generated JS file get stripped is unaffected by this setting
+#  and depends entirely on the optimization level. Higher optimization
 #  levels reduce the size of the JS considerably even without
 #  minification.
 #
index 6b09c3456cc1fbd3d0f219728ca13c8daa88769f..d70de042e65cee43507758bf923286caea58455e 100644 (file)
@@ -84,8 +84,8 @@ struct BuildDef {
   const char *zMode;      /* Name from JS_BUILD_MODES */
   int flags;              /* Flags from LibModeFlags */
   const char *zJsOut;     /* Name of generated sqlite3.js/.mjs */
-  /* TODO: dynamically determine zApiJsOut and zJsOut based on zName, zMode,
-     and flags. */
+  /* TODO: dynamically determine zJsOut based on zName, zMode, and
+     flags. */
   const char *zCmppD;     /* Extra -D... flags for c-pp */
   const char *zEmcc;      /* Extra flags for emcc */
 };
@@ -94,7 +94,10 @@ typedef struct BuildDef BuildDef;
 /*
 ** The set of WASM builds for the library (as opposed to the apps
 ** (fiddle, speedtest1)). This array must end with an empty sentinel
-** entry, but their order is otherwise not significant.
+** entry. Their order is mostly insignificant, but some makefile vars
+** used by some builds are set up by prior builds. Because of that,
+** the (sqlite3, vanilla), (sqlite3, esm), and (sqlite3,
+** bundler-friendly) builds should be defined first (in that order).
 */
 const BuildDef aBuildDefs[] = {
   {/* Core build */
@@ -136,8 +139,14 @@ static void mk_prologue(void){
   /* A 0-terminated list of makefile vars which we expect to have been
   ** set up by this point in the build process. */
   char const * aRequiredVars[] = {
+    "dir.top",
     "dir.api", "dir.dout", "dir.tmp",
     "sqlite3-license-version.js",
+    "MAKEFILE", "MAKEFILE_LIST",
+    /* Fiddle... */
+    "dir.fiddle", "dir.fiddle-debug",
+    "MAKEFILE.fiddle",
+    "EXPORTED_FUNCTIONS.fiddle",
     /*"just-testing",*/
     0
   };
@@ -239,7 +248,6 @@ static void mk_prologue(void){
 */
 static void mk_pre_post(const char *zName  /* build name */,
                         const char *zMode  /* build mode */,
-                        int flags          /* LIBMODE_... mask */,
                         const char *zCmppD /* optional -D flags for c-pp for the
                                            ** --pre/--post-js files. */){
 /* Very common printf() args combo. */
@@ -307,13 +315,13 @@ static void mk_pre_post(const char *zName  /* build name */,
 
 /*
 ** Emits rules for the fiddle builds.
-**
 */
 static void mk_fiddle(void){
   int i = 0;
 
-  mk_pre_post("fiddle-module","vanilla", 0, 0);
+  mk_pre_post("fiddle-module","vanilla", 0);
   for( ; i < 2; ++i ){
+    /* 0==normal, 1==debug */
     const char *zTail = i ? ".debug" : "";
     const char *zDir = i ? "$(dir.fiddle-debug)" : "$(dir.fiddle)";
 
@@ -366,14 +374,14 @@ static void mk_lib_mode(const BuildDef * pB){
   assert( pB->zName );
   assert( pB->zMode );
   assert( pB->zJsOut );
-#define MT(X) ((X) ? (X) : "")
 /* Very common printf() args combo. */
 #define zNM pB->zName, pB->zMode
 
   pf("%s# Begin build [%s-%s]. flags=0x%02x\n", zBanner, zNM, pB->flags);
-  pf("# zJsOut=%s\n# zCmppD=%s\n", pB->zJsOut, MT(pB->zCmppD));
+  pf("# zJsOut=%s\n# zCmppD=%s\n", pB->zJsOut,
+     pB->zCmppD ? pB->zCmppD : "<none>");
   pf("$(info Setting up build [%s-%s]: %s)\n", zNM, pB->zJsOut);
-  mk_pre_post(zNM, pB->flags, pB->zCmppD);
+  mk_pre_post(zNM, pB->zCmppD);
   pf("\nemcc.flags.%s.%s ?=\n", zNM);
   if( pB->zEmcc && pB->zEmcc[0] ){
     pf("emcc.flags.%s.%s += %s\n", zNM, pB->zEmcc);
@@ -453,7 +461,6 @@ static void mk_lib_mode(const BuildDef * pB){
     pf("all: %s\n", pB->zJsOut);
   }
   pf("# End build [%s-%s]%s", zNM, zBanner);
-#undef MT
 #undef zNM
 }
 
@@ -466,8 +473,8 @@ int main(void){
     mk_lib_mode( pB );
   }
   mk_fiddle();
-  mk_pre_post("speedtest1","vanilla", 0, 0);
-  mk_pre_post("speedtest1-wasmfs","esm", 0,
+  mk_pre_post("speedtest1","vanilla", 0);
+  mk_pre_post("speedtest1-wasmfs","esm",
               "$(c-pp.D.sqlite3-bundler-friendly) -Dwasmfs");
   return rc;
 }
index 3bad62006fd66e198a971fa1c53819dd68b8dbfc..a841c7fa07a74d709fa4a461c7d096d06b2e319d 100644 (file)
     </figure>
     <div class="emscripten" id="module-status">Downloading...</div>
     <div class="emscripten">
-      <progress value="0" max="100" id="module-progress" hidden='1'></progress>  
+      <progress value="0" max="100" id="module-progress" hidden='1'></progress>
     </div><!-- /emscripten bits -->
     <div class='warning'>This page starts running the main exe when it loads, which will
-      block the UI until it finishes! Adding UI controls to manually configure and start it
-      are TODO.</div>
+      block the UI until it finishes!</div>
     </div>
     <div class='warning'>Achtung: running it with the dev tools open may
       <em>drastically</em> slow it down. For faster results, keep the dev
             argv.push("--vfs", vfs);
             log2('',"Using VFS:",vfs);
             if('kvvfs' === vfs){
-                forceSize = 2 /* 5 uses approx. 4.96mb */;
+                forceSize = 2 /* >2 is too big as of mid-2025 */;
                 dbFile = 'session';
                 log2('warning',"kvvfs VFS: forcing --size",forceSize,
                      "and filename '"+dbFile+"'.");
index c4515876fd218d605c700f731b56d6335725b8e3..19086d4b03eb7305c9ed4cfadb876f55a4e5228f 100644 (file)
@@ -22,14 +22,14 @@ sqlite3-wasmfs.wasm   = $(dir.wasmfs)/sqlite3-wasmfs.wasm
 
 ########################################################################
 # emcc flags for .c/.o.
-cflags.sqlite3-wasmfs :=
+cflags.sqlite3-wasmfs =
 cflags.sqlite3-wasmfs += -std=c99 -fPIC
 cflags.sqlite3-wasmfs += -pthread
 cflags.sqlite3-wasmfs += -DSQLITE_ENABLE_WASMFS
 
 ########################################################################
 # emcc flags specific to building the final .js/.wasm file...
-emcc.flags.sqlite3-wasmfs :=
+emcc.flags.sqlite3-wasmfs =
 emcc.flags.sqlite3-wasmfs += \
   -sEXPORTED_RUNTIME_METHODS=wasmMemory
                           # wasmMemory ==> for -sIMPORTED_MEMORY
@@ -53,7 +53,7 @@ emcc.flags.sqlite3-wasmfs += -sALLOW_MEMORY_GROWTH=0
 #   USE_PTHREADS + ALLOW_MEMORY_GROWTH may run non-wasm code slowly,
 #   see https://github.com/WebAssembly/design/issues/1271 [-Wpthreads-mem-growth]
 # And, indeed, it runs slowly if memory is permitted to grow.
-#emcc.flags.sqlite3-wasmfs.vanilla :=
+#emcc.flags.sqlite3-wasmfs.vanilla =
 #emcc.flags.sqlite3-wasmfs.esm = -sEXPORT_ES6 -sUSE_ES6_IMPORT_META
 $(sqlite3-wasmfs.js) $(dir.wasmfs)/sqlite3-wasmfs.mjs: $(MAKEFILE.wasmfs)
 ########################################################################
index 29b99cbbafaa04ef7bbb8c0501c7ff8021499c37..9bb70c6c2d3b9c37a5bfc7e02d8c345baeb42b82 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C wasm:\sremove\ssome\sextraneous\slevels\sof\smakefile\svar\sand\sfix\sthe\s(unsupported)\swasmfs\sspeedtest1\sbuild\sto\saccount\sfor\svar\srenaming\swhich\shappened\slong\sbefore\sthis.
-D 2025-07-16T13:22:38.693
+C In\sthe\swasm\smakefiles,\sreplace\sX:=Y\swith\sX=Y\sbecause\s:=\shas\sdifferent\ssemantics\sdepending\son\sthe\smake\simpl\sand\sits\suse\sis\sarguably\sa\sbad\smuscle-memory\shabit\sworth\sbreaking.\sThese\smakefiles\sare\svery\sspecifically\sfor\sGNU\smake,\sbut\slong-term\sit\swould\sbe\snice\sto\seliminate\sthat\srequirement.
+D 2025-07-16T14:51:23.528
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -622,7 +622,7 @@ F ext/session/sqlite3session.c 19e14bcca2fbc63a8022ffd708ea6e6986c4003a1e9bbca9b
 F ext/session/sqlite3session.h b81e8536ce4b83babafd700f4ff67017804b6c1d71df963b30d3972958e7f4a7
 F ext/session/test_session.c 8766b5973a6323934cb51248f621c3dc87ad2a98f023c3cc280d79e7d78d36fb
 F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
-F ext/wasm/GNUmakefile 472720819d2cde9d7d4c957f2bfb8ebb0193fa75dca10a5c2ab0396ba0ef926b
+F ext/wasm/GNUmakefile b9217715b615bfe51a8c13f6fa9889fb7b734e0f26bffc656ff52652e9906cc1
 F ext/wasm/README-dist.txt f01081a850ce38a56706af6b481e3a7878e24e42b314cfcd4b129f0f8427066a
 F ext/wasm/README.md b89605f65661cf35bf034ff6d43e448cc169b8017fc105d498e33b81218b482c
 F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
@@ -663,7 +663,7 @@ F ext/wasm/common/SqliteTestUtil.js 7adaeffef757d8708418dc9190f72df22367b5318317
 F ext/wasm/common/emscripten.css 11bd104b6c0d597c67d40cc8ecc0a60dae2b965151e3b6a37fa5708bac3acd15
 F ext/wasm/common/testing.css e97549bab24126c24e0daabfe2de9bb478fb0a69fdb2ddd0a73a992c091aad6f
 F ext/wasm/common/whwasmutil.js 5e7fe4a2547831e003356c201ca28d9a0d6a19ab1fe2c8f63f82464fecd2cef7
-F ext/wasm/config.make.in 4bc43443f768a61efd43cf995a5e618f58ac9afc0936706014193537d82c41cb
+F ext/wasm/config.make.in c424ae1cc3c89274520ad312509d36c4daa34a3fce5d0c688e5f8f4365e1049a
 F ext/wasm/demo-123-worker.html a0b58d9caef098a626a1a1db567076fca4245e8d60ba94557ede8684350a81ed
 F ext/wasm/demo-123.html 8c70a412ce386bd3796534257935eb1e3ea5c581e5d5aea0490b8232e570a508
 F ext/wasm/demo-123.js c7b3cca50c55841c381a9ca4f9396e5bbdc6114273d0b10a43e378e32e7be5bf
@@ -673,9 +673,9 @@ F ext/wasm/demo-worker1-promiser.c-pp.html 635cf90685805e21772a5f7a35d1ace80f98a
 F ext/wasm/demo-worker1-promiser.c-pp.js af168699d3cab1c27ad2364ebe06cd49db300bdbf404e23b00d5742ed52816ba
 F ext/wasm/demo-worker1.html 2c178c1890a2beb5a5fecb1453e796d067a4b8d3d2a04d65ca2eb1ab2c68ef5d
 F ext/wasm/demo-worker1.js 08720227e98fa5b44761cf6e219269cee3e9dd0421d8d91459535da776950314
-F ext/wasm/dist.make 92ef4ffe33022a50f92d602acabad10bd8dd91759f3eb7df27fc6d7d37072b96
+F ext/wasm/dist.make c29018b4db479a4c170569393e5399f0625446123a7eb6ffb0677495292bb954
 F ext/wasm/example_extra_init.c 2347cd69d19d839ef4e5e77b7855103a7fe3ef2af86f2e8c95839afd8b05862f
-F ext/wasm/fiddle.make 2df87f12bcbae2c966c2cef34ce71bb1584c440c69e14ca6d32f443d8d550dc5
+F ext/wasm/fiddle.make 88885c5a2102e1516d0fb89e0cdb023e5b5d73baff9a8ebf97a657f6fb63668b
 F ext/wasm/fiddle/fiddle-worker.js 850e66fce39b89d59e161d1abac43a181a4caa89ddeea162765d660277cd84ce
 F ext/wasm/fiddle/fiddle.js 2a2f27b4be2674f501fff61c4a09e44dcf2295731a26b5c28e439f3a573bd269
 F ext/wasm/fiddle/index.html 7fcfb221165183bef0e05d5af9ceb79b527e799b1708ab05de0ec0eaebd5b7bf
@@ -683,7 +683,7 @@ F ext/wasm/index-dist.html 56132399702b15d70c474c3f1952541e25cb0922942868f70daf1
 F ext/wasm/index.html bcaa00eca521b372a6a62c7e7b17a870b0fcdf3e418a5921df1fd61e5344080d
 F ext/wasm/jaccwabyt/jaccwabyt.js 6e4f26d0edb5c2e7d381b7eff1924832a040a12274afab2d1e1789027e9f6c5c
 F ext/wasm/jaccwabyt/jaccwabyt.md 1128e3563e7eff90b5a373395251fc76cb32386fad1fea6075b0f34a8f1b9bdf
-F ext/wasm/mkwasmbuilds.c 5cf96c716367bb5958fd96caa924aca053df8d84081dd46092dd351d1af6ae90
+F ext/wasm/mkwasmbuilds.c f5c143c10aeb7a519f7c08f98f90927f43c1991af3373bc6f80d8631a58acd42
 F ext/wasm/module-symbols.html dc476b403369b26a1a23773e13b80f41b9a49f0825e81435fe3600a7cfbbe337
 F ext/wasm/scratchpad-wasmfs.html a3d7388f3c4b263676b58b526846e9d02dfcb4014ff29d3a5040935286af5b96
 F ext/wasm/scratchpad-wasmfs.mjs 66034b9256b218de59248aad796760a1584c1dd842231505895eff00dbd57c63
@@ -691,7 +691,7 @@ F ext/wasm/speedtest1-wasmfs.html 0e9d335a9b5b5fafe6e1bc8dc0f0ca7e22e6eb916682a2
 F ext/wasm/speedtest1-wasmfs.mjs c77c7231338ed5c0e1ce16aa29106df8e5b5cf11a48319c49433490a8d3ded30
 F ext/wasm/speedtest1-worker.html d24d1e06caf3dcd83430c8c3d87761ff7555fd06eaeaf2fc02ce49cf45f0d032
 F ext/wasm/speedtest1-worker.js 95e549e13a4d35863a9a7fc66122b5f546c0130d3be7b06dfcc556eb66d24bde
-F ext/wasm/speedtest1.html 217bf15d43065634a27a06dbd5c9a320f6da9932dbcdfc963d482bc2f99dbea9
+F ext/wasm/speedtest1.html e2a0e0bd12243ca34b11235bf9f3c229f4574ea1125f2ecf2bf0589853d6f9c8
 F ext/wasm/split-speedtest1-script.sh a3e271938d4d14ee49105eb05567c6a69ba4c1f1293583ad5af0cd3a3779e205 x
 F ext/wasm/sql/000-mandelbrot.sql 775337a4b80938ac8146aedf88808282f04d02d983d82675bd63d9c2d97a15f0
 F ext/wasm/sql/001-sudoku.sql 35b7cb7239ba5d5f193bc05ec379bcf66891bce6f2a5b3879f2f78d0917299b5
@@ -708,7 +708,7 @@ F ext/wasm/tests/opfs/sahpool/digest.html 206d08a34dc8bd570b2581d3d9ab3ecad3201b
 F ext/wasm/tests/opfs/sahpool/index.html be736567fd92d3ecb9754c145755037cbbd2bca01385e2732294b53f4c842328
 F ext/wasm/tests/opfs/sahpool/sahpool-pausing.js f264925cfc82155de38cecb3d204c36e0f6991460fff0cb7c15079454679a4e2
 F ext/wasm/tests/opfs/sahpool/sahpool-worker.js bd25a43fc2ab2d1bafd8f2854ad3943ef673f7c3be03e95ecf1612ff6e8e2a61
-F ext/wasm/wasmfs.make 4f6a679c06b45039a4b0456a546e95c4f24bf6d33455073bb055cc17b6739550
+F ext/wasm/wasmfs.make d9da19b6b4b438a7d4b932093820882532802eb929f4320e8f032a2b722fcd67
 F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0
 F main.mk a5d698cf8d38e4eb42a89f08a9521906b24f4acac61bbafa56d72cd9b39617b6
 F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
@@ -2213,8 +2213,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P a8ed16989dcd324bd9caa09aec7979249deaf59ca13bc377379ddd83c53379cd
-R 9ff9d7c107dd129efe8469b678cd73d7
+P 35b2315343e22ca12c6ee3f5be8741eba889bb6461e08fad0a8ae7db033319cb
+R 1b41f3a033df88a8072a18a3668f851c
 U stephan
-Z 9b2f15ac0469aa2bbb0879fb5bc3ce42
+Z af3ba49056e2f127c99be56e513ada3c
 # Remove this line to create a well-formed Fossil manifest.
index b205abb7eb1a0c1ce1ee3393a61fa5b61169256d..662d4849d0013fd223fe2851827e6c441842691d 100644 (file)
@@ -1 +1 @@
-35b2315343e22ca12c6ee3f5be8741eba889bb6461e08fad0a8ae7db033319cb
+d4203311a2f39189ed8f30d519468aed8983af7772a5b247e7557d3e1936064e