#
# JimTCL: https://jim.tcl.tk
#
-
-
use cc cc-db cc-shared cc-lib hwaci-common pkg-config
# Are we cross-compiling?
with-readline-header:PATH
=> {Full path to readline.h, from which --with-readline-inc will be derived}
with-linenoise:DIR => {Source directory for linenoise.c and linenoise.h}
+ with-icu-lib:LDFLAGS => {Enable SQLITE_ENABLE_ICU and add the given linker flags for the ICU libraries}
+ icu-collations=0 => {Enable SQLITE_ENABLE_ICU_COLLATIONS. Requires --with-icu-lib=...}
amalgamation=1 => {Disable the amalgamation and instead build all files separately}
load-extension=1 => {Disable loading of external extensions}
math=1 => {Disable math functions}
set srcdir $::autosetup(srcdir)
set top_srcdir [get-define abs_top_srcdir]
-msg-result "srcdir = $srcdir"
-msg-result "top_srcdir = $top_srcdir"
-set PACKAGE_VERSION [readfile $::autosetup(srcdir)/VERSION]
-msg-result "VERSION = $PACKAGE_VERSION"
-
+set PACKAGE_VERSION [readfile $srcdir/VERSION]
define PACKAGE_NAME "sqlite"
define PACKAGE_URL {https://sqlite.org}
define PACKAGE_VERSION $PACKAGE_VERSION
define PACKAGE_STRING "[get-define PACKAGE_NAME] $PACKAGE_VERSION"
define PACKAGE_BUGREPORT [get-define PACKAGE_URL]/forum
-define-append SQLITE_AUTOREMAKE cd $::autosetup(srcdir) && $top_srcdir/configure {*}$::autosetup(argv)
+msg-result "srcdir = $srcdir"
+msg-result "top_srcdir = $top_srcdir"
+msg-result "VERSION = $PACKAGE_VERSION"
+
+define-append SQLITE_AUTOREMAKE cd '$srcdir' && '$top_srcdir/configure'
+#{*}$::autosetup(argv) breaks with --flag='val with spaces', so...
+foreach arg $::autosetup(argv) {
+ define-append SQLITE_AUTOREMAKE '$arg'
+}
set outOfTreeBuild 0
if {![file exists sqlite3.pc.in]} {
define LDFLAGS_ZLIB ""
}
+#
+# Determine proper rpath-handling flags.
+#
+hwaci-check-rpath
+
hwaci-define-if-opt-truthy amalgamation USE_AMALGAMATION \
"Use amalgamation for builds?"
}
unset emccsh
+########################################################################
+# ICU
+if {"" ne [define LDFLAGS_ICU [join [opt-val with-icu-lib ""]]]} {
+ # Flags sets seen in the wild for ICU:
+ # {-licui18n -licuuc -licudata} {-licui18n -licuuc}
+ add-feature-flag -DSQLITE_ENABLE_ICU
+ msg-result "Enabling ICU support with libs: [get-define LDFLAGS_ICU]"
+ if {[opt-bool icu-collations]} {
+ msg-result "Enabling ICU collations."
+ add-feature-flag -DSQLITE_ENABLE_ICU_COLLATIONS
+ }
+
+ # --enable-icu-collations is handled later, along with the other
+ # --simple-feature-flag options.
+} elseif {[opt-bool icu-collations]} {
+ hwaci-warn "ignoring --enable-icu-collations because --with-icu-lib was not specified"
+}
+
########################################################################
# Check for log(3) in libm and die with an error if it is not
# found. $why should be the feature name which requires that function
rtree -DSQLITE_ENABLE_RTREE {}
session {-DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_PREUPDATE_HOOK} {}
update-limit -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT {}
+ memsys5 -DSQLITE_ENABLE_MEMSYS5 {}
memsys3 {} {
if {[opt-bool memsys5]} {
- msg-result "NOT enabling memsys3 because memsys5 is enabled."
+ hwaci-warn "not enabling memsys3 because memsys5 is enabled."
+ expr 0
} else {
add-feature-flag -DSQLITE_ENABLE_MEMSYS3
}
}
- memsys5 -DSQLITE_ENABLE_MEMSYS5 {}
} {
hwaci-if-opt-truthy $boolFlag {
add-feature-flag $featureFlag
- eval $ifSetEvalThis
- if {"all" ne $boolFlag} {
+ if {0 != [eval $ifSetEvalThis] && "all" ne $boolFlag} {
msg-result "Enabling $boolFlag"
}
} {
}
}
+#########################################################################
+# Show the final feature flag sets:
+set oFF [get-define OPT_FEATURE_FLAGS]
+if {"" ne $oFF} {
+ define OPT_FEATURE_FLAGS [lsort -unique $oFF]
+ msg-result "Library feature flags: [get-define OPT_FEATURE_FLAGS]"
+}
+set oFF [get-define OPT_SHELL]
+if {"" ne $oFF} {
+ define OPT_SHELL [lsort -unique $oFF]
+ msg-result "Shell options: [get-define OPT_SHELL]"
+}
+unset oFF
+
########################################################################
# Maybe extend JimTCL a bit. As of this writing (2024-09-27) it only
# needs (-DHAVE_REALPATH or -DHAVE__FULLPATH) and -DHAVE_DIRENT_H to
define-append CFLAGS_JIMSH -DHAVE_LONG_LONG; # SQLite relies on long long, so we know it's available
}; # JimTCL
-########################################################################
-# Determine proper rpath-handling flags
-hwaci-check-rpath
-
########################################################################
# Generate the output files.
#
}
#TODO hwaci-make-from-dot-in ext/wasm/GNUmakefile
-set oFF [get-define OPT_FEATURE_FLAGS]
-if {"" ne $oFF} {
- define OPT_FEATURE_FLAGS [lsort -unique $oFF]
- msg-result "Library feature flags: [get-define OPT_FEATURE_FLAGS]"
-}
-set oFF [get-define OPT_SHELL]
-if {"" ne $oFF} {
- define OPT_SHELL [lsort -unique $oFF]
- msg-result "Shell options: [get-define OPT_SHELL]"
-}
-unset oFF
-
if {"" ne $DUMP_DEFINES_JSON} {
########################################################################
# Dump config-defines.json...
-C Makefile.in:\sinclude\sCPPFLAGS\sin\sthe\sCFLAGS,\sas\sthe\slegacy\sMakefile.in\sdid,\sbecause\ssome\sdownstream\sscripts\srely\son\sthat.\sRemove\sa\sduplicated\sTCLLIBDIR\sassignment.
-D 2024-10-27T06:03:27.496
+C configure:\sadd\s--with-icu-lib=LDFLAGS\sand\s--enable-icu-collations.\sFix\sauto-reconfigure\swhen\sflags\scontain\sspaces.
+D 2024-10-27T07:06:03.774
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md b6e6c1baf38e4339bd3f1e0e5e5bfd0a9a93d133360691b2785c2d4b2f2dcec2
-F Makefile.in b0f2b40be5273a8a369af03d4d9a56c5027cd4fc2ee41feddced218dfb6c1e1b
+F Makefile.in c9fb22b54d1b9aafba00cc22306286a479e97e498f426414fcc1861486ed2260
F Makefile.linux-generic 8df0e6ee5e4671f844caf27f88d2be7421e904639f7a0ffdce0e2cd4ea11e8c0
F Makefile.msc d2d927177660945599ba88ea32f1ab5c261a96a8797380b99766e27f3aea7e4f
F README.md c3c0f19532ce28f6297a71870f3c7b424729f0e6d9ab889616d3587dd2332159
F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2
-F auto.def dbd0ab35f0c01b421e53e851cbc6117913d60a4eeea2b75af24a1647838242ee
+F auto.def 376f5bd1f1d88602ce9d964e69ce4df6ec9bfeafcb7988c0cabe8fc06036b450
F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903
F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347
F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P ccb8f16f8a5c500b683800672aa4bc87d2f109e87ebdabf6c54d5b6dc69718f7
-R ea34d3fe32036f9e4036fc2d28aa1616
+P 8e352f4199e048030113e0cc359eaadb6d29bc4b3dd7a0442d7500f7c3847e50
+R f3abdd771eb17cd501d5fa951125d236
U stephan
-Z d899eb4b8c2da605c59f9ecc775c852d
+Z f4577442737993b89d90f014d56548e1
# Remove this line to create a well-formed Fossil manifest.