From 067f809402c5146a2b3a0f47195ed0e13e0a4b22 Mon Sep 17 00:00:00 2001 From: stephan Date: Wed, 30 Oct 2024 02:06:41 +0000 Subject: [PATCH] Re-enable exporting of TCLLIBDIR at configure-time so that clients can override it once there rather than having to override it on an arbitrary number of make invocations (which they can still do, but now need not). Based on feedback in [forum:38f6988e57b738e5|forum post 38f6988e57b]. FossilOrigin-Name: ee6e15f12ee55fd13cf31317d876e6ba03a7ae1fb9056f0013106948d81b31d9 --- Makefile.in | 17 ++++++++++++++--- auto.def | 17 ++++++++++------- main.mk | 5 ----- manifest | 16 ++++++++-------- manifest.uuid | 2 +- 5 files changed, 33 insertions(+), 24 deletions(-) diff --git a/Makefile.in b/Makefile.in index 2c7869cda9..7aac5ec02f 100644 --- a/Makefile.in +++ b/Makefile.in @@ -213,18 +213,29 @@ TCL_CONFIG_SH = @TCL_CONFIG_SH@ # TCL config info from tclConfig.sh # # We have to inject this differently in main.mk to accommodate static -# makefiles: +# makefiles, so we don't currently bother to export it here. This +# block is retained in case we decide that we do indeed need to export +# it at configure-time instead of calculate it at make-time. # #TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@ #TCL_LIB_SPEC = @TCL_LIB_SPEC@ #TCL_STUB_LIB_SPEC = @TCL_STUB_LIB_SPEC@ #TCL_EXEC_PREFIX = @TCL_EXEC_PREFIX@ #TCL_VERSION = @TCL_VERSION@ +# +# $(TCLLIB_RPATH) is calculated by the configure script. Its counterpart +# in tclConfig.sh (TCL_LD_SEARCH_FLAGS) is defined in such a way as to +# make it incompatible with static makefiles. +# #TCLLIB_RPATH = @TCLLIB_RPATH@ # -# Where do we want to install the tcl plugin +# $(TCLLIBDIR) = where to install the tcl plugin. If this is empty, it +# is calculated at make-time by the targets which need it but we +# export it here so that it can be set at configure-time, so that +# clients are not required to pass it at make-time, or set it in their +# environment, to override it. # -#TCLLIBDIR = @TCLLIBDIR@ +TCLLIBDIR = @TCLLIBDIR@ # # Additional options when running tests using testrunner.tcl diff --git a/auto.def b/auto.def index 500456086e..a94c40df79 100644 --- a/auto.def +++ b/auto.def @@ -561,11 +561,15 @@ proc sqlite-check-tcl {} { } define TCLSH_CMD $with_tclsh - if {0} { + if {1} { # 2024-10-28: calculation of TCLLIBDIR is now done via the shell - # in the makefile rules which need it (search main.mk for - # T.tcllibdir). This code block is kept around as a basis for - # comparison while the new makefile-side rules get battle-tested. + # in the main.mk (search it for T.tcllibdir) so that + # static/hand-written makefiles which import main.mk do not have + # to define that before importing main.mk. Even so, we export + # TCLLIBDIR from here for the benefit of users who want to provide + # it at configure-time and have it "stick", without having to + # provide it on each make invocation or set it in their + # environment. if {$use_tcl} { # Set up the TCLLIBDIR and TCLLIB_RPATH set tcllibdir [get-env TCLLIBDIR ""] @@ -573,7 +577,7 @@ proc sqlite-check-tcl {} { if {[catch {exec echo "puts stdout \$auto_path" | "$with_tclsh"} result] == 0} { foreach i $result { if {[file isdir $i]} { - set tcllibdir $i + set tcllibdir $i/sqlite3 break } } @@ -583,7 +587,6 @@ proc sqlite-check-tcl {} { } set tclrpath "" if {"" ne $tcllibdir} { - set tcllibdir "${tcllibdir}/sqlite3" set rp [get-define SH_LINKRPATH] set tclrpath [string map [list "%s" $tcllibdir] $rp] # Reminder: tclConfig.sh has TCL_LD_SEARCH_FLAGS to set the @@ -595,7 +598,7 @@ proc sqlite-check-tcl {} { } define TCLLIBDIR $tcllibdir define TCLLIB_RPATH $tclrpath - #proj-fatal "TCLLIB_RPATH = [get-define TCLLIB_RPATH]" + #msg-debug "TCLLIB_RPATH = [get-define TCLLIB_RPATH]" } else { define TCLLIBDIR "" define TCLLIB_RPATH "" diff --git a/main.mk b/main.mk index b2f4051d0f..fb60e4a752 100644 --- a/main.mk +++ b/main.mk @@ -218,11 +218,6 @@ SHELL_OPT ?= # TCL_CONFIG_SH ?= # -# $(TCLLIB_RPATH) is the -rpath flag for libtclsqlite3, not -# libsqlite3, and will usually differ from $(LDFLAGS.rpath). -# -#TCLLIB_RPATH ?= -# # $(HAVE_WASI_SDK) = # # 1 when building with the WASI SDK. This disables certain build diff --git a/manifest b/manifest index 23187b4b15..0fd78ed1e4 100644 --- a/manifest +++ b/manifest @@ -1,9 +1,9 @@ -C When\scalculating\sthe\sTCLLIBDIR\sin\smain.mk,\sallow\sthe\suser\sto\soverride\sit\susing\san\senvironment\svar\sor\smake\svar\sassignment,\sper\sfeedback\sin\s[forum:38f6988e57b738e5|forum\spost\s38f6988e57b]. -D 2024-10-30T01:47:48.301 +C Re-enable\sexporting\sof\sTCLLIBDIR\sat\sconfigure-time\sso\sthat\sclients\scan\soverride\sit\sonce\sthere\srather\sthan\shaving\sto\soverride\sit\son\san\sarbitrary\snumber\sof\smake\sinvocations\s(which\sthey\scan\sstill\sdo,\sbut\snow\sneed\snot).\sBased\son\sfeedback\sin\s[forum:38f6988e57b738e5|forum\spost\s38f6988e57b]. +D 2024-10-30T02:06:41.420 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md c5b4009dca54d127d2d6033c22fd9cc34f53bedb6ef12c7cbaa468381c74ab28 -F Makefile.in 4d261854ba83b66a790271b2d0e390f94be8fe49b3e5ae6c1596abe7917c65a3 +F Makefile.in c938c6f4febb0c5d63870bf9f6f8c43e5b20f3e1cfc889460d340add94d40db3 F Makefile.linux-generic bd3e3cacd369821a6241d4ea1967395c962dfe3057e38cb0a435cee0e8b789d0 F Makefile.msc a92237976eb92c5efaa0dd2524746aec12c196e12df8d4dbff9543a4648c3312 F README.md c3c0f19532ce28f6297a71870f3c7b424729f0e6d9ab889616d3587dd2332159 @@ -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 532d2b8d2d0a384476ca60144329ac12bceda654e9edd8178a88e4571dc43431 +F auto.def c0c87d0df83cd73540fbc84333155b50ac58dbea64d414a05fe4123a5a2644c1 F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903 F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347 F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac @@ -697,7 +697,7 @@ F ext/wasm/tests/opfs/concurrency/test.js d08889a5bb6e61937d0b8cbb78c9efbefbf65a F ext/wasm/tests/opfs/concurrency/worker.js 0a8c1a3e6ebb38aabbee24f122693f1fb29d599948915c76906681bb7da1d3d2 F ext/wasm/wasmfs.make bc8bb227f35d5bd3863a7bd2233437c37472a0d81585979f058f9b9b503bef35 F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0 -F main.mk 8848d415297380eb30752cb018db540b97e2eda0bd3a6c434af040b2008ff0a7 +F main.mk 047c1192d515466bc586c1e882cf169210515b259b9b9c898171a9fc8f59c31c F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271 F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504 F mptest/crash01.test 61e61469e257df0850df4293d7d4d6c2af301421 @@ -2198,8 +2198,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 f5899d22c6c2e65383d7e1ca43da740d3a56fb87daa204a642ce1dc963a98de2 -R 1a0fb946c82c6ff352a73b25350541bd +P 838633182c3f9f9c4c1a23384ed025777c25427d9c4c1f1a47f1630cf4038ca5 +R 5f23d099a56104ea99d6a3e5077a6f43 U stephan -Z 6b8bed4dd4087a47566a9613ae5d1273 +Z 7257af8ebb5afd828f6703c7a9a784cb # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index dd9d7db6bc..509eebcea3 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -838633182c3f9f9c4c1a23384ed025777c25427d9c4c1f1a47f1630cf4038ca5 +ee6e15f12ee55fd13cf31317d876e6ba03a7ae1fb9056f0013106948d81b31d9