1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-30 19:03:16 +03:00

Get much of the --with-tcl-related bits working.

FossilOrigin-Name: 4e4a740369d3edc58d35c660b1ea73ee381503f82a98a4b770fd07cef1704e8b
This commit is contained in:
stephan
2024-10-09 04:01:14 +00:00
parent 10d1b0c5db
commit f400f41fde
5 changed files with 192 additions and 259 deletions

View File

@ -143,6 +143,14 @@ HAVE_TCL = @HAVE_TCL@
# know the specific version we want to use # know the specific version we want to use
# #
TCLSH_CMD = @TCLSH_CMD@ TCLSH_CMD = @TCLSH_CMD@
TCL_CONFIG_SH = @TCL_CONFIG_SH@
# TCL config info from tclConfig.sh
TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@
TCL_LIB_SPEC = @TCL_LIB_SPEC@
TCL_STUB_LIB_SPEC = @TCL_STUB_LIB_SPEC@
TCL_EXEC_PREFIX = @TCL_EXEC_PREFIX@
# Additional options when running tests using testrunner.tcl # Additional options when running tests using testrunner.tcl
# This is usually either blank, or else --status # This is usually either blank, or else --status
@ -844,13 +852,14 @@ sourcetest: srcck1$(BEXE) sqlite3.c
src-verify: $(TOP)/tool/src-verify.c src-verify: $(TOP)/tool/src-verify.c
$(BCC) -o src-verify$(BEXE) $(TOP)/tool/src-verify.c $(BCC) -o src-verify$(BEXE) $(TOP)/tool/src-verify.c
#
# JimTCL is part of the autosetup suite and is suitable for certain # JimTCL is part of the autosetup suite and is suitable for all
# in-tree TCL jobs, but it requires that we build it with non-default # current in-tree code-generation TCL jobs, but it requires that we
# flags. Note that the build tree will, if no system-level tclsh is # build it with non-default flags. Note that the build tree will, if
# found, also have a ./jimsh0. That one is a bare-bones build for the # no system-level tclsh is found, also have a ./jimsh0. That one is a
# configure process, whereas we need to build it with another option # bare-bones build for the configure process, whereas we need to build
# enabled for use with the various code generators. # it with another option enabled for use with the various code
# generators.
# #
JIMSH = @srcdir@/jimsh JIMSH = @srcdir@/jimsh
@if CFLAGS_JIMSH @if CFLAGS_JIMSH

384
auto.def
View File

@ -30,8 +30,8 @@ define cross_compiling ${cross_compiling}
# #
options { options {
with-debug:=1 => {Enable debug build flags} with-debug:=1 => {Enable debug build flags}
with-tclsh: => {Full pathname of tclsh to use} with-tclsh:PATH => {Full pathname of tclsh to use}
with-tcl: => {Directory containing tclConfig.sh} with-tcl:DIR => {Directory containing tclConfig.sh}
tcl=1 => {Disable building accessory programs that require TCL-dev} tcl=1 => {Disable building accessory programs that require TCL-dev}
test-status => {Enable status of tests} test-status => {Enable status of tests}
threadsafe=1 => {Disable mutexing} threadsafe=1 => {Disable mutexing}
@ -69,7 +69,7 @@ options {
# #
# --releasemode: libtool-specific (which we don't have now) # --releasemode: libtool-specific (which we don't have now)
# #
######################################################################## #
set srcdir $autosetup(srcdir) set srcdir $autosetup(srcdir)
@ -94,6 +94,7 @@ if {![file exists sqlite3.pc.in]} {
cc-check-tools ld ar cc-check-tools ld ar
########################################################################
# The build process allows for using a cross-compiler. But the default # The build process allows for using a cross-compiler. But the default
# action is to target the same platform that we are running on. The # action is to target the same platform that we are running on. The
# configure script needs to discover the following properties of the # configure script needs to discover the following properties of the
@ -154,7 +155,7 @@ cc-check-tools ld ar
# files for the readline library. If the compiler is able # files for the readline library. If the compiler is able
# to find <readline.h> on its own, then this can be blank. # to find <readline.h> on its own, then this can be blank.
######################################################################## #
# OPT_FEATURE_FLAGS = -DSQLITE_OMIT/ENABLE flags. # OPT_FEATURE_FLAGS = -DSQLITE_OMIT/ENABLE flags.
define OPT_FEATURE_FLAGS {} define OPT_FEATURE_FLAGS {}
define OPT_SHELL {}; # CFLAGS for the sqlite3 CLI app define OPT_SHELL {}; # CFLAGS for the sqlite3 CLI app
@ -218,6 +219,7 @@ define BUILD_CFLAGS [get-env CFLAGS {-g}]
# #
# It's unclear whether we can actually get away with making these # It's unclear whether we can actually get away with making these
# changes to the autosetup environment. # changes to the autosetup environment.
#
if {1} { if {1} {
set wasiSdkDir [opt-val with-wasi-sdk] ; # ??? [lindex [opt-val with-wasi-sdk] end] set wasiSdkDir [opt-val with-wasi-sdk] ; # ??? [lindex [opt-val with-wasi-sdk] end]
#puts "x wasiSdkDir=$wasiSdkDir foo=[lindex [opt-val with-wasi-sdk] end]" #puts "x wasiSdkDir=$wasiSdkDir foo=[lindex [opt-val with-wasi-sdk] end]"
@ -256,30 +258,16 @@ if {1} {
unset wasiSdkDir unset wasiSdkDir
}; # --wasi-sdk-dir }; # --wasi-sdk-dir
######################################################################## #
# Check which TCL to use as a code generator
define CFLAGS_JIMSH {}
puts "Looking for path-resolution function for JimTCL... "
define BTCL "\$(JIMSH)"
if {[cc-check-functions realpath]} {
define-append CFLAGS_JIMSH -DHAVE_REALPATH
} elseif {[cc-check-functions _fullpath]} {
# _fullpath() is a Windows API
define-append CFLAGS_JIMSH -DHAVE__FULLPATH
} else {
puts "Cannot find realpath() or _fullpath(). Falling back to system's TCL for code generation."
}
########################################################################
# Enable large file support (if special flags are necessary) # Enable large file support (if special flags are necessary)
cc-check-lfs cc-check-lfs
######################################################################## #
# Check for needed/wanted data types # Check for needed/wanted data types
cc-check-types int8_t int16_t int32_t int64_t intptr_t \ cc-check-types int8_t int16_t int32_t int64_t intptr_t \
uint8_t uint16_t uint32_t uint64_t uintptr_t uint8_t uint16_t uint32_t uint64_t uintptr_t
######################################################################## #
# Check for needed/wanted functions # Check for needed/wanted functions
cc-check-functions gmtime_r isnan localtime_r localtime_s \ cc-check-functions gmtime_r isnan localtime_r localtime_s \
malloc_usable_size strchrnul usleep utime pread pread64 pwrite pwrite64 malloc_usable_size strchrnul usleep utime pread pread64 pwrite pwrite64
@ -288,7 +276,7 @@ hwaci-check-function-in-lib fdatasync rt
define LDFLAGS_FDATASYNC [get-define lib_fdatasync] define LDFLAGS_FDATASYNC [get-define lib_fdatasync]
undefine lib_fdatasync undefine lib_fdatasync
######################################################################## #
# Check for needed/wanted headers # Check for needed/wanted headers
cc-check-includes \ cc-check-includes \
sys/types.h sys/stat.h dlfcn.h unistd.h \ sys/types.h sys/stat.h dlfcn.h unistd.h \
@ -296,7 +284,8 @@ cc-check-includes \
string.h strings.h \ string.h strings.h \
stdint.h inttypes.h stdint.h inttypes.h
# These are optional for JimTCL: # These are optional for JimTCL but necessary if we want to use it for
# code generation:
cc-check-includes dirent.h sys/time.h 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] && [hwaci-check-function-in-lib deflate z]} {
@ -337,157 +326,135 @@ hwaci-if-opt-truthy with-debug {
######################################################################## ########################################################################
# TCL... # TCL...
#
# Under construction. An attempt to port most of the
# --with-tcl/--with-tclsh logic from configure.ac to autosetup. This
# part would actually be easier in the shell, and some of it will
# seemingly be impossible without shell code.
define HAVE_TCL 0 define HAVE_TCL 0
define TCLSH_CMD {exit 1} define TCLSH_CMD {exit 1}
if {"" eq [get-define CFLAGS_JIMSH]} { proc hwaci-check-tcl {} {
# We can't use JimTCL for in-tree generation on this system, so... global top_srcdir
# puts "Checking for a suitable tcl... "
# Temporary solution for finding "a" tclsh. TODO is port the set optTcl [hwaci-opt-truthy tcl]
# full-featured check which lives in the elseif part of this block. set use_tcl $optTcl
set tclsh [hwaci-first-bin-of tclsh8.6 tclsh tclsh9.0]
if {"" eq $tclsh} {
user-error "Cannot find tclsh, which is required to build certain files."
}
define TCLSH_CMD $tclsh
define BTCL $tclsh
define HAVE_TCL 0 ; # until the following elseif block is ported
} elseif {0} {
# Porting this section of configure.ac is going to be a bit of a slog...
set tEnable [hwaci-opt-truthy tcl]
set use_tcl $tEnable
set tclsh "" set tclsh ""
#set original_use_tcl ${use_tcl}
#########
# Figure out all the name of a working tclsh and parameters needed to compile against Tcl.
# The --with-tcl= and/or --with-tclsh= configuration arguments might be useful for this.
#
# XXX AC_ARG_WITH tclsh AS_HELP_STRING([--with-tclsh=PATHNAME],[full pathname of a tclsh to use])
# XXX AC_ARG_WITH tcl AS_HELP_STRING([--with-tcl=DIR],[directory containing (tclConfig.sh)])
set with_tclsh [opt-val with-tclsh] set with_tclsh [opt-val with-tclsh]
set with_tcl [opt-val with-tcl] set with_tcl [opt-val with-tcl]
# puts "hwaci-check-tcl: use_tcl ${use_tcl}"
# puts "hwaci-check-tcl: with_tclsh=${with_tclsh}"
# puts "hwaci-check-tcl: with_tcl=$with_tcl"
if {"" eq $with_tclsh && "" eq $with_tcl} { if {"" eq $with_tclsh && "" eq $with_tcl} {
# XXX if test x"${with_tclsh}" == x -a x"${with_tcl}" == x; then
# XXX AC_CHECK_PROGS TCLSH_CMD tclsh8.6 tclsh tclsh9.0 none
#set with_tclsh ${TCLSH_CMD}
# XXX fi
set with_tclsh [hwaci-first-bin-of tclsh8.6 tclsh tclsh9.0] set with_tclsh [hwaci-first-bin-of tclsh8.6 tclsh tclsh9.0]
} }
if {"" ne $with_tclsh } { if {"" ne $with_tclsh} {
# XXX if test x"${with_tclsh}" != x -a x"${with_tclsh}" != xnone; then if {![file isfile $with_tclsh]} {
# XXX TCLSH_CMD=${with_tclsh} hwaci-error "TCL shell $with_tclsh is not a file"
set tclsh $with_tclsh } elseif {![file executable $with_tclsh]} {
puts "using tclsh at \"$tclsh\"" hwaci-error "TCL shell $with_tclsh is not executable"
if {$use_tcl} { } else {
# XXX if test x"${use_tcl}" = "xyes"; then define TCLSH_CMD $with_tclsh
#set with_tcl `${with_tclsh} <${srcdir}/tool/find_tclconfig.tcl` puts "Using tclsh at \"$with_tclsh\""
# XXX if test x"${with_tcl}" != x; then }
#msg-result "$TCLSH_CMD recommends the tclConfig.sh at ${with_tcl}" if {$use_tcl} {
# XXX else #set with_tcl [exec $with_tclsh $top_srcdir/tool/find_tclconfig.tcl]
#msg-result Warning: "$TCLSH_CMD is unable to recommend a tclConfig.sh" if {[catch {exec $with_tclsh $top_srcdir/tool/find_tclconfig.tcl} result] == 0} {
#set use_tcl no set with_tcl $result
# XXX fi }
# XXX fi if {"" ne $with_tcl && [file isdir $with_tcl]} {
puts "$with_tclsh recommends the tclConfig.sh from $with_tcl"
} else {
puts "$with_tclsh is unable to recommand a tclConfig.sh"
set use_tcl 0
}
} }
# XXX fi
} }
# XXX if test x"${use_tcl}" = "xyes"; then set cfg ""
# XXX if test x"${with_tcl}" != x; then set tclSubdirs {tcl8.6 tcl9.0 lib}
# XXX if test -r ${with_tcl}/tclConfig.sh; then if {$use_tcl} {
# set tclconfig "${with_tcl}/tclConfig.sh" if {"" ne $with_tcl} {
# XXX else if {[file readable "${with_tcl}/tclConfig.sh"]} {
# XXX for i in tcl8.6 tcl9.0 lib; do set cfg "${with_tcl}/tclConfig.sh"
# XXX if test -r ${with_tcl}/$i/tclConfig.sh; then } else {
#set tclconfig ${with_tcl}/$i/tclConfig.sh foreach i $tclSubdirs {
# XXX break if {[file readable "${with_tcl}/$i/tclConfig.sh"]} {
# XXX fi set cfg "${with_tcl}/$i/tclConfig.sh"
# XXX done break
# XXX fi }
# XXX if test ! -r "${tclconfig}"; then }
#user-error "no tclConfig.sh file found under ${with_tcl}" }
# XXX fi if {"" eq $cfg} {
# XXX else hwaci-error "No tclConfig.sh found under ${with_tcl}"
# If we have not yet found a tclConfig.sh file, look in $libdir whic is }
# set automatically by autoconf or by the --prefix command-line option. } else {
# See https://sqlite.org/forum/forumpost/e04e693439a22457 # If we have not yet found a tclConfig.sh file, look in $libdir which is
#set libdir ${prefix}/lib # set automatically by autosetup or by the --prefix command-line option.
# XXX if test -r ${libdir}/tclConfig.sh; then # See https://sqlite.org/forum/forumpost/e04e693439a22457
#set tclconfig ${libdir}/tclConfig.sh set libdir [get-define libdir]
# XXX else if {[file readable "${libdir}/tclConfig.sh"]} {
# XXX for i in tcl8.6 tcl9.0 lib; do set cfg "${libdir}/tclConfig.sh"
# XXX if test -r ${libdir}/$i/tclConfig.sh; then } else {
#set tclconfig ${libdir}/$i/tclConfig.sh foreach i $tclSubdirs {
# XXX break if {[file readable "${libdir}/$i/tclConfig.sh"]} {
# XXX fi set cfg "${libdir}/$i/tclConfig.sh"
# XXX done break
# XXX fi }
# XXX if test ! -r "${tclconfig}"; then }
#user-error "cannot find a usable tclConfig.sh file. }
# Use --with-tcl=DIR to specify a directory where tclConfig.sh can be found. if {![file readable $cfg]} {
# SQLite does not use TCL internally, but TCL is required to build SQLite hwaci-error {
# from canonical sources and TCL is required for testing." Cannot find a usable tclConfig.sh file.
# XXX fi Use --with-tcl=DIR to specify a directory where tclConfig.sh can be found.
# XXX fi SQLite does not use TCL internally, but TCL is required to build SQLite
# msg-result "loading TCL configuration from ${tclconfig}" from canonical sources and TCL is required for testing.
# XXX . ${tclconfig} }
# XXX autosetup automatically substitutes all define'd values }
# In general, simply 'define' the value rather than using a shell }
# variable and AC_SUBST. } elseif {!$optTcl} {
# puts "Unable to run tests because of --disable-tcl"
# XXX AC_SUBST TCL_INCLUDE_SPEC } else {
# XXX AC_SUBST TCL_LIB_SPEC puts "Unable to run tests because no tclConfig.sh file could be located"
# XXX AC_SUBST TCL_STUB_LIB_SPEC }
# There are lots of other configuration variables that are provided by the
# tclConfig.sh file and that could be included here. But as of right now,
# TCL_LIB_SPEC is the only what that the Makefile uses.
# XXX HAVE_TCL=1
# XXX elif test x"${original_use_tcl}" = "xno"; then
# msg-result "unable to run tests because of --disable-tcl"
# XXX HAVE_TCL=0
# XXX else
# msg-result "unable to run tests because no tclConfig.sh file could be located"
# XXX HAVE_TCL=0
# XXX fi
# XXX AC_SUBST HAVE_TCL
# XXX if test x"$TCLSH_CMD" == x; then
# XXX TCLSH_CMD=${TCL_EXEC_PREFIX}/bin/tclsh${TCL_VERSION}
# XXX if test ! -x ${TCLSH_CMD}; then
# set _2 ${TCL_EXEC_PREFIX}/bin/tclsh
# XXX if test ! -x ${TCLSH_CMD_2}; then
# msg-result Warning: "cannot find a usable tclsh at either ${TCLSH_CMD} or ${TCLSH_CMD_2}"
# XXX TCLSH_CMD=none
# XXX else
# XXX TCLSH_CMD=${TCLSH_CMD_2}
# XXX fi
# XXX fi
# XXX fi
# XXX if test "$TCLSH_CMD" = "none"; then
# If we can't find a local tclsh, then building the amalgamation will fail.
# We act as though --disable-amalgamation has been used.
# msg-result Warning: "Warning: can't find tclsh - defaulting to non-amalgamation build."
# XXX USE_AMALGAMATION=0
# XXX TCLSH_CMD="tclsh"
# XXX fi
# XXX AC_SUBST TCLSH_CMD
# XXX AC_ARG_VAR TCLLIBDIR Where to install tcl plugin define HAVE_TCL $use_tcl
# XXX if test "x${TCLLIBDIR+set}" != "xset" ; then define TCL_CONFIG_SH $cfg
# XXX for i in `echo 'puts stdout $auto_path' | ${TCLSH_CMD}` ; do # puts "hwaci-check-tcl: with_tclsh=$with_tclsh"
# XXX if test -d $i ; then # puts "hwaci-check-tcl: with_tcl=$with_tcl"
# XXX TCLLIBDIR=$i # puts "hwaci-check-tcl: cfg=$cfg"
# XXX break # puts "hwaci-check-tcl: use_tcl ${use_tcl}"
# XXX fi }
# XXX done
# XXX TCLLIBDIR="${TCLLIBDIR}/sqlite3"
# XXX fi
unset tEnable with_tclsh with_tcl hwaci-check-tcl
}; # end of tcl
# The historical configure.ac sources tclConfig.sh so that it can use
# the several TCL_... env vars. We obviously cannot do that from TCL,
# so we apply a level of indirection. Note that if the config is not
# available, this generates empty-string entries for the various
# options we're interested in.
eval [exec "${top_srcdir}/tool/tclConfigShToTcl.sh" "[get-define TCL_CONFIG_SH]"]
hwaci-check-rpath ########################################################################
# Check which TCL to use as a code generator. Prefer jimsh simply
# because we have it in-tree (it's part of autosetup).
define CFLAGS_JIMSH {}
puts "Looking for path-resolution function for JimTCL... "
if {[cc-check-functions realpath]} {
define-append CFLAGS_JIMSH -DHAVE_REALPATH
define BTCL "\$(JIMSH)"
} elseif {[cc-check-functions _fullpath]} {
# _fullpath() is a Windows API
define-append CFLAGS_JIMSH -DHAVE__FULLPATH
define BTCL "\$(JIMSH)"
} elseif {"" ne [get-define TCLSH_CMD]} {
define BTCL "\$(TCLSH_CMD)"
} else {
hwaci-error "Cannot find a tclsh to use for code generation."
}
# /TCL
########################################################################
######################################################################## ########################################################################
# Thread safety? # Thread safety?
@ -507,34 +474,6 @@ hwaci-if-opt-truthy threadsafe {
define LDFLAGS_PTHREAD "" define LDFLAGS_PTHREAD ""
} }
########################################################################
# Do we want to support release?
#
# Maintenance note: this might be irrelevant with an autosetup port,
# as it appears to be related to libtool (part of the autotools).
#
if {0} {
hwaci-if-opt-truthy releasemode {
msg-result "Release-mode build."
set enable_releasemode 1
} {
msg-result "Non-release-mode build."
set enable_releasemode 0
}
}
if {0} {
msg-checking "Checking whether to support shared library linked as release mode or not..."
# XXX if test "$enable_releasemode" = "no"; then
# XXX ALLOWRELEASE=""
msg-result "no"
# XXX else
# XXX ALLOWRELEASE="-release `cat $srcdir/VERSION`"
msg-result "yes"
# XXX fi
# XXX AC_SUBST ALLOWRELEASE
}
######################################################################## ########################################################################
# Do we want temporary databases in memory? # Do we want temporary databases in memory?
# #
@ -706,57 +645,6 @@ hwaci-if-opt-truthy math {
msg-result "Disabling math SQL functions" msg-result "Disabling math SQL functions"
} }
if {0} {
# is this still relevant?
#########
# attempt to duplicate any OMITS and ENABLES into the ${OPT_FEATURE_FLAGS} parameter
# XXX for option in $CFLAGS $CPPFLAGS
# XXX do
# XXX case $option in
# XXX -DSQLITE_OMIT*) OPT_FEATURE_FLAGS="$OPT_FEATURE_FLAGS $option";;
# XXX -DSQLITE_ENABLE*) OPT_FEATURE_FLAGS="$OPT_FEATURE_FLAGS $option";;
# XXX esac
# XXX done
# XXX AC_SUBST OPT_FEATURE_FLAGS
# attempt to remove any OMITS and ENABLES from the $(CFLAGS) parameter
# XXX ac_temp_CFLAGS=""
# XXX for option in $CFLAGS
# XXX do
# XXX case $option in
# XXX -DSQLITE_OMIT*) ;;
# XXX -DSQLITE_ENABLE*) ;;
# XXX *) ac_temp_CFLAGS="$ac_temp_CFLAGS $option";;
# XXX esac
# XXX done
# XXX CFLAGS=$ac_temp_CFLAGS
# attempt to remove any OMITS and ENABLES from the $(CPPFLAGS) parameter
# XXX ac_temp_CPPFLAGS=""
# XXX for option in $CPPFLAGS
# XXX do
# XXX case $option in
# XXX -DSQLITE_OMIT*) ;;
# XXX -DSQLITE_ENABLE*) ;;
# XXX *) ac_temp_CPPFLAGS="$ac_temp_CPPFLAGS $option";;
# XXX esac
# XXX done
# XXX CPPFLAGS=$ac_temp_CPPFLAGS
# attempt to remove any OMITS and ENABLES from the $(BUILD_CFLAGS) parameter
# XXX ac_temp_BUILD_CFLAGS=""
# XXX for option in $BUILD_CFLAGS
# XXX do
# XXX case $option in
# XXX -DSQLITE_OMIT*) ;;
# XXX -DSQLITE_ENABLE*) ;;
# XXX *) ac_temp_BUILD_CFLAGS="$ac_temp_BUILD_CFLAGS $option";;
# XXX esac
# XXX done
# XXX BUILD_CFLAGS=$ac_temp_BUILD_CFLAGS
}
######################################################################## ########################################################################
# Emscripten SDK for building the web-based wasm components. # Emscripten SDK for building the web-based wasm components.
# #
@ -813,10 +701,10 @@ foreach {boolFlag featureFlag ifSetEvalThis} {
} }
######################################################################## ########################################################################
# Invert the above loop's logic for some explicit # Invert the above loop's logic for some explicit SQLITE_OMIT_...
# SQLITE_OMIT_... cases. If config option $boolFlag is set, # cases. If config option $boolFlag is set, [add-feature-flag
# [add-feature-flag $featureFlag], where $featureFlag is intended to # $featureFlag], where $featureFlag is intended to be
# be -DSQLITE_OMIT_... # -DSQLITE_OMIT_...
foreach {boolFlag featureFlag} { foreach {boolFlag featureFlag} {
json -DSQLITE_OMIT_JSON json -DSQLITE_OMIT_JSON
} { } {
@ -830,15 +718,16 @@ foreach {boolFlag featureFlag} {
######################################################################## ########################################################################
# Maybe extend JimTCL a bit. As of this writing (2024-09-27) it only # Maybe extend JimTCL a bit. As of this writing (2024-09-27) it only
# needs -DHAVE_REALPATH or -DHAVE__FULLPATH to be compatible with our # needs (-DHAVE_REALPATH or -DHAVE__FULLPATH) and -DHAVE_DIRENT_H to
# code generators. It can, however, be slightly extended via # be compatible with our code generators. It can, however, be slightly
# easy-to-detect features, should we need them. # extended via easy-to-detect features, should we need them.
if {0 && "" ne [get-define CFLAGS_JIMSH]} { if {0 && "" ne [get-define CFLAGS_JIMSH]} {
foreach jimFunc {opendir fsync isascii} { foreach jimFunc {opendir fsync isascii} {
if {[cc-check-functions $jimFunc]} { if {[cc-check-functions $jimFunc]} {
define-append CFLAGS_JIMSH -DHAVE_[string toupper $jimFunc] define-append CFLAGS_JIMSH -DHAVE_[string toupper $jimFunc]
} }
} }
#These are hard-coded into jimsh0.c, so we must not -D them:
#foreach jimDef {HAVE_UNISTD_H HAVE_DIRENT_H} { #foreach jimDef {HAVE_UNISTD_H HAVE_DIRENT_H} {
# if {[is-defined $jimDef]} { # if {[is-defined $jimDef]} {
# define-append CFLAGS_JIMSH -D$jimDef # define-append CFLAGS_JIMSH -D$jimDef
@ -849,6 +738,11 @@ if {0 && "" ne [get-define CFLAGS_JIMSH]} {
define ENABLE_SHARED $enable_shared define ENABLE_SHARED $enable_shared
########################################################################
# Determine proper rpath-handling flags
hwaci-check-rpath
######################################################################## ########################################################################
# Generate the output files. # Generate the output files.
# #
@ -884,6 +778,8 @@ if {"" ne $oFF} {
} }
unset oFF unset oFF
########################################################################
# Some build-dev/debug-only output
hwaci-if-opt-truthy dump-defines { hwaci-if-opt-truthy dump-defines {
global DUMP_DEFINES_FILE global DUMP_DEFINES_FILE
msg-result "--dump-defines is creating file: $DUMP_DEFINES_FILE" msg-result "--dump-defines is creating file: $DUMP_DEFINES_FILE"

View File

@ -1,9 +1,9 @@
C Fix\sbuild\sportability\sproblems\sdiscovered\son\san\sARM\sOpenBSD\ssystem. C Get\smuch\sof\sthe\s--with-tcl-related\sbits\sworking.
D 2024-10-08T16:33:42.863 D 2024-10-09T04:01:14.131
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F Makefile.in 4cb6e44af5d0ed2a1ad347f008c00d3ddeae8f1dd2089a1348e7c6aa6be8e63d F Makefile.in 3d237163c5cf5817eb63f2ce20119372e36f5cf48609dd22292160a26b599de4
F Makefile.linux-gcc f3842a0b1efbfbb74ac0ef60e56b301836d05b4d867d014f714fa750048f1ab6 F Makefile.linux-gcc f3842a0b1efbfbb74ac0ef60e56b301836d05b4d867d014f714fa750048f1ab6
F Makefile.msc 9c6d80d9d103fa42e931f4c464884a5e577fae8563acc7589bff4e43fbe8f864 F Makefile.msc 9c6d80d9d103fa42e931f4c464884a5e577fae8563acc7589bff4e43fbe8f864
F README.md c3c0f19532ce28f6297a71870f3c7b424729f0e6d9ab889616d3587dd2332159 F README.md c3c0f19532ce28f6297a71870f3c7b424729f0e6d9ab889616d3587dd2332159
@ -14,7 +14,7 @@ F art/icon-80x90.gif 65509ce3e5f86a9cd64fe7fca2d23954199f31fe44c1e09e208c80fb83d
F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2 F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90 F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2 F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2
F auto.def afec3012da348dd0214047f575131d0a69e1aa67588e212daf604d4393453a3b F auto.def 6c4f3b9d88ae343f0634a1534d3918cb3f7a215c65c85d1c3d0cce2f5dd47686
F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903 F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903
F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347 F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347
F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac
@ -2207,6 +2207,7 @@ F tool/stack_usage.tcl f8e71b92cdb099a147dad572375595eae55eca43
F tool/stripccomments.c 20b8aabc4694d0d4af5566e42da1f1a03aff057689370326e9269a9ddcffdc37 F tool/stripccomments.c 20b8aabc4694d0d4af5566e42da1f1a03aff057689370326e9269a9ddcffdc37
F tool/symbols-mingw.sh 4dbcea7e74768305384c9fd2ed2b41bbf9f0414d F tool/symbols-mingw.sh 4dbcea7e74768305384c9fd2ed2b41bbf9f0414d
F tool/symbols.sh 1612bd947750e21e7b47befad5f6b3825b06cce0705441f903bf35ced65ae9b9 F tool/symbols.sh 1612bd947750e21e7b47befad5f6b3825b06cce0705441f903bf35ced65ae9b9
F tool/tclConfigShToTcl.sh e385583402655b1626f7ff737a607687f84aa4660d2125c2bd7daeb91ba424ba x
F tool/varint.c 5d94cb5003db9dbbcbcc5df08d66f16071aee003 F tool/varint.c 5d94cb5003db9dbbcbcc5df08d66f16071aee003
F tool/vdbe-compress.tcl 1dcb7632e57cf57105248029e6e162fddaf6c0fccb3bb9e6215603752c5a2d4a F tool/vdbe-compress.tcl 1dcb7632e57cf57105248029e6e162fddaf6c0fccb3bb9e6215603752c5a2d4a
F tool/vdbe_profile.tcl 3ac5a4a9449f4baf77059358ea050db3e34395ccf59c5464d29b91746d5b961e F tool/vdbe_profile.tcl 3ac5a4a9449f4baf77059358ea050db3e34395ccf59c5464d29b91746d5b961e
@ -2235,8 +2236,8 @@ F vsixtest/vsixtest.tcl 6195aba1f12a5e10efc2b8c0009532167be5e301abe5b31385638080
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P e9ab211f82f789c89ab52e8d5fe7526c09943b2b8b3002fa7a16fb2b40addc8f P ef5348dc3f5b9fbe19753ff85e4da461ee962f0790e5f9cfda6eba522576451b
R 83d7d512ee4d92805faea47e6da138cb R 53257972217ca0415948a8eb62c6c23b
U stephan U stephan
Z 65540e91f90dac7f75bdfc0fac8976f3 Z f49c2f1fcffe6fc0ebe3c9d93e81fc78
# Remove this line to create a well-formed Fossil manifest. # Remove this line to create a well-formed Fossil manifest.

View File

@ -1 +1 @@
ef5348dc3f5b9fbe19753ff85e4da461ee962f0790e5f9cfda6eba522576451b 4e4a740369d3edc58d35c660b1ea73ee381503f82a98a4b770fd07cef1704e8b

27
tool/tclConfigShToTcl.sh Executable file
View File

@ -0,0 +1,27 @@
#!/bin/sh
#
# A level of indirection for use soley by the configure script
# (auto.def).
#
# Expects to be passed a full path to a tclConfig.sh. It sources it
# and emits TCL code which sets some vars which are exported by
# tclConfig.sh.
#
# This script expects that the caller has already validated that the
# file exists, is not a directory, and is readable.
#
# If passed no filename, or an empty one, then it emits config code
# suitable for the "config not found" case.
if test x = "x$1"; then
TCL_INCLUDE_SPEC=
TCL_LIB_SPEC=
TCL_STUB_LIB_SPEC=
TCL_EXEC_PREFIX=
else
. "$1"
fi
echo "define TCL_INCLUDE_SPEC {$TCL_INCLUDE_SPEC} ;"
echo "define TCL_LIB_SPEC {$TCL_LIB_SPEC} ;"
echo "define TCL_STUB_LIB_SPEC {$TCL_STUB_LIB_SPEC} ;"
echo "define TCL_EXEC_PREFIX {$TCL_EXEC_PREFIX} ;"