diff --git a/auto.def b/auto.def index 8e17e63405..bf3a99c513 100644 --- a/auto.def +++ b/auto.def @@ -73,7 +73,7 @@ set DUMP_DEFINES_JSON ""; #./config.defines.json # --disable-readline ==> boolean false # # Trying to pass --readline or --readline=1 or --readline=0 will -# result in an "unrecognized option" error, despite the the options +# result in an "unrecognized option" error, despite the the [options] # call listing the flag as "readline". # # The behavior described above can lead lead to some confusion when @@ -91,7 +91,7 @@ set DUMP_DEFINES_JSON ""; #./config.defines.json # --enable-FLAG # # Non-boolean flags, in contrast, use the names specifically given to -# them in the 'options' invocation. e.g. "with-tcl" is the --with-tcl +# them in the [options] invocation. e.g. "with-tcl" is the --with-tcl # flag. Autosetup may, however, choose to automatically alter the help # text, as demonstrated here: # @@ -130,7 +130,7 @@ set flags { # # threadsafe=1 => {Disable mutexing} - with-tempstore:=no => {Use an in-ram database for temporary tables: never,no,yes,always} + with-tempstore:=no => {Use an in-RAM database for temporary tables: never,no,yes,always} largefile=1 => {Disable large file support} load-extension=1 => {Disable loading of external extensions} math=1 => {Disable math functions} @@ -251,12 +251,12 @@ if {1} { set isCrossCompiling [proj-is-cross-compiling] define OPT_FEATURE_FLAGS {} ; # -DSQLITE_OMIT/ENABLE flags. -define OPT_SHELL {} ; # CFLAGS for the sqlite3 CLI app +define OPT_SHELL {} ; # Feature-related CFLAGS for the sqlite3 CLI app ######################################################################## -# Adds $args, if not empty, to OPT_FEATURE_FLAGS. -# If the first arg is -shell then it strips that arg -# and passes the remaining args th sqlite-add-shell-opt -# in addition to adding them to OPT_FEATURE_FLAGS. +# Adds $args, if not empty, to OPT_FEATURE_FLAGS. If the first arg is +# -shell then it strips that arg and passes the remaining args the +# sqlite-add-shell-opt in addition to adding them to +# OPT_FEATURE_FLAGS. proc sqlite-add-feature-flag {args} { set shell "" if {"-shell" eq [lindex $args 0]} { @@ -328,23 +328,40 @@ proc sqlite-check-wasi-sdk {} { } msg-result "Checking WASI SDK directory \[$wasiSdkDir]... " #puts "prefix = [prefix $wasiSdkDir/bin {clang ld}]" - proj-affirm-files-exist -v {*}[prefix "$wasiSdkDir/bin/" {clang wasm-ld}] + proj-affirm-files-exist -v {*}[prefix "$wasiSdkDir/bin/" {clang wasm-ld ar}] define HAVE_WASI_SDK 1 define WASI_SDK_DIR $wasiSdkDir # Disable numerous options which we know either can't work or are # not useful in this build... - msg-result "Using wasi-sdk clang. Disabling CLI shell and forcing:" + msg-result "Using wasi-sdk clang. Disabling CLI shell modifying config flags:" + # Boolean flags which must be switched off: foreach opt { editline gcov + icu-collations load-extension readline shared tcl threadsafe } { - msg-result " --disable-$opt" - proj-opt-set $opt 0 + if {[opt-bool $opt]} { + msg-result " --disable-$opt" + proj-opt-set $opt 0 + } + } + # Non-boolean flags which need to be cleared: + foreach opt { + with-emsdk + with-icu-config + with-icu-ldflags + with-linenoise + with-tcl + } { + if {[proj-opt-was-provided $opt]} { + msg-result " removing --$opt" + proj-opt-set $opt "" + } } # Remember that we now have a discrepancy beteween # $::isCrossCompiling and [proj-is-cross-compiling]. @@ -410,8 +427,9 @@ if {[cc-check-includes zlib.h] && [proj-check-function-in-lib deflate z]} { } proj-check-rpath ; # Determine proper rpath-handling flag -if {0 && [proj-check-soname libsqlite3.so.3]} { - # It's not yet clear whether we gain anything from setting -soname +if {[proj-check-soname libsqlite3.so.3]} { + # It's not yet clear whether we gain anything from setting -soname, + # but not having it has been a source of anxiety for some users. define LDFLAGS_SONAME_LIBSQLITE3 [get-define LDFLAGS_SONAME_PREFIX]libsqlite3.so.3 } else { define LDFLAGS_SONAME_LIBSQLITE3 "" @@ -768,14 +786,14 @@ proj-if-opt-truthy threadsafe { if {1} { set ts [opt-val with-tempstore no] set tsn 1 - msg-checking "Use an in-ram database for temporary tables? " + msg-checking "Use an in-RAM database for temporary tables? " switch -- $ts { never { set tsn 0 } no { set tsn 1 } yes { set tsn 2 } always { set tsn 3 } default { - user-error "Invalid with-tempstore value \[$ts]. Use one of: never, no, yes, always" + user-error "Invalid --with-tempstore value '$ts'. Use one of: never, no, yes, always" } } msg-result $ts @@ -1179,8 +1197,8 @@ foreach {boolFlag featureFlag ifSetEvalThis} { } ######################################################################## -# Invert the above loop's logic for some explicit SQLITE_OMIT_... -# cases. If config option $boolFlag is set, [sqlite-add-feature-flag +# Invert the above loop's logic for some SQLITE_OMIT_... cases. If +# config option $boolFlag is false, [sqlite-add-feature-flag # $featureFlag], where $featureFlag is intended to be # -DSQLITE_OMIT_... foreach {boolFlag featureFlag} { @@ -1196,17 +1214,19 @@ foreach {boolFlag featureFlag} { ######################################################################### # Show the final feature flag sets: -set oFF [get-define OPT_FEATURE_FLAGS] -if {"" ne $oFF} { - define OPT_FEATURE_FLAGS [lsort -unique $oFF] - msg-result "Library feature flags: [get-define OPT_FEATURE_FLAGS]" +if {1} { + set oFF [get-define OPT_FEATURE_FLAGS] + if {"" ne $oFF} { + define OPT_FEATURE_FLAGS [lsort -unique $oFF] + msg-result "Library feature flags: [get-define OPT_FEATURE_FLAGS]" + } + set oFF [get-define OPT_SHELL] + if {"" ne $oFF} { + define OPT_SHELL [lsort -unique $oFF] + msg-result "Shell options: [get-define OPT_SHELL]" + } + unset oFF } -set oFF [get-define OPT_SHELL] -if {"" ne $oFF} { - define OPT_SHELL [lsort -unique $oFF] - msg-result "Shell options: [get-define OPT_SHELL]" -} -unset oFF ######################################################################## # "Re-export" the autoconf-conventional --XYZdir flags into something diff --git a/autosetup/README.md b/autosetup/README.md index f80a46aad0..1385f664fc 100644 --- a/autosetup/README.md +++ b/autosetup/README.md @@ -122,11 +122,12 @@ In (mostly) alphabetical order: The shell-specific counterpart of `sqlite-add-feature-flag`. - **`user-notice msg`**\ - Queues `$msg` to be sent to stderr, but not until either - `show-notices` is called or the next time autosetup would output - something. This can be used to generate warnings between a "checking - for..." message and its resulting "yes/no/whatever" message in such - a way as to not spoil the layout of such messages. + Queues `$msg` to be sent to stderr, but does not emit it until + either `show-notices` is called or the next time autosetup would + output something (it internally calls `show-notices`). This can be + used to generate warnings between a "checking for..." message and + its resulting "yes/no/whatever" message in such a way as to not + spoil the layout of such messages. Ensuring TCL Compatibility diff --git a/autosetup/proj.tcl b/autosetup/proj.tcl index b2c527e622..662ea5e8be 100644 --- a/autosetup/proj.tcl +++ b/autosetup/proj.tcl @@ -594,7 +594,8 @@ proc proj-check-compile-commands {{configFlag {}}} { ######################################################################## # @proj-touch filename # -# Runs the 'touch' command on one or more files, ignoring any errors. +# Runs the 'touch' external command on one or more files, ignoring any +# errors. proc proj-touch {filename} { catch { exec touch {*}$filename } } diff --git a/manifest b/manifest index 902eb0341a..ada1e9c77f 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Doc\stouchups\sin\sthe\sline-editing\sfeature\scheck\scode. -D 2024-11-07T15:23:54.771 +C Extend\sthe\sset\sof\s--flags\swhich\sget\scleared/unset\swhen\susing\s--with-wasi-sdk. +D 2024-11-07T16:59:15.970 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d @@ -13,7 +13,7 @@ F art/icon-80x90.gif 65509ce3e5f86a9cd64fe7fca2d23954199f31fe44c1e09e208c80fb83d F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2 F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90 F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2 -F auto.def 8adbbcff2808b47c6ea7e55c8303e89e9364906a73dd2ffc55f8171e74366393 +F auto.def 6fc759447a556c36ac78d426d9c243cd0e2896b25fb76965fb33d05e88e83b60 F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903 F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347 F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac @@ -37,7 +37,7 @@ F autoconf/tea/win/rules.vc 94a18c3e453535459b4a643983acca52fb8756e79055bd2ad4b0 F autoconf/tea/win/targets.vc 96a25a1fa6e9e9cfb348fd3760a5395b4ce8acafc8ed10f0412937ec200d5dbd F autosetup/LICENSE 41a26aebdd2cd185d1e2b210f71b7ce234496979f6b35aef2cbf6b80cbed4ce4 F autosetup/README.autosetup a78ff8c4a3d2636a4268736672a74bf14a82f42687fcf0631a70c516075c031e -F autosetup/README.md 8f2f1cc05913a9d1267f32eb8325f77b3ac6b45cd7d8f6149667efcd90ddbcaa +F autosetup/README.md 839e78a356545cbf81c2924566db72508c7e92e8c0ef35a8520dd8f49743383b F autosetup/autosetup 9416ffdcdd6e2dbf7f6d1e5c890078518930f8af7722a950eacc28c7f151d2d6 x F autosetup/autosetup-config.guess dfa101c5e8220e864d5e9c72a85e87110df60260d36cb951ad0a85d6d9eaa463 x F autosetup/autosetup-config.sub a38fb074d0dece01cf919e9fb534a26011608aa8fa606490864295328526cd73 x @@ -50,7 +50,7 @@ F autosetup/cc.tcl c0fcc50ca91deff8741e449ddad05bcd08268bc31177e613a6343bbd1fd3e F autosetup/default.auto 5cdf016de2140e50f1db190a02039dc42fb390af1dda4cc4853e3042a9ef0e82 F autosetup/jimsh0.c d40e381ea4526a067590e7b91bd4b2efa6d4980d286f908054c647b3df4aee14 F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba -F autosetup/proj.tcl 5afbe391eae951567752ba8f0b4ecc05acd5a261e4417161623adda448154ad5 +F autosetup/proj.tcl 638db0bc38e0890610c8dd2dbabb80d3ddf19c9a77d4baad2f2ebf5fb74c384d F autosetup/system.tcl 51d4be76cd9a9074704b584e5c9cbba616202c8468cf9ba8a4f8294a7ab1dba9 F autosetup/tmake.auto eaebc74ad538dfdd3c817c27eefc31930c20510c4f3a3704071f6cb0629ed71f F autosetup/tmake.tcl a275793ec1b6f8708179af0acef1f6f10d46c2920739743f7a8720c6d700c7a9 @@ -2200,8 +2200,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P c5389d39a90047683e80ae9081d5d10aaa95da00dfc8a133b4a1a6949a11620d -R 54316963f5f6d26ad35729ed06088c2e +P bb5656bdc905947df205432e108ca6724393061a27028e23bf35b4bf48505d4f +R 8db0443b3cc341b10691e841478e8610 U stephan -Z e2fe9fb1c41d92d4fc9e1c534eca8ef3 +Z c32c37eb256587dabe07c86fffbf93af # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index a80268072a..9984ef2f34 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -bb5656bdc905947df205432e108ca6724393061a27028e23bf35b4bf48505d4f +2a2419ef742c9f37c32be04d417337c1fa22503305d2df154fa38b2b69eae943