]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Get auto.def handling the case that no tclsh is installed in a default location....
authorstephan <stephan@noemail.net>
Wed, 23 Oct 2024 01:59:34 +0000 (01:59 +0000)
committerstephan <stephan@noemail.net>
Wed, 23 Oct 2024 01:59:34 +0000 (01:59 +0000)
FossilOrigin-Name: 359741bc7624006014d73c4cf5cdd29fa38c33a446ed04b46032e5d3ca18d13c

auto.def
manifest
manifest.uuid

index 4d2f29264a873182c9e514cf5e44a0a0247852d4..6fc6ef27ecaf228b62754253d783c168ea7b8ca8 100644 (file)
--- 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"
+        if {"" eq $cfg} {
+          hwaci-fatal "No tclConfig.sh found under ${with_tcl}"
+        }
       } else {
-        foreach i $tclSubdirs {
-          if {[file readable "${libdir}/$i/tclConfig.sh"]} {
-            set cfg "${libdir}/$i/tclConfig.sh"
-            break
+        # 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.
+        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
         }
       }
+      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"
     }
-    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"
index fd1bde1e5577245418b73ac42ae25392d1349eac..cd91dc8097d34c23e0d3a5445ea489b10df6c7b9 100644 (file)
--- 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.
index 82b076b43ea072f0fb1e80a0673b18b18b2b43c9..6fa56800fa2df77f369c1950c486a74082ddd9c6 100644 (file)
@@ -1 +1 @@
-cd447e50d1b31e7539e4a8b5dc2a88c5a6a3814a28718b5829167b830dfd0edd
+359741bc7624006014d73c4cf5cdd29fa38c33a446ed04b46032e5d3ca18d13c