]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Bring the 3.49 branch's configure-related files up to par with the current trunk.
authorstephan <stephan@noemail.net>
Thu, 13 Feb 2025 14:45:47 +0000 (14:45 +0000)
committerstephan <stephan@noemail.net>
Thu, 13 Feb 2025 14:45:47 +0000 (14:45 +0000)
FossilOrigin-Name: 1cc8d16b636de128ca5e9c6cf7630fb323e2969aaac984ebee928b0fe690b84b

auto.def
autoconf/auto.def
autosetup/sqlite-config.tcl
manifest
manifest.uuid

index 981b455954256b3a53f2300776cf85f9a0d9690e..4528293cd763e3a713cad8bf1e8fb68254fd9f39 100644 (file)
--- 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
index c2e02fe3d8e372a1364fb3f4ebb9f292d453dcfb..bb8710378fad570d6bb607ba4ec403aed4f3327e 100644 (file)
@@ -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
index 3d3f892bf06a240a15961ae20dde901793025f87..14cdcf5da135b1df48f2243dd3cbd2eba4e4b945 100644 (file)
@@ -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.
index 6c350de4481eaf0a11177c3e1548fa67b21e56f8..2fba44c47b2909d62522a3912582c526370d0369 100644 (file)
--- 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.
index 721d17ce67b704235001e44e92060416215983ed..6a364e0ea20fe8c3a1fb7b5f860409b7512c4d70 100644 (file)
@@ -1 +1 @@
-3f539d81576068f37fbd548cca384bc1ac3dfd9049354d128aea8050c694b2f7
+1cc8d16b636de128ca5e9c6cf7630fb323e2969aaac984ebee928b0fe690b84b