]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Get fiddle building properly again and fiddle/fiddle.debug building in parallel.
authorstephan <stephan@noemail.net>
Wed, 24 Sep 2025 01:50:08 +0000 (01:50 +0000)
committerstephan <stephan@noemail.net>
Wed, 24 Sep 2025 01:50:08 +0000 (01:50 +0000)
FossilOrigin-Name: 85fe9c6155f72583cea46d38bf5e040623d71fb5317ff9373421dbfdb179b2b0

ext/wasm/GNUmakefile
ext/wasm/mkwasmbuilds.c
manifest
manifest.uuid

index 888eec0c5da2e7e5225e207bd84f4ebbaf6fdad8..0122e8d986f7df98073eebfea4b2d40d9a671281 100644 (file)
@@ -498,7 +498,7 @@ endif
 SQLITE.strip-emcc-js-cruft = \
   sed -i -e '/^.*= \(_sqlite3\|_fiddle\)[^=]*=.*createExportWrapper/d' \
   -e '/^var \(_sqlite3\|_fiddle\)[^=]*=.*makeInvalidEarlyAccess/d' $@ || exit; \
-  echo '$(1) $(emo.garbage) (Probably) /createExportWrapper()/d and /makeInvalidEarlyAccess()/d.'
+  echo '$(1) $(emo.garbage) (Probably) /createExportWrapper()/d and /makeInvalidEarlyAccess()/d'
 
 # When passing emcc_opt from the CLI, += and re-assignment have no
 # effect, so emcc_opt+=-g3 doesn't work. So...
@@ -1076,7 +1076,7 @@ $(speedtest1.js): $(MAKEFILE) $(speedtest1.cfiles) \
        $(bin.emcc) \
         $(emcc.speedtest1) \
         $(emcc.speedtest1.common) \
-        $(emcc.flags.speedtest1-vanilla) $(pre-post-speedtest1-vanilla.flags) \
+        $(emcc.flags.speedtest1-vanilla) $(pre-post.speedtest1-vanilla.flags) \
         $(SQLITE_OPT) \
         -USQLITE_WASM_BARE_BONES \
         -USQLITE_C -DSQLITE_C=$(sqlite3.canonical.c) \
index 92e86c2955750e943b92ba3436f64a16d970e187..5c1012a80c43a817636c0442487af4059d434ec1 100644 (file)
@@ -56,6 +56,7 @@ enum {
   F_UNSUPPORTED      = 1<<2,
   /* Elide this build from the 'all' target. */
   F_NOT_IN_ALL       = 1<<3,
+  /* If it's a 64-bit build. */
   F_64BIT            = 1<<4,
   /* Indicates a node.js-for-node.js build (untested and
   ** unsupported). */
@@ -159,7 +160,7 @@ const BuildDefs oBuildDefs = {
     .zEmcc       = "-sMEMORY64=1",
     .zEnv        = 0,
     .zIfCond     = 0,
-    .flags       = CP_ALL | F_64BIT// | F_NOT_IN_ALL
+    .flags       = CP_ALL | F_64BIT | F_NOT_IN_ALL
   },
 
   .esm = {
@@ -181,7 +182,7 @@ const BuildDefs oBuildDefs = {
     .zEmcc       = "-sMEMORY64=1",
     .zEnv        = 0,
     .zIfCond     = 0,
-    .flags       = CP_JS | F_ESM | F_64BIT // | F_NOT_IN_ALL
+    .flags       = CP_JS | F_ESM | F_64BIT | F_NOT_IN_ALL
   },
 
   .bundler = {
@@ -197,7 +198,7 @@ const BuildDefs oBuildDefs = {
     .zEmcc       = 0,
     .zEnv        = 0,
     .zIfCond     = 0,
-    .flags       = CP_JS | F_BUNDLER_FRIENDLY | F_ESM
+    .flags       = CP_JS | F_BUNDLER_FRIENDLY | F_ESM | F_NOT_IN_ALL
   },
 
   .bundler64 = {
@@ -208,7 +209,7 @@ const BuildDefs oBuildDefs = {
     .zEmcc       = "-sMEMORY64=1",
     .zEnv        = 0,
     .zIfCond     = 0,
-    .flags       = CP_JS | F_ESM | F_BUNDLER_FRIENDLY | F_64BIT
+    .flags       = CP_JS | F_ESM | F_BUNDLER_FRIENDLY | F_64BIT | F_NOT_IN_ALL
   },
 
   /* We neither build nor test node builds on a regular basis. They
@@ -270,6 +271,7 @@ static void mk_prologue(void){
     "MAKEFILE.fiddle",
     "EXPORTED_FUNCTIONS.fiddle",
     /* Some core JS files... */
+    // todo: we don't need these anymore
     "sqlite3.js", "sqlite3.mjs",
     "sqlite3-64bit.js", "sqlite3-64bit.mjs",
     /*"just-testing",*/
@@ -286,6 +288,7 @@ static void mk_prologue(void){
   }
 
   ps(zBanner
+     "more: all\n"
      "emoji ?= 1\n"
      "ifneq (0,$(emoji))\n"
      "emo.disk = 💾\n"
@@ -300,8 +303,22 @@ static void mk_prologue(void){
      "emo.stop =🛑\n"
      "emo.strip =🪚\n" /*🔪*/
      "emo.garbage =🗑\n"
+     "emo.folder = 📁\n"
      "endif\n"
   );
+  ps("logtag.@ = [$@]:");
+  ps("b.do.strip-js-cruft = $(SQLITE.strip-emcc-js-cruft)");
+
+  ps("b.echo = echo '$(logtag.$(1))' '$(2)'");
+
+  ps(zBanner
+     /** $1 = build name. */
+     "b.do.mkdir@ = "
+     "if [ ! -d $(dir $@) ]; then"
+     " echo '[$(emo.folder)+] $(if $(1),$(logtag.$(1)),[$(dir $@)])';"
+     " mkdir -p $(dir $@) || exit $$?;"
+     "fi"
+  );
 
   ps(zBanner
      /** $1 = build name
@@ -310,8 +327,9 @@ static void mk_prologue(void){
          $4 = optional c-pp -D... flags */
      "define b.do.c-pp\n"
      "$(3): $$(MAKEFILE_LIST) $$(bin.c-pp) $(2)\n"
-     "\t@echo '$$(logtag.$(1)) $$(emo.disk) $(4)'; mkdir -p $$(dir $$@)\n"
-     "\t@cat $(2) | $$(bin.c-pp) -o $(3) $(4) $$(SQLITE.CALL.C-PP.FILTER.global) || exit $$$$?\n"
+     "\t@$$(call b.do.mkdir@); \\\n"
+     "\techo '$$(logtag.$(1)) $$(emo.disk) $(4)'; \\\n"
+     "\tcat $(2) | $$(bin.c-pp) -o $(3) $(4) $$(SQLITE.CALL.C-PP.FILTER.global) || exit $$$$?\n"
      "\nCLEAN_FILES += $(2)\n"
      "endef\n"
   );
@@ -323,6 +341,13 @@ static void mk_prologue(void){
      "$(bin.wasm-strip) $(out.$(1).wasm)\n"
   );
 
+  ps(zBanner
+     /** $1 = build name, $2 = src file(s). $3 = dest dir */
+     "b.do.cp = "
+     "echo '$(logtag.$(1)) $(emo.disk) $(2) ==> $3'; "
+     "cp -p $(2) $(3) || exit $$$$?\n"
+  );
+
   ps(zBanner
      "# Inputs for the sqlite3-api.js family.\n"
      "#\n"
@@ -372,7 +397,7 @@ static void mk_prologue(void){
      "# support -e SCRIPT.\n"
      "$(sqlite3-license-version.js): $(MKDIR.bld) $(sqlite3.h) "
      "$(dir.api)/sqlite3-license-version-header.js $(MAKEFILE)\n"
-     "\t@echo '$(emo.disk) $@'; { \\\n"
+     "\t@echo '$(logtag.@) $(emo.disk)'; { \\\n"
      "\t\tcat $(dir.api)/sqlite3-license-version-header.js;  \\\n"
      "\t\techo '/*'; \\\n"
      "\t\techo '** This code was built from sqlite3 version...'; \\\n"
@@ -389,7 +414,7 @@ static void mk_prologue(void){
      "# $(sqlite3-api-build-version.js) injects the build version info into\n"
      "# the bundle in JSON form.\n"
      "$(sqlite3-api-build-version.js): $(MKDIR.bld) $(bin.version-info) $(MAKEFILE)\n"
-     "\t@echo '$(emo.disk) $@'; { \\\n"
+     "\t@echo '$(logtag.@) $(emo.disk)'; { \\\n"
      "\t\techo 'globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){'; \\\n"
      "\t\techo -n '  sqlite3.version = '; \\\n"
      "\t\t$(bin.version-info) --json; \\\n"
@@ -436,7 +461,7 @@ static void mk_prologue(void){
      "post-js.in.js = $(dir.tmp)/post-js.c-pp.js\n"
      "post-jses.js = $(dir.api)/post-js-header.js $(sqlite3-api.js.in) $(dir.api)/post-js-footer.js\n"
      "$(post-js.in.js): $(MKDIR.bld) $(post-jses.js) $(MAKEFILE)\n"
-     " @echo '$(emo.disk) $@'\n"
+     " @echo '$(logtag.@) $(emo.disk)'\n"
      " @for i in $(post-jses.js); do \\n"
      "         echo \"/* BEGIN FILE: $$i */\"; \\n"
      "         cat $$i; \\n"
@@ -457,7 +482,7 @@ static void mk_prologue(void){
   );
 
   {
-    /* SQLITE.CALL.WASM-OPT = shell code to run $(1) (source wasm file
+    /* b.do.wasm-opt = shell code to run $(1) (source wasm file
     ** name) through $(bin.wasm-opt) */
     const char * zOptFlags =
       /*
@@ -505,17 +530,17 @@ static void mk_prologue(void){
        "# post-compilation WASM file optimization");
     ps("ifeq (,$(bin.wasm-opt))");
     {
-      ps("define SQLITE.CALL.WASM-OPT");
-      ps("echo 'wasm-opt not available for $(1)'");
+      ps("define b.do.wasm-opt");
+      ps("echo '$(logtag.$(1)) wasm-opt not available'");
       ps("endef");
     }
     ps("else");
     {
-      ps("define SQLITE.CALL.WASM-OPT"
-         /* $1 = build name, $2 = log message prefix*/
+      ps("define b.do.wasm-opt"
+         /* $1 = build name*/
       );
       pf(
-        "echo '$(2) $(emo.tool) Applying $(bin.wasm-opt)';\\\n"
+        "echo '$(logtag.$(1)) $(emo.tool) Applying $(bin.wasm-opt)';\\\n"
         "\trm -f wasm-opt-tmp.$(1).wasm;\\\n"
         /* It's very likely that the set of wasm-opt flags varies from
         ** version to version, so we'll ignore any errors here. */
@@ -547,7 +572,7 @@ static void mk_pre_post(char const *zBuildName){
 
   pf("%s# Begin --pre/--post flags for %s\n", zBanner, zBuildName);
 
-  ps("\n# --pre-js=...");
+  ps("# --pre-js=...");
   pf("pre-js.%s.js = $(dir.tmp)/pre-js.%s.js\n"
      "CLEAN_FILES += $(pre-js.%s.js)\n"
      "$(pre-js.%s.js): "
@@ -634,18 +659,44 @@ static char const * BuildDef_basename(const BuildDef * pB){
   return pB->zBaseName ? pB->zBaseName : oBuildDefs.vanilla.zBaseName;
 }
 
-static void emit_core_vars(char const *zBuildName,
-                           const BuildDef * pB){
-  const char * zJsExt = BuildDef_jsext(pB);
-  char const * const zBaseName = BuildDef_basename(pB);
-  pf("dir.dout.%s ?= $(dir.dout)/%s\n", zBuildName, zBuildName);
-  pf("out.%s.base ?= $(dir.dout.%s)/%s\n",
-     zBuildName, zBuildName, zBaseName);
-  pf("out.%s.js ?= $(dir.dout.%s)/%s%s\n",
-     zBuildName, zBuildName, zBaseName, zJsExt);
-  pf("out.%s.wasm ?= $(dir.dout.%s)/%s.wasm\n",
-     //"$(basename $@).wasm"
-     zBuildName, zBuildName, zBaseName);
+static void emit_target_start(char const *zBuildName){
+  pf("\t@$(call b.do.mkdir@);"
+     " $(call b.echo,%s,$(emo.compile) building ...)\n",
+     zBuildName);
+}
+
+static void emit_api_js(char const *zBuildName,
+                        char const *zCmppD){
+  pf("sqlite3-api.%s.c-pp.js = $(dir.tmp)/sqlite3-api.%s.c-pp.js\n",
+     zBuildName, zBuildName);
+
+  pf("sqlite3-api.%s.js = $(dir.tmp)/sqlite3-api.%s.js\n",
+     zBuildName, zBuildName);
+  pf("c-pp.D.%s = %s\n", zBuildName, zCmppD ? zCmppD: "" );
+
+  pf("$(sqlite3-api.%s.c-pp.js): $(sqlite3-api.jses)\n"
+     "\t@$(call b.do.mkdir@); \\\n"
+     "\techo '$(logtag.%s) $(emo.disk)'; \\\n"
+     "\tfor i in $(sqlite3-api.jses); do \\\n"
+     "\t\techo \"/* BEGIN FILE: $$i */\"; \\\n"
+     "\t\tcat $$i; \\\n"
+     "\t\techo \"/* END FILE: $$i */\"; \\\n"
+     "\tdone > $@\n",
+     zBuildName, zBuildName);
+
+  pf("$(sqlite3-api.%s.js): $(sqlite3-api.%s.c-pp.js)\n"
+     "$(eval $(call b.do.c-pp,"
+     "%s,"
+     "$(sqlite3-api.%s.c-pp.js),"
+     "$(sqlite3-api.%s.js),"
+     "$(c-pp.D.%s)"
+     "))\n",
+     zBuildName, zBuildName,
+     zBuildName, zBuildName,
+     zBuildName, zBuildName);
+
+  pf("$(out.%s.js): $(sqlite3-api.%s.js)\n",
+     zBuildName, zBuildName);
 }
 
 /*
@@ -666,14 +717,23 @@ void mk_lib_mode(const char *zBuildName, const BuildDef * pB){
   pf("# zCmppD=%s\n# zBaseName=%s\n",
      pB->zCmppD ? pB->zCmppD : "", zBaseName);
 
-  pf("logtag.%s ?= [%s %s $@]:\n", zBuildName, pB->zEmo, zBuildName);
+  pf("logtag.%s ?= [%s [%s] $@]:\n", zBuildName, pB->zEmo, zBuildName);
   if( pB->zIfCond ){
     pf("%s\n", pB->zIfCond );
   }
   pf("$(info $(logtag.%s) Setting up target b-%s)\n",
      zBuildName, zBuildName );
 
-  emit_core_vars(zBuildName, pB);
+  pf("dir.dout.%s ?= $(dir.dout)/%s\n", zBuildName, zBuildName);
+  pf("out.%s.base ?= $(dir.dout.%s)/%s\n",
+     zBuildName, zBuildName, zBaseName);
+  pf("out.%s.js ?= $(dir.dout.%s)/%s%s\n",
+     zBuildName, zBuildName, zBaseName, zJsExt);
+  pf("out.%s.wasm ?= $(dir.dout.%s)/%s.wasm\n",
+     //"$(basename $@).wasm"
+     zBuildName, zBuildName, zBaseName);
+
+
   pf("dir.dout.%s ?= $(dir.dout)/%s\n", zBuildName, zBuildName);
   pf("out.%s.base ?= $(dir.dout.%s)/%s\n",
      zBuildName, zBuildName, zBaseName);
@@ -687,36 +747,8 @@ void mk_lib_mode(const char *zBuildName, const BuildDef * pB){
      pB->zEnv ? pB->zEnv : oBuildDefs.vanilla.zEnv);
   pf("emcc.flags.%s ?= %s\n", zBuildName, pB->zEmcc ? pB->zEmcc : "");
 
-  { /* Create sqlite3-api.*.js */
-    pf("sqlite3-api.%s.c-pp.js = $(dir.tmp)/sqlite3-api.%s.c-pp%s\n",
-       zBuildName, zBuildName, zJsExt);
-
-    pf("sqlite3-api.%s.js = $(dir.tmp)/sqlite3-api.%s%s\n",
-       zBuildName, zBuildName, zJsExt);
-    pf("c-pp.D.%s = %s\n", zBuildName, pB->zCmppD ? pB->zCmppD: "" );
-
-    pf("$(sqlite3-api.%s.c-pp.js): $(sqlite3-api.jses)\n"
-       "\t@echo '$(logtag.%s) $(emo.disk)'; \\\n"
-       "\tmkdir -p $(dir.dout.%s); \\\n"
-       "\tfor i in $(sqlite3-api.jses); do \\\n"
-       "\t\techo \"/* BEGIN FILE: $$i */\"; \\\n"
-       "\t\tcat $$i; \\\n"
-       "\t\techo \"/* END FILE: $$i */\"; \\\n"
-       "\tdone > $@\n",
-       zBuildName, zBuildName, zBuildName);
-
-    pf("$(sqlite3-api.%s.js): $(sqlite3-api.%s.c-pp.js)\n"
-       "$(eval $(call b.do.c-pp,"
-       "%s,"
-       "$(sqlite3-api.%s.c-pp.js),"
-       "$(sqlite3-api.%s.js),"
-       "$(c-pp.D.%s)"
-       "))\n",
-       zBuildName, zBuildName,
-       zBuildName, zBuildName,
-       zBuildName, zBuildName);
-  }
-
+  /* Create sqlite3-api.*.js */
+  emit_api_js(zBuildName, pB->zCmppD);
   mk_pre_post(zBuildName);
 
   { /* build it... */
@@ -732,9 +764,7 @@ void mk_lib_mode(const char *zBuildName, const BuildDef * pB){
        "\n",
        zBuildName, zBuildName, zBuildName);
 
-    pf("\t@echo '$(logtag.%s) $(emo.compile) building ...'\n"
-       "\t@mkdir -p $(dir $@);\n",
-       zBuildName);
+    emit_target_start(zBuildName);
 
     if( F_UNSUPPORTED & pB->flags ){
       pf("\t@echo '$(logtag.%s) $(emo.fire)$(emo.fire)$(emo.fire): "
@@ -761,21 +791,20 @@ void mk_lib_mode(const char *zBuildName, const BuildDef * pB){
             at all is a mystery. */);
       pf("\t@$(call b.do.wasm-strip,%s)\n", zBuildName);
 
-      pf("\t@$(call SQLITE.CALL.WASM-OPT,%s,$(logtag.%s))\n",
-         zBuildName, zBuildName);
-      pf("\t@$(call SQLITE.strip-emcc-js-cruft,$(logtag.%s))\n", zBuildName);
+      pf("\t@$(call b.do.wasm-opt,%s)\n", zBuildName);
+      pf("\t@$(call b.do.strip-js-cruft,$(logtag.%s))\n", zBuildName);
 
       if( CP_JS & pB->flags && !(pB->zDotWasm/*handled below*/) ){
-        pf("\t@cp -f $@ $(dir.dout)/. || exit; \\\n"
-           "\techo '$(logtag.%s) $(emo.disk) $(dir.dout)/$(notdir $@)'\n",
+        pf("\t@$(call b.do.cp,%s,$@,$(dir.dout)/.)\n",
            zBuildName
         );
       }
       if( CP_WASM & pB->flags ){
-        pf("\t@cp -f $(out.%s.wasm) $(dir.dout)/. || exit; \\\n"
-           "\techo '[%s %s $(out.%s.wasm)] $(emo.disk) "
-           "$(dir.dout)/$(notdir $(out.%s.wasm))'\n",
-           zBuildName, pB->zEmo, zBuildName, zBuildName, zBuildName);
+        pf("\t@$(call b.do.cp,@,$(out.%s.wasm),$(dir.dout)/.)\n",
+           zBuildName
+           //"\techo '[%s $(out.%s.wasm)] $(emo.disk) $(dir.dout)/$(notdir $(out.%s.wasm))'
+           //pB->zEmo, zBuildName
+        );
       }
       /*
       ** $(bin.emcc) will write out $@ and will create a like-named
@@ -832,10 +861,9 @@ void mk_lib_mode(const char *zBuildName, const BuildDef * pB){
     );
   }
 
-  if( 0==(F_NOT_IN_ALL & pB->flags)
-      && 0==(F_UNSUPPORTED & pB->flags) ){
-    pf("all: $(out.%s.js)\n", zBuildName);
-  }
+  pf("%s: $(out.%s.js)\n",
+     0==((F_UNSUPPORTED | F_NOT_IN_ALL) & pB->flags)
+     ? "all" : "more", zBuildName);
 
   if( pB->zIfCond ){
     pf("else\n"
@@ -846,33 +874,27 @@ void mk_lib_mode(const char *zBuildName, const BuildDef * pB){
   pf("# End build [%s]%s", zBuildName, zBanner);
 }
 
+
 /*
 ** Emits rules for the fiddle builds.
 */
-void mk_fiddle(void){
-  //BuildDef bdF = oBuildDefs.vanilla;
-
-  //mk_pre_post("fiddle-module");
-  //mk_pre_post("fiddle-module.debug");
-  pf("emo.fiddle = 🎻\n");
+static void mk_fiddle(void){
   for(int i = 0; i < 2; ++i ){
     /* 0==normal, 1==debug */
     int const isDebug = i>0;
     const char * const zBuildName = i ? "fiddle.debug" : "fiddle";
-    //const char *zDir = i ? "$(dir.fiddle-debug)" : "$(dir.fiddle)";
 
-    pf("%s# Begin %s\n", zBanner, zBuildName);
+    pf(zBanner "# Begin build %s\n", zBuildName);
     if( isDebug ){
       pf("emo.%s = $(emo.fiddle)$(emo.bug)\n", zBuildName);
+    }else{
+      pf("emo.fiddle = 🎻\n");
     }
-    pf("logtag.%s ?= [$(emo.%s) %s $@]:\n",
+    pf("logtag.%s = [$(emo.%s) [%s] $@]:\n",
        zBuildName, zBuildName, zBuildName);
-    pf("$(info $(logtag.%s) Setting up target %s)\n",
+    pf("$(info $(logtag.%s) Setting up target b-%s)\n",
        zBuildName, zBuildName );
 
-    //bdF.zBaseName = "fiddle-module";
-    //bdF.zEmcc = i ? "$(fiddle.emcc-flags.debug)" : "$(fiddle.emcc-flags)";
-
     pf("dir.%s = %s\n"
        "out.%s.js = $(dir.%s)/fiddle-module.js\n"
        "out.%s.wasm = $(dir.%s)/fiddle-module.wasm\n"
@@ -882,37 +904,39 @@ void mk_fiddle(void){
        zBuildName, zBuildName,
        zBuildName, zBuildName);
 
+    emit_api_js(zBuildName, 0);
+    mk_pre_post(zBuildName);
+
     {/* emcc */
       pf("$(out.%s.js): $(MAKEFILE_LIST) $(MAKEFILE.fiddle) "
          "$(EXPORTED_FUNCTIONS.fiddle) "
-         "$(fiddle.cses) %s "
+         "$(fiddle.cses) "
+         "$(pre-post.%s.deps) "
          "$(SOAP.js)\n",
-         zBuildName,
-         (i ? " $(out.fiddle.js)" : ""));
-      pf("\t@echo '$(logtag.%s) $(emo.compile) building ...'\n",
-         zBuildName);
-      if( isDebug ){
-        pf("\t@test -d \"$(dir $@)\" || mkdir -p \"$(dir $@)\"\n");
-      }
-      pf("\t$(bin.emcc) -o $@ $(emcc.flags.%s) "
-         /* emcc.flags.X is set in fiddle.make */
-         //"$(pre-post-fiddle-module.flags) "
-         "$(fiddle.cses)\n",
-         zBuildName);
+         zBuildName, zBuildName);
+      emit_target_start(zBuildName);
+      pf("\t$(bin.emcc) -o $@"
+         " $(emcc.flags.%s)" /* set in fiddle.make */
+         " $(pre-post.%s.flags)"
+         " $(fiddle.cses)"
+         "\n",
+         zBuildName, zBuildName);
       pf("\t@chmod -x $(out.%s.wasm)\n", zBuildName);
       pf("\t@$(call b.do.wasm-strip,%s)\n", zBuildName);
-      pf("\t@$(call SQLITE.strip-emcc-js-cruft,$(logtag.%s))\n",zBuildName);
-      pf("\t@cp -p $(SOAP.js) $(dir $@)\n");
+      pf("\t@$(call b.do.strip-js-cruft,$(logtag.%s))\n", zBuildName);
+      pf("\t@$(call b.do.cp,%s,$(SOAP.js),$(dir $@))\n", zBuildName);
       if( isDebug ){
-        ps("\tcp -p $(dir.fiddle)/index.html "
+        pf("\t@$(call b.do.cp,%s,"
+           "$(dir.fiddle)/index.html "
            "$(dir.fiddle)/fiddle.js "
-           "$(dir.fiddle)/fiddle-worker.js "
-           "$(dir $@)");
+           "$(dir.fiddle)/fiddle-worker.js,"
+           "$(dir $@)"
+           ")\n",
+           zBuildName);
       }
     }
-    if( !isDebug ){
-      pf("all: $(out.%s.wasm)\n", zBuildName);
-    }
+
+    pf("\n%s: $(out.%s.wasm)\n", isDebug ? "more" : "all", zBuildName);
 
     /* Compress fiddle files. We handle each file separately, rather
        than compressing them in a loop in the previous target, to help
@@ -924,12 +948,14 @@ void mk_fiddle(void){
     pf("\n$(out.%s.wasm).gz: $(out.%s.wasm)\n"
        "\tgzip < $< > $@\n", zBuildName, zBuildName);
 
-    pf("\n%s: $(out.%s.js).gz $(out.%s.wasm).gz\n",
-       zBuildName, zBuildName, zBuildName);
+    pf("\n%s: $(out.%s.js).gz $(out.%s.wasm).gz\n"
+       "b-%s: %s\n",
+       zBuildName, zBuildName, zBuildName,
+       zBuildName, zBuildName);
     if( isDebug ){
       ps("fiddle-debug: fiddle.debug");
     }
-    pf("# End %s%s", zBuildName, zBanner);
+    pf("# End %s" zBanner, zBuildName);
   }
 }
 
@@ -954,6 +980,12 @@ int main(void){
      "b-esm64: $(dir.dout)/sqlite3-64bit.mjs\n"
   );
   mk_fiddle();
+#if 0
+  mk_pre_post("speedtest1-vanilla");
+  ps(zBanner "ifeq (1,$(HAVE_WASMFS))");
+  mk_pre_post("speedtest1-wasmfs");
+  ps("endif\n# ^^^ HAVE_WASMFS" zBanner);
+#endif
 #if 0
   mk_pre_post(0, "speedtest1","vanilla", 0, "speedtest1.wasm");
   mk_pre_post(0, "speedtest1-wasmfs", "esm",
index 4f2066a70af057409157d59417b2b2fd3dbbb1b9..fe77a343e3a16b5a7b26e39f2132ec3172f481fb 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Get\sfiddle/fiddle.debug\sbuilding\sagain\sbut\sthey're\sincomplete\sand\sdon't\srun.
-D 2025-09-23T23:22:31.489
+C Get\sfiddle\sbuilding\sproperly\sagain\sand\sfiddle/fiddle.debug\sbuilding\sin\sparallel.
+D 2025-09-24T01:50:08.077
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -578,7 +578,7 @@ F ext/session/sqlite3session.c 9cd47bfefb23c114b7a5d9ee5822d941398902f30516bf0dd
 F ext/session/sqlite3session.h 7404723606074fcb2afdc6b72c206072cdb2b7d8ba097ca1559174a80bc26f7a
 F ext/session/test_session.c 8766b5973a6323934cb51248f621c3dc87ad2a98f023c3cc280d79e7d78d36fb
 F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
-F ext/wasm/GNUmakefile 2beb7f3ebf6dc671e08a0e1cadb3bce1f2a598bf148c9a05b039ac1c2c873c11
+F ext/wasm/GNUmakefile d3c31bcd9436a2b7e2ab3fda0ce788c7ebef623d9d276dd346878368d7917aa3
 F ext/wasm/README-dist.txt f01081a850ce38a56706af6b481e3a7878e24e42b314cfcd4b129f0f8427066a
 F ext/wasm/README.md 66ace67ae98a45e4116f2ca5425b716887bcee4d64febee804ff6398e1ae9ec7
 F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
@@ -639,7 +639,7 @@ F ext/wasm/index-dist.html 56132399702b15d70c474c3f1952541e25cb0922942868f70daf1
 F ext/wasm/index.html bcaa00eca521b372a6a62c7e7b17a870b0fcdf3e418a5921df1fd61e5344080d
 F ext/wasm/jaccwabyt/jaccwabyt.js bbac67bc7a79dca34afe6215fd16b27768d84e22273507206f888c117e2ede7d
 F ext/wasm/jaccwabyt/jaccwabyt.md 167fc0b624c9bc2c477846e336de9403842d81b1a24fc4d3b24317cb9eba734f
-F ext/wasm/mkwasmbuilds.c 0e9dbc039423f9542cecaf02b183866b7687bcf6ee85df0bb3e3bd9714846928
+F ext/wasm/mkwasmbuilds.c 2c2cfd7edbeb02ed728ca0d600ea901b875c7644bc6f230b4060c2ed1fb8bf78
 F ext/wasm/module-symbols.html dc476b403369b26a1a23773e13b80f41b9a49f0825e81435fe3600a7cfbbe337
 F ext/wasm/scratchpad-wasmfs.html a3d7388f3c4b263676b58b526846e9d02dfcb4014ff29d3a5040935286af5b96
 F ext/wasm/scratchpad-wasmfs.mjs 66034b9256b218de59248aad796760a1584c1dd842231505895eff00dbd57c63
@@ -2175,8 +2175,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 a5a7890c75003a637a227b700dc342f4f4a24bd368b216bdb168b4ddfbe8f015
-R bfaea347066be5eee8c06be83934df87
+P d725a075bc3303c5a26c4014f57162235cebc6491425083b4d80936de8f07fb0
+R cf0819fecf9c57d781fdf43886df17f2
 U stephan
-Z b32fd3d4dde2ccaa5319fc2bd82bfb84
+Z b75ff23e1fde07fb82f0c0c838191732
 # Remove this line to create a well-formed Fossil manifest.
index 511ff8d8aad40310dfe0cb7068b402452cf290a4..001acce0ec8a0fbe2f2ed64939a8236277e04405 100644 (file)
@@ -1 +1 @@
-d725a075bc3303c5a26c4014f57162235cebc6491425083b4d80936de8f07fb0
+85fe9c6155f72583cea46d38bf5e040623d71fb5317ff9373421dbfdb179b2b0