release: oz
# Emscripten SDK home dir and related binaries...
-EMSDK_HOME ?= $(word 1,$(wildcard $(HOME)/src/emsdk $(HOME)/emsdk))
-emcc.bin ?= $(word 1,$(wildcard $(shell which emcc) $(EMSDK_HOME)/upstream/emscripten/emcc))
+EMSDK_HOME ?= $(word 1,$(wildcard $(HOME)/emsdk $(HOME)/src/emsdk))
+emcc.bin ?= $(word 1,$(wildcard $(EMSDK_HOME)/upstream/emscripten/emcc) $(shell which emcc))
ifeq (,$(emcc.bin))
$(error Cannot find emcc.)
endif
$(info WARNING: info after compilation, using wasm-strip, to shrink the wasm file.)
$(info WARNING: wasm-strip was not found in the PATH so we cannot strip those.)
$(info WARNING: If this build uses any optimization level higher than -O1 then)
- $(info WARNING: the ***resulting WASM binary WILL NOT BE USABLE***.)
+ $(info WARNING: the ***resulting JS code WILL NOT BE USABLE***.)
$(info WARNING: wasm-strip is part of the wabt package:)
$(info WARNING: https://github.com/WebAssembly/wabt)
$(info WARNING: on Ubuntu-like systems it can be installed with:)
dir.fiddle := fiddle
dir.tool := $(dir.top)/tool
########################################################################
+# dir.dout = output dir for deliverables.
+#
# MAINTENANCE REMINDER: the output .js and .wasm files of emcc must be
# in _this_ dir, rather than a subdir, or else parts of the generated
# code get confused and cannot load property. Specifically, when X.js
# We unfortunately have no way, from Worker-initiated code, to
# automatically resolve the path from X.js to X.wasm.
#
-# In case we ever find a solution to that which does not require
-# duplicating the X.js files only to swap out the path to X.wasm for
-# the loading-from-worker case...
-#
-# dir.dout = output dir for deliverables.
+# We have an "only slightly unsightly" solution for our main builds
+# but it does not work for the WASMFS builds, so those builds have to
+# be built to _this_ directory and can only run when the client app is
+# loaded from the same directory.
dir.dout := $(dir.wasm)/jswasm
# dir.tmp = output dir for intermediary build files, as opposed to
# end-user deliverables.
# end speedtest1.js
########################################################################
-########################################################################
-# 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 ?=
-ifeq (,$(fiddle_remote))
-ifneq (,$(wildcard /home/stephan))
- fiddle_remote = wh:www/wh/sqlite3/.
-else ifneq (,$(wildcard /home/drh))
- #fiddle_remote = if appropriate, add that user@host:/path here
-endif
-endif
-$(fiddle_files): default
-push-fiddle: $(fiddle_files)
- @if [ x = "x$(fiddle_remote)" ]; then \
- echo "fiddle_remote must be a [user@]HOST:/path for rsync"; \
- exit 1; \
- fi
- rsync -va fiddle/ $(fiddle_remote)
-# end fiddle remote push
-########################################################################
-
########################################################################
# Convenience rules to rebuild with various -Ox levels. Much
# experimentation shows -O2 to be the clear winner in terms of speed.
# wasmfs build disabled 2022-10-19 per /chat
# discussion. OPFS-over-wasmfs was initially a stopgap measure and a
# convenient point of comparison for the OPFS sqlite3_vfs's
-# performance, but it currently doubles our deliverables for very
-# little, if any, benefit.
+# performance, but it currently doubles our deliverables and build
+# maintenance burden for very little, if any, benefit.
#
########################################################################
# Some platforms do not support the WASMFS build. Raspberry Pi OS is one
fiddle: $(fiddle-module.js) $(dir.fiddle)/fiddle.js.gz
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 ?=
+ifeq (,$(fiddle_remote))
+ifneq (,$(wildcard /home/stephan))
+ fiddle_remote = wh:www/wh/sqlite3/.
+else ifneq (,$(wildcard /home/drh))
+ #fiddle_remote = if appropriate, add that user@host:/path here
+endif
+endif
+push-fiddle: fiddle
+ @if [ x = "x$(fiddle_remote)" ]; then \
+ echo "fiddle_remote must be a [user@]HOST:/path for rsync"; \
+ exit 1; \
+ fi
+ rsync -va fiddle/ $(fiddle_remote)
+# end fiddle remote push
+########################################################################
+
+
########################################################################
# Explanation of the emcc build flags follows. Full docs for these can
# be found at:
-C speedtest1:\suse\sthe\scurrent\s(or\sdefault)\svfs->xDelete\smethod\sto\sunlink\sthe\sdb.\sThis\sis\sspecifically\snecessary\swhen\srunning\sthe\sopfs\svfs\sin\sa\swasm\sbuild\sof\sspeedtest1.\sThis\sworked\swithout\sthis\sfix\suntil\srecently\sbecause\sthe\saffected\stest\scode\swas\sperforming\ssimilar\sacrobatics\sin\sits\sstead.
-D 2022-10-25T15:38:38.924
+C Rename\sfiddle.html\sto\sindex.html\sand\smove\sfiddle\spush-to-server\srules\sfrom\sGNUmakefile\sinto\sfiddle.make.
+D 2022-10-25T15:59:27.394
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
-F ext/wasm/GNUmakefile 72f8ca582578295315f9f198f308b927e64e8657e2b14f738123745043db7c7c
+F ext/wasm/GNUmakefile ef0b2ab599c5e2fd89fe7620920319de73df36f1c8fe2ef4e745fa0e30ecc608
F ext/wasm/README-dist.txt e78e44a58772d5b5d7a5a179b5bf639cd67b62249aac66138e2c319bd02dd243
F ext/wasm/README.md 1e5b28158b74ab3ffc9d54fcbc020f0bbeb82c2ff8bbd904214c86c70e8a3066
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-api 36f413ab4dbb057d2dec938fb366ac0a4c5e85ba14660a8d672f0277602c0fc5
F ext/wasm/demo-worker1.html 2c178c1890a2beb5a5fecb1453e796d067a4b8d3d2a04d65ca2eb1ab2c68ef5d
F ext/wasm/demo-worker1.js 8ba51d94c4601fa5c313d9e59b63b238f5305b5d5739ad21f4782a0161e6682e
F ext/wasm/dist.make b3b156061ff6a35ce59715632c9446cb58e0fc497021a93c778fed051a04fde1
-F ext/wasm/fiddle.make acdb1a402864f9b05a4c89805c5e91d88f5080652d8861f0865655b172243847
+F ext/wasm/fiddle.make 68abe5dcfdd6fdf8dc1b715b94b96fae771b5b28bc1843997b9b1ec79407f2c9
F ext/wasm/fiddle/emscripten.css 3d253a6fdb8983a2ac983855bfbdd4b6fa1ff267c28d69513dd6ef1f289ada3f
F ext/wasm/fiddle/fiddle-worker.js 7ee53ca846071de5d46bb11a2a269a7990ef9cfd8abfae2a25cc948499783d78
-F ext/wasm/fiddle/fiddle.html 5daf54e8f3d7777cbb1ca4f93affe28858dbfff25841cb4ab81d694efed28ec2
F ext/wasm/fiddle/fiddle.js 974b995119ac443685d7d94d3b3c58c6a36540e9eb3fed7069d5653284071715
+F ext/wasm/fiddle/index.html 5daf54e8f3d7777cbb1ca4f93affe28858dbfff25841cb4ab81d694efed28ec2 w ext/wasm/fiddle/fiddle.html
F ext/wasm/index-dist.html cb0da16cba0f21cda2c25724c5869102d48eb0af04446acd3cd0ca031f80ed19
F ext/wasm/index.html 751bbf248ee3106cec92cc4e6e3f703cd5c94deff3c6b7a596154fb04ab3efac
F ext/wasm/jaccwabyt/jaccwabyt.js 0d7f32817456a0f3937fcfd934afeb32154ca33580ab264dab6c285e6dbbd215
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 8ba9c884bded52e3e044ff39c826c04838e7c31f05d802f4a14d9ce5a01ab721
-R a12e657bf006b1f4149c559a9983c3ea
+P d3c830bd37a402161b486d3631feceae5d00f89c2522aed65fcd2e666bd64238
+R cdf159df9e6c825fac67e2645c1ad476
U stephan
-Z 350b5441f32a515aa32cf4712729b820
+Z 282ed5b5b57abda7a343c9407b34123d
# Remove this line to create a well-formed Fossil manifest.