From: stephan Date: Thu, 13 Feb 2025 14:45:47 +0000 (+0000) Subject: Bring the 3.49 branch's configure-related files up to par with the current trunk. X-Git-Tag: version-3.49.1~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=613929c59f3a66c0685fde61fee8edd821bf94ec;p=thirdparty%2Fsqlite.git Bring the 3.49 branch's configure-related files up to par with the current trunk. FossilOrigin-Name: 1cc8d16b636de128ca5e9c6cf7630fb323e2969aaac984ebee928b0fe690b84b --- diff --git a/auto.def b/auto.def index 981b455954..4528293cd7 100644 --- a/auto.def +++ b/auto.def @@ -1,4 +1,4 @@ -#/do/not/tclsh +#!/do/not/tclsh # ^^^ help out editors which guess this file's content type. # # This is the main autosetup-compatible configure script for the diff --git a/autoconf/auto.def b/autoconf/auto.def index c2e02fe3d8..bb8710378f 100644 --- a/autoconf/auto.def +++ b/autoconf/auto.def @@ -1,4 +1,4 @@ -#/do/not/tclsh +#!/do/not/tclsh # ^^^ help out editors which guess this file's content type. # # This is the main autosetup-compatible configure script for the diff --git a/autosetup/sqlite-config.tcl b/autosetup/sqlite-config.tcl index 3d3f892bf0..14cdcf5da1 100644 --- a/autosetup/sqlite-config.tcl +++ b/autosetup/sqlite-config.tcl @@ -109,36 +109,44 @@ proc sqlite-config-bootstrap {buildMode} { # the case of a default value. ######################################################################## set allFlags { - # Structure: a list of M {Z}, where M is a descriptive option - # group name and Z is a list of X Y pairs. X is a list of - # $buildMode name(s) to which these flags apply, or {*} to apply + # Structure: a list of M {Z} pairs, where M is a descriptive + # option group name and Z is a list of X Y pairs. X is a list of + # $buildMode name(s) to which the Y flags apply, or {*} to apply # to all builds. Y is a {block} in the form expected by # autosetup's [options] command. Each block which is applicable # to $buildMode is appended to a new list before that list is # passed on to [options]. The order of each Y and sub-Y is # retained, which is significant for rendering of --help. - # When writing {help text blocks}, be aware that autosetup formats - # them differently (left-aligned, directly under the --flag) if the - # block starts with a newline. It does NOT expand vars and commands, - # but we use a [subst] call below which will replace (only) var - # refs. + # When writing {help text blocks}, be aware that: + # + # A) autosetup formats them differently if the {block} starts with + # a newline: it starts left-aligned, directly under the --flag, and + # the rest of the block is pasted verbatim rather than + # pretty-printed. + # + # B) Vars and commands are NOT expanded, but we use a [subst] call + # below which will replace (only) var refs. + # Options for how to build the library build-modes { {*} { shared=1 => {Disable build of shared libary} static=1 => {Disable build of static library (mostly)} } {canonical} { - amalgamation=1 => {Disable the amalgamation and instead build all files separately.} + amalgamation=1 => {Disable the amalgamation and instead build all files separately} } } + # Library-level features and defaults lib-features { {*} { threadsafe=1 => {Disable mutexing} with-tempstore:=no => {Use an in-RAM database for temporary tables: never,no,yes,always} largefile=1 => {Disable large file support} + # ^^^ It's not clear that this actually does anything, as + # HAVE_LFS is not checked anywhere in the .c/.h/.in files. load-extension=1 => {Disable loading of external extensions} math=1 => {Disable math functions} json=1 => {Disable JSON functions} @@ -155,108 +163,130 @@ proc sqlite-config-bootstrap {buildMode} { } } + # Options for TCL support tcl { {canonical} { - with-tcl:DIR => - {Directory containing tclConfig.sh or a directory one level up from - that, from which we can derive a directory containing tclConfig.sh. - A dir name of "prefix" is equivalent to the directory specified by - the --prefix flag.} - with-tclsh:PATH => - {Full pathname of tclsh to use. It is used for (A) trying to find - tclConfig.sh and (B) all TCL-based code generation. Warning: if - its containing dir has multiple tclsh versions, it may select the - wrong tclConfig.sh!} - tcl=1 => - {Disable components which require TCL, including all tests. - This tree requires TCL for code generation but can use the in-tree - copy of autosetup/jimsh0.c for that. The SQLite TCL extension and the - test code require a canonical tclsh.} + with-tcl:DIR + => {Directory containing tclConfig.sh or a directory one level up from + that, from which we can derive a directory containing tclConfig.sh. + A dir name of "prefix" is equivalent to the directory specified by + the --prefix flag.} + with-tclsh:PATH + => {Full pathname of tclsh to use. It is used for (A) trying to find + tclConfig.sh and (B) all TCL-based code generation. Warning: if + its containing dir has multiple tclsh versions, it may select the + wrong tclConfig.sh!} + tcl=1 + => {Disable components which require TCL, including all tests. + This tree requires TCL for code generation but can use the in-tree + copy of autosetup/jimsh0.c for that. The SQLite TCL extension and the + test code require a canonical tclsh.} } } + # Options for line-editing modes for the CLI shell line-editing { {*} { - readline=1 => {Disable readline support} + readline=1 + => {Disable readline support} # --with-readline-lib is a backwards-compatible alias for # --with-readline-ldflags with-readline-lib: with-readline-ldflags:=auto - => {Readline LDFLAGS, e.g. -lreadline -lncurses} + => {Readline LDFLAGS, e.g. -lreadline -lncurses} # --with-readline-inc is a backwards-compatible alias for # --with-readline-cflags. with-readline-inc: with-readline-cflags:=auto - => {Readline CFLAGS, e.g. -I/path/to/includes} + => {Readline CFLAGS, e.g. -I/path/to/includes} with-readline-header:PATH - => {Full path to readline.h, from which --with-readline-cflags will be derived} - with-linenoise:DIR => {Source directory for linenoise.c and linenoise.h} - editline=0 => {Enable BSD editline support} + => {Full path to readline.h, from which --with-readline-cflags will be derived} + with-linenoise:DIR + => {Source directory for linenoise.c and linenoise.h} + editline=0 + => {Enable BSD editline support} } } + # Options for ICU: International Components for Unicode icu { {*} { with-icu-ldflags:LDFLAGS - => {Enable SQLITE_ENABLE_ICU and add the given linker flags for the ICU libraries} + => {Enable SQLITE_ENABLE_ICU and add the given linker flags for the + ICU libraries} with-icu-cflags:CFLAGS - => {Apply extra CFLAGS/CPPFLAGS necessary for building with ICU. e.g. -I/usr/local/include} - with-icu-config:=auto => {Enable SQLITE_ENABLE_ICU. Value must be one of: auto, pkg-config, /path/to/icu-config} - icu-collations=0 => {Enable SQLITE_ENABLE_ICU_COLLATIONS. Requires --with-icu-ldflags=... or --with-icu-config} + => {Apply extra CFLAGS/CPPFLAGS necessary for building with ICU. + e.g. -I/usr/local/include} + with-icu-config:=auto + => {Enable SQLITE_ENABLE_ICU. Value must be one of: auto, pkg-config, + /path/to/icu-config} + icu-collations=0 + => {Enable SQLITE_ENABLE_ICU_COLLATIONS. Requires --with-icu-ldflags=... + or --with-icu-config} } } + # Options for exotic/alternative build modes alternative-builds { {canonical} { with-wasi-sdk:=/opt/wasi-sdk - => {Top-most dir of the wasi-sdk for a WASI build} - with-emsdk:=auto => {Top-most dir of the Emscripten SDK installation. Default = EMSDK env var.} + => {Top-most dir of the wasi-sdk for a WASI build} + with-emsdk:=auto + => {Top-most dir of the Emscripten SDK installation. + Default = EMSDK env var.} } } - # Note that using the --debug/--enable-debug flag here requires patching - # autosetup/autosetup to rename the --debug to --autosetup-debug. + # Options mostly for sqlite's own development developer { {*} { + # Note that using the --debug/--enable-debug flag here + # requires patching autosetup/autosetup to rename the --debug + # to --autosetup-debug. with-debug=0 - debug=0 => - {Enable debug build flags. This option will impact performance by - as much as 4x, as it includes large numbers of assert()s in - performance-critical loops. Never use --debug for production - builds.} - scanstatus => {Enable the SQLITE_ENABLE_STMT_SCANSTATUS feature flag} + debug=0 + => {Enable debug build flags. This option will impact performance by + as much as 4x, as it includes large numbers of assert()s in + performance-critical loops. Never use --debug for production + builds.} + scanstatus + => {Enable the SQLITE_ENABLE_STMT_SCANSTATUS feature flag} } {canonical} { dev => {Enable dev-mode build: automatically enables certain other flags} test-status => {Enable status of tests} gcov=0 => {Enable coverage testing using gcov} linemacros => {Enable #line macros in the amalgamation} - dynlink-tools => {Dynamically link libsqlite3 to certain tools which normally statically embed it.} + dynlink-tools => {Dynamically link libsqlite3 to certain tools which normally statically embed it} } {*} { dump-defines=0 => {Dump autosetup defines to $::sqliteConfig(dump-defines-txt) (for build debugging)} } } + # Options specifically for downstream package maintainers packaging { {*} { # soname: https://sqlite.org/src/forumpost/5a3b44f510df8ded - soname:=legacy => - {SONAME for libsqlite3.so. "none", or not using this flag, sets no - soname. "legacy" sets it to its historical value of - libsqlite3.so.0. A value matching the glob "libsqlite3.*" sets - it to that literal value. Any other value is assumed to be a - suffix which gets applied to "libsqlite3.so.", - e.g. --soname=9.10 equates to "libsqlite3.so.9.10". - } - out-implib=0 => - {Enable use of --out-implib linker flag to generate an "import library" for the DLL} + soname:=legacy + => {SONAME for libsqlite3.so. "none", or not using this flag, sets no + soname. "legacy" sets it to its historical value of + libsqlite3.so.0. A value matching the glob "libsqlite3.*" sets + it to that literal value. Any other value is assumed to be a + suffix which gets applied to "libsqlite3.so.", + e.g. --soname=9.10 equates to "libsqlite3.so.9.10".} + # out-implib: https://sqlite.org/forum/forumpost/0c7fc097b2 + out-implib=0 + => {Enable use of --out-implib linker flag to generate an + "import library" for the DLL} } } }; # $allOpts + # Filter allOpts to create the set of [options] legal for this build set opts {} - foreach {group XY} [subst -nobackslashes -nocommands [proj-strip-hash-comments $allFlags]] { + foreach {group XY} [subst -nobackslashes -nocommands \ + [proj-strip-hash-comments $allFlags]] { foreach {X Y} $XY { if { $buildMode in $X || "*" in $X } { foreach y $Y { @@ -265,8 +295,7 @@ proc sqlite-config-bootstrap {buildMode} { } } } - #puts "options = $opts" - #exit 0 + #puts "options = $opts"; exit 0 options $opts sqlite-post-options-init }; # sqlite-config-bootstrap @@ -334,19 +363,19 @@ proc sqlite-autoreconfig {} { # configure script with the same arguments it was initially invoked # with. This can be used to automatically reconfigure # - proc squote {arg} { + set squote {{arg} { # Wrap $arg in single-quotes if it looks like it might need that # to avoid mis-handling as a shell argument. We assume that $arg # will never contain any single-quote characters. if {[string match {*[ &;$*"]*} $arg]} { return '$arg' } return $arg - } - define-append SQLITE_AUTORECONFIG cd [squote $::autosetup(builddir)] && [squote $::autosetup(srcdir)/configure] + }} + define-append SQLITE_AUTORECONFIG cd [apply $squote $::autosetup(builddir)] \ + && [apply $squote $::autosetup(srcdir)/configure] #{*}$::autosetup(argv) breaks with --flag='val with spaces', so... foreach arg $::autosetup(argv) { - define-append SQLITE_AUTORECONFIG [squote $arg] + define-append SQLITE_AUTORECONFIG [apply $squote $arg] } - rename squote "" } define OPT_FEATURE_FLAGS {} ; # -DSQLITE_OMIT/ENABLE flags. diff --git a/manifest b/manifest index 6c350de448..2fba44c47b 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Rename\sa\sconfigure-internal\sfunction\sand\sfix\shandling\sof\s--dump-defines\sfor\sthe\sautoconf\sbundle. -D 2025-02-11T17:22:07.963 +C Bring\sthe\s3.49\sbranch's\sconfigure-related\sfiles\sup\sto\spar\swith\sthe\scurrent\strunk. +D 2025-02-13T14:45:47.956 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d @@ -14,13 +14,13 @@ F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2 F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90 F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2 F art/sqlite370.svg 40b7e2fe8aac3add5d56dd86ab8d427a4eca5bcb3fe4f8946cb3794e1821d531 -F auto.def 74ec59fbf7de5038aa9c3d0b1e0fea67e128e432ff9d84472c4016b08ec3d60b +F auto.def 542572667678019e75e16c3e970bfb9358abed9a6ec70f3715997dd9a04b7fd9 F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac F autoconf/Makefile.in 7bd73a4c8cd89025cbc92b4f887c6fd1b8cd8ecbe62c4ac1f36ac84d04043479 F autoconf/Makefile.msc 0a071367537dc395285a5d624ac4f99f3a387b27cc5e89752423c0499e15aec4 F autoconf/README.first f1d3876e9a7852c22f275a6f06814e64934cecbc0b5b9617d64849094c1fd136 F autoconf/README.txt 7f01dc3915e2d68f329011073662369e62a0938a2c69398807823c57591cb288 -F autoconf/auto.def 1900a63cfa18e662b16d912c849ea81609a90b5fe00cea54955a41572e2c2cd0 +F autoconf/auto.def 9af634c6d51fa4b82c9bb61b51249ca087f2cbe09c7c3c31f920759082a1ffdb F autoconf/tea/Makefile.in ba0556fee8da09c066bad85a4457904e46ee2c2eabaa309c0e83a78f2f151a8e F autoconf/tea/README.txt 61e62e519579e4a112791354d6d440f8b51ea6db3b0bab58d59f29df42d2dfe3 F autoconf/tea/aclocal.m4 52c47aac44ce0ddb1f918b6993e8beb8eee88f43 @@ -50,7 +50,7 @@ F autosetup/cc.tcl c0fcc50ca91deff8741e449ddad05bcd08268bc31177e613a6343bbd1fd3e F autosetup/jimsh0.c 6573f6bc6ff204de0139692648d7037ca0b6c067bac83a7b4e087f20a86866a4 F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba F autosetup/proj.tcl 42119a2e899e319b92f3159952b7ef7219c82cb45eeb636aaf8d909def8150f8 -F autosetup/sqlite-config.tcl 40107b6a75a2ee367359b2adeb2221e118f5dfa6f10b0a0c0f237fc59fbedef3 +F autosetup/sqlite-config.tcl ece913b7bb1efbabdd44fd787c0e4d2fd462d3019cc079a5e6bbe43c83d302b3 F autosetup/system.tcl 51d4be76cd9a9074704b584e5c9cbba616202c8468cf9ba8a4f8294a7ab1dba9 F configure 9a00b21dfd13757bbfb8d89b30660a89ec1f8f3a79402b8f9f9b6fc475c3303a x F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad @@ -2209,9 +2209,10 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 5a964bf3d8311f79d812a93e76a00f8a2a62e73b737b27a1552f7169c93fc1e5 -Q +6aa54cc180e034a10d8fc8f8b0c13d7bc0c94509b4240ac855121d501853768f -R 4fd3ec570b9e04e409e4fa94c4c3b8d1 +P 3f539d81576068f37fbd548cca384bc1ac3dfd9049354d128aea8050c694b2f7 +Q +6df859cd18ded3ca64a184e45709503dd9b6a3f65e7611d3352f0bad288400f4 +Q +da94e551c0ed354ae782c89fd9495d607b77ad7572d90c41ceac12bd6ec4c31b +R f6bddac48350d8f85b169c44e8e32880 U stephan -Z 622f2c24c2bfe1de3145158164c2a8f0 +Z 361a40d2f4e53d288ce23f54980ead79 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 721d17ce67..6a364e0ea2 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -3f539d81576068f37fbd548cca384bc1ac3dfd9049354d128aea8050c694b2f7 +1cc8d16b636de128ca5e9c6cf7630fb323e2969aaac984ebee928b0fe690b84b