]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Move the configure flags definition and handling into autosetup/sqlite-config.tcl...
authorstephan <stephan@noemail.net>
Tue, 11 Feb 2025 17:10:10 +0000 (17:10 +0000)
committerstephan <stephan@noemail.net>
Tue, 11 Feb 2025 17:10:10 +0000 (17:10 +0000)
FossilOrigin-Name: 9978c87139b7b04208fd1f62121fc4e1e2080723fde69a2bbdca88769f4baf22

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

index 6274d79b68d1e874ec4b4c39acc82a6db21cbf37..d9fa7018a3e3ab8db1771d5ea5a84a423826b5b0 100644 (file)
--- a/auto.def
+++ b/auto.def
 #
 # JimTCL: https://jim.tcl.tk
 #
-use sqlite-config
-
-if {[string first " " $autosetup(srcdir)] != -1} {
-  user-error "The pathname of the source tree\
-              may not contain space characters"
-}
-if {[string first " " $autosetup(builddir)] != -1} {
-  user-error "The pathname of the build directory\
-              may not contain space characters"
-}
-
-
-########################################################################
-# Regarding flag compatibility with the historical autotool configure
-# script:
-#
-# A very long story made short, autosetup's --flag handling has
-# some behaviors which make it impossible to implement 100% identical
-# flags compared to the historical autotools build. The differences
-# are documented here:
-#
-# 1) --debug is used by autosetup itself, but we patch it because
-# decades of muscle memory expect --debug to apply to this code,
-# not the configure script (details are in autosetup/README.md).
-#
-# 2) In autosetup, all flags starting with (--enable, --disable) are
-# forced to be booleans and receive special handling in how they're
-# resolved. Because of that we have to rename:
-#
-#   2.1) --enable-tempstore[=no] to --with-tempstore[=no], noting that
-#        it has four legal values, not two.
-#
-########################################################################
-# A gentle introduction to flags handling in autosetup
-#
-# Reference: https://msteveb.github.io/autosetup/developer/
-#
-# All configure flags must be described in an 'options' call, which
-# must appear very early on in this script. The general syntax is:
-#
-#  FLAG => {Help text}
-#
-# Where FLAG can have any of the following formats:
-#
-#   boolopt            => "a boolean option which defaults to disabled"
-#   boolopt2=1         => "a boolean option which defaults to enabled"
-#   stringopt:         => "an option which takes an argument, e.g. --stringopt=value"
-#   stringopt2:=value  => "an option where the argument is optional and defaults to 'value'"
-#   optalias booltopt3 => "a boolean with a hidden alias. --optalias is not shown in --help"
-#
-# Autosetup does no small amount of specialized handling for flags,
-# especially booleans. Each bool-type --FLAG implicitly gets
-# --enable-FLAG and --disable-FLAG forms. e.g. we define a flag
-# "readline", which will be interpreted in one of two ways, depending
-# on how it's invoked and how its default is defined:
-#
-#   --enable-readline ==> boolean true
-#   --disable-readline ==> boolean false
-#
-# Passing --readline or --readline=1 is equivalent to passing
-# --enable-readline, and --readline=0 is equivalent to
-# --disable-readline.
-#
-# The behavior described above can lead lead to some confusion when
-# writing help text. For example:
-#
-#   options { json=1 {Disable JSON functions} }
-#
-# The reason the help text says "disable" is because a boolean option
-# which defaults to true is, in the --help text, rendered as:
-#
-#   --disable-json          Disable JSON functions
-#
-# Whereas a bool flag which defaults to false will instead render as:
-#
-#   --enable-FLAG
-#
-# Non-boolean flags, in contrast, use the names specifically given to
-# them in the [options] invocation. e.g. "with-tcl" is the --with-tcl
-# flag.
-#
-# Fetching values for flags:
-#
-#   booleans: use one of:
-#     - [opt-bool FLAG] is autosetup's built-in command for this, but we
-#       have some convenience variants:
-#     - [proj-opt-truthy FLAG]
-#     - [proj-opt-if-truthy FLAG {THEN} {ELSE}]
-#
-#   Non-boolean (i.e. string) flags:
-#     - [opt-val FLAG ?default?]
-#     - [opt-str ...] - see the docs in ./autosetup/autosetup
-#
-########################################################################
-set flags {
-  # 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.
 
-  # <build-modes>
-  shared=1             => {Disable build of shared libary}
-  static=1             => {Disable build of static library (mostly)}
-  amalgamation=1       => {Disable the amalgamation and instead build all files separately.}
-  # </build-modes>
-  # <lib-feature>
-  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}
-  load-extension=1     => {Disable loading of external extensions}
-  math=1               => {Disable math functions}
-  json=1               => {Disable JSON functions}
-  memsys5              => {Enable MEMSYS5}
-  memsys3              => {Enable MEMSYS3}
-  fts3                 => {Enable the FTS3 extension}
-  fts4                 => {Enable the FTS4 extension}
-  fts5                 => {Enable the FTS5 extension}
-  update-limit         => {Enable the UPDATE/DELETE LIMIT clause}
-  geopoly              => {Enable the GEOPOLY extension}
-  rtree                => {Enable the RTREE extension}
-  session              => {Enable the SESSION extension}
-  all                  => {Enable FTS4, FTS5, Geopoly, RTree, Sessions}
-  # </lib-feature>
-  # <tcl>
-  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.}
-  # <tcl>
-  # <line-editing>
-  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}
-  # --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}
-  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}
-  # </line-editing>
-  # <icu>
-  with-icu-ldflags:LDFLAGS
-                        => {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}
-  # </icu>
-  # <alternative-builds>
-  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.}
-  # </alternative-builds>
-  # <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}
-  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.}
-  dump-defines=0       => {Dump autosetup defines to $::sqliteConfig(dump-defines-txt) (for build debugging)}
-  # </developer>
-  # <packaging>
-  soname:=legacy       =>
-    # --soname has a long story behind it: https://sqlite.org/src/forumpost/5a3b44f510df8ded
-    {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}
-  # </packaging>
-}
-if {"" ne $::sqliteConfig(dump-defines-json)} {
-  lappend flags \
-    defines-json-include-lowercase=0 \
-    => {Include lower-case defines (primarily system paths) in $::sqliteConfig(dump-defines-json)}
-}
-
-options [subst -nobackslashes -nocommands $flags]
-unset flags
-sqlite-post-options-init
+use sqlite-config
+sqlite-config-bootstrap canonical
 
 sqlite-setup-default-cflags
 proj-if-opt-truthy dev {
index 42af1b459b6574c7a0c02c4731ad63f87f8893dc..8732f741379e0520fbdc79c8a11fa9c475672fbd 100644 (file)
@@ -8,80 +8,7 @@
 # included in this source tree as ./autosetup/jimsh0.c.
 #
 use sqlite-config
-
-options {
-  # <build-modes>
-  static=1             => {Disable build of static library}
-  shared=1             => {Disable build of shared library}
-  # </build-modes>
-  # <lib-feature>
-  threadsafe=1         => {Disable mutexing}
-  with-tempstore:=no   => {Use an in-RAM database for temporary tables: never,no,yes,always}
-  load-extension=1     => {Disable loading of external extensions}
-  math=1               => {Disable math functions}
-  json=1               => {Disable JSON functions}
-  memsys5              => {Enable MEMSYS5}
-  memsys3              => {Enable MEMSYS3}
-  fts3                 => {Enable the FTS3 extension}
-  fts4                 => {Enable the FTS4 extension}
-  fts5                 => {Enable the FTS5 extension}
-  update-limit         => {Enable the UPDATE/DELETE LIMIT clause}
-  geopoly              => {Enable the GEOPOLY extension}
-  rtree                => {Enable the RTREE extension}
-  session              => {Enable the SESSION extension}
-  all                  => {Enable FTS4, FTS5, Geopoly, RTree, Sessions}
-  # </lib-feature>
-  # <line-editing>
-  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}
-  # --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}
-  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}
-  # </line-editing>
-  # <icu>
-  with-icu-ldflags:LDFLAGS
-                        => {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}
-  # </icu>
-  # <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.}
-  # </developer>
-  # <packaging>
-  soname:=legacy       =>
-    # --soname has a long story behind it: https://sqlite.org/src/forumpost/5a3b44f510df8ded
-    {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}
-  # </packaging>
-}
-
-sqlite-post-options-init
+sqlite-config-bootstrap autoconf
 sqlite-check-common-bins
 sqlite-check-common-system-deps
 proj-check-rpath
index 1aaa8af374bc5a87fa89467368abcae8034dd468..f474fe7b825e781252aa5803235927e2bb31d049 100644 (file)
@@ -3,6 +3,15 @@
 # that they can be reused in the TEA sub-tree. This file requires
 # functions from proj.tcl.
 
+if {[string first " " $autosetup(srcdir)] != -1} {
+  user-error "The pathname of the source tree\
+              may not contain space characters"
+}
+if {[string first " " $autosetup(builddir)] != -1} {
+  user-error "The pathname of the build directory\
+              may not contain space characters"
+}
+
 use cc cc-db cc-shared cc-lib pkg-config proj
 
 #
@@ -22,15 +31,6 @@ array set sqliteConfig [proj-strip-hash-comments {
   # Output file for --dump-defines. Intended only for build debugging
   # and not part of the public build interface.
   dump-defines-txt   ./config.defines.txt
-  #
-  # Output file for --dump-defines-json. This is the autosetup
-  # counterpart of the historical "DEFS" var which was generated by
-  # the autotools in the pre-processed autotools builds (but not in
-  # the canonical tree). Generation of this file is disabled (via an
-  # empty file name) until/unless someone voices a specific interest
-  # in it. The original motivating use case is handled fine by
-  # sqlite_cfg.h.
-  dump-defines-json  ""
 }]
 
 #
@@ -41,6 +41,231 @@ array set sqliteConfig [proj-strip-hash-comments {
 #
 set sqliteConfig(is-cross-compiling) [proj-is-cross-compiling]
 
+########################################################################
+# Processes all configure --flags for this build $buildMode must be
+# either "canonical" or "autoconf", and others may be added in the
+# future.
+proc sqlite-config-bootstrap {buildMode} {
+  if {$buildMode ni {canonical autoconf}} {
+    user-error "Invalid build mode: $buildMode. Expecting one of: canonical, autoconf"
+  }
+  ########################################################################
+  # A gentle introduction to flags handling in autosetup
+  #
+  # Reference: https://msteveb.github.io/autosetup/developer/
+  #
+  # All configure flags must be described in an 'options' call. The
+  # general syntax is:
+  #
+  #  FLAG => {Help text}
+  #
+  # Where FLAG can have any of the following formats:
+  #
+  #   boolopt            => "a boolean option which defaults to disabled"
+  #   boolopt2=1         => "a boolean option which defaults to enabled"
+  #   stringopt:         => "an option which takes an argument, e.g. --stringopt=value"
+  #   stringopt2:=value  => "an option where the argument is optional and defaults to 'value'"
+  #   optalias booltopt3 => "a boolean with a hidden alias. --optalias is not shown in --help"
+  #
+  # Autosetup does no small amount of specialized handling for flags,
+  # especially booleans. Each bool-type --FLAG implicitly gets
+  # --enable-FLAG and --disable-FLAG forms. That can lead lead to some
+  # confusion when writing help text. For example:
+  #
+  #   options { json=1 {Disable JSON functions} }
+  #
+  # The reason the help text says "disable" is because a boolean option
+  # which defaults to true is, in the --help text, rendered as:
+  #
+  #   --disable-json          Disable JSON functions
+  #
+  # Whereas a bool flag which defaults to false will instead render as:
+  #
+  #   --enable-FLAG
+  #
+  # Non-boolean flags, in contrast, use the names specifically given to
+  # them in the [options] invocation. e.g. "with-tcl" is the --with-tcl
+  # flag.
+  #
+  # Fetching values for flags:
+  #
+  #   booleans: use one of:
+  #     - [opt-bool FLAG] is autosetup's built-in command for this, but we
+  #       have some convenience variants:
+  #     - [proj-opt-truthy FLAG]
+  #     - [proj-opt-if-truthy FLAG {THEN} {ELSE}]
+  #
+  #   Non-boolean (i.e. string) flags:
+  #     - [opt-val FLAG ?default?]
+  #     - [opt-str ...] - see the docs in ./autosetup/autosetup
+  #
+  # [proj-opt-was-provided] can be used to determine whether a flag was
+  # explicitly provided, which is often useful for distinguishing from
+  # 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
+    # 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.
+
+    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.}
+      }
+    }
+
+    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}
+        load-extension=1     => {Disable loading of external extensions}
+        math=1               => {Disable math functions}
+        json=1               => {Disable JSON functions}
+        memsys5              => {Enable MEMSYS5}
+        memsys3              => {Enable MEMSYS3}
+        fts3                 => {Enable the FTS3 extension}
+        fts4                 => {Enable the FTS4 extension}
+        fts5                 => {Enable the FTS5 extension}
+        update-limit         => {Enable the UPDATE/DELETE LIMIT clause}
+        geopoly              => {Enable the GEOPOLY extension}
+        rtree                => {Enable the RTREE extension}
+        session              => {Enable the SESSION extension}
+        all                  => {Enable FTS4, FTS5, Geopoly, RTree, Sessions}
+      }
+    }
+
+    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.}
+      }
+    }
+
+    line-editing {
+      {*} {
+        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}
+        # --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}
+        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}
+      }
+    }
+
+    icu {
+      {*} {
+        with-icu-ldflags:LDFLAGS
+        => {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}
+      }
+    }
+
+    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.}
+      }
+    }
+
+    # Note that using the --debug/--enable-debug flag here requires patching
+    # autosetup/autosetup to rename the --debug to --autosetup-debug.
+    developer {
+      {*} {
+        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}
+      }
+      {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.}
+      }
+      {*} {
+        dump-defines=0       => {Dump autosetup defines to $::sqliteConfig(dump-defines-txt) (for build debugging)}
+      }
+    }
+
+    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}
+      }
+    }
+  }; # $allOpts
+
+  set opts {}
+  foreach {group XY} [subst -nobackslashes -nocommands [proj-strip-hash-comments $allFlags]] {
+    foreach {X Y} $XY {
+      if { $buildMode in $X || "*" in $X } {
+        foreach y $Y {
+          lappend opts $y
+        }
+      }
+    }
+  }
+  #puts "options = $opts"
+  #exit 0
+  options $opts
+  sqlite-post-options-init
+}; # sqlite-config-bootstrap
+
 ########################################################################
 # Runs some common initialization which must happen immediately after
 # autosetup's [options] function is called. This is also a convenient
@@ -1472,10 +1697,10 @@ proc sqlite-dump-defines {} {
         -array {*.list}
         -auto {OPT_* PACKAGE_* HAVE_*}
       }
-      if {[opt-bool defines-json-include-lowercase]} {
-        lappend dumpDefsOpt -none {lib_*} ; # remnants from proj-check-function-in-lib and friends
-        lappend dumpDefsOpt -auto {[a-z]*}
-      }
+#      if {$::sqliteConfig(dump-defines-json-include-lowercase)} {
+#        lappend dumpDefsOpt -none {lib_*} ; # remnants from proj-check-function-in-lib and friends
+#        lappend dumpDefsOpt -auto {[a-z]*}
+#      }
       lappend dumpDefsOpt -none *
       proj-dump-defs-json $::sqliteConfig(dump-defines-json) {*}$dumpDefsOpt
       undefine OPT_FEATURE_FLAGS.list
index 77a1282113fca50a017213071c9b442df43d7fd1..4248868afcf55e602144d56406161570ed9d2bbe 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Make\sthe\s--out-implib\ssupport\s([6092b0b86bf93a3d])\sspecifically\sopt-in\sbecause\sthe\sfeature\scheck\sfor\sit\spasses\son\ssome\splatforms\swhere\sit\sis\snot\srecognized\sat\slink-time.
-D 2025-02-11T13:13:46.626
+C Move\sthe\sconfigure\sflags\sdefinition\sand\shandling\sinto\sautosetup/sqlite-config.tcl\sto\savoid\sduplication\sbetween\sauto.def\sand\sautoconf/auto.def\swhile\sstill\sgiving\sus\sa\sway\sto\sfilter\sthe\scanonical-tree-only\sflags\sout\sof\sthe\sautoconf\sbuild.
+D 2025-02-11T17:10:10.238
 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 ccf74471ec89edfd5bf942fd6d60fc8ce09f7aa7527d668a1ac44d1bbbcb412d
+F auto.def d06ef819324fc157e231413ad55d1cb26ad4d83bfafa14a1daa3b9d97e33e771
 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 f468a32e6f57c52390e0fe2466974d0afaa1b0fc1d51cbacb4cb3950bd089f67
+F autoconf/auto.def db6c33338294a8b10e205a9081c540b90620b12d916c2fd728a8939fb6fdd97b
 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 cef1e0aa0f2dee2042af66f28c97a9445f84d55d858ba9db4f6116846a1a325f
-F autosetup/sqlite-config.tcl 62fd6e8782ecfb9f8e54cf2860e590ce9d8692218f03cfa8b25e87ff6b1d0b9b
+F autosetup/sqlite-config.tcl 297f5b10a46b46d0dd417a937595916d3868c5fe70af59d7c52516d0b31d6956
 F autosetup/system.tcl 51d4be76cd9a9074704b584e5c9cbba616202c8468cf9ba8a4f8294a7ab1dba9
 F configure 9a00b21dfd13757bbfb8d89b30660a89ec1f8f3a79402b8f9f9b6fc475c3303a x
 F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad
@@ -2209,8 +2209,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 1768de6e9e2c6ff3a9ee29fa6f488fb3d23a3599195ac7d1b09e61c02b7d18b3
-R fdc42f738677b90118628cf2f1a344a1
+P 75535f2355b3b2e83dd57f4c30340af98c8dbcfe6ff1e9be17d23bd30d7d766c
+R b6935973a927dd6f6aec058ecd42249d
 U stephan
-Z 712b8acba7b833aec2f3ddadc507080f
+Z 9498d37db1e807d01c315ee284e7bf43
 # Remove this line to create a well-formed Fossil manifest.
index d8bcef0a5818e6d661d31054f457694c39a18877..0f5e4505b27a38635fc6d41e3a891a301e8a51c4 100644 (file)
@@ -1 +1 @@
-75535f2355b3b2e83dd57f4c30340af98c8dbcfe6ff1e9be17d23bd30d7d766c
+9978c87139b7b04208fd1f62121fc4e1e2080723fde69a2bbdca88769f4baf22