]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add experimental --static-tclsqlite3 configure flag to build tclsqlite3 statically...
authorstephan <stephan@noemail.net>
Wed, 2 Apr 2025 23:34:35 +0000 (23:34 +0000)
committerstephan <stephan@noemail.net>
Wed, 2 Apr 2025 23:34:35 +0000 (23:34 +0000)
FossilOrigin-Name: bef3c8b1b9fd188ee9f941f93bac4567795fea51cee0830abf1ebc1999e1604f

Makefile.in
auto.def
autosetup/sqlite-config.tcl
main.mk
manifest
manifest.uuid

index e5f0c527c40e0aab1b0472662c32e3d4ef429204..3a43cc50a4d8e807022b88712bdac92b020e9197 100644 (file)
@@ -259,6 +259,7 @@ USE_AMALGAMATION ?= @USE_AMALGAMATION@
 LINK_TOOLS_DYNAMICALLY ?= @LINK_TOOLS_DYNAMICALLY@
 AMALGAMATION_GEN_FLAGS ?= --linemacros=@AMALGAMATION_LINE_MACROS@
 EXTRA_SRC ?= @AMALGAMATION_EXTRA_SRC@
+STATIC_TCLSQLITE3 = @STATIC_TCLSQLITE3@
 
 #
 # CFLAGS for sqlite3$(T.exe)
index 6ff29ab51ca7cb4f3499c079b8678aaa09881049..df6f067bf094d7e2ac7a128ce87c142fa7e075f7 100644 (file)
--- a/auto.def
+++ b/auto.def
@@ -46,6 +46,8 @@ sqlite-configure canonical {
 
   define LINK_TOOLS_DYNAMICALLY [proj-opt-was-provided dynlink-tools]
 
+  proj-define-for-opt static-tclsqlite3 STATIC_TCLSQLITE3 "Statically link tclsqlite3?"
+
   if {[set fsan [join [opt-val asan-fsanitize] ","]] in {auto ""}} {
     set fsan address,bounds-strict
   }
index eda9f2588ea179a19b24616557a1255c2ef30975..4677ac809c2f55e1d3455f8cb463647c19f2a130 100644 (file)
@@ -221,6 +221,11 @@ proc sqlite-configure {buildMode configScript} {
               its containing dir has multiple tclsh versions, it may select the
               wrong tclConfig.sh!}
       }
+      {canonical} {
+        static-tclsqlite3=0
+          => {Statically-link tclsqlite3. Will only work if static libtcl
+              is available (it usually isn't!).}
+      }
     }
 
     # Options for line-editing modes for the CLI shell
diff --git a/main.mk b/main.mk
index 5efffe3d01fbb83464019844d7f9b07145d69957..0d779bcefe4a295d99691a1ff4146f220bf5dac1 100644 (file)
--- a/main.mk
+++ b/main.mk
@@ -1423,12 +1423,21 @@ tclsqlite-shell.o:      $(T.tcl.env.sh) $(TOP)/src/tclsqlite.c $(DEPS_OBJ_COMMON)
 tclsqlite-stubs.o:     $(T.tcl.env.sh) $(TOP)/src/tclsqlite.c $(DEPS_OBJ_COMMON)
        $(T.compile.tcl) -DUSE_TCL_STUBS=1 -o $@ -c $(TOP)/src/tclsqlite.c $$TCL_INCLUDE_SPEC
 
-tclsqlite3$(T.exe):    $(T.tcl.env.sh) tclsqlite-shell.o $(libsqlite3.DLL)
+STATIC_TCLSQLITE3 ?= 0
+HAVE_TCL ?= 0
+#
+# tclsqlite3.(deps|flags).N = N is $(STATIC_TCLSQLITE3)
+#
+tclsqlite3.deps.1 = sqlite3.o
+tclsqlite3.deps.0 = $(libsqlite3.DLL)
+tclsqlite3.flags.1 = -static sqlite3.o
+tclsqlite3.flags.0 = $(libsqlite3.DLL)
+tclsqlite3$(T.exe):    $(T.tcl.env.sh) tclsqlite-shell.o $(tclsqlite3.deps.$(STATIC_TCLSQLITE3))
        $(T.link.tcl) -o $@ tclsqlite-shell.o \
-               $(libsqlite3.DLL) $$TCL_INCLUDE_SPEC $$TCL_LIB_SPEC \
+               $(tclsqlite3.flags.$(STATIC_TCLSQLITE3)) $$TCL_INCLUDE_SPEC $$TCL_LIB_SPEC \
                $(LDFLAGS.libsqlite3)
 tclsqlite3$(T.exe)-1: tclsqlite3$(T.exe)
-tclsqlite3$(T.exe)-0 tclsqlite3$(T.exe)-:
+tclsqlite3$(T.exe)-0:
 tcl: tclsqlite3$(T.exe)-$(HAVE_TCL)
 
 # Rules to build opcodes.c and opcodes.h
index 69ab864650871b43ba21b9d38f1291e85a9d8429..13a4cd706018647f1a8e521a75ca1244d9053dd4 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,10 +1,10 @@
-C Fix\sharmless\scompiler\swarnings\sin\sthe\smemstat.c\sextension.\s\sNo\schanges\sto\nthe\score.
-D 2025-04-02T12:41:16.617
+C Add\sexperimental\s--static-tclsqlite3\sconfigure\sflag\sto\sbuild\stclsqlite3\sstatically,\swhich\sonly\sworks\sif\sstatic\slibtcl/etc.\sare\savailable.\sCurrently\sintended\sfor\sdocker\sbuilds\svia\sAlpine\sLinux.
+D 2025-04-02T23:34:35.409
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
-F Makefile.in 24a030d8507a7e040907ea3eb7740bd583f89ef8019ef23826dfc1cf3d6f26f0
+F Makefile.in 57de35a9052fe38caa88ee8d81c884c37383160518daec42ffce12b44d848402
 F Makefile.linux-generic bd3e3cacd369821a6241d4ea1967395c962dfe3057e38cb0a435cee0e8b789d0
 F Makefile.msc bb2cc6f75bbcb2d690fbdd1489914a2febd5e99bad9c77538cb3330d304694c6
 F README.md a953c0cffd6e4f2501a306c00ee2b6e1e6630c25031e094629307fe99dd003d1
@@ -15,7 +15,7 @@ F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
 F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
 F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2
 F art/sqlite370.svg 40b7e2fe8aac3add5d56dd86ab8d427a4eca5bcb3fe4f8946cb3794e1821d531
-F auto.def 3c423bc80e144784abeff067ade482fc4d64979bf2d3d673d974d952cf6c6260
+F auto.def 05e0308a9c2adcd13059f5956f1568e7fa05dbc9cd5109436bfa19bd4dcfc020
 F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac
 F autoconf/Makefile.in 66d98d473556c4e2daf7252355f4b5db129091800027f280082804eb4c45784f
 F autoconf/Makefile.msc 5bc67d3912444c40c6f96d003e5c90663e51abb83d204a520110b1b2038dcd8b
@@ -52,7 +52,7 @@ F autosetup/find_tclconfig.tcl e64886ffe3b982d4df42cd28ed91fe0b5940c2c5785e126c1
 F autosetup/jimsh0.c a57c16e65dcffc9c76e496757cb3f7fb47e01ecbd1631a0a5e01751fc856f049
 F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba
 F autosetup/proj.tcl b3c30cd29f16fdf76196c11391038d7fee32e1cfac2a47546dc058df1c0e075a
-F autosetup/sqlite-config.tcl f4ee2028c603fdffb0dfec1a1ac16f5477c8047c728eac6357382f3767ec203b
+F autosetup/sqlite-config.tcl 46399e59e18f82ce85bad2831f819c10a38be2c9475885ae3f3b93ac5df3ea26
 F autosetup/system.tcl 51d4be76cd9a9074704b584e5c9cbba616202c8468cf9ba8a4f8294a7ab1dba9
 F configure 9a00b21dfd13757bbfb8d89b30660a89ec1f8f3a79402b8f9f9b6fc475c3303a x
 F contrib/sqlitecon.tcl eb4c6578e08dd353263958da0dc620f8400b869a50d06e271ab0be85a51a08d3
@@ -709,7 +709,7 @@ F ext/wasm/tests/opfs/sahpool/sahpool-pausing.js f264925cfc82155de38cecb3d204c36
 F ext/wasm/tests/opfs/sahpool/sahpool-worker.js bd25a43fc2ab2d1bafd8f2854ad3943ef673f7c3be03e95ecf1612ff6e8e2a61
 F ext/wasm/wasmfs.make 68999f5bd8c489239592d59a420f8c627c99169bbd6fa16a404751f757b9f702
 F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0
-F main.mk ed671b5709a4f3e4ed156c0d9e323206fec612d819995d1845e93594d4de7ea2
+F main.mk c338276860ee7f27e306d7dc24aa56cc4154361bd45dd85a3fef2de11a69fb7f
 F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
 F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
 F mptest/crash01.test 61e61469e257df0850df4293d7d4d6c2af301421
@@ -2216,8 +2216,11 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 5fc7150a2045a19966570b86843f180c2f8ff1f4688616ac161f071de0e765ec
-R c2bd6f6427c0c22ec5c2f41063ac6b3e
-U drh
-Z 77b7875a2144a2fd9ebe6776079bddf4
+P 9e903953ba986df98435da40e94fdb645f6f72279552cba63ef50cec1fe3b486
+R a777dc5b9028c3898bbf56fa6ac897b3
+T *branch * static-tclsqlite3
+T *sym-static-tclsqlite3 *
+T -sym-trunk * Cancelled\sby\sbranch.
+U stephan
+Z 186e6c7bc392b710af1231a4c5518892
 # Remove this line to create a well-formed Fossil manifest.
index ba905e74fe654a02d5b7d236832bc967c3f45b80..c99cae97f1dcc8423c189f5736902bec05762d6f 100644 (file)
@@ -1 +1 @@
-9e903953ba986df98435da40e94fdb645f6f72279552cba63ef50cec1fe3b486
+bef3c8b1b9fd188ee9f941f93bac4567795fea51cee0830abf1ebc1999e1604f