]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add the --static-tclsqlite3 configure flag (canonical build only) to build tclsqlite3...
authorstephan <stephan@noemail.net>
Thu, 3 Apr 2025 00:46:34 +0000 (00:46 +0000)
committerstephan <stephan@noemail.net>
Thu, 3 Apr 2025 00:46:34 +0000 (00:46 +0000)
FossilOrigin-Name: 61836324369e3213841295911aed4f8439a4b2b0f24820c2cf45bb68a0e2cd04

1  2 
autosetup/sqlite-config.tcl
main.mk
manifest
manifest.uuid

index eda9f2588ea179a19b24616557a1255c2ef30975,0dd8ed8cfc53dfa1dcdc2cd69da43cd1c4973ae4..23c7d6fcfd47700195c2c9af05988bd7a617f6c5
@@@ -221,6 -221,12 +221,14 @@@ proc sqlite-configure {buildMode config
                its containing dir has multiple tclsh versions, it may select the
                wrong tclConfig.sh!}
        }
 -              static form.}
+       {canonical} {
+         static-tclsqlite3=0
+           => {Statically-link tclsqlite3. This only works if TCL support is
+               enabled and the libs tclsqlite3 needs are all available in
++              static form. Note that glibc is unable to fully statically
++              link certain libraries required by tclsqlite3, so this won't
++              work on most Linux environments.}
+       }
      }
  
      # Options for line-editing modes for the CLI shell
diff --cc main.mk
index 5efffe3d01fbb83464019844d7f9b07145d69957,447bf3c5bc1f20d9565fab621c5c158a201fab7b..26314b3db89756a7719e7c47abb955e900f31549
+++ b/main.mk
@@@ -1423,12 -1427,24 +1427,26 @@@ tclsqlite-shell.o:   $(T.tcl.env.sh) $(TO
  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 = 1 to statically link tclsqlite3, else
 -# 0. Requires static versions of all requisite libraries.
++# 0. Requires static versions of all requisite libraries. Primarily
++# intended for use with static-friendly environments like Alpine
++# Linux.
+ #
+ STATIC_TCLSQLITE3 ?= 0
+ #
+ # tclsqlite3.(deps|flags).N = N is $(STATIC_TCLSQLITE3)
+ #
+ tclsqlite3.deps.1 = sqlite3.o
+ tclsqlite3.flags.1 = -static $(tclsqlite3.deps.1)
+ tclsqlite3.deps.0 = $(libsqlite3.DLL)
+ tclsqlite3.flags.0 = $(tclsqlite3.deps.0)
+ 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
diff --cc manifest
index 69ab864650871b43ba21b9d38f1291e85a9d8429,acbf6a4148a9fba5a14059f6ec425c5a46c6e606..feea4bbd4d9da55f559622db0a5ddcb7643e82eb
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Fix\sharmless\scompiler\swarnings\sin\sthe\smemstat.c\sextension.\s\sNo\schanges\sto\nthe\score.
- D 2025-04-02T12:41:16.617
 -C Minor\scleanups\sto\sthe\s--static-tclsqlite3\ssupport.
 -D 2025-04-03T00:40:33.238
++C Add\sthe\s--static-tclsqlite3\sconfigure\sflag\s(canonical\sbuild\sonly)\sto\sbuild\stclsqlite3\sas\sa\sstatic\sbinary.\sThis\swill\sonly\swork\son\ssystems\swhich\shave\sstatic\sversions\sof\sall\srequisite\slibraries.
++D 2025-04-03T00:46:34.141
  F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@@ -52,7 -52,7 +52,7 @@@ F autosetup/find_tclconfig.tcl e64886ff
  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 4c4390106694baf62b2c12b2a0b655ab49265337652656314975f40e62a68915
++F autosetup/sqlite-config.tcl 286524d08fa4f4d1d024a8398559499bc83516480c50259d07e51444b6d2f5c7
  F autosetup/system.tcl 51d4be76cd9a9074704b584e5c9cbba616202c8468cf9ba8a4f8294a7ab1dba9
  F configure 9a00b21dfd13757bbfb8d89b30660a89ec1f8f3a79402b8f9f9b6fc475c3303a x
  F contrib/sqlitecon.tcl eb4c6578e08dd353263958da0dc620f8400b869a50d06e271ab0be85a51a08d3
@@@ -709,7 -709,7 +709,7 @@@ F ext/wasm/tests/opfs/sahpool/sahpool-p
  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 3dc309319ff957f7bd951e66565ebdaaf6973e3f88b6aab374c6eba1aa09427f
++F main.mk 13da3ab171667064178b4a364100d03cdb34ff3048e3705df61a96088f1127a5
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
  F mptest/crash01.test 61e61469e257df0850df4293d7d4d6c2af301421
@@@ -2216,8 -2216,8 +2216,9 @@@ F tool/version-info.c 3b36468a90faf1bbd
  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 bef3c8b1b9fd188ee9f941f93bac4567795fea51cee0830abf1ebc1999e1604f
 -R b89fa674042cd72e93e0365523635b36
++P 9e903953ba986df98435da40e94fdb645f6f72279552cba63ef50cec1fe3b486 06f1143870280d335daf4e7027fe8771e34415aa1234fe72c0c450c347b8146c
++R f0791f372d19a167ec2ab11f3ba8dad4
++T +closed 06f1143870280d335daf4e7027fe8771e34415aa1234fe72c0c450c347b8146c
+ U stephan
 -Z 3891ff9be6404b7947c486f6c2af06f6
++Z 7aefb2f5ec601c89d2a0e909a620b105
  # Remove this line to create a well-formed Fossil manifest.
diff --cc manifest.uuid
index ba905e74fe654a02d5b7d236832bc967c3f45b80,7cd39caa0ff78e801747b142a8da34652aba703b..4d06d0051a7e2807c4c856003aa39bec9e349aa5
@@@ -1,1 -1,1 +1,1 @@@
- 9e903953ba986df98435da40e94fdb645f6f72279552cba63ef50cec1fe3b486
 -06f1143870280d335daf4e7027fe8771e34415aa1234fe72c0c450c347b8146c
++61836324369e3213841295911aed4f8439a4b2b0f24820c2cf45bb68a0e2cd04