define PACKAGE_VERSION $PACKAGE_VERSION
define PACKAGE_STRING "[get-define PACKAGE_NAME] $PACKAGE_VERSION"
define PACKAGE_BUGREPORT [get-define PACKAGE_URL]/forum
-
msg-result "srcdir = $srcdir"
msg-result "top_srcdir = $top_srcdir"
msg-result [proj-bold "Configuring SQLite version $PACKAGE_VERSION"]
}
# Are we cross-compiling?
-set cross_compiling [proj-is-cross-compiling]
+set isCrossCompiling [proj-is-cross-compiling]
if {![file exists sqlite3.pc.in]} {
msg-result "This appears to be an out-of-tree build."
}
########################################################################
# Handle --with-wasi-sdk=DIR
#
-# This must be early because it may change the toolchain and disable
-# several config options.
+# This MUST be run early on because it may change the toolchain and
+# disable a number of config options.
proc sqlite-check-wasi-sdk {} {
set wasiSdkDir [opt-val with-wasi-sdk] ; # ??? [lindex [opt-val with-wasi-sdk] end]
define HAVE_WASI_SDK 0
- #puts "x wasiSdkDir=$wasiSdkDir foo=[lindex [opt-val with-wasi-sdk] end]"
if {$wasiSdkDir eq ""} {
return 0
- } elseif {$::cross_compiling} {
+ } elseif {$::isCrossCompiling} {
proj-fatal "Cannot combine --with-wasi-sdk with cross-compilation"
}
msg-result "Checking WASI SDK directory \[$wasiSdkDir]... "
#puts "prefix = [prefix $wasiSdkDir/bin {clang 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
- 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
+ # Disable numerous options which we know either can't work or are
+ # not useful in this build...
+ msg-result [proj-bold "Using wasi-sdk clang. Disabling CLI shell and forcing:"]
+ foreach opt {
+ editline
+ gcov
+ load-extension
+ readline
+ shared
+ tcl
+ threadsafe
+ } {
+ msg-result " --disable-$opt"
+ proj-opt-set $opt 0
+ }
+ # Remember that we now have a discrepancy beteween
+ # $::isCrossCompiling and [proj-is-cross-compiling].
+ set ::isCrossCompiling 1
- # Changing --host and --target have no effect here except to possibly
- # cause confusion. autoconf has finished processing them by this
- # point.
+ #
+ # Changing --host and --target have no effect here except to
+ # possibly cause confusion. Autosetup has finished processing them
+ # by this point.
#
# host_alias=wasm32-wasi
# target=wasm32-wasi
#
# Merely changing CC and LD to the wasi-sdk's is enough to get
# sqlite3.o building in WASM format.
- # XXX CC="${wasiSdkDir}/bin/clang"
- # XXX LD="${wasiSdkDir}/bin/wasm-ld"
- # XXX RANLIB="${wasiSdkDir}/bin/llvm-ranlib"
+ #
define CC "${wasiSdkDir}/bin/clang"
define LD "${wasiSdkDir}/bin/wasm-ld"
#define STRIP "${wasiSdkDir}/bin/strip"
inttypes.h
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
+ # TODO? port over the more sophisticated zlib search from the fossil auto.def
define HAVE_ZLIB 1
define LDFLAGS_ZLIB -lz
sqlite-add-shell-opt -DSQLITE_HAVE_ZLIB=1
msg-result "Checking for TCL to use for code generation... "
define CFLAGS_JIMSH {}
set cgtcl [opt-val with-tclsh jimsh]
- if {"jimsh" ne $cgtcl} {
- # When --with-tclsh=X is used, use that for all TCL purposes,
- # including in-tree code generation, per developer request.
- define BTCLSH "\$(TCLSH_CMD)"
- } else {
- # These headers are technically optional for JimTCL but necessary if
- # we want to use it for code generation:
- set sysh [cc-check-includes dirent.h sys/time.h]
- if {$sysh && [cc-check-functions realpath]} {
- define-append CFLAGS_JIMSH -DHAVE_REALPATH
- define BTCLSH "\$(JIMSH)"
- } elseif {$sysh && [cc-check-functions _fullpath]} {
- # _fullpath() is a Windows API
- define-append CFLAGS_JIMSH -DHAVE__FULLPATH
- define BTCLSH "\$(JIMSH)"
- } elseif {[file exists [get-define TCLSH_CMD]]} {
- set cgtcl [get-define TCLSH_CMD]
+ define-push {CC} {
+ # We have to swap CC to CC_FOR_BUILD for purposes of the various
+ # [cc-...] tests below. Recall that --with-wasi-sdk may have
+ # swapped out CC with one which is not appropriate for this block.
+ define CC [get-define CC_FOR_BUILD]
+ if {"jimsh" ne $cgtcl} {
+ # When --with-tclsh=X is used, use that for all TCL purposes,
+ # including in-tree code generation, per developer request.
define BTCLSH "\$(TCLSH_CMD)"
} else {
- # One last-ditch effort to find TCLSH_CMD: use info from
- # tclConfig.sh to try to find a tclsh
- if {"" eq [get-define TCLSH_CMD]} {
- set tpre [get-define TCL_EXEC_PREFIX]
- if {"" ne $tpre} {
- set tv [get-define TCL_VERSION]
- if {[file-isexec "${tpre}/bin/tclsh${tv}"]} {
- define TCLSH_CMD "${tpre}/bin/tclsh${tv}"
- } elseif {[file-isexec "${tpre}/bin/tclsh"]} {
- define TCLSH_CMD "${tpre}/bin/tclsh"
+ # These headers are technically optional for JimTCL but necessary if
+ # we want to use it for code generation:
+ set sysh [cc-check-includes dirent.h sys/time.h]
+ if {$sysh && [cc-check-functions realpath]} {
+ define-append CFLAGS_JIMSH -DHAVE_REALPATH
+ define BTCLSH "\$(JIMSH)"
+ } elseif {$sysh && [cc-check-functions _fullpath]} {
+ # _fullpath() is a Windows API
+ define-append CFLAGS_JIMSH -DHAVE__FULLPATH
+ define BTCLSH "\$(JIMSH)"
+ } elseif {[file exists [get-define TCLSH_CMD]]} {
+ set cgtcl [get-define TCLSH_CMD]
+ define BTCLSH "\$(TCLSH_CMD)"
+ } else {
+ # One last-ditch effort to find TCLSH_CMD: use info from
+ # tclConfig.sh to try to find a tclsh
+ if {"" eq [get-define TCLSH_CMD]} {
+ set tpre [get-define TCL_EXEC_PREFIX]
+ if {"" ne $tpre} {
+ set tv [get-define TCL_VERSION]
+ if {[file-isexec "${tpre}/bin/tclsh${tv}"]} {
+ define TCLSH_CMD "${tpre}/bin/tclsh${tv}"
+ } elseif {[file-isexec "${tpre}/bin/tclsh"]} {
+ define TCLSH_CMD "${tpre}/bin/tclsh"
+ }
}
}
+ set cgtcl [get-define TCLSH_CMD]
+ if {![file exists $cgtcl]} {
+ proj-fatal "Cannot find a tclsh to use for code generation."
+ }
+ define BTCLSH "\$(TCLSH_CMD)"
}
- set cgtcl [get-define TCLSH_CMD]
- if {![file exists $cgtcl]} {
- proj-fatal "Cannot find a tclsh to use for code generation."
- }
- define BTCLSH "\$(TCLSH_CMD)"
}
- }
+ }; # CC swap-out
return $cgtcl
}; # sqlite-determine-codegen-tcl
msg-result "TCL for code generation: [sqlite-determine-codegen-tcl]"
set rlInc [opt-val with-readline-cflags auto]
if {"auto" eq $rlInc} {
set rlInc ""
- if {$::cross_compiling} {
+ if {$::isCrossCompiling} {
# ^^^ this check is derived from the legacy configure script.
proj-warn "Skipping check for readline.h because we're cross-compiling."
} else {
-C Change\sdefault\sCFLAGS\sto\s{-g\s-O2}\sto\smatch\sthe\slegacy\sbuild.
-D 2024-10-31T05:47:56.652
+C When\s--with-wasi-sdk\sis\sactive,\stemporarily\sswap\sCC\sand\sCC_FOR_BUILD\sfor\spurposes\sof\slooking\sfor\sAPIs\srequired\sby\sB.cc.
+D 2024-10-31T06:38:30.018
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md c5b4009dca54d127d2d6033c22fd9cc34f53bedb6ef12c7cbaa468381c74ab28
F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2
-F auto.def b4d03e1a29472666304c17e4cad8957bf9608fdb69ba604fae42280cfe6d76b1
+F auto.def d1e7ea57121be95dce59cd908a72e871c3217664d9a9cd6bcfbefbb602d94f67
F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903
F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347
F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 1d2ecae1304d9f677bd50eaae6bd9cb25cb75c611d88a30839f5287a7a97d7d5
-R 7bbd44495a31d853a8cdadac4c7a9a6c
+P 511774942903277b3d38f28336599667df20f94a8de79746b6c236b827b7ffc6
+R 826bef03c13c186e5e25d69159376b65
U stephan
-Z d036e10613b3c2839c9ebbb2201382e3
+Z 31d99618f66414cd664007258185ba71
# Remove this line to create a well-formed Fossil manifest.