diff --git a/auto.def b/auto.def index 4d2f29264a..6fc6ef27ec 100644 --- a/auto.def +++ b/auto.def @@ -123,7 +123,7 @@ options [subst { with-debug:=1 => {Enable debug build flags} with-tclsh:PATH => {Full pathname of tclsh to use} with-tcl:DIR => {Directory containing tclConfig.sh} - tcl=1 => {Disable building accessory programs that require TCL-dev} + tcl=1 => {Disable components which require TCL-dev} test-status => {Enable status of tests} threadsafe=1 => {Disable mutexing} with-tempstore:=no => {Use an in-ram database for temporary tables: never,no,yes,always.} @@ -310,6 +310,7 @@ define ENABLE_SHARED 1 # # It's unclear whether we can actually get away with making these # changes to the autosetup environment. +define HAVE_TCL 0 define HAVE_WASI_SDK 0 if {1} { set wasiSdkDir [opt-val with-wasi-sdk] ; # ??? [lindex [opt-val with-wasi-sdk] end] @@ -444,7 +445,6 @@ hwaci-if-opt-truthy with-debug { # be empty - this tree requires TCL to generated numerous # components. # -define HAVE_TCL 0 define TCLSH_CMD {exit 1} proc hwaci-check-tcl {} { global top_srcdir @@ -485,53 +485,57 @@ proc hwaci-check-tcl {} { set cfg "" set tclSubdirs {tcl9.0 tcl8.6 lib} - if {$use_tcl} { - if {"" ne $with_tcl} { - if {[file readable "${with_tcl}/tclConfig.sh"]} { - set cfg "${with_tcl}/tclConfig.sh" - } else { - foreach i $tclSubdirs { - if {[file readable "${with_tcl}/$i/tclConfig.sh"]} { - set cfg "${with_tcl}/$i/tclConfig.sh" - break + while {1} { + if {$use_tcl} { + if {"" ne $with_tcl} { + if {[file readable "${with_tcl}/tclConfig.sh"]} { + set cfg "${with_tcl}/tclConfig.sh" + } else { + foreach i $tclSubdirs { + if {[file readable "${with_tcl}/$i/tclConfig.sh"]} { + set cfg "${with_tcl}/$i/tclConfig.sh" + break + } } } + if {"" eq $cfg} { + hwaci-fatal "No tclConfig.sh found under ${with_tcl}" + } + } else { + # If we have not yet found a tclConfig.sh file, look in $libdir which is + # set automatically by autosetup or by the --prefix command-line option. + # See https://sqlite.org/forum/forumpost/e04e693439a22457 + set libdir [get-define libdir] + if {[file readable "${libdir}/tclConfig.sh"]} { + set cfg "${libdir}/tclConfig.sh" + } else { + foreach i $tclSubdirs { + if {[file readable "${libdir}/$i/tclConfig.sh"]} { + set cfg "${libdir}/$i/tclConfig.sh" + break + } + } + } + if {![file readable $cfg]} { + hwaci-warn { + Cannot find a usable tclConfig.sh file. + Use --with-tcl=DIR to specify a directory where tclConfig.sh can be found. + SQLite does not use TCL internally, but TCL is required to build SQLite + from canonical sources and TCL is required for testing. + } + break + } } - if {"" eq $cfg} { - hwaci-fatal "No tclConfig.sh found under ${with_tcl}" - } + msg-result "Using tclConfig.sh: $cfg" + } elseif {!$optTcl} { + hwaci-warn "Unable to run tests because of --disable-tcl" } else { - # If we have not yet found a tclConfig.sh file, look in $libdir which is - # set automatically by autosetup or by the --prefix command-line option. - # See https://sqlite.org/forum/forumpost/e04e693439a22457 - set libdir [get-define libdir] - if {[file readable "${libdir}/tclConfig.sh"]} { - set cfg "${libdir}/tclConfig.sh" - } else { - foreach i $tclSubdirs { - if {[file readable "${libdir}/$i/tclConfig.sh"]} { - set cfg "${libdir}/$i/tclConfig.sh" - break - } - } - } - if {![file readable $cfg]} { - hwaci-fatal { - Cannot find a usable tclConfig.sh file. - Use --with-tcl=DIR to specify a directory where tclConfig.sh can be found. - SQLite does not use TCL internally, but TCL is required to build SQLite - from canonical sources and TCL is required for testing. - } - } + hwaci-warn "Unable to run tests because no tclConfig.sh file could be located" } - msg-result "Using tclConfig.sh: $cfg" - } elseif {!$optTcl} { - hwaci-warn "Unable to run tests because of --disable-tcl" - } else { - hwaci-warn "Unable to run tests because no tclConfig.sh file could be located" + break } - define HAVE_TCL $use_tcl + define HAVE_TCL 0 define TCL_CONFIG_SH $cfg # The historical configure.ac sources tclConfig.sh so that it can # use the several TCL_... env vars. We obviously cannot do that from @@ -550,7 +554,7 @@ proc hwaci-check-tcl {} { if {![file-isexec $with_tclsh]} { set with_tclsh2 [get-define TCL_EXEC_PREFIX]/bin/tclsh if {![file-isexec $with_tclsh2]} { - hwaci-warn "Cannot find a usable tclsh as $with_tclsh or $with_tclsh2" + hwaci-warn "Cannot find a usable tclsh (tried: $with_tclsh $with_tclsh2)" } else { set with_tclsh $with_tclsh2 } @@ -593,10 +597,11 @@ proc hwaci-check-tcl {} { define TCLLIB_RPATH "" } - if {"" eq $with_tclsh} { - hwaci-warn "Cannot find a usable tclsh." - } else { + if {[file exists $with_tclsh]} { msg-result "Using tclsh: $with_tclsh" + define HAVE_TCL 1 + } else { + hwaci-warn "Cannot find a usable tclsh, so cannot run tests." } }; # hwaci-check-tcl @@ -622,7 +627,7 @@ if {[cc-check-functions realpath]} { define-append CFLAGS_JIMSH -DHAVE__FULLPATH define BTCLSH "\$(JIMSH)" set useOwnJimsh 1 -} elseif {"" ne [get-define TCLSH_CMD]} { +} elseif {[file exists [get-define TCLSH_CMD]]} { set cgtcl [get-define TCLSH_CMD] define BTCLSH "\$(TCLSH_CMD)" } else { @@ -640,11 +645,11 @@ if {[cc-check-functions realpath]} { unset tv } unset tpre - if {"" eq [get-define TCLSH_CMD]} { - hwaci-fatal "Cannot find a tclsh to use for code generation." - } } set cgtcl [get-define TCLSH_CMD] + if {![file exists $cgtcl]} { + hwaci-fatal "Cannot find a tclsh to use for code generation." + } define BTCLSH "\$(TCLSH_CMD)" } msg-result "TCL for code generation: $cgtcl" diff --git a/manifest b/manifest index fd1bde1e55..cd91dc8097 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\s/dev/null\sand\sstderr\sredirection\sordering\sin\sautosetup/autosetup-find-tclsh\sso\sthat\sthe\sextraneous\sstrlcpy()/snprintf()/rand()\swarning\soutput\sfrom\sld\son\sOpenBSD\sdoes\snot\sbreak\sdetection\sof\sjimsh0. -D 2024-10-23T01:33:15.729 +C Get\sauto.def\shandling\sthe\scase\sthat\sno\stclsh\sis\sinstalled\sin\sa\sdefault\slocation.\s\sIf\snot,\suse\sjimsh\sif\swe\scan\sfind\srealpath(),\selse\sbail\sout. +D 2024-10-23T01:59:34.375 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -14,7 +14,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 69277d3329dbd407d58d5f0fb84376df162e8d69eac81628c650eed296240729 +F auto.def 1b677ab8ca5aaee8f6622ce0f9f1e3c07753c6ad15d258de22ea033b4abc5feb F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903 F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347 F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac @@ -2240,8 +2240,8 @@ F vsixtest/vsixtest.tcl 6195aba1f12a5e10efc2b8c0009532167be5e301abe5b31385638080 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 3a41ac08a443f96c3f34432f5034d2d12f03913f2a1db19d9f133b365b39ad20 -R 800ba67376f69c50f3d861fe8a325e3a +P cd447e50d1b31e7539e4a8b5dc2a88c5a6a3814a28718b5829167b830dfd0edd +R eb16726048dc406bfeeacf1897cc1534 U stephan -Z e6425f1dee29bf6933ceda8b25c5f5cd +Z f9b2797ed9043665e78aef0c31e48a93 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 82b076b43e..6fa56800fa 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -cd447e50d1b31e7539e4a8b5dc2a88c5a6a3814a28718b5829167b830dfd0edd +359741bc7624006014d73c4cf5cdd29fa38c33a446ed04b46032e5d3ca18d13c