annotate third_party/sqlite3/autosetup/sqlite-config.tcl @ 194:fb28063dc490 hg-web

Adding few more images.
author MrJuneJune <me@mrjunejune.com>
date Sun, 25 Jan 2026 20:19:42 -0800
parents 589bab390fb4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
167
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1 # This file holds functions for autosetup which are specific to the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2 # sqlite build tree. They are in this file, instead of auto.def, so
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
3 # that they can be reused in the autoconf sub-tree. This file requires
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
4 # functions from the project-agnostic proj.tcl.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
5
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
6 if {[string first " " $autosetup(srcdir)] != -1} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
7 user-error "The pathname of the source tree\
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
8 may not contain space characters"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
9 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
10 if {[string first " " $autosetup(builddir)] != -1} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
11 user-error "The pathname of the build directory\
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
12 may not contain space characters"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
13 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
14
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
15 use proj
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
16 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
17 # We want the package version info to be emitted early on, but doing
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
18 # so requires a bit of juggling. We have to [use system] for
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
19 # --prefix=... to work and to emit the Host/Build system info, but we
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
20 # don't want those to interfere with --help output.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
21 define PACKAGE_VERSION [proj-file-content -trim $::autosetup(srcdir)/VERSION]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
22 if {"--help" ni $::argv} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
23 msg-result "Configuring SQLite version [get-define PACKAGE_VERSION]"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
24 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
25 use system ; # Will output "Host System" and "Build System" lines
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
26 if {"--help" ni $::argv} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
27 proj-tweak-default-env-dirs
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
28 msg-result "Source dir = $::autosetup(srcdir)"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
29 msg-result "Build dir = $::autosetup(builddir)"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
30 use cc cc-db cc-shared cc-lib pkg-config
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
31 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
32
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
33 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
34 # Object for communicating certain config-time state across various
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
35 # auto.def-related pieces.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
36 array set sqliteConfig [subst [proj-strip-hash-comments {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
37 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
38 # Gets set by [sqlite-configure] (the main configure script driver).
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
39 build-mode unknown
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
40 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
41 # Gets set to 1 when using jimsh for code generation. May affect
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
42 # later decisions.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
43 use-jim-for-codegen 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
44 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
45 # Set to 1 when cross-compiling This value may be changed by certain
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
46 # build options, so it's important that config code which checks for
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
47 # cross-compilation uses this var instead of
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
48 # [proj-is-cross-compiling].
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
49 is-cross-compiling [proj-is-cross-compiling]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
50 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
51 # Pass msg-debug=1 to configure to enable obnoxiously loud output
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
52 # from [msg-debug].
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
53 msg-debug-enabled 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
54 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
55 # Output file for --dump-defines. Intended only for build debugging
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
56 # and not part of the public build interface.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
57 dump-defines-txt ./config.defines.txt
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
58 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
59 # If not empty then --dump-defines will dump not only
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
60 # (dump-defines-txt) but also a JSON file named after this option's
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
61 # value.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
62 dump-defines-json ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
63
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
64 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
65 # The list of feature --flags which the --all flag implies. This
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
66 # requires special handling in a few places.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
67 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
68 all-flag-enables {fts4 fts5 rtree geopoly session dbpage dbstat carray}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
69
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
70 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
71 # Default value for the --all flag. Can hypothetically be modified
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
72 # by non-canonical builds (it was added for a Tcl extension build
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
73 # mode which was eventually removed).
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
74 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
75 all-flag-default 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
76 }]]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
77
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
78 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
79 # Processes all configure --flags for this build, run build-specific
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
80 # config checks, then finalize the configure process. $buildMode must
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
81 # be one of (canonical, autoconf), and others may be added in the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
82 # future. After bootstrapping, $configScript is eval'd in the caller's
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
83 # scope, then post-configuration finalization is run. $configScript is
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
84 # intended to hold configure code which is specific to the given
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
85 # $buildMode, with the caveat that _some_ build-specific code is
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
86 # encapsulated in the configuration finalization step.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
87 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
88 # The intent is that all (or almost all) build-mode-specific
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
89 # configuration goes inside the $configScript argument to this
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
90 # function, and that an auto.def file contains only two commands:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
91 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
92 # use sqlite-config
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
93 # sqlite-configure BUILD_NAME { build-specific configure script }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
94 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
95 # There are snippets of build-mode-specific decision-making in
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
96 # [sqlite-configure-finalize], which gets run after $configScript.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
97 proc sqlite-configure {buildMode configScript} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
98 proj-assert {$::sqliteConfig(build-mode) eq "unknown"} \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
99 "sqlite-configure must not be called more than once"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
100 set allBuildModes {canonical autoconf}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
101 if {$buildMode ni $allBuildModes} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
102 user-error "Invalid build mode: $buildMode. Expecting one of: $allBuildModes"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
103 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
104 if {$::sqliteConfig(all-flag-default)} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
105 set allFlagHelp "Disable these extensions: $::sqliteConfig(all-flag-enables)"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
106 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
107 set allFlagHelp "Enable these extensions: $::sqliteConfig(all-flag-enables)"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
108 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
109
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
110 set ::sqliteConfig(build-mode) $buildMode
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
111 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
112 # A gentle introduction to flags handling in autosetup
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
113 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
114 # Reference: https://msteveb.github.io/autosetup/developer/
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
115 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
116 # All configure flags must be described in one or more calls to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
117 # autosetup's [options] and [options-add] functions. The general
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
118 # syntax of the single argument to those functions is a list contain
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
119 # a mapping of flags to help text:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
120 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
121 # FLAG => {Help text}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
122 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
123 # Where FLAG can have any of the following formats:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
124 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
125 # boolopt => "a boolean option which defaults to disabled"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
126 # boolopt2=1 => "a boolean option which defaults to enabled"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
127 # stringopt: => "an option which takes an argument, e.g. --stringopt=value"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
128 # stringopt:DESCR => As for stringopt: with a description for the value
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
129 # stringopt2:=value => "an option where the argument is optional and defaults to 'value'"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
130 # optalias booltopt3 => "a boolean with a hidden alias. --optalias is not shown in --help"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
131 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
132 # Autosetup does no small amount of specialized handling for flags,
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
133 # especially booleans. Each bool-type --FLAG implicitly gets
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
134 # --enable-FLAG and --disable-FLAG forms. That can lead lead to some
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
135 # confusion when writing help text. For example:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
136 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
137 # options { json=1 {Disable JSON functions} }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
138 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
139 # The reason the help text says "disable" is because a boolean option
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
140 # which defaults to true is, in the --help text, rendered as:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
141 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
142 # --disable-json Disable JSON functions
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
143 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
144 # Whereas a bool flag which defaults to false will instead render as:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
145 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
146 # --enable-FLAG
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
147 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
148 # Non-boolean flags, in contrast, use the names specifically given to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
149 # them in the [options] invocation. e.g. "with-tcl" is the --with-tcl
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
150 # flag.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
151 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
152 # Fetching values for flags:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
153 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
154 # booleans: use one of:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
155 # - [opt-bool FLAG] is autosetup's built-in command for this, but we
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
156 # have some convenience variants:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
157 # - [proj-opt-truthy FLAG]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
158 # - [proj-opt-if-truthy FLAG {THEN} {ELSE}]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
159 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
160 # Non-boolean (i.e. string) flags:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
161 # - [opt-val FLAG ?default?]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
162 # - [opt-str ...] - see the docs in ./autosetup/autosetup
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
163 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
164 # [proj-opt-was-provided] can be used to determine whether a flag was
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
165 # explicitly provided, which is often useful for distinguishing from
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
166 # the case of a default value.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
167 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
168 set allFlags {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
169 # Structure: a list of M {Z} pairs, where M is a descriptive
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
170 # option group name and Z is a list of X Y pairs. X is a list of
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
171 # $buildMode name(s) to which the Y flags apply, or {*} to apply
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
172 # to all builds. Y is a {block} in the form expected by
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
173 # autosetup's [options] and [options-add] command. Each block
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
174 # which is applicable to $buildMode is passed on to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
175 # [options-add]. The order of each Y and sub-Y is retained, which
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
176 # is significant for rendering of --help.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
177 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
178 # Maintenance note: [options] does not support comments in
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
179 # options, but we filter this object through
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
180 # [proj-strip-hash-comments] to remove them before passing them on
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
181 # to [options].
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
182
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
183 # When writing {help text blocks}, be aware that:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
184 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
185 # A) autosetup formats them differently if the {block} starts with
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
186 # a newline: it starts left-aligned, directly under the --flag, and
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
187 # the rest of the block is pasted verbatim rather than
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
188 # pretty-printed.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
189 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
190 # B) Vars and commands are NOT expanded, but we use a [subst] call
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
191 # below which will replace (only) $var refs.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
192
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
193 # Options for how to build the library
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
194 build-modes {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
195 {canonical autoconf} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
196 shared=1 => {Disable build of shared library}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
197 static=1 => {Disable build of static library}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
198 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
199 {canonical} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
200 amalgamation=1 => {Disable the amalgamation and instead build all files separately}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
201 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
202 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
203
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
204 # Library-level features and defaults
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
205 lib-features {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
206 {*} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
207 threadsafe=1 => {Disable mutexing}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
208 with-tempstore:=no => {Use an in-RAM database for temporary tables: never,no,yes,always}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
209 load-extension=1 => {Disable loading of external extensions}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
210 # ^^^ one of the downstream custom builds overrides the load-extension default to 0, which
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
211 # confuses the --help text generator. https://github.com/msteveb/autosetup/issues/77
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
212 math=1 => {Disable math functions}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
213 json=1 => {Disable JSON functions}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
214 memsys5 => {Enable MEMSYS5}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
215 memsys3 => {Enable MEMSYS3}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
216 fts3 => {Enable the FTS3 extension}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
217 fts4 => {Enable the FTS4 extension}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
218 fts5 => {Enable the FTS5 extension}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
219 update-limit => {Enable the UPDATE/DELETE LIMIT clause}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
220 geopoly => {Enable the GEOPOLY extension}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
221 rtree => {Enable the RTREE extension}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
222 session => {Enable the SESSION extension}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
223 dbpage => {Enable the sqlite3_dbpage extension}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
224 dbstat => {Enable the sqlite3_dbstat extension}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
225 carray=1 => {Disable the CARRAY extension}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
226 all=$::sqliteConfig(all-flag-default) => {$allFlagHelp}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
227 largefile=1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
228 => {This legacy flag has no effect on the library but may influence
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
229 the generated sqlite_cfg.h by adding #define HAVE_LFS}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
230 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
231 {canonical} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
232 column-metadata => {Enable the column metadata APIs}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
233 # ^^^ Affects how sqlite3.c is generated, so is not available in
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
234 # the autoconf build.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
235 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
236 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
237
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
238 # Options for TCL support
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
239 tcl {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
240 {canonical} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
241 tcl=1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
242 => {Disable components which require TCL, including all tests.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
243 This tree requires TCL for code generation but can use the in-tree
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
244 copy of autosetup/jimsh0.c for that. The SQLite TCL extension and the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
245 test code require a canonical tclsh.}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
246 with-tcl:DIR
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
247 => {Directory containing tclConfig.sh or a directory one level up from
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
248 that, from which we can derive a directory containing tclConfig.sh.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
249 A dir name of "prefix" is equivalent to the directory specified by
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
250 the --prefix flag.}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
251 with-tclsh:PATH
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
252 => {Full pathname of tclsh to use. It is used for (A) trying to find
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
253 tclConfig.sh and (B) all TCL-based code generation. Use --with-tcl
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
254 unless you have a specific need for this flag. Warning: if its
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
255 containing dir has multiple tclsh versions, it may select the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
256 wrong tclConfig.sh!}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
257 static-tclsqlite3=0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
258 => {Statically-link tclsqlite3. This only works if TCL support is
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
259 enabled and all requisite libraries are available in
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
260 static form. Note that glibc is unable to fully statically
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
261 link certain libraries required by tclsqlite3, so this won't
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
262 work on most Linux environments.}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
263 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
264 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
265
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
266 # Options for line-editing modes for the CLI shell
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
267 line-editing {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
268 {canonical autoconf} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
269 readline=1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
270 => {Disable readline support}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
271 # --with-readline-lib is a backwards-compatible alias for
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
272 # --with-readline-ldflags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
273 with-readline-lib:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
274 with-readline-ldflags:=auto
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
275 => {Readline LDFLAGS, e.g. -lreadline -lncurses}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
276 # --with-readline-inc is a backwards-compatible alias for
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
277 # --with-readline-cflags.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
278 with-readline-inc:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
279 with-readline-cflags:=auto
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
280 => {Readline CFLAGS, e.g. -I/path/to/includes}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
281 with-readline-header:PATH
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
282 => {Full path to readline.h, from which --with-readline-cflags will be derived}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
283 with-linenoise:DIR
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
284 => {Source directory for linenoise.c and linenoise.h}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
285 editline=0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
286 => {Enable BSD editline support}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
287 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
288 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
289
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
290 # Options for ICU: International Components for Unicode
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
291 icu {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
292 {*} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
293 with-icu-ldflags:LDFLAGS
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
294 => {Enable SQLITE_ENABLE_ICU and add the given linker flags for the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
295 ICU libraries. e.g. on Ubuntu systems, try '-licui18n -licuuc -licudata'.}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
296 with-icu-cflags:CFLAGS
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
297 => {Apply extra CFLAGS/CPPFLAGS necessary for building with ICU.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
298 e.g. -I/usr/local/include}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
299 with-icu-config:=auto
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
300 => {Enable SQLITE_ENABLE_ICU. Value must be one of: auto, pkg-config,
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
301 /path/to/icu-config}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
302 icu-collations=0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
303 => {Enable SQLITE_ENABLE_ICU_COLLATIONS. Requires --with-icu-ldflags=...
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
304 or --with-icu-config}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
305 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
306 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
307
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
308 # Options for exotic/alternative build modes
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
309 alternative-builds {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
310 {canonical autoconf} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
311 with-wasi-sdk:=/opt/wasi-sdk
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
312 => {Top-most dir of the wasi-sdk for a WASI build}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
313 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
314
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
315 {*} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
316 # Note that --static-cli-shell has a completely different
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
317 # meaning from --static-shell in the autoconf build!
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
318 # --[disable-]static-shell is a legacy flag which we can't
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
319 # remove without breaking downstream builds.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
320 static-cli-shell=0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
321 => {Statically-link the sqlite3 CLI shell.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
322 This only works if the requisite libraries are all available in
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
323 static form.}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
324 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
325
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
326 {canonical} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
327 static-shells=0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
328 => {Shorthand for --static-cli-shell --static-tclsqlite3}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
329
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
330 with-emsdk:=auto
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
331 => {Top-most dir of the Emscripten SDK installation.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
332 Needed only by ext/wasm. Default=EMSDK env var.}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
333
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
334 amalgamation-extra-src:FILES
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
335 => {Space-separated list of source files to append as-is to the resulting
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
336 sqlite3.c amalgamation file. May be provided multiple times.}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
337 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
338 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
339
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
340 # Options primarily for downstream packagers/package maintainers
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
341 packaging {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
342 {autoconf} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
343 # --disable-static-shell: https://sqlite.org/forum/forumpost/cc219ee704
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
344 # Note that this has a different meaning from --static-cli-shell in the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
345 # canonical build!
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
346 static-shell=1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
347 => {Link the sqlite3 shell app against the DLL instead of embedding sqlite3.c}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
348 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
349 {canonical autoconf} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
350 rpath=1 => {Disable use of the rpath linker flag}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
351 # soname: https://sqlite.org/src/forumpost/5a3b44f510df8ded
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
352 soname:=legacy
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
353 => {SONAME for libsqlite3.so. "none", or not using this flag, sets no
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
354 soname. "legacy" sets it to its historical value of
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
355 libsqlite3.so.0. A value matching the glob "libsqlite3.*" sets
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
356 it to that literal value. Any other value is assumed to be a
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
357 suffix which gets applied to "libsqlite3.so.",
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
358 e.g. --soname=9.10 equates to "libsqlite3.so.9.10".}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
359 # dll-basename: https://sqlite.org/forum/forumpost/828fdfe904
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
360 dll-basename:=auto
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
361 => {Specifies the base name of the resulting DLL file.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
362 If not provided, "libsqlite3" is usually assumed but on some platforms
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
363 a platform-dependent default is used. On some platforms this flag
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
364 gets automatically enabled if it is not provided. Use "default" to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
365 explicitly disable platform-dependent activation on such systems.}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
366 # out-implib: https://sqlite.org/forum/forumpost/0c7fc097b2
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
367 out-implib:=auto
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
368 => {Enable use of --out-implib linker flag to generate an
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
369 "import library" for the DLL. The output's base name is
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
370 specified by this flag's value, with "auto" meaning to figure
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
371 out a name automatically. On some platforms this flag gets
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
372 automatically enabled if it is not provided. Use "none" to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
373 explicitly disable this feature on such platforms.}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
374 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
375 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
376
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
377 # Options mostly for sqlite's own development
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
378 developer {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
379 {*} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
380 # Note that using the --debug/--enable-debug flag here
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
381 # requires patching autosetup/autosetup to rename its builtin
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
382 # --debug to --autosetup-debug. See details in
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
383 # autosetup/README.md#patching.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
384 with-debug=0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
385 debug=0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
386 => {Enable debug build flags. This option will impact performance by
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
387 as much as 4x, as it includes large numbers of assert()s in
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
388 performance-critical loops. Never use --debug for production
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
389 builds.}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
390 scanstatus
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
391 => {Enable the SQLITE_ENABLE_STMT_SCANSTATUS feature flag}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
392 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
393 {canonical} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
394 dev
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
395 => {Enable dev-mode build: automatically enables certain other flags}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
396 test-status
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
397 => {Enable status of tests}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
398 gcov=0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
399 => {Enable coverage testing using gcov}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
400 linemacros
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
401 => {Enable #line macros in the amalgamation}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
402 dynlink-tools
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
403 => {Dynamically link libsqlite3 to certain tools which normally statically embed it}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
404 asan-fsanitize:=auto
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
405 => {Comma- or space-separated list of -fsanitize flags for use with the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
406 fuzzcheck-asan tool. Only those which the compiler claims to support
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
407 will actually be used. May be provided multiple times.}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
408 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
409 {*} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
410 dump-defines=0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
411 => {Dump autosetup defines to $::sqliteConfig(dump-defines-txt)
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
412 (for build debugging)}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
413 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
414 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
415 }; # $allFlags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
416
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
417 set allFlags [proj-strip-hash-comments $allFlags]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
418 # ^^^ lappend of [sqlite-custom-flags] introduces weirdness if
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
419 # we delay [proj-strip-hash-comments] until after that.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
420
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
421 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
422 # sqlite-custom.tcl is intended only for vendor-branch-specific
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
423 # customization. See autosetup/README.md#branch-customization for
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
424 # details.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
425 if {[file exists $::autosetup(libdir)/sqlite-custom.tcl]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
426 uplevel 1 {source $::autosetup(libdir)/sqlite-custom.tcl}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
427 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
428
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
429 if {[llength [info proc sqlite-custom-flags]] > 0} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
430 # sqlite-custom-flags is assumed to be imported via
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
431 # autosetup/sqlite-custom.tcl.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
432 set scf [sqlite-custom-flags]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
433 if {"" ne $scf} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
434 lappend allFlags sqlite-custom-flags $scf
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
435 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
436 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
437
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
438 #lappend allFlags just-testing {{*} {soname:=duplicateEntry => {x}}}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
439
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
440 # Filter allFlags to create the set of [options] legal for this build
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
441 foreach {group XY} [subst -nobackslashes -nocommands $allFlags] {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
442 foreach {X Y} $XY {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
443 if { $buildMode in $X || "*" in $X } {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
444 options-add $Y
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
445 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
446 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
447 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
448
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
449 if {[catch {options {}} msg xopts]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
450 # Workaround for <https://github.com/msteveb/autosetup/issues/73>
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
451 # where [options] behaves oddly on _some_ TCL builds when it's
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
452 # called from deeper than the global scope.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
453 dict incr xopts -level
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
454 return {*}$xopts $msg
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
455 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
456 sqlite-configure-phase1 $buildMode
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
457 uplevel 1 $configScript
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
458 sqlite-configure-finalize
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
459 }; # sqlite-configure
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
460
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
461 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
462 # Runs "phase 1" of the configure process: after initial --flags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
463 # handling but before sqlite-configure's $configScript argument is
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
464 # run. $buildMode must be the mode which was passed to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
465 # [sqlite-configure].
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
466 proc sqlite-configure-phase1 {buildMode} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
467 define PACKAGE_NAME sqlite
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
468 define PACKAGE_URL {https://sqlite.org}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
469 define PACKAGE_BUGREPORT [get-define PACKAGE_URL]/forum
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
470 define PACKAGE_STRING "[get-define PACKAGE_NAME] [get-define PACKAGE_VERSION]"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
471 proj-xfer-options-aliases {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
472 # Carry values from hidden --flag aliases over to their canonical
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
473 # flag forms. This list must include only options which are common
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
474 # to all build modes supported by [sqlite-configure].
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
475 with-readline-inc => with-readline-cflags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
476 with-readline-lib => with-readline-ldflags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
477 with-debug => debug
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
478 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
479 set ::sqliteConfig(msg-debug-enabled) [proj-val-truthy [get-env msg-debug 0]]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
480 proc-debug "msg-debug is enabled"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
481 proj-setup-autoreconfig SQLITE_AUTORECONFIG
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
482 proj-file-extensions
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
483 if {".exe" eq [get-define TARGET_EXEEXT]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
484 define SQLITE_OS_UNIX 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
485 define SQLITE_OS_WIN 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
486 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
487 define SQLITE_OS_UNIX 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
488 define SQLITE_OS_WIN 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
489 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
490 sqlite-setup-default-cflags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
491 define HAVE_LFS 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
492 if {[opt-bool largefile]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
493 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
494 # Insofar as we can determine HAVE_LFS has no effect on the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
495 # library. Perhaps it did back in the early 2000's. The
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
496 # --enable/disable-largefile flag is retained because it's
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
497 # harmless, but it doesn't do anything useful. It does have
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
498 # visible side-effects, though: the generated sqlite_cfg.h may (or
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
499 # may not) define HAVE_LFS.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
500 cc-check-lfs
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
501 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
502 set srcdir $::autosetup(srcdir)
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
503 proj-dot-ins-append $srcdir/Makefile.in
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
504 if {[file exists $srcdir/sqlite3.pc.in]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
505 proj-dot-ins-append $srcdir/sqlite3.pc.in
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
506 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
507 sqlite-handle-hpux; # must be relatively early so that other config tests can work
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
508 }; # sqlite-configure-phase1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
509
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
510 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
511 # Performs late-stage config steps common to all supported
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
512 # $::sqliteConfig(build-mode) values.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
513 proc sqlite-configure-finalize {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
514 sqlite-handle-rpath
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
515 sqlite-handle-soname
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
516 sqlite-handle-threadsafe
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
517 sqlite-handle-tempstore
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
518 sqlite-handle-load-extension
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
519 sqlite-handle-math
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
520 sqlite-handle-icu
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
521 if {[proj-opt-exists readline]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
522 sqlite-handle-line-editing
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
523 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
524 if {[proj-opt-exists shared]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
525 proj-define-for-opt shared ENABLE_LIB_SHARED "Build shared library?"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
526 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
527 if {[proj-opt-exists static]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
528 if {![proj-define-for-opt static ENABLE_LIB_STATIC "Build static library?"]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
529 # This notice really only applies to the canonical build...
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
530 proj-indented-notice {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
531 NOTICE: static lib build may be implicitly re-activated by
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
532 other components, e.g. some test apps.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
533 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
534 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
535 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
536 sqlite-handle-env-quirks
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
537 sqlite-handle-common-feature-flags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
538 sqlite-finalize-feature-flags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
539 sqlite-process-dot-in-files; # do not [define] anything after this
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
540 sqlite-dump-defines
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
541 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
542
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
543 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
544 # Internal config-time debugging output routine. It generates no
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
545 # output unless msg-debug=1 is passed to the configure script.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
546 proc msg-debug {msg} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
547 if {$::sqliteConfig(msg-debug-enabled)} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
548 puts stderr [proj-bold "** DEBUG: $msg"]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
549 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
550 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
551 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
552 # A [msg-debug] proxy which prepends the name of the current proc to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
553 # the debug message. It is not legal to call this from the global
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
554 # scope.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
555 proc proc-debug {msg} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
556 msg-debug "\[[proj-scope 1]\]: $msg"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
557 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
558
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
559 define OPT_FEATURE_FLAGS {} ; # -DSQLITE_OMIT/ENABLE flags.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
560 define OPT_SHELL {} ; # Feature-related CFLAGS for the sqlite3 CLI app
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
561 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
562 # Adds $args, if not empty, to OPT_FEATURE_FLAGS. If the first arg is
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
563 # -shell then it strips that arg and passes the remaining args the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
564 # sqlite-add-shell-opt in addition to adding them to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
565 # OPT_FEATURE_FLAGS. This is intended only for holding
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
566 # -DSQLITE_ENABLE/OMIT/... flags, but that is not enforced here.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
567 proc sqlite-add-feature-flag {args} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
568 set shell ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
569 if {"-shell" eq [lindex $args 0]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
570 set args [lassign $args shell]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
571 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
572 if {"" ne $args} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
573 if {"" ne $shell} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
574 sqlite-add-shell-opt {*}$args
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
575 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
576 define-append OPT_FEATURE_FLAGS {*}$args
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
577 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
578 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
579
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
580 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
581 # Appends $args, if not empty, to OPT_SHELL.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
582 proc sqlite-add-shell-opt {args} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
583 if {"" ne $args} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
584 define-append OPT_SHELL {*}$args
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
585 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
586 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
587
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
588 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
589 # Check for log(3) in libm and die with an error if it is not
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
590 # found. $featureName should be the feature name which requires that
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
591 # function (it's used only in error messages). defines LDFLAGS_MATH to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
592 # the required linker flags (which may be empty even if the math APIs
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
593 # are found, depending on the OS).
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
594 proc sqlite-affirm-have-math {featureName} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
595 if {"" eq [get-define LDFLAGS_MATH ""]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
596 if {![msg-quiet proj-check-function-in-lib log m]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
597 user-error "Missing math APIs for $featureName"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
598 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
599 set lfl [get-define lib_log ""]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
600 undefine lib_log
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
601 if {"" ne $lfl} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
602 user-notice "Forcing requirement of $lfl for $featureName"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
603 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
604 define LDFLAGS_MATH $lfl
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
605 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
606 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
607
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
608 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
609 # Run checks for required binaries, like ld and ar. In the canonical
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
610 # build this must come before [sqlite-handle-wasi-sdk].
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
611 proc sqlite-check-common-bins {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
612 cc-check-tools ld ar ; # must come before [sqlite-handle-wasi-sdk]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
613 if {"" eq [proj-bin-define install]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
614 proj-warn "Cannot find install binary, so 'make install' will not work."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
615 define BIN_INSTALL false
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
616 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
617 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
618
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
619 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
620 # Run checks for system-level includes and libs which are common to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
621 # both the canonical build and the "autoconf" bundle.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
622 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
623 # For the canonical build this must come after
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
624 # [sqlite-handle-wasi-sdk], as that function may change the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
625 # environment in ways which affect this.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
626 proc sqlite-check-common-system-deps {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
627 # Check for needed/wanted data types
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
628 cc-with {-includes stdint.h} \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
629 {cc-check-types int8_t int16_t int32_t int64_t intptr_t \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
630 uint8_t uint16_t uint32_t uint64_t uintptr_t}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
631
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
632 # Check for needed/wanted functions
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
633 cc-check-functions gmtime_r isnan localtime_r localtime_s \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
634 usleep utime pread pread64 pwrite pwrite64
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
635
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
636 apply {{} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
637 set ldrt ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
638 # Collapse funcs from librt into LDFLAGS_RT.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
639 # Some systems (ex: SunOS) require -lrt in order to use nanosleep
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
640 foreach func {fdatasync nanosleep} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
641 if {[proj-check-function-in-lib $func rt]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
642 set ldrt [get-define lib_${func} ""]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
643 undefine lib_${func}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
644 if {"" ne $ldrt} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
645 break
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
646 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
647 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
648 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
649 define LDFLAGS_RT $ldrt
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
650 }}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
651
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
652 # Check for needed/wanted headers
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
653 cc-check-includes \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
654 sys/types.h sys/stat.h dlfcn.h unistd.h \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
655 stdlib.h malloc.h memory.h \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
656 string.h strings.h \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
657 inttypes.h
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
658
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
659 if {[cc-check-includes zlib.h] && [proj-check-function-in-lib deflate z]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
660 # TODO? port over the more sophisticated zlib search from the fossil auto.def
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
661 define HAVE_ZLIB 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
662 define LDFLAGS_ZLIB -lz
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
663 sqlite-add-shell-opt -DSQLITE_HAVE_ZLIB=1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
664 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
665 define HAVE_ZLIB 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
666 define LDFLAGS_ZLIB ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
667 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
668 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
669
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
670 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
671 # Move -DSQLITE_OMIT... and -DSQLITE_ENABLE... flags from CFLAGS and
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
672 # CPPFLAGS to OPT_FEATURE_FLAGS and remove them from BUILD_CFLAGS.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
673 proc sqlite-munge-cflags {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
674 # Move CFLAGS and CPPFLAGS entries matching -DSQLITE_OMIT* and
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
675 # -DSQLITE_ENABLE* to OPT_FEATURE_FLAGS. This behavior is derived
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
676 # from the legacy build and was missing the 3.48.0 release (the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
677 # initial Autosetup port).
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
678 # https://sqlite.org/forum/forumpost/9801e54665afd728
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
679 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
680 # Handling of CPPFLAGS, as well as removing ENABLE/OMIT from
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
681 # CFLAGS/CPPFLAGS, was missing in the 3.49.0 release as well.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
682 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
683 # If any configure flags for features are in conflict with
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
684 # CFLAGS/CPPFLAGS-specified feature flags, all bets are off. There
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
685 # are no guarantees about which one will take precedence.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
686 foreach flagDef {CFLAGS CPPFLAGS} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
687 set tmp ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
688 foreach cf [get-define $flagDef ""] {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
689 switch -glob -- $cf {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
690 -DSQLITE_OMIT* -
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
691 -DSQLITE_ENABLE* {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
692 sqlite-add-feature-flag $cf
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
693 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
694 default {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
695 lappend tmp $cf
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
696 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
697 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
698 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
699 define $flagDef $tmp
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
700 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
701
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
702 # Strip all SQLITE_ENABLE/OMIT flags from BUILD_CFLAGS,
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
703 # for compatibility with the legacy build.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
704 set tmp ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
705 foreach cf [get-define BUILD_CFLAGS ""] {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
706 switch -glob -- $cf {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
707 -DSQLITE_OMIT* -
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
708 -DSQLITE_ENABLE* {}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
709 default {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
710 lappend tmp $cf
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
711 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
712 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
713 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
714 define BUILD_CFLAGS $tmp
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
715 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
716
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
717 #########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
718 # Set up the default CFLAGS and BUILD_CFLAGS values.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
719 proc sqlite-setup-default-cflags {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
720 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
721 # We differentiate between two C compilers: the one used for binaries
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
722 # which are to run on the build system (in autosetup it's called
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
723 # CC_FOR_BUILD and in Makefile.in it's $(B.cc)) and the one used for
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
724 # compiling binaries for the target system (CC a.k.a. $(T.cc)).
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
725 # Normally they're the same, but they will differ when
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
726 # cross-compiling.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
727 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
728 # When cross-compiling we default to not using the -g flag, based on a
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
729 # /chat discussion prompted by
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
730 # https://sqlite.org/forum/forumpost/9a67df63eda9925c
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
731 set defaultCFlags {-O2}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
732 if {!$::sqliteConfig(is-cross-compiling)} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
733 lappend defaultCFlags -g
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
734 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
735 define CFLAGS [proj-get-env CFLAGS $defaultCFlags]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
736 # BUILD_CFLAGS is the CFLAGS for CC_FOR_BUILD.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
737 define BUILD_CFLAGS [proj-get-env BUILD_CFLAGS {-g}]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
738 sqlite-munge-cflags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
739 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
740
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
741 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
742 # Handle various SQLITE_ENABLE/OMIT_... feature flags.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
743 proc sqlite-handle-common-feature-flags {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
744 msg-result "Feature flags..."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
745 if {![opt-bool all]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
746 # Special handling for --disable-all
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
747 foreach flag $::sqliteConfig(all-flag-enables) {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
748 if {![proj-opt-was-provided $flag]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
749 proj-opt-set $flag 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
750 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
751 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
752 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
753 foreach {boolFlag featureFlag ifSetEvalThis} [proj-strip-hash-comments {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
754 all {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
755 # The 'all' option must be first in this list. This impl makes
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
756 # an effort to only apply flags which the user did not already
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
757 # apply, so that combinations like (--all --disable-geopoly)
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
758 # will indeed disable geopoly. There are corner cases where
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
759 # flags which depend on each other will behave in non-intuitive
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
760 # ways:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
761 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
762 # --all --disable-rtree
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
763 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
764 # Will NOT disable geopoly, though geopoly depends on rtree.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
765 # The --geopoly flag, though, will automatically re-enable
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
766 # --rtree, so --disable-rtree won't actually disable anything in
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
767 # that case.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
768 foreach k $::sqliteConfig(all-flag-enables) {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
769 if {![proj-opt-was-provided $k]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
770 proj-opt-set $k 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
771 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
772 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
773 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
774 fts3 -DSQLITE_ENABLE_FTS3 {sqlite-affirm-have-math fts3}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
775 fts4 -DSQLITE_ENABLE_FTS4 {sqlite-affirm-have-math fts4}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
776 fts5 -DSQLITE_ENABLE_FTS5 {sqlite-affirm-have-math fts5}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
777 geopoly -DSQLITE_ENABLE_GEOPOLY {proj-opt-set rtree}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
778 rtree -DSQLITE_ENABLE_RTREE {}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
779 session {-DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_PREUPDATE_HOOK} {}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
780 update-limit -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT {}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
781 memsys5 -DSQLITE_ENABLE_MEMSYS5 {}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
782 memsys3 {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
783 if {[opt-bool memsys5]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
784 proj-warn "not enabling memsys3 because memsys5 is enabled."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
785 expr 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
786 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
787 sqlite-add-feature-flag -DSQLITE_ENABLE_MEMSYS3
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
788 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
789 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
790 scanstatus -DSQLITE_ENABLE_STMT_SCANSTATUS {}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
791 column-metadata -DSQLITE_ENABLE_COLUMN_METADATA {}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
792 dbpage -DSQLITE_ENABLE_DBPAGE_VTAB {}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
793 dbstat -DSQLITE_ENABLE_DBSTAT_VTAB {}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
794 carray -DSQLITE_ENABLE_CARRAY {}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
795 }] {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
796 if {$boolFlag ni $::autosetup(options)} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
797 # Skip flags which are in the canonical build but not
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
798 # the autoconf bundle.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
799 continue
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
800 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
801 proj-if-opt-truthy $boolFlag {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
802 sqlite-add-feature-flag $featureFlag
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
803 if {0 != [eval $ifSetEvalThis] && "all" ne $boolFlag} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
804 msg-result " + $boolFlag"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
805 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
806 } {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
807 if {"all" ne $boolFlag} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
808 msg-result " - $boolFlag"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
809 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
810 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
811 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
812 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
813 # Invert the above loop's logic for some SQLITE_OMIT_... cases. If
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
814 # config option $boolFlag is false, [sqlite-add-feature-flag
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
815 # $featureFlag], where $featureFlag is intended to be
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
816 # -DSQLITE_OMIT_...
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
817 foreach {boolFlag featureFlag} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
818 json -DSQLITE_OMIT_JSON
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
819 } {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
820 if {[proj-opt-truthy $boolFlag]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
821 msg-result " + $boolFlag"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
822 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
823 sqlite-add-feature-flag $featureFlag
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
824 msg-result " - $boolFlag"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
825 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
826 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
827 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
828
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
829 #########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
830 # Remove duplicates from the final feature flag sets and show them to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
831 # the user.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
832 proc sqlite-finalize-feature-flags {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
833 set oFF [get-define OPT_FEATURE_FLAGS]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
834 if {"" ne $oFF} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
835 define OPT_FEATURE_FLAGS [lsort -unique $oFF]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
836 msg-result "Library feature flags: [get-define OPT_FEATURE_FLAGS]"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
837 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
838 set oFF [get-define OPT_SHELL]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
839 if {"" ne $oFF} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
840 define OPT_SHELL [lsort -unique $oFF]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
841 msg-result "Shell options: [get-define OPT_SHELL]"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
842 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
843 if {"" ne [set extraSrc [get-define AMALGAMATION_EXTRA_SRC ""]]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
844 proj-assert {"canonical" eq $::sqliteConfig(build-mode)}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
845 msg-result "Appending source files to amalgamation: $extraSrc"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
846 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
847 if {[lsearch [get-define TARGET_DEBUG ""] -DSQLITE_DEBUG=1] > -1} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
848 msg-result "Note: this is a debug build, so performance will suffer."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
849 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
850 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
851
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
852 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
853 # Checks for the --debug flag and [define]s TARGET_DEBUG based on
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
854 # that. TARGET_DEBUG is unused in the autoconf build but that is
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
855 # arguably a bug.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
856 proc sqlite-handle-debug {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
857 msg-checking "SQLITE_DEBUG build? "
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
858 proj-if-opt-truthy debug {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
859 define TARGET_DEBUG {-g -DSQLITE_DEBUG=1 -O0 -Wall}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
860 sqlite-add-feature-flag -DSQLITE_ENABLE_SELECTTRACE -DSQLITE_ENABLE_WHERETRACE
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
861 proj-opt-set memsys5
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
862 msg-result yes
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
863 } {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
864 define TARGET_DEBUG {-DNDEBUG}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
865 msg-result no
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
866 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
867 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
868
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
869 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
870 # "soname" for libsqlite3.so. See discussion at:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
871 # https://sqlite.org/src/forumpost/5a3b44f510df8ded
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
872 proc sqlite-handle-soname {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
873 define LDFLAGS_LIBSQLITE3_SONAME ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
874 if {[proj-opt-was-provided soname]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
875 set soname [join [opt-val soname] ""]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
876 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
877 # Enabling soname breaks linking for the --dynlink-tools feature,
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
878 # and this project has no direct use for soname, so default to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
879 # none. Package maintainers, on the other hand, like to have an
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
880 # soname.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
881 set soname none
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
882 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
883 switch -exact -- $soname {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
884 none - "" { return 0 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
885 legacy { set soname libsqlite3.so.0 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
886 default {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
887 if {[string match libsqlite3.* $soname]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
888 # use it as-is
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
889 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
890 # Assume it's a suffix
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
891 set soname "libsqlite3.so.${soname}"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
892 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
893 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
894 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
895 proc-debug "soname=$soname"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
896 if {[proj-check-soname $soname]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
897 define LDFLAGS_LIBSQLITE3_SONAME [get-define LDFLAGS_SONAME_PREFIX]$soname
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
898 msg-result "Setting SONAME using: [get-define LDFLAGS_LIBSQLITE3_SONAME]"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
899 } elseif {[proj-opt-was-provided soname]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
900 # --soname was explicitly requested but not available, so fail fatally
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
901 proj-fatal "This environment does not support SONAME."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
902 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
903 # --soname was not explicitly requested but not available, so just warn
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
904 msg-result "This environment does not support SONAME."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
905 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
906 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
907
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
908 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
909 # If --enable-threadsafe is set, this adds -DSQLITE_THREADSAFE=1 to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
910 # OPT_FEATURE_FLAGS and sets LDFLAGS_PTHREAD to the linker flags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
911 # needed for linking pthread (possibly an empty string). If
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
912 # --enable-threadsafe is not set, adds -DSQLITE_THREADSAFE=0 to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
913 # OPT_FEATURE_FLAGS and sets LDFLAGS_PTHREAD to an empty string.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
914 proc sqlite-handle-threadsafe {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
915 msg-checking "Support threadsafe operation? "
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
916 define LDFLAGS_PTHREAD ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
917 set enable 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
918 proj-if-opt-truthy threadsafe {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
919 msg-result "Checking for libs..."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
920 if {[proj-check-function-in-lib pthread_create pthread]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
921 && [proj-check-function-in-lib pthread_mutexattr_init pthread]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
922 set enable 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
923 define LDFLAGS_PTHREAD [get-define lib_pthread_create]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
924 undefine lib_pthread_create
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
925 undefine lib_pthread_mutexattr_init
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
926 } elseif {[proj-opt-was-provided threadsafe]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
927 user-error "Missing required pthread libraries. Use --disable-threadsafe to disable this check."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
928 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
929 msg-result "pthread support not detected"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
930 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
931 # Recall that LDFLAGS_PTHREAD might be empty even if pthreads if
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
932 # found because it's in -lc on some platforms.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
933 } {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
934 msg-result "Disabled using --disable-threadsafe"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
935 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
936 sqlite-add-feature-flag -DSQLITE_THREADSAFE=${enable}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
937 return $enable
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
938 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
939
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
940 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
941 # Handles the --with-tempstore flag.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
942 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
943 # The test fixture likes to set SQLITE_TEMP_STORE on its own, so do
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
944 # not set that feature flag unless it was explicitly provided to the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
945 # configure script.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
946 proc sqlite-handle-tempstore {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
947 if {[proj-opt-was-provided with-tempstore]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
948 set ts [opt-val with-tempstore no]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
949 set tsn 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
950 msg-checking "Use an in-RAM database for temporary tables? "
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
951 switch -exact -- $ts {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
952 never { set tsn 0 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
953 no { set tsn 1 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
954 yes { set tsn 2 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
955 always { set tsn 3 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
956 default {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
957 user-error "Invalid --with-tempstore value '$ts'. Use one of: never, no, yes, always"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
958 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
959 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
960 msg-result $ts
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
961 sqlite-add-feature-flag -DSQLITE_TEMP_STORE=$tsn
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
962 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
963 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
964
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
965 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
966 # Check for the Emscripten SDK for building the web-based wasm
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
967 # components. The core lib and tools do not require this but ext/wasm
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
968 # does. Most of the work is done via [proj-check-emsdk], then this
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
969 # function adds the following defines:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
970 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
971 # - EMCC_WRAPPER = "" or top-srcdir/tool/emcc.sh
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
972 # - BIN_WASM_OPT = "" or path to wasm-opt
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
973 # - BIN_WASM_STRIP = "" or path to wasm-strip
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
974 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
975 # Noting that:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
976 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
977 # 1) Not finding the SDK is not fatal at this level, nor is failure to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
978 # find one of the related binaries.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
979 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
980 # 2) wasm-strip is part of the wabt package:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
981 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
982 # https://github.com/WebAssembly/wabt
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
983 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
984 # and this project requires it for production-mode builds but not dev
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
985 # builds.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
986 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
987 proc sqlite-handle-emsdk {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
988 define EMCC_WRAPPER ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
989 define BIN_WASM_STRIP ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
990 define BIN_WASM_OPT ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
991 set srcdir $::autosetup(srcdir)
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
992 if {$srcdir ne $::autosetup(builddir)} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
993 # The EMSDK pieces require writing to the original source tree
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
994 # even when doing an out-of-tree build. The ext/wasm pieces do not
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
995 # support an out-of-tree build so we treat that case as if EMSDK
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
996 # were not found.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
997 msg-result "Out-of tree build: not checking for EMSDK."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
998 return
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
999 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1000 set emccSh $srcdir/tool/emcc.sh
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1001 set extWasmConfig $srcdir/ext/wasm/config.make
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1002 if {![get-define HAVE_WASI_SDK] && [proj-check-emsdk]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1003 define EMCC_WRAPPER $emccSh
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1004 set emsdkHome [get-define EMSDK_HOME ""]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1005 proj-assert {"" ne $emsdkHome}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1006 #define EMCC_WRAPPER ""; # just for testing
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1007 proj-bin-define wasm-strip
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1008 proj-bin-define bash; # ext/wasm/GNUmakefile requires bash
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1009 if {[file-isexec $emsdkHome/upstream/bin/wasm-opt]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1010 define BIN_WASM_OPT $emsdkHome/upstream/bin/wasm-opt
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1011 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1012 # Maybe there's a copy in the path?
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1013 proj-bin-define wasm-opt BIN_WASM_OPT
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1014 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1015 proj-dot-ins-append $emccSh.in $emccSh {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1016 catch {exec chmod u+x $dotInsOut}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1017 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1018 proj-dot-ins-append $extWasmConfig.in $extWasmConfig
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1019 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1020 define EMCC_WRAPPER ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1021 file delete -force -- $emccSh $extWasmConfig
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1022 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1023 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1024
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1025 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1026 # Internal helper for [sqlite-check-line-editing]. Returns a list of
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1027 # potential locations under which readline.h might be found.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1028 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1029 # On some environments this function may perform extra work to help
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1030 # sqlite-check-line-editing figure out how to find libreadline and
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1031 # friends. It will communicate those results via means other than the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1032 # result value, e.g. by modifying configure --flags.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1033 proc sqlite-get-readline-dir-list {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1034 # Historical note: the dirs list, except for the inclusion of
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1035 # $prefix and some platform-specific dirs, originates from the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1036 # legacy configure script.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1037 set dirs [list [get-define prefix]]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1038 switch -glob -- [get-define host] {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1039 *-linux-android {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1040 # Possibly termux
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1041 lappend dirs /data/data/com.termux/files/usr
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1042 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1043 *-mingw32 {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1044 lappend dirs /mingw32 /mingw
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1045 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1046 *-mingw64 {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1047 lappend dirs /mingw64 /mingw
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1048 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1049 *-haiku {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1050 lappend dirs /boot/system/develop/headers
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1051 if {[opt-val with-readline-ldflags] in {auto ""}} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1052 # If the user did not supply their own --with-readline-ldflags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1053 # value, hijack that flag to inject options which are known to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1054 # work on Haiku OS installations.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1055 if {"" ne [glob -nocomplain /boot/system/lib/libreadline*]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1056 proj-opt-set with-readline-ldflags {-L/boot/system/lib -lreadline}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1057 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1058 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1059 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1060 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1061 lappend dirs /usr /usr/local /usr/local/readline /usr/contrib
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1062 set rv {}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1063 foreach d $dirs {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1064 if {[file isdir $d]} {lappend rv $d}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1065 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1066 #proc-debug "dirs=$rv"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1067 return $rv
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1068 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1069
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1070 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1071 # sqlite-check-line-editing jumps through proverbial hoops to try to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1072 # find a working line-editing library, setting:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1073 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1074 # - HAVE_READLINE to 0 or 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1075 # - HAVE_LINENOISE to 0, 1, or 2
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1076 # - HAVE_EDITLINE to 0 or 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1077 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1078 # Only one of ^^^ those will be set to non-0.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1079 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1080 # - LDFLAGS_READLINE = linker flags or empty string
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1081 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1082 # - CFLAGS_READLINE = compilation flags for clients or empty string.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1083 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1084 # Note that LDFLAGS_READLINE and CFLAGS_READLINE may refer to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1085 # linenoise or editline, not necessarily libreadline. In some cases
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1086 # it will set HAVE_READLINE=1 when it's really using editline, for
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1087 # reasons described in this function's comments.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1088 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1089 # Returns a string describing which line-editing approach to use, or
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1090 # "none" if no option is available.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1091 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1092 # Order of checks:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1093 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1094 # 1) --with-linenoise trumps all others and skips all of the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1095 # complexities involved with the remaining options.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1096 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1097 # 2) --editline trumps --readline
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1098 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1099 # 3) --disable-readline trumps --readline
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1100 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1101 # 4) Default to automatic search for optional readline
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1102 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1103 # 5) Try to find readline or editline. If it's not found AND the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1104 # corresponding --FEATURE flag was explicitly given then fail
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1105 # fatally, else fail non-fatally.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1106 proc sqlite-check-line-editing {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1107 msg-result "Checking for line-editing capability..."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1108 define HAVE_READLINE 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1109 define HAVE_LINENOISE 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1110 define HAVE_EDITLINE 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1111 define LDFLAGS_READLINE ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1112 define CFLAGS_READLINE ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1113 set failIfNotFound 0 ; # Gets set to 1 for explicit --FEATURE requests
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1114 # so that we know whether to fail fatally or not
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1115 # if the library is not found.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1116 set libsForReadline {readline edit} ; # -l<LIB> names to check for readline().
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1117 # The libedit check changes this.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1118 set editLibName "readline" ; # "readline" or "editline"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1119 set editLibDef "HAVE_READLINE" ; # "HAVE_READLINE" or "HAVE_EDITLINE"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1120 set dirLn [opt-val with-linenoise]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1121 if {"" ne $dirLn} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1122 # Use linenoise from a copy of its sources (not a library)...
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1123 if {![file isdir $dirLn]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1124 proj-fatal "--with-linenoise value is not a directory"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1125 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1126 set lnH $dirLn/linenoise.h
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1127 if {![file exists $lnH] } {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1128 proj-fatal "Cannot find linenoise.h in $dirLn"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1129 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1130 set lnC ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1131 set lnCOpts {linenoise-ship.c linenoise.c}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1132 foreach f $lnCOpts {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1133 if {[file exists $dirLn/$f]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1134 set lnC $dirLn/$f
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1135 break
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1136 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1137 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1138 if {"" eq $lnC} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1139 proj-fatal "Cannot find any of $lnCOpts in $dirLn"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1140 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1141 set flavor ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1142 set lnVal [proj-which-linenoise $lnH]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1143 switch -- $lnVal {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1144 1 { set flavor "antirez" }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1145 2 { set flavor "msteveb" }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1146 default {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1147 proj-fatal "Cannot determine the flavor of linenoise from $lnH"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1148 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1149 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1150 define CFLAGS_READLINE "-I$dirLn $lnC"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1151 define HAVE_LINENOISE $lnVal
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1152 sqlite-add-shell-opt -DHAVE_LINENOISE=$lnVal
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1153 if {$::sqliteConfig(use-jim-for-codegen) && 2 == $lnVal} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1154 define-append CFLAGS_JIMSH -DUSE_LINENOISE [get-define CFLAGS_READLINE]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1155 user-notice "Adding linenoise support to jimsh."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1156 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1157 return "linenoise ($flavor)"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1158 } elseif {[opt-bool editline]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1159 # libedit mimics libreadline and on some systems does not have its
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1160 # own header installed (instead, that of libreadline is used).
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1161 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1162 # shell.c historically expects HAVE_EDITLINE to be set for
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1163 # libedit, but it then expects to see <editline/readline.h>, which
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1164 # some system's don't actually have despite having libedit. If we
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1165 # end up finding <editline/readline.h> below, we will use
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1166 # -DHAVE_EDITLINE=1, else we will use -DHAVE_READLINE=1. In either
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1167 # case, we will link against libedit.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1168 set failIfNotFound 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1169 set libsForReadline {edit}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1170 set editLibName editline
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1171 } elseif {![opt-bool readline]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1172 msg-result "Readline support explicitly disabled with --disable-readline"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1173 return "none"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1174 } elseif {[proj-opt-was-provided readline]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1175 # If an explicit --[enable-]readline was used, fail if it's not
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1176 # found, else treat the feature as optional.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1177 set failIfNotFound 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1178 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1179
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1180 # Transform with-readline-header=X to with-readline-cflags=-I...
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1181 set v [opt-val with-readline-header]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1182 proj-opt-set with-readline-header ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1183 if {"" ne $v} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1184 if {"auto" eq $v} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1185 proj-opt-set with-readline-cflags auto
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1186 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1187 set v [file dirname $v]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1188 if {[string match */readline $v]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1189 # Special case: if the path includes .../readline/readline.h,
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1190 # set the -I to one dir up from that because our sources
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1191 # #include <readline/readline.h> or <editline/readline.h>.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1192 set v [file dirname $v]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1193 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1194 proj-opt-set with-readline-cflags "-I$v"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1195 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1196 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1197
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1198 # Look for readline.h
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1199 set rlInc [opt-val with-readline-cflags auto]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1200 if {"auto" eq $rlInc} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1201 set rlInc ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1202 if {$::sqliteConfig(is-cross-compiling)} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1203 # ^^^ this check is derived from the legacy configure script.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1204 proj-warn "Skipping check for readline.h because we're cross-compiling."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1205 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1206 set dirs [sqlite-get-readline-dir-list]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1207 set subdirs [list \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1208 include/$editLibName \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1209 readline]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1210 if {"editline" eq $editLibName} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1211 lappend subdirs include/readline
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1212 # ^^^ editline, on some systems, does not have its own header,
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1213 # and uses libreadline's header.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1214 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1215 lappend subdirs include
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1216 set rlInc [proj-search-for-header-dir readline.h \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1217 -dirs $dirs -subdirs $subdirs]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1218 #proc-debug "rlInc=$rlInc"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1219 if {"" ne $rlInc} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1220 if {[string match */readline $rlInc]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1221 set rlInc [file dirname $rlInc]; # CLI shell: #include <readline/readline.h>
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1222 } elseif {[string match */editline $rlInc]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1223 set editLibDef HAVE_EDITLINE
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1224 set rlInc [file dirname $rlInc]; # CLI shell: #include <editline/readline.h>
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1225 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1226 set rlInc "-I${rlInc}"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1227 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1228 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1229 } elseif {"" ne $rlInc && ![string match *-I* $rlInc]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1230 proj-fatal "Argument to --with-readline-cflags is intended to be CFLAGS and contain -I..."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1231 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1232
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1233 # If readline.h was found/specified, look for lib(readline|edit)...
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1234 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1235 # This is not quite straightforward because both libreadline and
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1236 # libedit typically require some other library which (according to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1237 # legacy autotools-generated tests) provides tgetent(3). On some
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1238 # systems that's built into libreadline/edit, on some (most?) its in
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1239 # lib[n]curses, and on some it's in libtermcap.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1240 set rlLib ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1241 if {"" ne $rlInc} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1242 set rlLib [opt-val with-readline-ldflags]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1243 #proc-debug "rlLib=$rlLib"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1244 if {$rlLib in {auto ""}} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1245 set rlLib "" ; # make sure it's not "auto", as we may append to it below
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1246 set libTerm ""; # lib with tgetent(3)
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1247 if {[proj-check-function-in-lib tgetent [list $editLibName ncurses curses termcap]]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1248 # ^^^ that libs list comes from the legacy configure script ^^^
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1249 set libTerm [get-define lib_tgetent]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1250 undefine lib_tgetent
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1251 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1252 if {$editLibName eq $libTerm} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1253 # tgetent(3) was found in the editing library
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1254 set rlLib $libTerm
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1255 } elseif {[proj-check-function-in-lib readline $libsForReadline $libTerm]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1256 # tgetent(3) was found in an external lib
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1257 set rlLib [get-define lib_readline]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1258 lappend rlLib $libTerm
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1259 undefine lib_readline
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1260 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1261 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1262 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1263
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1264 # If we found a library, configure the build to use it...
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1265 if {"" ne $rlLib} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1266 if {"editline" eq $editLibName && "HAVE_READLINE" eq $editLibDef} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1267 # Alert the user that, despite outward appearances, we won't be
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1268 # linking to the GPL'd libreadline. Presumably that distinction is
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1269 # significant for those using --editline.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1270 proj-indented-notice {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1271 NOTE: the local libedit uses <readline/readline.h> so we
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1272 will compile with -DHAVE_READLINE=1 but will link with
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1273 libedit.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1274 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1275 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1276 set rlLib [join $rlLib]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1277 set rlInc [join $rlInc]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1278 define LDFLAGS_READLINE $rlLib
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1279 define CFLAGS_READLINE $rlInc
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1280 proj-assert {$editLibDef in {HAVE_READLINE HAVE_EDITLINE}}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1281 proj-assert {$editLibName in {readline editline}}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1282 sqlite-add-shell-opt -D${editLibDef}=1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1283 msg-result "Using $editLibName flags: $rlInc $rlLib"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1284 # Check whether rl_completion_matches() has a signature we can use
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1285 # and disable that sub-feature if it doesn't.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1286 if {![cctest -cflags "$rlInc -D${editLibDef}" -libs $rlLib -nooutput 1 \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1287 -source {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1288 #include <stdio.h>
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1289 #ifdef HAVE_EDITLINE
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1290 #include <editline/readline.h>
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1291 #else
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1292 #include <readline/readline.h>
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1293 #endif
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1294 static char * rcg(const char *z, int i){(void)z; (void)i; return 0;}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1295 int main(void) {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1296 char ** x = rl_completion_matches("one", rcg);
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1297 (void)x;
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1298 return 0;
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1299 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1300 }]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1301 proj-warn "readline-style completion disabled due to rl_completion_matches() signature mismatch"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1302 sqlite-add-shell-opt -DSQLITE_OMIT_READLINE_COMPLETION
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1303 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1304 return $editLibName
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1305 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1306
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1307 if {$failIfNotFound} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1308 proj-fatal "Explicit --$editLibName failed to find a matching library."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1309 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1310 return "none"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1311 }; # sqlite-check-line-editing
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1312
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1313 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1314 # Runs sqlite-check-line-editing and adds a message around it. In the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1315 # canonical build this must not be called before
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1316 # sqlite-determine-codegen-tcl for reasons now lost to history (and
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1317 # might not still be applicable).
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1318 proc sqlite-handle-line-editing {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1319 msg-result "Line-editing support for the sqlite3 shell: [sqlite-check-line-editing]"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1320 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1321
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1322
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1323 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1324 # ICU - International Components for Unicode
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1325 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1326 # Handles these flags:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1327 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1328 # --with-icu-ldflags=LDFLAGS
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1329 # --with-icu-cflags=CFLAGS
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1330 # --with-icu-config[=auto | pkg-config | /path/to/icu-config]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1331 # --enable-icu-collations
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1332 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1333 # --with-icu-config values:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1334 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1335 # - auto: use the first one of (pkg-config, icu-config) found on the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1336 # system.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1337 # - pkg-config: use only pkg-config to determine flags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1338 # - /path/to/icu-config: use that to determine flags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1339 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1340 # If --with-icu-config is used and neither pkg-config nor icu-config
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1341 # are found, fail fatally.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1342 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1343 # If both --with-icu-ldflags and --with-icu-config are provided, they
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1344 # are cumulative. If neither are provided, icu-collations is not
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1345 # honored and a warning is emitted if it is provided.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1346 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1347 # Design note: though we could automatically enable ICU if the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1348 # icu-config binary or (pkg-config icu-io) are found, we specifically
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1349 # do not. ICU is always an opt-in feature.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1350 proc sqlite-handle-icu {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1351 define LDFLAGS_ICU [join [opt-val with-icu-ldflags ""]]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1352 define CFLAGS_ICU [join [opt-val with-icu-cflags ""]]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1353 if {[proj-opt-was-provided with-icu-config]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1354 msg-result "Checking for ICU support..."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1355 set icuConfigBin [opt-val with-icu-config]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1356 set tryIcuConfigBin 1; # set to 0 if we end up using pkg-config
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1357 if {$icuConfigBin in {auto pkg-config}} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1358 if {[pkg-config-init 0] && [pkg-config icu-io]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1359 # Maintenance reminder: historical docs say to use both of
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1360 # (icu-io, icu-uc). icu-uc lacks a required lib and icu-io has
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1361 # all of them on tested OSes.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1362 set tryIcuConfigBin 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1363 define LDFLAGS_ICU [get-define PKG_ICU_IO_LDFLAGS]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1364 define-append LDFLAGS_ICU [get-define PKG_ICU_IO_LIBS]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1365 define CFLAGS_ICU [get-define PKG_ICU_IO_CFLAGS]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1366 } elseif {"pkg-config" eq $icuConfigBin} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1367 proj-fatal "pkg-config cannot find package icu-io"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1368 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1369 proj-assert {"auto" eq $icuConfigBin}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1370 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1371 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1372 if {$tryIcuConfigBin} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1373 if {"auto" eq $icuConfigBin} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1374 set icuConfigBin [proj-first-bin-of \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1375 /usr/local/bin/icu-config \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1376 /usr/bin/icu-config]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1377 if {"" eq $icuConfigBin} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1378 proj-indented-notice -error {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1379 --with-icu-config=auto cannot find (pkg-config icu-io) or icu-config binary.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1380 On Ubuntu-like systems try:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1381 --with-icu-ldflags='-licui18n -licuuc -licudata'
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1382 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1383 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1384 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1385 if {[file-isexec $icuConfigBin]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1386 set x [exec $icuConfigBin --ldflags]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1387 if {"" eq $x} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1388 proj-indented-notice -error \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1389 [subst {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1390 $icuConfigBin --ldflags returned no data.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1391 On Ubuntu-like systems try:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1392 --with-icu-ldflags='-licui18n -licuuc -licudata'
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1393 }]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1394 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1395 define-append LDFLAGS_ICU $x
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1396 set x [exec $icuConfigBin --cppflags]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1397 define-append CFLAGS_ICU $x
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1398 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1399 proj-fatal "--with-icu-config=$icuConfigBin does not refer to an executable"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1400 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1401 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1402 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1403 set ldflags [define LDFLAGS_ICU [string trim [get-define LDFLAGS_ICU]]]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1404 set cflags [define CFLAGS_ICU [string trim [get-define CFLAGS_ICU]]]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1405 if {"" ne $ldflags} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1406 sqlite-add-feature-flag -shell -DSQLITE_ENABLE_ICU
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1407 msg-result "Enabling ICU support with flags: $ldflags $cflags"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1408 if {[opt-bool icu-collations]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1409 msg-result "Enabling ICU collations."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1410 sqlite-add-feature-flag -shell -DSQLITE_ENABLE_ICU_COLLATIONS
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1411 # Recall that shell.c builds with sqlite3.c except in the case
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1412 # of --disable-static-shell, a combination we do not
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1413 # specifically attempt to account for.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1414 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1415 } elseif {[opt-bool icu-collations]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1416 proj-warn "ignoring --enable-icu-collations because neither --with-icu-ldflags nor --with-icu-config provided any linker flags"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1417 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1418 msg-result "ICU support is disabled."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1419 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1420 }; # sqlite-handle-icu
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1421
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1422
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1423 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1424 # Handles the --enable-load-extension flag. Returns 1 if the support
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1425 # is enabled, else 0. If support for that feature is not found, a
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1426 # fatal error is triggered if --enable-load-extension is explicitly
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1427 # provided, else a loud warning is instead emitted. If
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1428 # --disable-load-extension is used, no check is performed.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1429 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1430 # Makes the following environment changes:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1431 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1432 # - defines LDFLAGS_DLOPEN to any linker flags needed for this
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1433 # feature. It may legally be empty on (A) some systems where
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1434 # dlopen() is in libc and (B) certain Unix-esque Windows
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1435 # environments which identify as Windows for SQLite's purposes so
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1436 # use LoadLibrary().
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1437 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1438 # - If the feature is not available, adds
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1439 # -DSQLITE_OMIT_LOAD_EXTENSION=1 to the feature flags list.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1440 proc sqlite-handle-load-extension {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1441 define LDFLAGS_DLOPEN ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1442 set found 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1443 set suffix ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1444 proj-if-opt-truthy load-extension {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1445 switch -glob -- [get-define host] {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1446 *-*-mingw* - *windows* {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1447 incr found
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1448 set suffix "Using LoadLibrary()"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1449 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1450 default {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1451 set found [proj-check-function-in-lib dlopen dl]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1452 if {$found} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1453 set suffix [define LDFLAGS_DLOPEN [get-define lib_dlopen]]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1454 undefine lib_dlopen
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1455 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1456 if {[proj-opt-was-provided load-extension]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1457 # Explicit --enable-load-extension: fail if not found
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1458 proj-indented-notice -error {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1459 --enable-load-extension was provided but dlopen()
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1460 not found. Use --disable-load-extension to bypass this
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1461 check.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1462 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1463 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1464 # It was implicitly enabled: warn if not found
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1465 proj-indented-notice {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1466 WARNING: dlopen() not found, so loadable module support will
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1467 be disabled. Use --disable-load-extension to bypass this
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1468 check.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1469 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1470 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1471 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1472 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1473 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1474 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1475 if {$found} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1476 msg-result "Loadable extension support enabled. $suffix"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1477 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1478 msg-result "Disabling loadable extension support. Use --enable-load-extension to enable them."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1479 sqlite-add-feature-flag -DSQLITE_OMIT_LOAD_EXTENSION=1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1480 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1481 return $found
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1482 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1483
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1484 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1485 # Handles the --enable-math flag.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1486 proc sqlite-handle-math {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1487 proj-if-opt-truthy math {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1488 if {![proj-check-function-in-lib ceil m]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1489 user-error "Cannot find libm functions. Use --disable-math to bypass this."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1490 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1491 define LDFLAGS_MATH [get-define lib_ceil]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1492 undefine lib_ceil
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1493 sqlite-add-feature-flag -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_PERCENTILE
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1494 msg-result "Enabling math SQL functions"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1495 } {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1496 define LDFLAGS_MATH ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1497 msg-result "Disabling math SQL functions"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1498 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1499 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1500
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1501 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1502 # If this OS looks like a Mac, checks for the Mac-specific
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1503 # -current_version and -compatibility_version linker flags. Defines
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1504 # LDFLAGS_MAC_CVERSION to an empty string and returns 0 if they're not
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1505 # supported, else defines that to the linker flags and returns 1.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1506 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1507 # We don't check this on non-Macs because this whole thing is a
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1508 # libtool compatibility kludge to account for a version stamp which
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1509 # libtool applied only on Mac platforms.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1510 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1511 # Based on https://sqlite.org/forum/forumpost/9dfd5b8fd525a5d7.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1512 proc sqlite-handle-mac-cversion {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1513 define LDFLAGS_MAC_CVERSION ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1514 set rc 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1515 if {[proj-looks-like-mac]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1516 cc-with {-link 1} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1517 # These version numbers are historical libtool-defined values, not
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1518 # library-defined ones
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1519 if {[cc-check-flags "-Wl,-current_version,9.6.0"]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1520 && [cc-check-flags "-Wl,-compatibility_version,9.0.0"]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1521 define LDFLAGS_MAC_CVERSION "-Wl,-compatibility_version,9.0.0 -Wl,-current_version,9.6.0"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1522 set rc 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1523 } elseif {[cc-check-flags "-compatibility_version 9.0.0"]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1524 && [cc-check-flags "-current_version 9.6.0"]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1525 define LDFLAGS_MAC_CVERSION "-compatibility_version 9.0.0 -current_version 9.6.0"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1526 set rc 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1527 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1528 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1529 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1530 return $rc
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1531 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1532
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1533 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1534 # If this is a Mac platform, check for support for
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1535 # -Wl,-install_name,... and, if it's available, define
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1536 # LDFLAGS_MAC_INSTALL_NAME to a variant of that string which is
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1537 # intended to expand at make-time, else set LDFLAGS_MAC_INSTALL_NAME
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1538 # to an empty string.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1539 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1540 # https://sqlite.org/forum/forumpost/5651662b8875ec0a
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1541 proc sqlite-handle-mac-install-name {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1542 define LDFLAGS_MAC_INSTALL_NAME ""; # {-Wl,-install_name,"$(install-dir.lib)/$(libsqlite3.DLL)"}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1543 set rc 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1544 if {[proj-looks-like-mac]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1545 cc-with {-link 1} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1546 if {[cc-check-flags "-Wl,-install_name,/usr/local/lib/libsqlite3.dylib"]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1547 define LDFLAGS_MAC_INSTALL_NAME {-Wl,-install_name,"$(install-dir.lib)/$(libsqlite3.DLL)"}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1548 set rc 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1549 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1550 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1551 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1552 return $rc
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1553 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1554
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1555 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1556 # Checks specific to HP-UX.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1557 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1558 proc sqlite-handle-hpux {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1559 switch -glob -- [get-define host] {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1560 *hpux* {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1561 if {[cc-check-flags "-Ae"]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1562 define-append CFLAGS -Ae
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1563 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1564 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1565 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1566 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1567
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1568 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1569 # Handles the --dll-basename configure flag. [define]'s
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1570 # SQLITE_DLL_BASENAME to the DLL's preferred base name (minus
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1571 # extension). If --dll-basename is not provided (or programmatically
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1572 # set - see [sqlite-handle-env-quirks]) then this is always
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1573 # "libsqlite3", otherwise it may use a different value based on the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1574 # value of [get-define host].
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1575 proc sqlite-handle-dll-basename {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1576 if {[proj-opt-was-provided dll-basename]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1577 set dn [join [opt-val dll-basename] ""]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1578 if {$dn in {none default}} { set dn libsqlite3 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1579 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1580 set dn libsqlite3
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1581 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1582 if {$dn in {auto ""}} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1583 switch -glob -- [get-define host] {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1584 *-*-cygwin { set dn cygsqlite3-0 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1585 *-*-ming* { set dn libsqlite3-0 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1586 *-*-msys { set dn msys-sqlite3-0 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1587 default { set dn libsqlite3 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1588 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1589 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1590 define SQLITE_DLL_BASENAME $dn
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1591 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1592
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1593 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1594 # [define]s LDFLAGS_OUT_IMPLIB to either an empty string or to a
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1595 # -Wl,... flag for the platform-specific --out-implib flag, which is
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1596 # used for building an "import library .dll.a" file on some platforms
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1597 # (e.g. msys2, mingw). SQLITE_OUT_IMPLIB is defined to the name of the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1598 # import lib or an empty string. Returns 1 if supported, else 0.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1599 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1600 # The name of the import library is [define]d in SQLITE_OUT_IMPLIB.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1601 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1602 # If the configure flag --out-implib is not used (or programmatically
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1603 # set) then this simply sets the above-listed defines to empty strings
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1604 # (but see [sqlite-handle-env-quirks]). If that flag is used but the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1605 # capability is not available, a fatal error is triggered.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1606 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1607 # This feature is specifically opt-in because it's supported on far
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1608 # more platforms than actually need it and enabling it causes creation
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1609 # of libsqlite3.so.a files which are unnecessary in most environments.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1610 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1611 # Added in response to: https://sqlite.org/forum/forumpost/0c7fc097b2
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1612 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1613 # Platform notes:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1614 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1615 # - cygwin sqlite packages historically install no .dll.a file.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1616 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1617 # - msys2 and mingw sqlite packages historically install
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1618 # /usr/lib/libsqlite3.dll.a despite the DLL being in
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1619 # /usr/bin.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1620 proc sqlite-handle-out-implib {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1621 define LDFLAGS_OUT_IMPLIB ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1622 define SQLITE_OUT_IMPLIB ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1623 set rc 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1624 if {[proj-opt-was-provided out-implib]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1625 set olBaseName [join [opt-val out-implib] ""]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1626 if {$olBaseName in {auto ""}} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1627 set olBaseName "libsqlite3" ;# [get-define SQLITE_DLL_BASENAME]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1628 # Based on discussions with mingw/msys users, the import lib
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1629 # should always be called libsqlite3.dll.a even on platforms
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1630 # which rename libsqlite3.dll to something else.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1631 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1632 if {$olBaseName ne "none"} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1633 cc-with {-link 1} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1634 set dll "${olBaseName}[get-define TARGET_DLLEXT]"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1635 set flags [proj-cc-check-Wl-flag --out-implib ${dll}.a]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1636 if {"" ne $flags} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1637 define LDFLAGS_OUT_IMPLIB $flags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1638 define SQLITE_OUT_IMPLIB ${dll}.a
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1639 set rc 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1640 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1641 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1642 if {!$rc} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1643 user-error "--out-implib is not supported on this platform"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1644 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1645 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1646 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1647 return $rc
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1648 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1649
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1650 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1651 # If the given platform identifier (defaulting to [get-define host])
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1652 # appears to be one of the Unix-on-Windows environments, returns a
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1653 # brief symbolic name for that environment, else returns an empty
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1654 # string.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1655 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1656 # It does not distinguish between msys and msys2, returning msys for
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1657 # both. The build does not, as of this writing, specifically support
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1658 # msys v1. Similarly, this function returns "mingw" for both "mingw32"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1659 # and "mingw64".
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1660 proc sqlite-env-is-unix-on-windows {{envTuple ""}} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1661 if {"" eq $envTuple} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1662 set envTuple [get-define host]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1663 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1664 set name ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1665 switch -glob -- $envTuple {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1666 *-*-cygwin { set name cygwin }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1667 *-*-ming* { set name mingw }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1668 *-*-msys { set name msys }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1669 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1670 return $name
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1671 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1672
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1673 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1674 # Performs various tweaks to the build which are only relevant on
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1675 # certain platforms, e.g. Mac and "Unix on Windows" platforms (msys2,
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1676 # cygwin, ...).
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1677 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1678 # 1) DLL installation:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1679 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1680 # [define]s SQLITE_DLL_INSTALL_RULES to a symbolic name suffix for a
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1681 # set of "make install" rules to use for installation of the DLL
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1682 # deliverable. The makefile is tasked with providing rules named
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1683 # install-dll-NAME which runs the installation for that set, as well
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1684 # as providing a rule named install-dll which resolves to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1685 # install-dll-NAME (perhaps indirectly, depending on whether the DLL
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1686 # is (de)activated).
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1687 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1688 # The default value is "unix-generic".
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1689 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1690 # 2) --out-implib:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1691 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1692 # On platforms where an "import library" is conventionally used but
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1693 # --out-implib was not explicitly used, automatically add that flag.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1694 # This conventionally applies only to the "Unix on Windows"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1695 # environments like msys and cygwin.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1696 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1697 # 3) --dll-basename:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1698 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1699 # On the same platforms addressed by --out-implib, if --dll-basename
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1700 # is not explicitly specified, --dll-basename=auto is implied.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1701 proc sqlite-handle-env-quirks {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1702 set instName unix-generic; # name of installation rules set
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1703 set autoDll 0; # true if --out-implib/--dll-basename should be implied
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1704 set host [get-define host]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1705 switch -glob -- $host {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1706 *apple* -
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1707 *darwin* { set instName darwin }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1708 default {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1709 set x [sqlite-env-is-unix-on-windows $host]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1710 if {"" ne $x} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1711 set instName $x
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1712 set autoDll 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1713 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1714 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1715 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1716 define SQLITE_DLL_INSTALL_RULES $instName
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1717 if {$autoDll} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1718 if {![proj-opt-was-provided out-implib]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1719 # Imply --out-implib=auto
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1720 proj-indented-notice [subst -nocommands -nobackslashes {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1721 NOTICE: auto-enabling --out-implib for environment [$host].
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1722 Use --out-implib=none to disable this special case
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1723 or --out-implib=auto to squelch this notice.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1724 }]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1725 proj-opt-set out-implib auto
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1726 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1727 if {![proj-opt-was-provided dll-basename]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1728 # Imply --dll-basename=auto
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1729 proj-indented-notice [subst -nocommands -nobackslashes {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1730 NOTICE: auto-enabling --dll-basename for environment [$host].
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1731 Use --dll-basename=default to disable this special case
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1732 or --dll-basename=auto to squelch this notice.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1733 }]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1734 proj-opt-set dll-basename auto
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1735 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1736 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1737 sqlite-handle-dll-basename
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1738 sqlite-handle-out-implib
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1739 sqlite-handle-mac-cversion
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1740 sqlite-handle-mac-install-name
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1741 if {[llength [info proc sqlite-custom-handle-flags]] > 0} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1742 # sqlite-custom-handle-flags is assumed to be imported via a
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1743 # client-specific import: autosetup/sqlite-custom.tcl.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1744 sqlite-custom-handle-flags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1745 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1746 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1747
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1748 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1749 # Perform some late-stage work and generate the configure-process
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1750 # output file(s).
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1751 proc sqlite-process-dot-in-files {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1752 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1753 # "Re-export" the autoconf-conventional --XYZdir flags into something
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1754 # which is more easily overridable from a make invocation. See the docs
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1755 # for [proj-remap-autoconf-dir-vars] for the explanation of why.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1756 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1757 # We do this late in the config process, immediately before we export
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1758 # the Makefile and other generated files, so that configure tests
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1759 # which make make use of the autotools-conventional flags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1760 # (e.g. [proj-check-rpath]) may do so before we "mangle" them here.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1761 proj-remap-autoconf-dir-vars
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1762
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1763 proj-dot-ins-process -validate
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1764 make-config-header sqlite_cfg.h \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1765 -bare {SIZEOF_* HAVE_DECL_*} \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1766 -none {HAVE_CFLAG_* LDFLAGS_* SH_* SQLITE_AUTORECONFIG
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1767 TARGET_* USE_GCOV TCL_*} \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1768 -auto {HAVE_* PACKAGE_*} \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1769 -none *
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1770 proj-touch sqlite_cfg.h ; # help avoid frequent unnecessary @SQLITE_AUTORECONFIG@
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1771 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1772
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1773 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1774 # Handle --with-wasi-sdk[=DIR]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1775 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1776 # This must be run relatively early on because it may change the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1777 # toolchain and disable a number of config options. However, in the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1778 # canonical build this must come after [sqlite-check-common-bins].
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1779 proc sqlite-handle-wasi-sdk {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1780 set wasiSdkDir [opt-val with-wasi-sdk] ; # ??? [lindex [opt-val with-wasi-sdk] end]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1781 define HAVE_WASI_SDK 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1782 if {$wasiSdkDir eq ""} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1783 return 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1784 } elseif {$::sqliteConfig(is-cross-compiling)} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1785 proj-fatal "Cannot combine --with-wasi-sdk with cross-compilation"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1786 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1787 msg-result "Checking WASI SDK directory \[$wasiSdkDir]... "
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1788 proj-affirm-files-exist -v {*}[prefix "$wasiSdkDir/bin/" {clang wasm-ld ar}]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1789 define HAVE_WASI_SDK 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1790 define WASI_SDK_DIR $wasiSdkDir
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1791 # Disable numerous options which we know either can't work or are
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1792 # not useful in this build...
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1793 msg-result "Using wasi-sdk clang. Disabling CLI shell and modifying config flags:"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1794 # Boolean (--enable-/--disable-) flags which must be switched off:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1795 foreach opt {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1796 dynlink-tools
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1797 editline
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1798 gcov
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1799 icu-collations
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1800 load-extension
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1801 readline
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1802 shared
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1803 tcl
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1804 threadsafe
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1805 } {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1806 if {[proj-opt-exists $opt] && [opt-bool $opt]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1807 # -^^^^ not all builds define all of these flags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1808 msg-result " --disable-$opt"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1809 proj-opt-set $opt 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1810 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1811 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1812 # Non-boolean flags which need to be cleared:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1813 foreach opt {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1814 with-emsdk
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1815 with-icu-config
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1816 with-icu-ldflags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1817 with-icu-cflags
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1818 with-linenoise
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1819 with-tcl
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1820 } {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1821 if {[proj-opt-was-provided $opt]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1822 msg-result " removing --$opt"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1823 proj-opt-set $opt ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1824 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1825 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1826 # Remember that we now have a discrepancy between
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1827 # $::sqliteConfig(is-cross-compiling) and [proj-is-cross-compiling].
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1828 set ::sqliteConfig(is-cross-compiling) 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1829
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1830 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1831 # Changing --host and --target have no effect here except to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1832 # possibly cause confusion. Autosetup has finished processing them
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1833 # by this point.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1834 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1835 # host_alias=wasm32-wasi
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1836 # target=wasm32-wasi
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1837 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1838 # Merely changing CC, LD, and AR to the wasi-sdk's is enough to get
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1839 # sqlite3.o building in WASM format.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1840 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1841 define CC "${wasiSdkDir}/bin/clang"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1842 define LD "${wasiSdkDir}/bin/wasm-ld"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1843 define AR "${wasiSdkDir}/bin/ar"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1844 #define STRIP "${wasiSdkDir}/bin/strip"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1845 return 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1846 }; # sqlite-handle-wasi-sdk
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1847
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1848 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1849 # TCL...
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1850 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1851 # sqlite-check-tcl performs most of the --with-tcl and --with-tclsh
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1852 # handling. Some related bits and pieces are performed before and
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1853 # after that function is called.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1854 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1855 # Important [define]'d vars:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1856 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1857 # - HAVE_TCL indicates whether we have a tclsh suitable for building
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1858 # the TCL SQLite extension and, by extension, the testing
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1859 # infrastructure. This must only be 1 for environments where
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1860 # tclConfig.sh can be found.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1861 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1862 # - TCLSH_CMD is the path to the canonical tclsh or "". It never
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1863 # refers to jimtcl.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1864 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1865 # - TCL_CONFIG_SH is the path to tclConfig.sh or "".
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1866 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1867 # - TCLLIBDIR is the dir to which libtclsqlite3 gets installed.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1868 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1869 # - BTCLSH = the path to the tcl interpreter used for in-tree code
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1870 # generation. It may be jimtcl or the canonical tclsh but may not
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1871 # be empty - this tree requires TCL to generated numerous
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1872 # components.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1873 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1874 # If --tcl or --with-tcl are provided but no TCL is found, this
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1875 # function fails fatally. If they are not explicitly provided then
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1876 # failure to find TCL is not fatal but a loud warning will be emitted.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1877 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1878 proc sqlite-check-tcl {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1879 define TCLSH_CMD false ; # Significant is that it exits with non-0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1880 define HAVE_TCL 0 ; # Will be enabled via --tcl or a successful search
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1881 define TCLLIBDIR "" ; # Installation dir for TCL extension lib
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1882 define TCL_CONFIG_SH ""; # full path to tclConfig.sh
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1883
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1884 # Clear out all vars which would harvest from tclConfig.sh so that
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1885 # the late-config validation of @VARS@ works even if --disable-tcl
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1886 # is used.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1887 proj-tclConfig-sh-to-autosetup ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1888
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1889 file delete -force ".tclenv.sh"; # ensure no stale state from previous configures.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1890 if {![opt-bool tcl]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1891 proj-indented-notice {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1892 NOTE: TCL is disabled via --disable-tcl. This means that none
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1893 of the TCL-based components will be built, including tests
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1894 and sqlite3_analyzer.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1895 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1896 return
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1897 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1898 # TODO: document the steps this is taking.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1899 set srcdir $::autosetup(srcdir)
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1900 msg-result "Checking for a suitable tcl... "
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1901 proj-assert [proj-opt-truthy tcl]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1902 set use_tcl 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1903 set with_tclsh [opt-val with-tclsh]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1904 set with_tcl [opt-val with-tcl]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1905 if {"prefix" eq $with_tcl} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1906 set with_tcl [get-define prefix]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1907 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1908 proc-debug "use_tcl ${use_tcl}"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1909 proc-debug "with_tclsh=${with_tclsh}"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1910 proc-debug "with_tcl=$with_tcl"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1911 if {"" eq $with_tclsh && "" eq $with_tcl} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1912 # If neither --with-tclsh nor --with-tcl are provided, try to find
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1913 # a workable tclsh.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1914 set with_tclsh [proj-first-bin-of tclsh9.1 tclsh9.0 tclsh8.6 tclsh]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1915 proc-debug "with_tclsh=${with_tclsh}"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1916 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1917
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1918 set doConfigLookup 1 ; # set to 0 to test the tclConfig.sh-not-found cases
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1919 if {"" ne $with_tclsh} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1920 # --with-tclsh was provided or found above. Validate it and use it
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1921 # to trump any value passed via --with-tcl=DIR.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1922 if {![file-isexec $with_tclsh]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1923 proj-fatal "TCL shell $with_tclsh is not executable"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1924 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1925 define TCLSH_CMD $with_tclsh
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1926 #msg-result "Using tclsh: $with_tclsh"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1927 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1928 if {$doConfigLookup &&
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1929 [catch {exec $with_tclsh $::autosetup(libdir)/find_tclconfig.tcl} result] == 0} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1930 set with_tcl $result
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1931 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1932 if {"" ne $with_tcl && [file isdir $with_tcl]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1933 msg-result "$with_tclsh recommends the tclConfig.sh from $with_tcl"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1934 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1935 proj-warn "$with_tclsh is unable to recommend a tclConfig.sh"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1936 set use_tcl 0
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1937 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1938 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1939 set cfg ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1940 set tclSubdirs {tcl9.1 tcl9.0 tcl8.6 lib}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1941 while {$use_tcl} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1942 if {"" ne $with_tcl} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1943 # Ensure that we can find tclConfig.sh under ${with_tcl}/...
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1944 if {$doConfigLookup} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1945 if {[file readable "${with_tcl}/tclConfig.sh"]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1946 set cfg "${with_tcl}/tclConfig.sh"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1947 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1948 foreach i $tclSubdirs {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1949 if {[file readable "${with_tcl}/$i/tclConfig.sh"]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1950 set cfg "${with_tcl}/$i/tclConfig.sh"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1951 break
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1952 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1953 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1954 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1955 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1956 if {"" eq $cfg} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1957 proj-fatal "No tclConfig.sh found under ${with_tcl}"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1958 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1959 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1960 # If we have not yet found a tclConfig.sh file, look in $libdir
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1961 # which is set automatically by autosetup or via the --prefix
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1962 # command-line option. See
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1963 # https://sqlite.org/forum/forumpost/e04e693439a22457
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1964 set libdir [get-define libdir]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1965 if {[file readable "${libdir}/tclConfig.sh"]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1966 set cfg "${libdir}/tclConfig.sh"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1967 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1968 foreach i $tclSubdirs {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1969 if {[file readable "${libdir}/$i/tclConfig.sh"]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1970 set cfg "${libdir}/$i/tclConfig.sh"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1971 break
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1972 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1973 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1974 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1975 if {![file readable $cfg]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1976 break
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1977 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1978 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1979 msg-result "Using tclConfig.sh: $cfg"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1980 break
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1981 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1982 define TCL_CONFIG_SH $cfg
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1983 # Export a subset of tclConfig.sh to the current TCL-space. If $cfg
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1984 # is an empty string, this emits empty-string entries for the
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1985 # various options we're interested in.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1986 proj-tclConfig-sh-to-autosetup $cfg
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1987
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1988 if {"" eq $with_tclsh && $cfg ne ""} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1989 # We have tclConfig.sh but no tclsh. Attempt to locate a tclsh
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1990 # based on info from tclConfig.sh.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1991 set tclExecPrefix [get-define TCL_EXEC_PREFIX]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1992 proj-assert {"" ne $tclExecPrefix}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1993 set tryThese [list \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1994 $tclExecPrefix/bin/tclsh[get-define TCL_VERSION] \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1995 $tclExecPrefix/bin/tclsh ]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1996 foreach trySh $tryThese {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1997 if {[file-isexec $trySh]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1998 set with_tclsh $trySh
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1999 break
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2000 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2001 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2002 if {![file-isexec $with_tclsh]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2003 proj-warn "Cannot find a usable tclsh (tried: $tryThese)
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2004 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2005 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2006 define TCLSH_CMD $with_tclsh
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2007 if {$use_tcl} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2008 # Set up the TCLLIBDIR
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2009 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2010 # 2024-10-28: calculation of TCLLIBDIR is now done via the shell
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2011 # in main.mk (search it for T.tcl.env.sh) so that
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2012 # static/hand-written makefiles which import main.mk do not have
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2013 # to define that before importing main.mk. Even so, we export
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2014 # TCLLIBDIR from here, which will cause the canonical makefile to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2015 # use this one rather than to re-calculate it at make-time.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2016 set tcllibdir [get-env TCLLIBDIR ""]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2017 set sq3Ver [get-define PACKAGE_VERSION]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2018 if {"" eq $tcllibdir} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2019 # Attempt to extract TCLLIBDIR from TCL's $auto_path
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2020 if {"" ne $with_tclsh &&
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2021 [catch {exec echo "puts stdout \$auto_path" | "$with_tclsh"} result] == 0} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2022 foreach i $result {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2023 if {[file isdir $i]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2024 set tcllibdir $i/sqlite${sq3Ver}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2025 break
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2026 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2027 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2028 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2029 proj-warn "Cannot determine TCLLIBDIR."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2030 # The makefile will fail fatally in this case if a target is
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2031 # invoked which requires TCLLIBDIR.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2032 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2033 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2034 #if {"" ne $tcllibdir} { msg-result "TCLLIBDIR = ${tcllibdir}"; }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2035 define TCLLIBDIR $tcllibdir
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2036 }; # find TCLLIBDIR
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2037
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2038 if {[file-isexec $with_tclsh]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2039 msg-result "Using tclsh: $with_tclsh"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2040 if {$cfg ne ""} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2041 define HAVE_TCL 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2042 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2043 proj-warn "Found tclsh but no tclConfig.sh."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2044 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2045 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2046 show-notices
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2047 # If TCL is not found: if it was explicitly requested then fail
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2048 # fatally, else just emit a warning. If we can find the APIs needed
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2049 # to generate a working JimTCL then that will suffice for build-time
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2050 # TCL purposes (see: proc sqlite-determine-codegen-tcl).
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2051 if {![get-define HAVE_TCL] &&
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2052 ([proj-opt-was-provided tcl] || [proj-opt-was-provided with-tcl])} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2053 proj-fatal "TCL support was requested but no tclConfig.sh could be found."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2054 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2055 if {"" eq $cfg} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2056 proj-assert {0 == [get-define HAVE_TCL]}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2057 proj-indented-notice {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2058 WARNING: Cannot find a usable tclConfig.sh file. Use
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2059 --with-tcl=DIR to specify a directory where tclConfig.sh can be
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2060 found. SQLite does not use TCL internally, but some optional
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2061 components require TCL, including tests and sqlite3_analyzer.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2062 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2063 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2064 }; # sqlite-check-tcl
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2065
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2066 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2067 # sqlite-determine-codegen-tcl checks which TCL to use as a code
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2068 # generator. By default, prefer jimsh simply because we have it
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2069 # in-tree (it's part of autosetup) unless --with-tclsh=X is used, in
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2070 # which case prefer X.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2071 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2072 # Returns the human-readable name of the TCL it selects. Fails fatally
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2073 # if it cannot detect a TCL appropriate for code generation.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2074 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2075 # Defines:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2076 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2077 # - BTCLSH = the TCL shell used for code generation. It may set this
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2078 # to an unexpanded makefile var name.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2079 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2080 # - CFLAGS_JIMSH = any flags needed for buildng a BTCLSH-compatible
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2081 # jimsh. The defaults may be passed on to configure as
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2082 # CFLAGS_JIMSH=...
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2083 proc sqlite-determine-codegen-tcl {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2084 msg-result "Checking for TCL to use for code generation... "
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2085 define CFLAGS_JIMSH [proj-get-env CFLAGS_JIMSH {-O1}]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2086 set cgtcl [opt-val with-tclsh jimsh]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2087 if {"jimsh" ne $cgtcl} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2088 # When --with-tclsh=X is used, use that for all TCL purposes,
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2089 # including in-tree code generation, per developer request.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2090 define BTCLSH "\$(TCLSH_CMD)"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2091 return $cgtcl
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2092 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2093 set flagsToRestore {CC CFLAGS AS_CFLAGS CPPFLAGS AS_CPPFLAGS LDFLAGS LINKFLAGS LIBS CROSS}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2094 define-push $flagsToRestore {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2095 # We have to swap CC to CC_FOR_BUILD for purposes of the various
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2096 # [cc-...] tests below. Recall that --with-wasi-sdk may have
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2097 # swapped out CC with one which is not appropriate for this block.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2098 # Per consulation with autosetup's creator, doing this properly
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2099 # requires us to [define-push] the whole $flagsToRestore list
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2100 # (plus a few others which are not relevant in this tree).
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2101 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2102 # These will get set to their previous values at the end of this
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2103 # block.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2104 foreach flag $flagsToRestore {define $flag ""}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2105 define CC [get-define CC_FOR_BUILD]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2106 # These headers are technically optional for JimTCL but necessary if
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2107 # we want to use it for code generation:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2108 set sysh [cc-check-includes dirent.h sys/time.h]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2109 # jimsh0.c hard-codes #define's for HAVE_DIRENT_H and
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2110 # HAVE_SYS_TIME_H on the platforms it supports, so we do not
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2111 # need to add -D... flags for those. We check for them here only
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2112 # so that we can avoid the situation that we later, at
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2113 # make-time, try to compile jimsh but it then fails due to
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2114 # missing headers (i.e. fail earlier rather than later).
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2115 if {$sysh && [cc-check-functions realpath]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2116 define-append CFLAGS_JIMSH -DHAVE_REALPATH
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2117 define BTCLSH "\$(JIMSH)"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2118 set ::sqliteConfig(use-jim-for-codegen) 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2119 } elseif {$sysh && [cc-check-functions _fullpath]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2120 # _fullpath() is a Windows API. It's not entirely clear
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2121 # whether we need to add {-DHAVE_SYS_TIME_H -DHAVE_DIRENT_H}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2122 # to CFLAGS_JIMSH in this case. On MinGW32 we definitely do
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2123 # not want to because it already hard-codes them. On _MSC_VER
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2124 # builds it does not.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2125 define-append CFLAGS_JIMSH -DHAVE__FULLPATH
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2126 define BTCLSH "\$(JIMSH)"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2127 set ::sqliteConfig(use-jim-for-codegen) 1
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2128 } elseif {[file-isexec [get-define TCLSH_CMD]]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2129 set cgtcl [get-define TCLSH_CMD]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2130 define BTCLSH "\$(TCLSH_CMD)"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2131 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2132 # One last-ditch effort to find TCLSH_CMD: use info from
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2133 # tclConfig.sh to try to find a tclsh
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2134 if {"" eq [get-define TCLSH_CMD]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2135 set tpre [get-define TCL_EXEC_PREFIX]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2136 if {"" ne $tpre} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2137 set tv [get-define TCL_VERSION]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2138 if {[file-isexec "${tpre}/bin/tclsh${tv}"]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2139 define TCLSH_CMD "${tpre}/bin/tclsh${tv}"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2140 } elseif {[file-isexec "${tpre}/bin/tclsh"]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2141 define TCLSH_CMD "${tpre}/bin/tclsh"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2142 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2143 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2144 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2145 set cgtcl [get-define TCLSH_CMD]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2146 if {![file-isexec $cgtcl]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2147 proj-fatal "Cannot find a tclsh to use for code generation."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2148 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2149 define BTCLSH "\$(TCLSH_CMD)"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2150 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2151 }; # /define-push $flagsToRestore
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2152 return $cgtcl
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2153 }; # sqlite-determine-codegen-tcl
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2154
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2155 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2156 # Runs sqlite-check-tcl and, if this is the canonical build,
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2157 # sqlite-determine-codegen-tcl.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2158 proc sqlite-handle-tcl {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2159 sqlite-check-tcl
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2160 if {"canonical" ne $::sqliteConfig(build-mode)} return
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2161 msg-result "TCL for code generation: [sqlite-determine-codegen-tcl]"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2162
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2163 # Determine the base name of the Tcl extension's DLL
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2164 #
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2165 if {[get-define HAVE_TCL]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2166 if {[string match *-cygwin [get-define host]]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2167 set libname cyg
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2168 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2169 set libname lib
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2170 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2171 if {[get-define TCL_MAJOR_VERSION] > 8} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2172 append libname tcl9
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2173 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2174 append libname sqlite
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2175 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2176 set libname ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2177 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2178 define TCL_EXT_DLL_BASENAME $libname
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2179 # The extension is added in the makefile
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2180 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2181
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2182 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2183 # Handle the --enable/disable-rpath flag.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2184 proc sqlite-handle-rpath {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2185 # autosetup/cc-shared.tcl sets the rpath flag definition in
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2186 # [get-define SH_LINKRPATH], but it does so on a per-platform basis
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2187 # rather than as a compiler check. Though we should do a proper
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2188 # compiler check (as proj-check-rpath does), we may want to consider
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2189 # adopting its approach of clearing the rpath flags for environments
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2190 # for which sqlite-env-is-unix-on-windows returns a non-empty
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2191 # string.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2192
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2193 # https://sqlite.org/forum/forumpost/13cac3b56516f849
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2194 if {[proj-opt-truthy rpath]} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2195 proj-check-rpath
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2196 } else {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2197 msg-result "Disabling use of rpath."
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2198 define LDFLAGS_RPATH ""
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2199 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2200 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2201
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2202 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2203 # If the --dump-defines configure flag is provided then emit a list of
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2204 # all [define] values to config.defines.txt, else do nothing.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2205 proc sqlite-dump-defines {} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2206 proj-if-opt-truthy dump-defines {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2207 make-config-header $::sqliteConfig(dump-defines-txt) \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2208 -bare {SQLITE_OS* SQLITE_DEBUG USE_*} \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2209 -str {BIN_* CC LD AR LDFLAG* OPT_*} \
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2210 -auto {*}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2211 # achtung: ^^^^ whichever SQLITE_OS_foo flag which is set to 0 will
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2212 # get _undefined_ here unless it's part of the -bare set.
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2213 if {"" ne $::sqliteConfig(dump-defines-json)} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2214 msg-result "--dump-defines is creating $::sqliteConfig(dump-defines-json)"
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2215 ########################################################################
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2216 # Dump config-defines.json...
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2217 # Demonstrate (mis?)handling of spaces in JSON-export array values:
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2218 # define-append OPT_FOO.list {"-DFOO=bar baz" -DBAR="baz barre"}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2219 define OPT_FEATURE_FLAGS.list [get-define OPT_FEATURE_FLAGS]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2220 define OPT_SHELL.list [get-define OPT_SHELL]
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2221 set dumpDefsOpt {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2222 -bare {SIZEOF_* HAVE_DECL_*}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2223 -none {HAVE_CFLAG_* LDFLAGS_* SH_* SQLITE_AUTORECONFIG TARGET_* USE_GCOV TCL_*}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2224 -array {*.list}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2225 -auto {OPT_* PACKAGE_* HAVE_*}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2226 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2227 # if {$::sqliteConfig(dump-defines-json-include-lowercase)} {
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2228 # lappend dumpDefsOpt -none {lib_*} ; # remnants from proj-check-function-in-lib and friends
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2229 # lappend dumpDefsOpt -auto {[a-z]*}
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2230 # }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2231 lappend dumpDefsOpt -none *
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2232 proj-dump-defs-json $::sqliteConfig(dump-defines-json) {*}$dumpDefsOpt
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2233 undefine OPT_FEATURE_FLAGS.list
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2234 undefine OPT_SHELL.list
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2235 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2236 }
589bab390fb4 [ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2237 }