0
0
mirror of https://github.com/sqlite/sqlite.git synced 2024-11-21 19:29:09 +01:00

Rename the 'hwaci' auto.def utility API to the more generic 'proj' API, per /chat discussion. Fix a function name typo which caused readline detection to kill the configure in one code path.

FossilOrigin-Name: e20610f06bfc6f4ebc5806da05c307d91e1f0a8c7a7501a7953273dbf1816fee
This commit is contained in:
stephan 2024-10-28 14:16:50 +00:00
parent dfa64c5542
commit de4fc707b5
4 changed files with 202 additions and 202 deletions

168
auto.def
View File

@ -12,7 +12,7 @@
#
# JimTCL: https://jim.tcl.tk
#
use cc cc-db cc-shared cc-lib hwaci-common pkg-config
use cc cc-db cc-shared cc-lib proj pkg-config
# $DUMP_DEFINES_TXT is the file emitted by --dump-defines, intended
# only for build debugging and not part of the public build interface.
@ -118,8 +118,8 @@ set DUMP_DEFINES_JSON ""; #./config.defines.json
# booleans: use one of:
# - [opt-bool FLAG] is autosetup's built-in command for this, but we
# have some convenience variants:
# - [hwaci-opt-truthy FLAG]
# - [hwaci-opt-if-truthy FLAG {THEN} {ELSE}]
# - [proj-opt-truthy FLAG]
# - [proj-opt-if-truthy FLAG {THEN} {ELSE}]
#
# Non-boolean (i.e. string) flags:
# - [opt-val FLAG ?default?]
@ -202,7 +202,7 @@ unset flags
# Carry values from hidden --flag aliases over to their canonical flag
# forms.
#
hwaci-xfer-options-aliases {
proj-xfer-options-aliases {
with-readline-inc => with-readline-cflags
with-readline-lib => with-readline-ldflags
}
@ -218,7 +218,7 @@ define PACKAGE_BUGREPORT [get-define PACKAGE_URL]/forum
msg-result "srcdir = $srcdir"
msg-result "top_srcdir = $top_srcdir"
msg-result [hwaci-bold "Configuring SQLite version $PACKAGE_VERSION"]
msg-result [proj-bold "Configuring SQLite version $PACKAGE_VERSION"]
#
# SQLITE_AUTORECONFIG contains make target rules for re-running the
@ -233,7 +233,7 @@ foreach arg $::autosetup(argv) {
# Are we cross-compiling?
set cross_compiling [hwaci-is-cross-compiling]
set cross_compiling [proj-is-cross-compiling]
if {![file exists sqlite3.pc.in]} {
msg-result "This appears to be an out-of-tree build."
}
@ -266,7 +266,7 @@ proc sqlite-add-shell-opt {args} {
}
}
hwaci-file-extensions
proj-file-extensions
if {".exe" eq [get-define TARGET_EXEEXT]} {
define SQLITE_OS_UNIX 0
define SQLITE_OS_WIN 1
@ -279,8 +279,8 @@ if {".exe" eq [get-define TARGET_EXEEXT]} {
#########
# Programs needed
if {"" eq [hwaci-bin-define install]} {
hwaci-warn "Cannot find install binary, so 'make install' will not work."
if {"" eq [proj-bin-define install]} {
proj-warn "Cannot find install binary, so 'make install' will not work."
# Reminder: we historically have ./install-sh in the source tree.
# Can we not simply use that?
#
@ -316,18 +316,18 @@ proc sqlite-check-wasi-sdk {} {
if {$wasiSdkDir eq ""} {
return 0
} elseif {$::cross_compiling} {
hwaci-fatal "Cannot combine --with-wasi-sdk with cross-compilation"
proj-fatal "Cannot combine --with-wasi-sdk with cross-compilation"
}
msg-result "Checking WASI SDK directory \[$wasiSdkDir]... "
#puts "prefix = [prefix $wasiSdkDir/bin {clang ld}]"
hwaci-affirm-files-exist -v {*}[prefix "$wasiSdkDir/bin/" {clang wasm-ld}]
proj-affirm-files-exist -v {*}[prefix "$wasiSdkDir/bin/" {clang wasm-ld}]
msg-result "Using wasi-sdk clang, disabling: tcl, CLI shell, DLL, loadable extensions, threading"
define HAVE_WASI_SDK 1
define WASI_SDK_DIR $wasiSdkDir
hwaci-opt-set load-extension 0 ;# ==> --disable-load-extension
hwaci-opt-set threadsafe 0 ;# ==> --threadsafe=0
hwaci-opt-set tcl 0 ;# ==> --disable-tcl
hwaci-opt-set shared 0 ;# ==> --disable-shared
proj-opt-set load-extension 0 ;# ==> --disable-load-extension
proj-opt-set threadsafe 0 ;# ==> --threadsafe=0
proj-opt-set tcl 0 ;# ==> --disable-tcl
proj-opt-set shared 0 ;# ==> --disable-shared
set cross_compiling 1
# Changing --host and --target have no effect here except to possibly
@ -367,7 +367,7 @@ cc-with {-includes stdint.h} \
cc-check-functions gmtime_r isnan localtime_r localtime_s \
malloc_usable_size strchrnul usleep utime pread pread64 pwrite pwrite64
hwaci-check-function-in-lib fdatasync rt
proj-check-function-in-lib fdatasync rt
define LDFLAGS_FDATASYNC [get-define lib_fdatasync]
undefine lib_fdatasync
@ -383,7 +383,7 @@ cc-check-includes \
# code generation:
cc-check-includes dirent.h sys/time.h
if {[cc-check-includes zlib.h] && [hwaci-check-function-in-lib deflate z]} {
if {[cc-check-includes zlib.h] && [proj-check-function-in-lib deflate z]} {
# TODO: port over the more sophisticated zlib search from the fossil auto.def
define HAVE_ZLIB 1; # "-DSQLITE_HAVE_ZLIB=1"
define LDFLAGS_ZLIB -lz
@ -399,30 +399,30 @@ if {[cc-check-includes zlib.h] && [hwaci-check-function-in-lib deflate z]} {
#
# Determine proper rpath-handling flags.
#
hwaci-check-rpath
proj-check-rpath
hwaci-define-if-opt-truthy shared ENABLE_SHARED \
proj-define-if-opt-truthy shared ENABLE_SHARED \
"Build shared library?"
if {![hwaci-define-if-opt-truthy static ENABLE_STATIC \
if {![proj-define-if-opt-truthy static ENABLE_STATIC \
"Build static library?"]} {
hwaci-warn "static lib build may be implicitly re-activated by other components, e.g. libtclsqlite3."
proj-warn "static lib build may be implicitly re-activated by other components, e.g. libtclsqlite3."
}
hwaci-define-if-opt-truthy amalgamation USE_AMALGAMATION \
proj-define-if-opt-truthy amalgamation USE_AMALGAMATION \
"Use amalgamation for builds?"
hwaci-define-if-opt-truthy gcov USE_GCOV "Use gcov?"
proj-define-if-opt-truthy gcov USE_GCOV "Use gcov?"
hwaci-define-if-opt-truthy test-status TSTRNNR_OPTS \
proj-define-if-opt-truthy test-status TSTRNNR_OPTS \
"test-runner flags:" {--status} {}
hwaci-define-if-opt-truthy linemacros AMALGAMATION_LINE_MACROS \
proj-define-if-opt-truthy linemacros AMALGAMATION_LINE_MACROS \
"Use #line macros in the amalgamation:"
msg-checking "Debug build? "
hwaci-if-opt-truthy with-debug {
proj-if-opt-truthy with-debug {
define SQLITE_DEBUG 1
define TARGET_DEBUG {-g -DSQLITE_DEBUG=1 -DSQLITE_ENABLE_SELECTTRACE -DSQLITE_ENABLE_WHERETRACE -O0 -Wall}
msg-result yes
@ -472,7 +472,7 @@ proc sqlite-check-tcl {} {
global top_srcdir
msg-result "Checking for a suitable tcl... "
set optTcl [hwaci-opt-truthy tcl]
set optTcl [proj-opt-truthy tcl]
set use_tcl $optTcl
set with_tclsh [opt-val with-tclsh]
set with_tcl [opt-val with-tcl]
@ -480,15 +480,15 @@ proc sqlite-check-tcl {} {
#puts "sqlite-check-tcl: with_tclsh=${with_tclsh}"
#puts "sqlite-check-tcl: with_tcl=$with_tcl"
if {"" eq $with_tclsh && "" eq $with_tcl} {
set with_tclsh [hwaci-first-bin-of tclsh9.0 tclsh8.6 tclsh]
set with_tclsh [proj-first-bin-of tclsh9.0 tclsh8.6 tclsh]
}
#puts "sqlite-check-tcl: with_tclsh=${with_tclsh}"
if {"" ne $with_tclsh} {
if {![file isfile $with_tclsh]} {
hwaci-fatal "TCL shell $with_tclsh is not a file"
proj-fatal "TCL shell $with_tclsh is not a file"
} elseif {![file-isexec $with_tclsh]} {
hwaci-fatal "TCL shell $with_tclsh is not executable"
proj-fatal "TCL shell $with_tclsh is not executable"
} else {
define TCLSH_CMD $with_tclsh
msg-result "Using tclsh: $with_tclsh"
@ -500,7 +500,7 @@ proc sqlite-check-tcl {} {
if {"" ne $with_tcl && [file isdir $with_tcl]} {
msg-result "$with_tclsh recommends the tclConfig.sh from $with_tcl"
} else {
hwaci-warn "$with_tclsh is unable to recommand a tclConfig.sh"
proj-warn "$with_tclsh is unable to recommand a tclConfig.sh"
set use_tcl 0
}
}
@ -522,7 +522,7 @@ proc sqlite-check-tcl {} {
}
}
if {"" eq $cfg} {
hwaci-fatal "No tclConfig.sh found under ${with_tcl}"
proj-fatal "No tclConfig.sh found under ${with_tcl}"
}
} else {
# If we have not yet found a tclConfig.sh file, look in $libdir which is
@ -540,7 +540,7 @@ proc sqlite-check-tcl {} {
}
}
if {![file readable $cfg]} {
hwaci-indented-notice {
proj-indented-notice {
WARNING: Cannot find a usable tclConfig.sh file. Use
--with-tcl=DIR to specify a directory where tclConfig.sh
can be found. SQLite does not use TCL internally, but TCL
@ -551,9 +551,9 @@ proc sqlite-check-tcl {} {
}
msg-result "Using tclConfig.sh: $cfg"
} elseif {!$optTcl} {
hwaci-warn "Unable to run tests because of --disable-tcl"
proj-warn "Unable to run tests because of --disable-tcl"
} else {
hwaci-warn "Unable to run tests because no tclConfig.sh file could be located"
proj-warn "Unable to run tests because no tclConfig.sh file could be located"
}
break
}
@ -572,7 +572,7 @@ proc sqlite-check-tcl {} {
if {![file-isexec $with_tclsh]} {
set with_tclsh2 [get-define TCL_EXEC_PREFIX]/bin/tclsh
if {![file-isexec $with_tclsh2]} {
hwaci-warn "Cannot find a usable tclsh (tried: $with_tclsh $with_tclsh2)"
proj-warn "Cannot find a usable tclsh (tried: $with_tclsh $with_tclsh2)"
} else {
set with_tclsh $with_tclsh2
}
@ -592,7 +592,7 @@ proc sqlite-check-tcl {} {
}
}
} else {
hwaci-warn "Cannot determine TCLLIBDIR"
proj-warn "Cannot determine TCLLIBDIR"
}
}
set tclrpath ""
@ -609,7 +609,7 @@ proc sqlite-check-tcl {} {
}
define TCLLIBDIR $tcllibdir
define TCLLIB_RPATH $tclrpath
#hwaci-fatal "TCLLIB_RPATH = [get-define TCLLIB_RPATH]"
#proj-fatal "TCLLIB_RPATH = [get-define TCLLIB_RPATH]"
} else {
define TCLLIBDIR ""
define TCLLIB_RPATH ""
@ -619,7 +619,7 @@ proc sqlite-check-tcl {} {
msg-result "Using tclsh: $with_tclsh"
define HAVE_TCL 1
} else {
hwaci-warn "Cannot find a usable tclsh, so cannot run tests."
proj-warn "Cannot find a usable tclsh, so cannot run tests."
}
}; # sqlite-check-tcl
@ -670,7 +670,7 @@ if {"jimsh" ne $cgtcl} {
}
set cgtcl [get-define TCLSH_CMD]
if {![file exists $cgtcl]} {
hwaci-fatal "Cannot find a tclsh to use for code generation."
proj-fatal "Cannot find a tclsh to use for code generation."
}
define BTCLSH "\$(TCLSH_CMD)"
}
@ -685,11 +685,11 @@ unset cgtcl
########################################################################
# Thread safety?
msg-checking "Support threadsafe operation? "
hwaci-if-opt-truthy threadsafe {
proj-if-opt-truthy threadsafe {
msg-result yes
sqlite-add-feature-flag -DSQLITE_THREADSAFE=1
if {![hwaci-check-function-in-lib pthread_create pthread]
|| ![hwaci-check-function-in-lib pthread_mutexattr_init pthread]} {
if {![proj-check-function-in-lib pthread_create pthread]
|| ![proj-check-function-in-lib pthread_mutexattr_init pthread]} {
user-error "Missing required pthread bits"
}
define LDFLAGS_PTHREAD [get-define lib_pthread_create]
@ -752,11 +752,11 @@ proc sqlite-check-line-editing {} {
# Use linenoise...
set dirLn $check
if {![file isdir $dirLn]} {
hwaci-fatal "--with-linenoise value is not a directory"
proj-fatal "--with-linenoise value is not a directory"
} elseif {![file exists $dirLn/linenoise.c] } {
hwaci-fatal "Cannot find linenoise.c in $dirLn"
proj-fatal "Cannot find linenoise.c in $dirLn"
} elseif {![file exists $dirLn/linenoise.h] } {
hwaci-fatal "Cannot find linenoise.h in $dirLn"
proj-fatal "Cannot find linenoise.h in $dirLn"
}
msg-result "Using linenoise from $dirLn"
define CFLAGS_READLINE "-I$dirLn $dirLn/linenoise.c"
@ -781,7 +781,7 @@ proc sqlite-check-line-editing {} {
# --enable-editline to do exactly that but it seems likely to
# break on systems for which which HAVE_EDITLINE=1 previously
# worked.
hwaci-indented-notice -error {
proj-indented-notice -error {
ERROR: the --enable-editline flag is not supported due to
non-availability of systems which have it in a form which the
sqlite3 CLI shell expects to see. On some systems this can be
@ -798,10 +798,10 @@ proc sqlite-check-line-editing {} {
# Transform with-readline-header=X to with-readline-cflags=-I...
set v [opt-val with-readline-header]
hwaci-opt-set with-readline-header ""
proj-opt-set with-readline-header ""
if {"" ne $v} {
if {"auto" eq $v} {
hwaci-opt-set with-readline-cflags auto
proj-opt-set with-readline-cflags auto
} else {
set v [file dirname $v]
if {[string match */*line $v]} {
@ -812,7 +812,7 @@ proc sqlite-check-line-editing {} {
# work!
set v [file dirname $v]
}
hwaci-opt-set with-readline-cflags "-I$v"
proj-opt-set with-readline-cflags "-I$v"
}
}
@ -822,7 +822,7 @@ proc sqlite-check-line-editing {} {
set rlInc ""
if {!$::cross_compiling} {
# ^^^ this check is derived from the legacy configure script
set rlInc [hwaci-search-for-header-dir readline.h \
set rlInc [proj-search-for-header-dir readline.h \
-dirs {/usr /usr/local /usr/local/readline /usr/contrib /mingw} \
-subdirs {include/readline include}]
# ^^^ The -dirs and -subdirs lists are from the legacy configure script
@ -843,14 +843,14 @@ proc sqlite-check-line-editing {} {
if {"" eq $rlLib || "auto" eq $rlLib} {
set rlLib ""
set libTerm ""
if {[hwaci-check-function-in-lib tgetent {readline ncurses curses termcap}]} {
if {[proj-check-function-in-lib tgetent {readline ncurses curses termcap}]} {
# ^^^ that libs list comes from the legacy configure script ^^^
set libTerm [get-define lib_tgetent]
undefine lib_tgetent
}
if {"readline" eq $libTerm} {
set rlLib $libTerm
} elseif {[hwaci-check-function-in-lib readline readline $libTerm]} {
} elseif {[proj-check-function-in-lib readline readline $libTerm]} {
set rlLib [get-define lib_readline]
lappend rlLib $libTerm
undefine lib_readline
@ -904,7 +904,7 @@ proc sqlite-check-line-editing {} {
user-notice "Readline completion enabled"
} else {
user-notice "WARNING: readline completion disabled due to rl_completion_matches() signature mismatch"
add-shell-opt -DSQLITE_OMIT_READLINE_COMPLETION
sqlite-add-shell-opt -DSQLITE_OMIT_READLINE_COMPLETION
}
return "readline"
}
@ -913,8 +913,8 @@ proc sqlite-check-line-editing {} {
}; # sqlite-check-line-editing
msg-result "Line-editing support for the sqlite3 shell: [sqlite-check-line-editing]"
hwaci-if-opt-truthy load-extension {
if {[hwaci-check-function-in-lib dlopen dl]} {
proj-if-opt-truthy load-extension {
if {[proj-check-function-in-lib dlopen dl]} {
define LDFLAGS_DLOPEN [get-define lib_dlopen]
undefine lib_dlopen
} else {
@ -926,8 +926,8 @@ hwaci-if-opt-truthy load-extension {
msg-result "Disabling loadable extensions."
}
hwaci-if-opt-truthy math {
if {![hwaci-check-function-in-lib ceil m]} {
proj-if-opt-truthy math {
if {![proj-check-function-in-lib ceil m]} {
user-error "Cannot find libm functions. Use --disable-math to bypass this."
}
define LDFLAGS_MATH [get-define lib_ceil]
@ -945,9 +945,9 @@ define cross_compiling ${cross_compiling}
# Emscripten SDK for building the web-based wasm components.
#
set emccsh $srcdir/tool/emcc.sh
if {![get-define HAVE_WASI_SDK] && [hwaci-check-emsdk]} {
if {![get-define HAVE_WASI_SDK] && [proj-check-emsdk]} {
define EMCC_WRAPPER $emccsh
hwaci-make-from-dot-in $emccsh
proj-make-from-dot-in $emccsh
catch {exec chmod u+x $emccsh}
} else {
define EMCC_WRAPPER ""
@ -977,25 +977,25 @@ proc sqlite-check-icu {} {
# - -licui18n -licuuc -licudata
# - -licui18n -licuuc
# - /usr/local/bin/icu-config --ldflags
if {[hwaci-opt-was-provided with-icu-config]} {
if {[proj-opt-was-provided with-icu-config]} {
set bin [opt-val with-icu-config]
if {"auto" eq $bin} {
set bin [hwaci-first-bin-of \
set bin [proj-first-bin-of \
[get-define prefix]/bin/icu-config \
/usr/local/bin/icu-config \
/usr/bin/icu-config]
if {"" eq $bin} {
hwaci-fatal "--with-icu-config=auto cannot find icu-config binary"
proj-fatal "--with-icu-config=auto cannot find icu-config binary"
}
}
if {[file-isexec $bin]} {
set x [exec $bin --ldflags]
if {"" eq $x} {
hwaci-fatal "$bin --ldflags returned no data"
proj-fatal "$bin --ldflags returned no data"
}
define-append LDFLAGS_ICU $x
} else {
hwaci-fatal "--with-icu-config=$bin does not refer to an executable"
proj-fatal "--with-icu-config=$bin does not refer to an executable"
}
}
set flags [define LDFLAGS_ICU [string trim [get-define LDFLAGS_ICU]]]
@ -1008,7 +1008,7 @@ proc sqlite-check-icu {} {
# Recall that shell.c builds with sqlite3.c
}
} elseif {[opt-bool icu-collations]} {
hwaci-warn "ignoring --enable-icu-collations because neither --with-icu-ldflags nor --with-icu-config provided any linker flags"
proj-warn "ignoring --enable-icu-collations because neither --with-icu-ldflags nor --with-icu-config provided any linker flags"
} else {
msg-result "ICU support is disabled."
}
@ -1022,7 +1022,7 @@ sqlite-check-icu
# required linker flags (which may be empty even if the math APIs are
# found, depending on the OS).
proc affirm-have-math {why} {
if {![msg-quiet hwaci-check-function-in-lib log m]} {
if {![msg-quiet proj-check-function-in-lib log m]} {
user-error "Missing math APIs for $why"
}
define LDFLAGS_MATH [get-define lib_log ""]
@ -1034,29 +1034,29 @@ proc affirm-have-math {why} {
msg-result "Feature flags..."
foreach {boolFlag featureFlag ifSetEvalThis} {
all {} {
hwaci-opt-set fts4
hwaci-opt-set fts5
hwaci-opt-set geopoly
hwaci-opt-set rtree
hwaci-opt-set session
proj-opt-set fts4
proj-opt-set fts5
proj-opt-set geopoly
proj-opt-set rtree
proj-opt-set session
}
fts4 -DSQLITE_ENABLE_FTS4 {affirm-have-math fts4}
fts5 -DSQLITE_ENABLE_FTS5 {affirm-have-math fts5}
geopoly -DSQLITE_ENABLE_GEOPOLY {hwaci-opt-set rtree}
geopoly -DSQLITE_ENABLE_GEOPOLY {proj-opt-set rtree}
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]} {
hwaci-warn "not enabling memsys3 because memsys5 is enabled."
proj-warn "not enabling memsys3 because memsys5 is enabled."
expr 0
} else {
sqlite-add-feature-flag -DSQLITE_ENABLE_MEMSYS3
}
}
} {
hwaci-if-opt-truthy $boolFlag {
proj-if-opt-truthy $boolFlag {
sqlite-add-feature-flag $featureFlag
if {0 != [eval $ifSetEvalThis] && "all" ne $boolFlag} {
msg-result " + $boolFlag"
@ -1076,7 +1076,7 @@ foreach {boolFlag featureFlag ifSetEvalThis} {
foreach {boolFlag featureFlag} {
json -DSQLITE_OMIT_JSON
} {
if {[hwaci-opt-truthy $boolFlag]} {
if {[proj-opt-truthy $boolFlag]} {
msg-result " + $boolFlag"
} else {
sqlite-add-feature-flag $featureFlag
@ -1123,10 +1123,10 @@ if {0 && "" ne [get-define CFLAGS_JIMSH]} {
#
# Potential TODO (unclear): in sqlite3.pc.in, do we need to include
# any CFLAGS_READLINE, CFLAGS_ZLIB, etc in its "Cflags:" section?
hwaci-make-from-dot-in -touch Makefile sqlite3.pc
proj-make-from-dot-in -touch Makefile sqlite3.pc
if {0} {
# Requires a hand-written sqlite_cfg.h.in...
hwaci-make-from-dot-in sqlite_cfg.h
proj-make-from-dot-in sqlite_cfg.h
# vs...
} else {
# Requires no input template...
@ -1136,9 +1136,9 @@ if {0} {
TARGET_* USE_GCOV TCL_*} \
-auto {HAVE_* PACKAGE_*} \
-none *
hwaci-touch sqlite_cfg.h ; # help avoid frequent unnecessary @SQLITE_AUTORECONFIG@
proj-touch sqlite_cfg.h ; # help avoid frequent unnecessary @SQLITE_AUTORECONFIG@
}
#TODO hwaci-make-from-dot-in ext/wasm/GNUmakefile
#TODO proj-make-from-dot-in ext/wasm/GNUmakefile
if {"" ne $DUMP_DEFINES_JSON} {
########################################################################
@ -1154,18 +1154,18 @@ if {"" ne $DUMP_DEFINES_JSON} {
-auto {OPT_* PACKAGE_* HAVE_*}
}
if {[opt-bool defines-json-include-lowercase]} {
lappend dumpDefsOpt -none {lib_*} ; # remnants from hwaci-check-function-in-lib and friends
lappend dumpDefsOpt -none {lib_*} ; # remnants from proj-check-function-in-lib and friends
lappend dumpDefsOpt -auto {[a-z]*}
}
lappend dumpDefsOpt -none *
hwaci-dump-defs-json $DUMP_DEFINES_JSON {*}$dumpDefsOpt
proj-dump-defs-json $DUMP_DEFINES_JSON {*}$dumpDefsOpt
undefine OPT_FEATURE_FLAGS.list
undefine OPT_SHELL.list
}
########################################################################
# Some build-dev/debug-only output
hwaci-if-opt-truthy dump-defines {
proj-if-opt-truthy dump-defines {
msg-result "--dump-defines is creating $::DUMP_DEFINES_TXT"
make-config-header $::DUMP_DEFINES_TXT \
-bare {SQLITE_OS* SQLITE_DEBUG USE_*} \
@ -1180,4 +1180,4 @@ hwaci-if-opt-truthy dump-defines {
}
}
msg-result [hwaci-bold "Source tree is configured! Run make to build it."]
msg-result [proj-bold "Source tree is configured! Run make to build it."]

View File

@ -45,15 +45,15 @@
########################################################################
########################################################################
# $hwaci_ is an internal-use-only array for storing whatever generic
# $proj_ is an internal-use-only array for storing whatever generic
# internal stuff we need stored.
array set hwaci_ {}
set hwaci_(isatty) [isatty? stdout]
array set proj_ {}
set proj_(isatty) [isatty? stdout]
proc hwaci-warn {msg} {
proc proj-warn {msg} {
puts stderr "WARNING: $msg"
}
proc hwaci-fatal {msg} {
proc proj-fatal {msg} {
show-notices
puts stderr "ERROR: $msg"
exit 1
@ -63,8 +63,8 @@ proc hwaci-fatal {msg} {
# If this function believes that the current console might support
# ANSI escape sequences then this returns $str wrapped in a sequence
# to bold that text, else it returns $str as-is.
proc hwaci-bold {str} {
if {$::autosetup(iswin) || !$::hwaci_(isatty)} {
proc proj-bold {str} {
if {$::autosetup(iswin) || !$::proj_(isatty)} {
return $str
}
return "\033\[1m${str}\033\[0m"
@ -78,7 +78,7 @@ proc hwaci-bold {str} {
#
# If its first argument is -error then it renders the message
# immediately and then exits.
proc hwaci-indented-notice {args} {
proc proj-indented-notice {args} {
set fErr ""
switch -exact -- [lindex $args 0] {
-error { set args [lassign $args fErr] }
@ -95,16 +95,16 @@ proc hwaci-indented-notice {args} {
########################################################################
# Returns 1 if cross-compiling, else 0.
proc hwaci-is-cross-compiling {} {
proc proj-is-cross-compiling {} {
return [expr {[get-define host] ne [get-define build]}]
}
########################################################################
# hwaci-lshift_ shifts $count elements from the list named $listVar
# proj-lshift_ shifts $count elements from the list named $listVar
# and returns them as a new list. On empty input, returns "".
#
# Modified slightly from: https://wiki.tcl-lang.org/page/lshift
proc hwaci-lshift_ {listVar {count 1}} {
proc proj-lshift_ {listVar {count 1}} {
upvar 1 $listVar l
if {![info exists l]} {
# make the error message show the real variable name
@ -124,7 +124,7 @@ proc hwaci-lshift_ {listVar {count 1}} {
# out any lines which begin with an number of whitespace followed by a
# '#', and returns a value containing the [append]ed results of each
# remaining line with a \n between each.
proc hwaci-strip-hash-comments_ {val} {
proc proj-strip-hash-comments_ {val} {
set x {}
foreach line [split $val \n] {
if {![string match "#*" [string trimleft $line]]} {
@ -138,7 +138,7 @@ proc hwaci-strip-hash-comments_ {val} {
# A proxy for cc-check-function-in-lib which "undoes" any changes that
# routine makes to the LIBS define. Returns the result of
# cc-check-function-in-lib.
proc hwaci-check-function-in-lib {function libs {otherlibs {}}} {
proc proj-check-function-in-lib {function libs {otherlibs {}}} {
set found 0
define-push {LIBS} {
set found [cc-check-function-in-lib $function $libs $otherlibs]
@ -151,11 +151,11 @@ proc hwaci-check-function-in-lib {function libs {otherlibs {}}} {
# by the -dirs {LIST} and -subdirs {LIST} flags (each of which have
# sane defaults). Returns either the first matching dir or an empty
# string. The return value does not contain the filename part.
proc hwaci-search-for-header-dir {header args} {
proc proj-search-for-header-dir {header args} {
set subdirs {include}
set dirs {/usr /usr/local /mingw}
# Debatable:
# if {![hwaci-is-cross-compiling]} {
# if {![proj-is-cross-compiling]} {
# lappend dirs [get-define prefix]
# }
while {[llength $args]} {
@ -163,7 +163,7 @@ proc hwaci-search-for-header-dir {header args} {
-dirs { set args [lassign $args - dirs] }
-subdirs { set args [lassign $args - subdirs] }
default {
hwaci-fatal "Unhandled argument: $args"
proj-fatal "Unhandled argument: $args"
}
}
}
@ -179,21 +179,21 @@ proc hwaci-search-for-header-dir {header args} {
########################################################################
# If $v is true, [puts $msg] is called, else puts is not called.
#proc hwaci-maybe-verbose {v msg} {
#proc proj-maybe-verbose {v msg} {
# if {$v} {
# puts $msg
# }
#}
########################################################################
# Usage: hwaci-find-executable-path ?-v? binaryName
# Usage: proj-find-executable-path ?-v? binaryName
#
# Works similarly to autosetup's [find-executable-path $binName] but:
#
# - If the first arg is -v, it's verbose about searching, else it's quiet.
#
# Returns the full path to the result or an empty string.
proc hwaci-find-executable-path {args} {
proc proj-find-executable-path {args} {
set binName $args
set verbose 0
if {[lindex $args 0] eq "-v"} {
@ -213,15 +213,15 @@ proc hwaci-find-executable-path {args} {
}
########################################################################
# Uses [hwaci-find-executable-path $binName] to (verbosely) search for
# Uses [proj-find-executable-path $binName] to (verbosely) search for
# a binary, sets a define (see below) to the result, and returns the
# result (an empty string if not found).
#
# The define'd name is: if defName is empty then "BIN_X" is used,
# where X is the upper-case form of $binName with any '-' characters
# replaced with '_'.
proc hwaci-bin-define {binName {defName {}}} {
set check [hwaci-find-executable-path -v $binName]
proc proj-bin-define {binName {defName {}}} {
set check [proj-find-executable-path -v $binName]
if {"" eq $defName} {
set defName "BIN_[string toupper [string map {- _} $binName]]"
}
@ -230,7 +230,7 @@ proc hwaci-bin-define {binName {defName {}}} {
}
########################################################################
# Usage: hwaci-first-bin-of bin...
# Usage: proj-first-bin-of bin...
#
# Looks for the first binary found of the names passed to this
# function. If a match is found, the full path to that binary is
@ -240,7 +240,7 @@ proc hwaci-bin-define {binName {defName {}}} {
# any define'd name that function stores for the result (because the
# caller has no sensible way of knowing which result it was unless
# they pass only a single argument).
proc hwaci-first-bin-of {args} {
proc proj-first-bin-of {args} {
foreach b $args {
if {[cc-path-progs $b]} {
set u [string toupper $b]
@ -258,8 +258,8 @@ proc hwaci-first-bin-of {args} {
#
# TODO: move this out of this file and back into the 1 or 2 downstream
# trees which use it.
proc hwaci-require-bash {} {
set bash [hwaci-bin-define bash]
proc proj-require-bash {} {
set bash [proj-bin-define bash]
if {"" eq $bash} {
user-error "Cannot find required bash shell"
}
@ -281,7 +281,7 @@ proc hwaci-require-bash {} {
# passes --foo-bar to configure, even if that invocation would resolve
# to the default value of baz. If the user does not explicitly pass in
# --foo-bar (with or without a value) then this returns 0.
proc hwaci-opt-was-provided {key} {
proc proj-opt-was-provided {key} {
dict exists $::autosetup(optset) $key
}
@ -290,7 +290,7 @@ proc hwaci-opt-was-provided {key} {
# later with [opt-val], [opt-bool], and friends.
#
# Returns $val.
proc hwaci-opt-set {flag {val 1}} {
proc proj-opt-set {flag {val 1}} {
global autosetup
if {$flag ni $::autosetup(options)} {
# We have to add this to autosetup(options) or else future calls
@ -304,15 +304,15 @@ proc hwaci-opt-set {flag {val 1}} {
########################################################################
# Returns 1 if $val appears to be a truthy value, else returns
# 0. Truthy values are any of {1 on enabled yes}
proc hwaci-val-truthy {val} {
proc proj-val-truthy {val} {
expr {$val in {1 on enabled yes}}
}
########################################################################
# Returns 1 if [opt-val $flag] appears to be a truthy value or
# [opt-bool $flag] is true. See hwaci-val-truthy.
proc hwaci-opt-truthy {flag} {
if {[hwaci-val-truthy [opt-val $flag]]} { return 1 }
# [opt-bool $flag] is true. See proj-val-truthy.
proc proj-opt-truthy {flag} {
if {[proj-val-truthy [opt-val $flag]]} { return 1 }
set rc 0
catch {
# opt-bool will throw if $flag is not a known boolean flag
@ -322,9 +322,9 @@ proc hwaci-opt-truthy {flag} {
}
########################################################################
# If [hwaci-opt-truthy $flag] is true, eval $then, else eval $else.
proc hwaci-if-opt-truthy {boolFlag thenScript {elseScript {}}} {
if {[hwaci-opt-truthy $boolFlag]} {
# If [proj-opt-truthy $flag] is true, eval $then, else eval $else.
proc proj-if-opt-truthy {boolFlag thenScript {elseScript {}}} {
if {[proj-opt-truthy $boolFlag]} {
uplevel 1 $thenScript
} else {
uplevel 1 $elseScript
@ -332,23 +332,23 @@ proc hwaci-if-opt-truthy {boolFlag thenScript {elseScript {}}} {
}
########################################################################
# If [hwaci-opt-truthy $flag] then [define $def $iftrue] else [define
# If [proj-opt-truthy $flag] then [define $def $iftrue] else [define
# $def $iffalse]. If $msg is not empty, output [msg-checking $msg] and
# a [msg-results ...] which corresponds to the result. Returns 1 if
# the opt-truthy check passes, else 0.
proc hwaci-define-if-opt-truthy {flag def {msg ""} {iftrue 1} {iffalse 0}} {
proc proj-define-if-opt-truthy {flag def {msg ""} {iftrue 1} {iffalse 0}} {
if {"" ne $msg} {
msg-checking "$msg "
}
set rcMsg ""
set rc 0
if {[hwaci-opt-truthy $flag]} {
if {[proj-opt-truthy $flag]} {
define $def $iftrue
set rc 1
} else {
define $def $iffalse
}
switch -- [hwaci-val-truthy [get-define $def]] {
switch -- [proj-val-truthy [get-define $def]] {
0 { set rcMsg no }
1 { set rcMsg yes }
}
@ -361,28 +361,28 @@ proc hwaci-define-if-opt-truthy {flag def {msg ""} {iftrue 1} {iffalse 0}} {
########################################################################
# Args: [-v] optName defName {descr {}}
#
# Checks [hwaci-opt-truthy $optName] and calls [define $defName X]
# Checks [proj-opt-truthy $optName] and calls [define $defName X]
# where X is 0 for false and 1 for true. descr is an optional
# [msg-checking] argument which defaults to $defName. Returns X.
#
# If args[0] is -v then the boolean semantics are inverted: if
# the option is set, it gets define'd to 0, else 1. Returns the
# define'd value.
proc hwaci-opt-define-bool {args} {
proc proj-opt-define-bool {args} {
set invert 0
if {[lindex $args 0] eq "-v"} {
set invert 1
set args [lrange $args 1 end]
}
set optName [hwaci-lshift_ args]
set defName [hwaci-lshift_ args]
set descr [hwaci-lshift_ args]
set optName [proj-lshift_ args]
set defName [proj-lshift_ args]
set descr [proj-lshift_ args]
if {"" eq $descr} {
set descr $defName
}
set rc 0
msg-checking "$descr ... "
if {[hwaci-opt-truthy $optName]} {
if {[proj-opt-truthy $optName]} {
if {0 eq $invert} {
set rc 1
} else {
@ -414,7 +414,7 @@ proc hwaci-opt-define-bool {args} {
#
# Note that if it finds LIBLTDL it does not look for LIBDL, so will
# report only that is has LIBLTDL.
proc hwaci-check-module-loader {} {
proc proj-check-module-loader {} {
msg-checking "Looking for module-loader APIs... "
if {99 ne [get-define LDFLAGS_MODULE_LOADER 99]} {
if {1 eq [get-define HAVE_LIBLTDL 0]} {
@ -460,11 +460,11 @@ proc hwaci-check-module-loader {} {
}
########################################################################
# Sets all flags which would be set by hwaci-check-module-loader to
# Sets all flags which would be set by proj-check-module-loader to
# empty/falsy values, as if those checks had failed to find a module
# loader. Intended to be called in place of that function when
# a module loader is explicitly not desired.
proc hwaci-no-check-module-loader {} {
proc proj-no-check-module-loader {} {
define HAVE_LIBDL 0
define HAVE_LIBLTDL 0
define LDFLAGS_MODULE_LOADER ""
@ -472,7 +472,7 @@ proc hwaci-no-check-module-loader {} {
########################################################################
# Opens the given file, reads all of its content, and returns it.
proc hwaci-file-content {fname} {
proc proj-file-content {fname} {
set fp [open $fname r]
set rc [read $fp]
close $fp
@ -482,7 +482,7 @@ proc hwaci-file-content {fname} {
########################################################################
# Returns the contents of the given file as an array of lines, with
# the EOL stripped from each input line.
proc hwaci-file-content-list {fname} {
proc proj-file-content-list {fname} {
set fp [open $fname r]
set rc {}
while { [gets $fp line] >= 0 } {
@ -501,9 +501,9 @@ proc hwaci-file-content-list {fname} {
#
# This test has a long history of false positive results because of
# compilers reacting differently to the -MJ flag.
proc hwaci-check-compile-commands {{configOpt {}}} {
proc proj-check-compile-commands {{configOpt {}}} {
msg-checking "compile_commands.json support... "
if {"" ne $configOpt && ![hwaci-opt-truthy $configOpt]} {
if {"" ne $configOpt && ![proj-opt-truthy $configOpt]} {
msg-result "explicitly disabled"
define MAKE_COMPILATION_DB no
return 0
@ -525,14 +525,14 @@ proc hwaci-check-compile-commands {{configOpt {}}} {
########################################################################
# Runs the 'touch' command on one or more files, ignoring any errors.
proc hwaci-touch {filename} {
proc proj-touch {filename} {
catch { exec touch {*}$filename }
}
########################################################################
# Usage:
#
# hwaci-make-from-dot-in ?-touch? filename(s)...
# proj-make-from-dot-in ?-touch? filename(s)...
#
# Uses [make-template] to create makefile(-like) file(s) $filename
# from $filename.in but explicitly makes the output read-only, to
@ -545,7 +545,7 @@ proc hwaci-touch {filename} {
# please the build process.
#
# Failures when running chmod or touch are silently ignored.
proc hwaci-make-from-dot-in {args} {
proc proj-make-from-dot-in {args} {
set filename $args
set touch 0
if {[lindex $args 0] eq "-touch"} {
@ -557,7 +557,7 @@ proc hwaci-make-from-dot-in {args} {
catch { exec chmod u+w $f }
make-template $f.in $f
if {$touch} {
hwaci-touch $f
proj-touch $f
}
catch { exec chmod -w $f }
}
@ -574,9 +574,9 @@ proc hwaci-make-from-dot-in {args} {
# order to avoid potential problems with escaping, space-containing
# tokens, and interfering with autosetup's use of these vars, this
# routine does not directly modify CFLAGS or LDFLAGS.
proc hwaci-check-profile-flag {{flagname profile}} {
#puts "flagname=$flagname ?[hwaci-opt-truthy $flagname]?"
if {[hwaci-opt-truthy $flagname]} {
proc proj-check-profile-flag {{flagname profile}} {
#puts "flagname=$flagname ?[proj-opt-truthy $flagname]?"
if {[proj-opt-truthy $flagname]} {
set CC [get-define CC]
regsub {.*ccache *} $CC "" CC
# ^^^ if CC="ccache gcc" then [exec] treats "ccache gcc" as a
@ -602,7 +602,7 @@ proc hwaci-check-profile-flag {{flagname profile}} {
# machine, i.e. the local host). If $key == "build" then some
# additional checks may be performed which are not applicable when
# $key == "host".
proc hwaci-looks-like-windows {{key host}} {
proc proj-looks-like-windows {{key host}} {
global autosetup
switch -glob -- [get-define $key] {
*-*-ming* - *-*-cygwin - *-*-msys {
@ -628,7 +628,7 @@ proc hwaci-looks-like-windows {{key host}} {
#
# TODO: have someone verify whether this is correct for the
# non-Linux/BSD platforms.
proc hwaci-looks-like-mac {{key host}} {
proc proj-looks-like-mac {{key host}} {
switch -glob -- [get-define $key] {
*apple* {
return 1
@ -645,13 +645,13 @@ proc hwaci-looks-like-mac {{key host}} {
# build environment is then BUILD_EXEEXT is [define]'d to ".exe", else
# "". If the target, a.k.a. "host", is then TARGET_EXEEXT is
# [define]'d to ".exe", else "".
proc hwaci-exe-extension {} {
proc proj-exe-extension {} {
set rH ""
set rB ""
if {[hwaci-looks-like-windows host]} {
if {[proj-looks-like-windows host]} {
set rH ".exe"
}
if {[hwaci-looks-like-windows build]} {
if {[proj-looks-like-windows build]} {
set rB ".exe"
}
define BUILD_EXEEXT $rB
@ -659,7 +659,7 @@ proc hwaci-exe-extension {} {
}
########################################################################
# Works like hwaci-exe-extension except that it defines BUILD_DLLEXT
# Works like proj-exe-extension except that it defines BUILD_DLLEXT
# and TARGET_DLLEXT to one of (.so, ,dll, .dylib).
#
# Trivia: for .dylib files, the linker needs the -dynamiclib flag
@ -667,7 +667,7 @@ proc hwaci-exe-extension {} {
#
# TODO: have someone verify whether this is correct for the
# non-Linux/BSD platforms.
proc hwaci-dll-extension {} {
proc proj-dll-extension {} {
proc inner {key} {
switch -glob -- [get-define $key] {
*apple* {
@ -686,10 +686,10 @@ proc hwaci-dll-extension {} {
}
########################################################################
# Static-library counterpart of hwaci-dll-extension. Defines
# Static-library counterpart of proj-dll-extension. Defines
# BUILD_LIBEXT and TARGET_LIBEXT to the conventional static library
# extension for the being-built-on resp. the target platform.
proc hwaci-lib-extension {} {
proc proj-lib-extension {} {
proc inner {key} {
switch -glob -- [get-define $key] {
*-*-ming* - *-*-cygwin - *-*-msys {
@ -705,11 +705,11 @@ proc hwaci-lib-extension {} {
}
########################################################################
# Calls all of the hwaci-*-extension functions.
proc hwaci-file-extensions {} {
hwaci-exe-extension
hwaci-dll-extension
hwaci-lib-extension
# Calls all of the proj-*-extension functions.
proc proj-file-extensions {} {
proj-exe-extension
proj-dll-extension
proj-lib-extension
}
########################################################################
@ -717,7 +717,7 @@ proc hwaci-file-extensions {} {
# the filesystem, it fails fatally with an informative message.
# Returns the last file name it checks. If the first argument is -v
# then it emits msg-checking/msg-result messages for each file.
proc hwaci-affirm-files-exist {args} {
proc proj-affirm-files-exist {args} {
set rc ""
set verbose 0
if {[lindex $args 0] eq "-v"} {
@ -753,7 +753,7 @@ proc hwaci-affirm-files-exist {args} {
# but BIN_EMCC is then emcc was not found in the EMSDK_HOME, in which
# case we have to rely on the fact that sourcing $EMSDK_ENV from a
# shell will add emcc to the $PATH.
proc hwaci-check-emsdk {} {
proc proj-check-emsdk {} {
set emsdkHome [opt-val with-emsdk]
define EMSDK_HOME ""
define EMSDK_ENV ""
@ -794,7 +794,7 @@ proc hwaci-check-emsdk {} {
# Achtung: we have seen platforms which report that a given option
# checked here will work but then fails at build-time, and the current
# order of checks reflects that.
proc hwaci-check-rpath {} {
proc proj-check-rpath {} {
set rc 1
set lp "[get-define prefix]/lib"
# If we _don't_ use cc-with {} here (to avoid updating the global
@ -840,7 +840,7 @@ proc hwaci-check-rpath {} {
# <readline/readline.h>.
#
# Returns the value of HAVE_READLINE.
proc hwaci-check-readline {} {
proc proj-check-readline {} {
define HAVE_READLINE 0
define LDFLAGS_READLINE ""
define CFLAGS_READLINE ""
@ -875,9 +875,9 @@ proc hwaci-check-readline {} {
# Look for readline.h
set rlInc ""
if {![hwaci-is-cross-compiling]} {
if {![proj-is-cross-compiling]} {
# ^^^ this check is derived from SQLite's legacy configure script
set rlInc [hwaci-search-for-header-dir readline.h \
set rlInc [proj-search-for-header-dir readline.h \
-subdirs {include/readline include}]
if {"" ne $rlInc} {
if {[string match */*line $rlInc]} {
@ -896,14 +896,14 @@ proc hwaci-check-readline {} {
set rlLib ""
if {"" ne $rlInc} {
set libTerm ""
if {[hwaci-check-function-in-lib tgetent {readline ncurses curses termcap}]} {
if {[proj-check-function-in-lib tgetent {readline ncurses curses termcap}]} {
# ^^^ check extracted from an ancient autotools configure script.
set libTerm [get-define lib_tgetent]
undefine lib_tgetent
}
if {"readline" eq $libTerm} {
set rlLib $libTerm
} elseif {[hwaci-check-function-in-lib readline readline $libTerm]} {
} elseif {[proj-check-function-in-lib readline readline $libTerm]} {
set rlLib [get-define lib_readline]
lappend rlLib $libTerm
undefine lib_readline
@ -925,12 +925,12 @@ proc hwaci-check-readline {} {
########################################################################
# Internal helper for hwaci-dump-defs-json. Expects to be passed a
# Internal helper for proj-dump-defs-json. Expects to be passed a
# [define] name and the variadic $args which are passed to
# hwaci-dump-defs-json. If it finds a pattern match for the given
# proj-dump-defs-json. If it finds a pattern match for the given
# $name in the various $args, it returns the type flag for that $name,
# e.g. "-str" or "-bare", else returns an empty string.
proc hwaci-defs-type_ {name spec} {
proc proj-defs-type_ {name spec} {
foreach {type patterns} $spec {
foreach pattern $patterns {
if {[string match $pattern $name]} {
@ -942,50 +942,50 @@ proc hwaci-defs-type_ {name spec} {
}
########################################################################
# Internal helper for hwaci-defs-format_: returns a JSON-ish quoted
# Internal helper for proj-defs-format_: returns a JSON-ish quoted
# form of the given (JSON) string-type values.
proc hwaci-quote-str_ {value} {
proc proj-quote-str_ {value} {
return \"[string map [list \\ \\\\ \" \\\"] $value]\"
}
########################################################################
# An internal impl detail of hwaci-dump-defs-json. Requires a data
# An internal impl detail of proj-dump-defs-json. Requires a data
# type specifier, as used by make-config-header, and a value. Returns
# the formatted value or the value $::hwaci_(defs-skip) if the caller
# the formatted value or the value $::proj_(defs-skip) if the caller
# should skip emitting that value.
set hwaci_(defs-skip) "-hwaci-defs-format_ sentinel"
proc hwaci-defs-format_ {type value} {
set proj_(defs-skip) "-proj-defs-format_ sentinel"
proc proj-defs-format_ {type value} {
switch -exact -- $type {
-bare {
# Just output the value unchanged
}
-none {
set value $::hwaci_(defs-skip)
set value $::proj_(defs-skip)
}
-str {
set value [hwaci-quote-str_ $value]
set value [proj-quote-str_ $value]
}
-auto {
# Automatically determine the type
if {![string is integer -strict $value]} {
set value [hwaci-quote-str_ $value]
set value [proj-quote-str_ $value]
}
}
-array {
set ar {}
foreach v $value {
set v [hwaci-defs-format_ -auto $v]
if {$::hwaci_(defs-skip) ne $v} {
set v [proj-defs-format_ -auto $v]
if {$::proj_(defs-skip) ne $v} {
lappend ar $v
}
}
set value "\[ [join $ar {, }] \]"
}
"" {
set value $::hwaci_(defs-skip)
set value $::proj_(defs-skip)
}
default {
hwaci-fatal "Unknown type in hwaci-dump-defs-json: $type"
proj-fatal "Unknown type in proj-dump-defs-json: $type"
}
}
return $value
@ -1021,14 +1021,14 @@ proc hwaci-defs-format_ {type value} {
# Neither is especially satisfactory (and the second is useless), and
# handling of such values is subject to change if any such values ever
# _really_ need to be processed by our source trees.
proc hwaci-dump-defs-json {file args} {
proc proj-dump-defs-json {file args} {
file mkdir [file dirname $file]
set lines {}
lappend args -bare {SIZEOF_* HAVE_DECL_*} -auto HAVE_*
foreach n [lsort [dict keys [all-defines]]] {
set type [hwaci-defs-type_ $n $args]
set value [hwaci-defs-format_ $type [get-define $n]]
if {$::hwaci_(defs-skip) ne $value} {
set type [proj-defs-type_ $n $args]
set value [proj-defs-format_ $type [get-define $n]]
if {$::proj_(defs-skip) ne $value} {
lappend lines "\"$n\": ${value}"
}
}
@ -1067,13 +1067,13 @@ proc hwaci-dump-defs-json {file args} {
# to carry over any values from hidden aliases into their canonical
# names, so that in the above example [opt-value canonical] will
# return X if --alias=X is passed in.
proc hwaci-xfer-options-aliases {mapping} {
foreach {hidden - canonical} [hwaci-strip-hash-comments_ $mapping] {
if {[hwaci-opt-was-provided $hidden]} {
if {[hwaci-opt-was-provided $canonical]} {
hwaci-fatal "both --$canonical and its alias --$hidden were used. Use only one or the other."
proc proj-xfer-options-aliases {mapping} {
foreach {hidden - canonical} [proj-strip-hash-comments_ $mapping] {
if {[proj-opt-was-provided $hidden]} {
if {[proj-opt-was-provided $canonical]} {
proj-fatal "both --$canonical and its alias --$hidden were used. Use only one or the other."
} else {
hwaci-opt-set $canonical [opt-val $hidden]
proj-opt-set $canonical [opt-val $hidden]
}
}
}
@ -1095,8 +1095,8 @@ proc hwaci-xfer-options-aliases {mapping} {
# Sidebar: if we do this before the cc package is installed, it gets
# reverted by that package. Ergo, the cc package init will tell the
# user "Build C compiler...cc" shortly before we tell them:
proc hwaci-redefine-cc-for-build {} {
if {![hwaci-is-cross-compiling]
proc proj-redefine-cc-for-build {} {
if {![proj-is-cross-compiling]
&& "nope" eq [get-env CC_FOR_BUILD "nope"]
&& [get-define CC] ne [get-define CC_FOR_BUILD]} {
user-notice "Re-defining CC_FOR_BUILD to CC=[get-define CC]. To avoid this, explicitly pass CC_FOR_BUILD=..."

View File

@ -1,5 +1,5 @@
C Remove\sthe\slong-unused,\slegacy\svsixtest/\slogic\sfrom\sthe\ssource\stree.
D 2024-10-28T13:16:32.455
C Rename\sthe\s'hwaci'\sauto.def\sutility\sAPI\sto\sthe\smore\sgeneric\s'proj'\sAPI,\sper\s/chat\sdiscussion.\sFix\sa\sfunction\sname\stypo\swhich\scaused\sreadline\sdetection\sto\skill\sthe\sconfigure\sin\sone\scode\spath.
D 2024-10-28T14:16:50.100
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md b6e6c1baf38e4339bd3f1e0e5e5bfd0a9a93d133360691b2785c2d4b2f2dcec2
@ -13,7 +13,7 @@ F art/icon-80x90.gif 65509ce3e5f86a9cd64fe7fca2d23954199f31fe44c1e09e208c80fb83d
F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2
F auto.def 57635a8f8c2e5e91e4c21094a70bbb56473811366e75679ceec9b6626e49a826
F auto.def 537d9e3cd85ed5a454ee6055585a4eadedde921fbb686fcb40c8446933be2b5a
F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903
F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347
F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac
@ -47,9 +47,9 @@ F autosetup/cc-lib.tcl 493c5935b5dd3bf9bd4eca89b07c8b1b1a9356d61783035144e21795f
F autosetup/cc-shared.tcl 4f024e94a47f427ba61de1739f6381ef0080210f9fae89112d5c1de1e5460d78
F autosetup/cc.tcl 7e2fe943ae9d45cf39e9f5b05b6230df8e719415edea5af06c30eb68680bde14
F autosetup/default.auto 5cdf016de2140e50f1db190a02039dc42fb390af1dda4cc4853e3042a9ef0e82
F autosetup/hwaci-common.tcl 48c221838bca6e362b34c85c3dff2ba7f69efcec9558d3807c9b33b1d8c13c28
F autosetup/jimsh0.c 27ea5f221359ef6c58780fc6c185aadbf8d3bee9a021331a3e5de0eba0dc6de6
F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba
F autosetup/proj.tcl b01940e6b2e9c24f2c50f0e180d308a0a4f88d2e2b00c6902edd5980d221becf w autosetup/hwaci-common.tcl
F autosetup/system.tcl 3a39d6e0b3bfba526fd39afe07c1d0d325e5a31925013a1ba7c671e1128e31bb
F autosetup/tmake.auto eaebc74ad538dfdd3c817c27eefc31930c20510c4f3a3704071f6cb0629ed71f
F autosetup/tmake.tcl a275793ec1b6f8708179af0acef1f6f10d46c2920739743f7a8720c6d700c7a9
@ -2216,8 +2216,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P f06122a543f7dac016c8da1cd92a629eb647142b95c85a131b9da8e0dc5516b0
R 12ff824529fe88bfe6b4597dc4df53e3
U drh
Z 126f0766a209d0ba5b53f17fec16055d
P 45ec9415b2b76a757e8bd25eed520dcc012ba67cbb3530ee8dcc42ac6125464a
R 958d2a4928946501ff168cf6ab041f76
U stephan
Z a0759550cfa13ca8b9d7c93a198730e1
# Remove this line to create a well-formed Fossil manifest.

View File

@ -1 +1 @@
45ec9415b2b76a757e8bd25eed520dcc012ba67cbb3530ee8dcc42ac6125464a
e20610f06bfc6f4ebc5806da05c307d91e1f0a8c7a7501a7953273dbf1816fee