]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Get skeleton auto.def running, but it doesn't really do much except some standard...
authorstephan <stephan@noemail.net>
Wed, 25 Sep 2024 01:39:39 +0000 (01:39 +0000)
committerstephan <stephan@noemail.net>
Wed, 25 Sep 2024 01:39:39 +0000 (01:39 +0000)
FossilOrigin-Name: e707634cf755346752bb83b7be5d0c683e39d6e0a497846019323fed31c08b9d

auto.def
autosetup/hwaci-common.tcl [new file with mode: 0644]
configure.ac
manifest
manifest.uuid

index bed7e333f930bec2a0ae7bbc06d9be5e58fb2021..32cb94185bbff9ddc1ef6f189d43de04d06d3f7b 100644 (file)
--- a/auto.def
+++ b/auto.def
-# Initial auto.def created by 'autosetup --init=make'
+# Created by migrate-autoconf - fix items marked XXX
 
-use cc
+use cc cc-shared cc-lib hwaci-common
+set DUMP_DEFINES_FILE defines.list
 
-# Add any user options here
 options {
+  with-tclsh:PATHNAME  =>  {Full pathname of tclsh to use}
+  with-tcl:DIR         =>  {Directory containing tclConfig.sh}
+  tcl=1                =>  {building accessory programs that require TCL-dev}
+  test-status=0        =>  {status of tests}
+  with-wasi-sdk:=/opt/wasi-sdk  =>  {Path to the wasi-dsk}
+  threadsafe=1         =>  mutexing
+  releasemode=0        =>  {libtool link to release mode}
+  tempstore=0          =>  {an in-ram database for temporary tables never,no,yes,always}
+  editline=0           =>  {BSD editline support}
+  readline=1       =>  {readline support}
+  with-readline-lib  =>  {readline library}
+  with-readline-inc  =>  {readline include paths}
+  with-linenoise:DIR   => {}
+  amalgamation=1   =>  {Disable the amalgamation and instead build all files separately}
+  load-extension=1  =>  {Disable loading of external extensions}
+  math=1           =>  {math functions}
+  json=1           =>  {JSON functions}
+  enable-all=0            =>  {Enable FTS4, FTS5, Geopoly, RTree, Sessions}
+  enable-memsys5=0        =>  MEMSYS5
+  enable-memsys3=0        =>  MEMSYS3
+  enable-fts3=0           =>  {Enable the FTS3 extension}
+  enable-fts4=0           =>  {Enable the FTS4 extension}
+  enable-fts5=0           =>  {Enable the FTS5 extension}
+  enable-update-limit=0   =>  {Enable the UPDATE/DELETE LIMIT clause}
+  enable-geopoly=0        =>  {Enable the GEOPOLY extension}
+  enable-rtree=0          =>  {Enable the RTREE extension}
+  enable-session=0        =>  {Enable the SESSION extension}
+  enable-gcov=0           =>  {Enable coverage testing using gcov}
+  dump-defines=1          =>  {Dump autosetup defines to $DUMP_DEFINES_FILE}
 }
+#  debug=0          =>  {debugging & verbose explain}
 
-make-config-header config.h
-make-template Makefile.in
+set srcdir $autosetup(srcdir)
+puts "srcdir = $srcdir"
+set VERSION [readfile $srcdir/VERSION]
+puts "VERSION = $VERSION"
+puts "with-wasi-sdk? = [opt-val with-wasi-sdk]"
+
+#
+# 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
+# configure script needs to discover the following properties of the
+# build and target systems:
+#
+#    srcdir
+#
+#        The is the name of the directory that contains the
+#        "configure" shell script.  All source files are
+#        located relative to this directory.
+#
+#    bindir
+#
+#        The name of the directory where executables should be
+#        written by the "install" target of the makefile.
+#
+#    program_prefix
+#
+#        Add this prefix to the names of all executables that run
+#        on the target machine.  Default: ""
+#
+#    ENABLE_SHARED
+#
+#        True if shared libraries should be generated.
+#
+#    BUILD_CC
+#
+#        The name of a command that is used to convert C
+#        source files into executables that run on the build
+#        platform.
+#
+#    BUILD_CFLAGS
+#
+#        Switches that the build compiler needs in order to construct
+#        command-line programs.
+#
+#    BUILD_LIBS
+#
+#        Libraries that the build compiler needs in order to construct
+#        command-line programs.
+#
+#    BUILD_EXEEXT
+#
+#        The filename extension for executables on the build
+#        platform.  "" for Unix and ".exe" for Windows.
+#
+#    TCL_*
+#
+#        Lots of values are read in from the tclConfig.sh script,
+#        if that script is available.  This values are used for
+#        constructing and installing the TCL extension.
+#
+#    TARGET_READLINE_LIBS
+#
+#        This is the library directives passed to the target linker
+#        that cause the executable to link against the readline library.
+#        This might be a switch like "-lreadline" or pathnames of library
+#        file like "../../src/libreadline.a".
+#
+#    TARGET_READLINE_INC
+#
+#        This variables define the directory that contain header
+#        files for the readline library.  If the compiler is able
+#        to find <readline.h> on its own, then this can be blank.
+#
+#    TARGET_EXEEXT
+#
+#        The filename extension for executables on the
+#        target platform.  "" for Unix and ".exe" for windows.
+#
+# This configure.in file is easy to reuse on other projects.  Just
+# change the argument to AC_INIT.  And disable any features that
+# you don't need (for example BLT) by erasing or commenting out
+# the corresponding code.
+#
+
+
+#set sqlite_version_sanity_check `cat $autosetup(srcdir)/VERSION | tr -d '\n'`
+# XXX if test "$PACKAGE_VERSION" != "$sqlite_version_sanity_check" ; then
+#user-error "configure script is out of date:
+# configure \$PACKAGE_VERSION = $PACKAGE_VERSION
+# top level VERSION file     = $sqlite_version_sanity_check
+#please regen with autoconf"
+# XXX fi
+
+#########
+# Programs needed
+cc-check-progs install
+
+#########
+# Enable large file support (if special flags are necessary)
+cc-check-lfs
+
+#########
+# Check for needed/wanted data types
+if {1} {
+  cc-check-types int8_t int16_t int32_t int64_t intptr_t uint8_t uint16_t uint32_t uint64_t uintptr_t
+}
+
+#########
+# Check for needed/wanted headers
+cc-check-includes sys/types.h stdlib.h stdint.h inttypes.h malloc.h
+
+#########
+# Figure out whether or not we have these functions
+#
+cc-check-functions fdatasync gmtime_r isnan localtime_r localtime_s malloc_usable_size strchrnul usleep utime pread pread64 pwrite pwrite64
+
+#########
+# By default, we use the amalgamation (this may be changed below...)
+#
+# XXX USE_AMALGAMATION=1
+
+if {0} {
+  #########
+  # 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)])
+  # if {![opt-bool tcl]} {
+  #   set use_tcl $enableval
+  # } else {
+  #   set use_tcl yes
+  # }
+  #set original_use_tcl ${use_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
+  # XXX if test x"${with_tclsh}" != x -a x"${with_tclsh}" != xnone; then
+  # XXX TCLSH_CMD=${with_tclsh}
+  #msg-result "using tclsh at \"$TCLSH_CMD\""
+  # XXX if test x"${use_tcl}" = "xyes"; then
+  #set with_tcl `${with_tclsh} <${srcdir}/tool/find_tclconfig.tcl`
+  # XXX if test x"${with_tcl}" != x; then
+  #msg-result "$TCLSH_CMD recommends the tclConfig.sh at ${with_tcl}"
+  # XXX else
+  #msg-result Warning: "$TCLSH_CMD is unable to recommend a tclConfig.sh"
+  #set use_tcl no
+  # XXX fi
+  # XXX fi
+  # XXX fi
+  # XXX if test x"${use_tcl}" = "xyes"; then
+  # XXX if test x"${with_tcl}" != x; then
+  # XXX if test -r ${with_tcl}/tclConfig.sh; then
+  # set tclconfig "${with_tcl}/tclConfig.sh"
+  # XXX else
+  # XXX for i in tcl8.6 tcl9.0 lib; do
+  # XXX if test -r ${with_tcl}/$i/tclConfig.sh; then
+  #set tclconfig ${with_tcl}/$i/tclConfig.sh
+  # XXX break
+  # XXX fi
+  # XXX done
+  # XXX fi
+  # XXX if test ! -r "${tclconfig}"; then
+  #user-error "no tclConfig.sh file found under ${with_tcl}"
+  # XXX fi
+  # XXX else
+  # 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.
+  # See https://sqlite.org/forum/forumpost/e04e693439a22457
+  #set libdir ${prefix}/lib
+  # XXX if test -r ${libdir}/tclConfig.sh; then
+  #set tclconfig ${libdir}/tclConfig.sh
+  # XXX else
+  # XXX for i in tcl8.6 tcl9.0 lib; do
+  # XXX if test -r ${libdir}/$i/tclConfig.sh; then
+  #set tclconfig ${libdir}/$i/tclConfig.sh
+  # XXX break
+  # XXX fi
+  # XXX done
+  # 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.
+  #        SQLite does not use TCL internally, but TCL is required to build SQLite
+  #        from canonical sources and TCL is required for testing."
+  # XXX fi
+  # XXX fi
+  # msg-result "loading TCL configuration from ${tclconfig}"
+  # 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.
+  #
+  # XXX AC_SUBST TCL_INCLUDE_SPEC
+  # XXX AC_SUBST TCL_LIB_SPEC
+  # 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
+  # XXX if test "x${TCLLIBDIR+set}" != "xset" ; then
+  # XXX for i in `echo 'puts stdout $auto_path' | ${TCLSH_CMD}` ; do
+  # XXX if test -d $i ; then
+  # XXX TCLLIBDIR=$i
+  # XXX break
+  # XXX fi
+  # XXX done
+  # XXX TCLLIBDIR="${TCLLIBDIR}/sqlite3"
+  # XXX fi
+}
+
+if {0} {
+  #########
+  # Set up options for running tests.
+  #
+  if {[opt-bool test-status]} {
+    set use_vt100 $enableval
+  } else {
+    set use_vt100 no
+  }
+  # XXX if test $use_vt100 != no; then
+  # XXX TSTRNNR_OPTS=--status
+  # XXX else
+  # XXX TSTRNNR_OPTS=
+  # XXX fi
+  # XXX AC_SUBST TSTRNNR_OPTS
+}
+
+if {0} {
+  #########
+  # Set up an appropriate program prefix
+  #
+  # XXX if test "$program_prefix" = "NONE"; then
+  set program_prefix ""
+  # XXX fi
+  # XXX AC_SUBST program_prefix
+
+  # XXX VERSION=[`cat $srcdir/VERSION | sed 's/^\([0-9]*\.*[0-9]*\).*/\1/'`]
+  # msg-result "Version set to $VERSION"
+  # XXX AC_SUBST VERSION
+  # XXX RELEASE=`cat $srcdir/VERSION`
+  # msg-result "Release set to $RELEASE"
+  # XXX AC_SUBST RELEASE
+}
+
+if {0} {
+  ##########
+  # Handle --with-wasi-sdk=DIR
+  #
+  # This must be early because it changes the toolchain.
+  #
+  if {[opt-val with-wasi-sdk] ne {}} {
+    set withval [lindex [opt-val with-wasi-sdk] end]
+    set with_wasisdk ${withval}
+  }
+  msg-checking "Checking for WASI SDK directory..."
+  # First check to see if --with-tcl was specified.
+  # XXX if test x"${with_wasi_sdk}" != x ; then
+  # XXX if ! test -d "${with_wasi_sdk}" ; then
+  user-error "${with_wasi_sdk} directory doesn't exist"
+  # XXX fi
+  msg-result "${with_wasi_sdk}: using wasi-sdk clang, disabling: tcl, CLI shell, DLL"
+  set use_wasi_sdk yes
+  # XXX else
+  set use_wasi_sdk no
+  # XXX fi
+  # XXX if test "${use_wasi_sdk}" = "no" ; then
+  # XXX HAVE_WASI_SDK=""
+  msg-result "no"
+  # XXX else
+  # XXX HAVE_WASI_SDK=1
+  # Changing --host and --target have no effect here except to possibly
+  # cause confusion. autoconf 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="${with_wasi_sdk}/bin/clang"
+  # XXX LD="${with_wasi_sdk}/bin/wasm-ld"
+  # XXX RANLIB="${with_wasi_sdk}/bin/llvm-ranlib"
+  set cross_compiling yes
+  set enable_threadsafe no
+  set use_tcl no
+  set enable_tcl no
+  # libtool is apparently hard-coded to use gcc for linking DLLs, so
+  # we disable the DLL build...
+  set enable_shared no
+  msg-result "yes"
+  # XXX fi
+  # XXX AC_SUBST HAVE_WASI_SDK
+}
+
+
+#########
+# Locate a compiler for the build machine.  This compiler should
+# generate command-line programs that run on the build machine.
+#
+# XXX if test x"$cross_compiling" = xno; then
+# XXX BUILD_CC=$CC
+# XXX BUILD_CFLAGS=$CFLAGS
+# XXX else
+# XXX if test "${BUILD_CC+set}" != set; then
+# XXX AC_CHECK_PROGS BUILD_CC gcc cc cl
+# XXX fi
+# XXX if test "${BUILD_CFLAGS+set}" != set; then
+# XXX BUILD_CFLAGS="-g"
+# XXX fi
+# XXX fi
+# XXX AC_SUBST BUILD_CC
+
+##########
+# Do we want to support multithreaded use of sqlite
+#
+if {0} {
+  if {![opt-bool threadsafe]} {
+  }
+  msg-checking "Checking whether to support threadsafe operation..."
+  # XXX if test "$enable_threadsafe" = "no"; then
+  # XXX SQLITE_THREADSAFE=0
+  msg-result "no"
+  # XXX else
+  # XXX SQLITE_THREADSAFE=1
+  msg-result "yes"
+  # XXX fi
+  # XXX AC_SUBST SQLITE_THREADSAFE
+
+  # XXX if test "$SQLITE_THREADSAFE" = "1"; then
+  cc-check-function-in-lib pthread_create pthread
+  cc-check-function-in-lib pthread_mutexattr_init pthread
+  # XXX fi
+}
+
+##########
+# Do we want to support release
+#
+if {[opt-bool releasemode]} {
+} else {
+  set enable_releasemode no
+}
+
+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
+#
+if {0} {
+  if {[opt-bool tempstore]} {
+  } else {
+    set enable_tempstore no
+  }
+  msg-checking "Checking whether to use an in-ram database for temporary tables..."
+  # XXX case "$enable_tempstore" in
+  # XXX never )
+  # XXX TEMP_STORE=0
+  msg-result "never"
+  # XXX ;;
+  # XXX no )
+  # XXX TEMP_STORE=1
+  msg-result "no"
+  # XXX ;;
+  # XXX yes )
+  # XXX TEMP_STORE=2
+  msg-result "yes"
+  # XXX ;;
+  # XXX always )
+  # XXX TEMP_STORE=3
+  msg-result "always"
+  # XXX ;;
+  # XXX * )
+  # XXX TEMP_STORE=1
+  msg-result "no"
+  # XXX ;;
+  # XXX esac
+
+  # XXX AC_SUBST TEMP_STORE
+}
+
+if {0} {
+  ###########
+  # Lots of things are different if we are compiling for Windows using
+  # the CYGWIN environment.  So check for that special case and handle
+  # things accordingly.
+  #
+  msg-checking "Checking if executables have the .exe suffix..."
+  # XXX if test "$config_BUILD_EXEEXT" = ".exe"; then
+  # XXX CYGWIN=yes
+  msg-result "yes"
+  # XXX else
+  msg-result "unknown"
+  # XXX fi
+  # XXX if test "$CYGWIN" != "yes"; then
+  # XXX m4_warn([obsolete],
+  # XXX [AC_CYGWIN is obsolete: use AC_CANONICAL_HOST and check if $host_os
+  # XXX matches *cygwin*])
+  # XXX case $host_os in
+  # XXX *cygwin* ) CYGWIN=yes;;
+  # XXX * ) CYGWIN=no;;
+  # XXX esac
+
+  # XXX fi
+  # XXX if test "$CYGWIN" = "yes"; then
+  # XXX BUILD_EXEEXT=.exe
+  # XXX else
+  # XXX BUILD_EXEEXT=$EXEEXT
+  # XXX fi
+  # XXX if test x"$cross_compiling" = xno; then
+  # XXX TARGET_EXEEXT=$BUILD_EXEEXT
+  # XXX else
+  # XXX TARGET_EXEEXT=$config_TARGET_EXEEXT
+  # XXX fi
+  # XXX if test "$TARGET_EXEEXT" = ".exe"; then
+  # XXX SQLITE_OS_UNIX=0
+  # XXX SQLITE_OS_WIN=1
+  # XXX CFLAGS="$CFLAGS -DSQLITE_OS_WIN=1"
+  # XXX else
+  # XXX SQLITE_OS_UNIX=1
+  # XXX SQLITE_OS_WIN=0
+  # XXX CFLAGS="$CFLAGS -DSQLITE_OS_UNIX=1"
+  # XXX fi
+
+  # XXX AC_SUBST BUILD_EXEEXT
+  # XXX AC_SUBST SQLITE_OS_UNIX
+  # XXX AC_SUBST SQLITE_OS_WIN
+  # XXX AC_SUBST TARGET_EXEEXT
+}
+
+if {0} {
+  ##########
+  # Figure out what C libraries are required to compile programs
+  # that use "readline()" library.
+  #
+  # XXX TARGET_READLINE_LIBS=""
+  # XXX TARGET_READLINE_INC=""
+  # XXX TARGET_HAVE_READLINE=0
+  # XXX TARGET_HAVE_EDITLINE=0
+  if {[opt-bool editline]} {
+    set with_editline $enableval
+  } else {
+    set with_editline auto
+  }
+  if {![opt-bool readline]} {
+    set with_readline $enableval
+  } else {
+    set with_readline auto
+  }
+
+  # XXX if test x"$with_editline" != xno; then
+  # XXX sLIBS=$LIBS
+  # XXX LIBS=""
+  # XXX TARGET_HAVE_EDITLINE=1
+  if {[cc-check-function-in-lib readline edit]} {
+    set with_readline no
+  } else {
+    # XXX TARGET_HAVE_EDITLINE=0
+  }
+  # XXX TARGET_READLINE_LIBS=$LIBS
+  # XXX LIBS=$sLIBS
+  # XXX fi
+  # XXX if test x"$with_readline" != xno; then
+  set found "yes"
+
+  if {[opt-val with-readline-lib] ne {}} {
+    set withval [lindex [opt-val with-readline-lib] end]
+    set with_readline_lib $withval
+  } else {
+    set with_readline_lib "auto"
+  }
+  # XXX if test "x$with_readline_lib" = xauto; then
+  # XXX save_LIBS="$LIBS"
+  # XXX LIBS=""
+  if {[cc-check-function-in-lib tgetent readline ncurses curses termcap]} {
+    # XXX term_LIBS="$LIBS"
+  } else {
+    # XXX term_LIBS=""
+  }
+  if {[cc-check-function-in-lib readline readline]} {
+    # XXX TARGET_READLINE_LIBS="-lreadline"
+  } else {
+    set found "no"
+  }
+  # XXX TARGET_READLINE_LIBS="$TARGET_READLINE_LIBS $term_LIBS"
+  # XXX LIBS="$save_LIBS"
+  # XXX else
+  # XXX TARGET_READLINE_LIBS="$with_readline_lib"
+  # XXX fi
+
+  if {[opt-val with-readline-inc] ne {}} {
+    set withval [lindex [opt-val with-readline-inc] end]
+    set with_readline_inc $withval
+  } else {
+    set with_readline_inc "auto"
+  }
+  # XXX if test "x$with_readline_inc" = xauto; then
+  if {[cc-check-includes readline.h]} {
+    set found "yes"
+  } else {
+    set found "no"
+    # XXX if test "$cross_compiling" != yes; then
+    # XXX for dir in /usr /usr/local /usr/local/readline /usr/contrib /mingw; do
+    # XXX for subdir in include include/readline; do
+    # XXX AC_CHECK_FILE $dir/$subdir/readline.h found=yes
+    # XXX if test "$found" = "yes"; then
+    # XXX TARGET_READLINE_INC="-I$dir/$subdir"
+    # XXX break
+    # XXX fi
+    # XXX done
+    # XXX test "$found" = "yes" && break
+    # XXX done
+    # XXX fi
+  }
+  # XXX else
+  # XXX TARGET_READLINE_INC="$with_readline_inc"
+  # XXX fi
+
+  # XXX if test x"$found" = xno; then
+  # XXX TARGET_READLINE_LIBS=""
+  # XXX TARGET_READLINE_INC=""
+  # XXX TARGET_HAVE_READLINE=0
+  # XXX else
+  # XXX TARGET_HAVE_READLINE=1
+  # XXX fi
+  # XXX fi
+  if {[opt-val with-linenoise] ne {}} {
+    set withval [lindex [opt-val with-linenoise] end]
+    set with_linenoise $withval
+  } else {
+    set with_linenoise "no"
+  }
+  # XXX if test "x$with_linenoise" != "xno"; then
+  # XXX TARGET_HAVE_READLINE=0
+  # XXX TARGET_HAVE_EDITLINE=0
+  # XXX TARGET_HAVE_LINENOISE=1
+  # XXX TARGET_READLINE_INC="-I${with_linenoise}"
+  # XXX TARGET_READLINE_LIBS="${with_linenoise}/linenoise.c"
+  # XXX echo "using linenoise source code at ${with_linenoise}"
+  # XXX else
+  # XXX TARGET_HAVE_LINENOISE=0
+  # XXX echo "not using linenoise"
+  # XXX fi
+
+  # XXX AC_SUBST TARGET_READLINE_LIBS
+  # XXX AC_SUBST TARGET_READLINE_INC
+  # XXX AC_SUBST TARGET_HAVE_READLINE
+  # XXX AC_SUBST TARGET_HAVE_EDITLINE
+  # XXX AC_SUBST TARGET_HAVE_LINENOISE
+}
+
+if {0} {
+  ##########
+  # Figure out what C libraries are required to compile programs
+  # that use "fdatasync()" function.
+  #
+  cc-check-function-in-lib fdatasync rt
+}
+
+if {0} {
+  #########
+  # check for debug enabled
+  if {[opt-bool debug]} {
+  }
+  msg-checking "Checking build type..."
+  # XXX if test "${enable_debug}" = "yes" ; then
+  # XXX TARGET_DEBUG="-DSQLITE_DEBUG=1 -DSQLITE_ENABLE_SELECTTRACE -DSQLITE_ENABLE_WHERETRACE -O0 -Wall"
+  msg-result "debug"
+  # XXX else
+  # XXX TARGET_DEBUG="-DNDEBUG"
+  msg-result "release"
+  # XXX fi
+  # XXX AC_SUBST TARGET_DEBUG
+}
+
+if {0} {
+  #########
+  # See whether we should use the amalgamation to build
+
+  if {![opt-bool amalgamation]} {
+  }
+  # XXX if test "${enable_amalgamation}" = "no" ; then
+  # XXX USE_AMALGAMATION=0
+  # XXX fi
+  # XXX AC_SUBST USE_AMALGAMATION
+}
+
+if {0} {
+  #########
+  # Look for zlib.  Only needed by extensions and by the sqlite3.exe shell
+  cc-check-includes zlib.h
+  if {[cc-check-function-in-lib deflate z]} {
+    define HAVE_ZLIB 1; # "-DSQLITE_HAVE_ZLIB=1"
+  } else {
+    define HAVE_ZLIB 0; # HAVE_ZLIB=""
+  }
+  # XXX AC_SUBST HAVE_ZLIB
+}
+
+if {0} {
+  #########
+  # See whether we should allow loadable extensions
+  if {![opt-bool load-extension]} {
+  } else {
+    set enable_load_extension yes
+  }
+  # XXX if test "${enable_load_extension}" = "yes" ; then
+  # XXX OPT_FEATURE_FLAGS=""
+  cc-check-function-in-lib dlopen dl
+  # XXX else
+  # XXX OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
+  # XXX fi
+}
+
+if {0} {
+  ##########
+  # Do we want to support math functions
+  #
+  if {![opt-bool math]} {
+  }
+  msg-checking "Checking whether to support math functions..."
+  # XXX if test "$enable_math" = "no"; then
+  msg-result "no"
+  # XXX else
+  msg-result "yes"
+  # XXX OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_ENABLE_MATH_FUNCTIONS"
+  cc-check-function-in-lib ceil m
+  # XXX fi
+}
+
+if {0} {
+  ##########
+  # Do we want to support JSON functions
+  #
+  if {![opt-bool json]} {
+  }
+  msg-checking "Checking whether to support JSON functions..."
+  # XXX if test "$enable_json" = "no"; then
+  msg-result "no"
+  # XXX OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_OMIT_JSON"
+  # XXX else
+  msg-result "yes"
+  # XXX fi
+}
+
+########
+# The --enable-all argument is short-hand to enable
+# multiple extensions.
+if {[opt-bool enable-all]} {
+}
+
+if {0} {
+  ##########
+  # Do we want to support memsys3 and/or memsys5
+  #
+  if {[opt-bool memsys5]} {
+  }
+  msg-checking "Checking whether to support MEMSYS5..."
+  # XXX if test "${enable_memsys5}" = "yes"; then
+  # XXX OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_ENABLE_MEMSYS5"
+  msg-result "yes"
+  # XXX else
+  msg-result "no"
+  # XXX fi
+  if {[opt-bool memsys3]} {
+  }
+  msg-checking "Checking whether to support MEMSYS3..."
+  # XXX if test "${enable_memsys3}" = "yes" -a "${enable_memsys5}" = "no"; then
+  # XXX OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_ENABLE_MEMSYS3"
+  msg-result "yes"
+  # XXX else
+  msg-result "no"
+  # XXX fi
+}
+
+if {0} {
+  #########
+  # See whether we should enable Full Text Search extensions
+  if {[opt-bool fts3]} {
+  }
+  msg-checking "Checking whether to support FTS3..."
+  # XXX if test "${enable_fts3}" = "yes" ; then
+  # XXX OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_ENABLE_FTS3"
+  msg-result "yes"
+  # XXX else
+  msg-result "no"
+  # XXX fi
+  if {[opt-bool fts4]} {
+  }
+  msg-checking "Checking whether to support FTS4..."
+  # XXX if test "${enable_fts4}" = "yes" -o "${enable_all}" = "yes" ; then
+  msg-result "yes"
+  # XXX OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_ENABLE_FTS4"
+  cc-check-function-in-lib log m
+  # XXX else
+  msg-result "no"
+  # XXX fi
+  if {[opt-bool fts5]} {
+  }
+  msg-checking "Checking whether to support FTS5..."
+  # XXX if test "${enable_fts5}" = "yes" -o "${enable_all}" = "yes" ; then
+  msg-result "yes"
+  # XXX OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_ENABLE_FTS5"
+  cc-check-function-in-lib log m
+  # XXX else
+  msg-result "no"
+  # XXX fi
+}
+
+
+if {0} {
+  #########
+  # See whether we should enable the LIMIT clause on UPDATE and DELETE
+  # statements.
+  if {[opt-bool update-limit]} {
+  }
+  msg-checking "Checking whether to support LIMIT on UPDATE and DELETE statements..."
+  # XXX if test "${enable_update_limit}" = "yes" ; then
+  # XXX OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT"
+  msg-result "yes"
+  # XXX else
+  msg-result "no"
+  # XXX fi
+}
+
+if {0} {
+  #########
+  # See whether we should enable GEOPOLY
+  if {[opt-bool geopoly]} {
+    set enable_geopoly yes
+  } else {
+    set enable_geopoly no
+  }
+  msg-checking "Checking whether to support GEOPOLY..."
+  # XXX if test "${enable_geopoly}" = "yes" -o "${enable_all}" = "yes" ; then
+  # XXX OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_ENABLE_GEOPOLY"
+  set enable_rtree yes
+  msg-result "yes"
+  # XXX else
+  msg-result "no"
+  # XXX fi
+}
+
+if {0} {
+  #########
+  # See whether we should enable RTREE
+  if {[opt-bool rtree]} {
+  }
+  msg-checking "Checking whether to support RTREE..."
+  # XXX if test "${enable_rtree}" = "yes" ; then
+  # XXX OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_ENABLE_RTREE"
+  msg-result "yes"
+  # XXX else
+  msg-result "no"
+  # XXX fi
+}
+
+if {0} {
+  #########
+  # See whether we should enable the SESSION extension
+  if {[opt-bool session]} {
+  }
+  msg-checking "Checking whether to support SESSION..."
+  # XXX if test "${enable_session}" = "yes" -o "${enable_all}" = "yes" ; then
+  # XXX OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_ENABLE_SESSION"
+  # XXX OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_ENABLE_PREUPDATE_HOOK"
+  msg-result "yes"
+  # XXX else
+  msg-result "no"
+  # XXX fi
+}
+
+#########
+# 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
+
+
+if {0} {
+  #########
+  # See whether we should use GCOV
+  if {[opt-bool gcov]} {
+  }
+  # XXX if test "${use_gcov}" = "yes" ; then
+  # XXX USE_GCOV=1
+  # XXX else
+  # XXX USE_GCOV=0
+  # XXX fi
+  # XXX AC_SUBST USE_GCOV
+}
+
+if {0} {
+  #########
+  # Enable/disabled amalagamation line macros
+  ########
+  set linemacros 0
+  # XXX if test "${amalgamation_line_macros}" = "yes" ; then
+  set linemacros 1
+  # XXX fi
+  # XXX if test "${amalgamation_line_macros}" = "no" ; then
+  set linemacros 0
+  # XXX fi
+  # XXX AC_SUBST AMALGAMATION_LINE_MACROS
+}
+
+#########
+# Output the config header
+
+if {0} {
+  #########
+  # Generate the output files.
+  #
+  # XXX AC_SUBST BUILD_CFLAGS
+  make-template Makefile.in
+  make-template sqlite3.pc.in
+  make-config-header sqlite_cfg.h
+}
+
+if {[opt-bool dump-defines]} {
+    msg-result "--dump-defines is creating file: $DUMP_DEFINES_FILE"
+    make-config-header $DUMP_DEFINES_FILE -auto {*}
+}
diff --git a/autosetup/hwaci-common.tcl b/autosetup/hwaci-common.tcl
new file mode 100644 (file)
index 0000000..de2317b
--- /dev/null
@@ -0,0 +1,324 @@
+########################################################################
+# 2024 September 25
+#
+# The author disclaims copyright to this source code.  In place of
+# a legal notice, here is a blessing:
+#
+#  * May you do good and not evil.
+#  * May you find forgiveness for yourself and forgive others.
+#  * May you share freely, never taking more than you give.
+#
+########################################################################
+# Routines for Steve Bennett's autosetup which are common to trees
+# managed under the umbrella of the SQLite project.
+#
+# This file was initially derived from one used in the libfossil
+# project, authored by the same person who ported it here (so there's
+# no licensing issue despite this code having a twin running around).
+########################################################################
+
+array set hwaciCache {} ; # used for caching various results.
+
+########################################################################
+# hwaci-lshift shifts $count elements from the list named $listVar and
+# returns them.
+#
+# Modified slightly from: https://wiki.tcl-lang.org/page/lshift
+#
+# On an empty list, returns "".
+proc hwaci-lshift {listVar {count 1}} {
+    upvar 1 $listVar l
+    if {![info exists l]} {
+        # make the error message show the real variable name
+        error "can't read \"$listVar\": no such variable"
+    }
+    if {![llength $l]} {
+        # error Empty
+        return ""
+    }
+    set r [lrange $l 0 [incr count -1]]
+    set l [lreplace $l [set l 0] $count]
+    return $r
+}
+
+########################################################################
+# 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 {}}} {
+    set _LIBS [get-define LIBS]
+    set found [cc-check-function-in-lib $function $libs $otherlibs]
+    define LIBS $_LIBS
+    return $found
+}
+
+########################################################################
+# Look for binary named $binName and `define`s $defName to that full
+# path, or an empty string if not found. Returns the value it defines.
+# This caches the result for a given $binName/$defName combination, so
+# calls after the first for a given combination will always return the
+# same result.
+#
+# If defName is empty then "BIN_X" is used, where X is the upper-case
+# form of $binName with any '-' characters removed. (TODO: map them to
+# "_" instead, but i'll need to fix my affected builds in parallel.)
+proc hwaci-bin-define {binName {defName {}}} {
+    global hwaciCache
+    set cacheName "$binName:$defName"
+    set check {}
+    if {[info exists hwaciCache($cacheName)]} {
+        set check $hwaciCache($cacheName)
+    }
+    msg-checking "Looking for $binName ... "
+    if {"" ne $check} {
+        set lbl $check
+        if {" _ 0 _ " eq $check} {
+            set lbl "not found"
+            set check ""
+        }
+        msg-result "(cached) $lbl"
+        return $check
+    }
+    set check [find-executable-path $binName]
+    if {"" eq $check} {
+        msg-result "not found"
+        set hwaciCache($cacheName) " _ 0 _ "
+    } else {
+        msg-result $check
+        set hwaciCache($cacheName) $check
+    }
+    if {"" eq $defName} {
+        set defName "BIN_[string toupper [string map {- {}} $binName]]"
+    }
+    define $defName $check
+    return $check
+}
+
+########################################################################
+# Looks for `bash` binary and dies if not found. On success, defines
+# BIN_BASH to the full path to bash and returns that value. We
+# _require_ bash because it's the SHELL value used in our makefiles.
+proc hwaci-require-bash {} {
+    set bash [hwaci-bin-define bash]
+    if {"" eq $bash} {
+        user-error "Our Makefiles require the bash shell."
+    }
+    return $bash
+}
+
+########################################################################
+# Args: [-v] optName defName {descr {}}
+#
+# Checks [opt-bool $optName] and does [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-bool-01 {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]
+    if {"" eq $descr} {
+        set descr $defName
+    }
+    set rc 0
+    msg-checking "$descr ... "
+    if {[opt-bool $optName]} {
+        if {0 eq $invert} {
+            set rc 1
+        } else {
+            set rc 0
+        }
+    } elseif {0 ne $invert} {
+        set rc 1
+    }
+    msg-result $rc
+    define $defName $rc
+    return $rc
+}
+
+########################################################################
+# Check for module-loading APIs (libdl/libltdl)...
+#
+# Looks for libltdl or dlopen(), the latter either in -ldl or built in
+# to libc (as it is on some platforms). Returns 1 if found, else
+# 0. Either way, it `define`'s:
+#
+#  - HAVE_LIBLTDL to 1 or 0 if libltdl is found/not found
+#  - HAVE_LIBDL to 1 or 0 if dlopen() is found/not found
+#  - LDFLAGS_MODULE_LOADER one of ("-lltdl", "-ldl", or ""), noting
+#    that -ldl may legally be empty on some platforms even if
+#    HAVE_LIBDL is true (indicating that dlopen() is available without
+#    extra link flags). LDFLAGS_MODULE_LOADER also gets "-rdynamic" appended
+#    to it because otherwise trying to open DLLs will result in undefined
+#    symbol errors.
+#
+# 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 {} {
+    msg-checking "Looking for module-loader APIs... "
+    if {99 ne [get-define LDFLAGS_MODULE_LOADER]} {
+        if {1 eq [get-define HAVE_LIBLTDL 0]} {
+            msg-result "(cached) libltdl"
+            return 1
+        } elseif {1 eq [get-define HAVE_LIBDL 0]} {
+            msg-result "(cached) libdl"
+            return 1
+        }
+        # else: wha???
+    }
+    set HAVE_LIBLTDL 0
+    set HAVE_LIBDL 0
+    set LDFLAGS_MODULE_LOADER ""
+    set rc 0
+    puts "" ;# cosmetic kludge for cc-check-XXX
+    if {[cc-check-includes ltdl.h] && [cc-check-function-in-lib lt_dlopen ltdl]} {
+        set HAVE_LIBLTDL 1
+        set LDFLAGS_MODULE_LOADER "-lltdl -rdynamic"
+        puts " - Got libltdl."
+        set rc 1
+    } elseif {[cc-with {-includes dlfcn.h} {
+        cctest -link 1 -declare "extern char* dlerror(void);" -code "dlerror();"}]} {
+        puts " - This system can use dlopen() without -ldl."
+        set HAVE_LIBDL 1
+        set LDFLAGS_MODULE_LOADER ""
+        set rc 1
+    } elseif {[cc-check-includes dlfcn.h]} {
+        set HAVE_LIBDL 1
+        set rc 1
+        if {[cc-check-function-in-lib dlopen dl]} {
+            puts " - dlopen() needs libdl."
+            set LDFLAGS_MODULE_LOADER "-ldl -rdynamic"
+        } else {
+            puts " - dlopen() not found in libdl. Assuming dlopen() is built-in."
+            set LDFLAGS_MODULE_LOADER "-rdynamic"
+        }
+    }
+    define HAVE_LIBLTDL $HAVE_LIBLTDL
+    define HAVE_LIBDL $HAVE_LIBDL
+    define LDFLAGS_MODULE_LOADER $LDFLAGS_MODULE_LOADER
+    return $rc
+}
+
+########################################################################
+# Sets all flags which would be set by hwaci-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 {} {
+    define HAVE_LIBDL 0
+    define HAVE_LIBLTDL 0
+    define LDFLAGS_MODULE_LOADER ""
+}
+
+########################################################################
+# Opens the given file, reads all of its content, and returns it.
+proc hwaci-file-content {fname} {
+    set fp [open $fname r]
+    set rc [read $fp]
+    close $fp
+    return $rc
+}
+
+########################################################################
+# 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} {
+    set fp [open $fname r]
+    set rc {}
+    while { [gets $fp line] >= 0 } {
+        lappend rc $line
+    }
+    return $rc
+}
+
+########################################################################
+# Checks the compiler for compile_commands.json support. If passed an
+# argument it is assumed to be the name of an autosetup boolean config
+# option to explicitly DISABLE the compile_commands.json support.
+#
+# Returns 1 if supported, else 0. Defines MAKE_COMPILATION_DB to "yes"
+# if supported, "no" if not.
+proc hwaci-check-compile-commands {{configOpt {}}} {
+    msg-checking "compile_commands.json support... "
+    if {"" ne $configOpt && [opt-bool $configOpt]} {
+        msg-result "explicitly disabled"
+        define MAKE_COMPILATION_DB no
+        return 0
+    } else {
+        if {[cctest -lang c -cflags {/dev/null -MJ} -source {}]} {
+            # This test reportedly incorrectly succeeds on one of
+            # Martin G.'s older systems. drh also reports a false
+            # positive on an unspecified older Mac system.
+            msg-result "compiler supports compile_commands.json"
+            define MAKE_COMPILATION_DB yes
+            return 1
+        } else {
+            msg-result "compiler does not support compile_commands.json"
+            define MAKE_COMPILATION_DB no
+            return 0
+        }
+    }
+}
+
+########################################################################
+# Uses [make-template] to create makefile(-like) file $filename from
+# $filename.in but explicitly makes the output read-only, to avoid
+# inadvertent editing (who, me?).
+#
+# The second argument is an optional boolean specifying whether to
+# `touch` the generated files. This can be used as a workaround for
+# cases where (A) autosetup does not update the file because it was
+# not really modified and (B) the file *really* needs to be updated to
+# please the build process. Pass any non-0 value to enable touching.
+#
+# The argument may be a list of filenames.
+#
+# Failures when running chmod or touch are silently ignored.
+proc hwaci-make-from-dot-in {filename {touch 0}} {
+  foreach f $filename {
+    catch { exec chmod u+w $f }
+    make-template $f.in $f
+    if {0 != $touch} {
+      puts "Touching $f"
+      catch { exec touch $f }
+    }
+    catch { exec chmod -w $f }
+  }
+}
+
+########################################################################
+# Checks for the boolean configure option named by $flagname. If set,
+# it checks if $CC seems to refer to gcc. If it does (or appears to)
+# then it defines CC_PROFILE_FLAG to "-pg" and returns 1, else it
+# defines CC_PROFILE_FLAG to "" and returns 0.
+#
+# Note that the resulting flag must be added to both CFLAGS and
+# LDFLAGS in order for binaries to be able to generate "gmon.out".  In
+# 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}} {
+  if {[opt-bool $flagname]} {
+    set CC [get-define CC]
+    regsub {.*ccache *} $CC "" CC
+    # ^^^ if CC="ccache gcc" then [exec] treats "ccache gcc" as a
+    # single binary name and fails. So strip any leading ccache part
+    # for this purpose.
+    if { ![catch { exec $CC --version } msg]} {
+      if {[string first gcc $CC] != -1} {
+        define CC_PROFILE_FLAG "-pg"
+        return 1
+      }
+    }
+  }
+  define CC_PROFILE_FLAG ""
+  return 0
+}
index b3a0dd299f15f97dbb9e73a7cb8dfffd539e242c..40d1dbd07fb52adb390247b1ff93b8b5560479ce 100644 (file)
@@ -119,9 +119,12 @@ USE_AMALGAMATION=1
 # 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.
 #
-AC_ARG_WITH(tclsh, AS_HELP_STRING([--with-tclsh=PATHNAME],[full pathname of a tclsh to use]))
-AC_ARG_WITH(tcl, AS_HELP_STRING([--with-tcl=DIR],[directory containing (tclConfig.sh)]))
-AC_ARG_ENABLE(tcl, AS_HELP_STRING([--disable-tcl],[omit building accessory programs that require TCL-dev]),
+AC_ARG_WITH(tclsh,
+  AS_HELP_STRING([--with-tclsh=PATHNAME],[full pathname of a tclsh to use]))
+AC_ARG_WITH(tcl,
+  AS_HELP_STRING([--with-tcl=DIR],[directory containing (tclConfig.sh)]))
+AC_ARG_ENABLE(tcl,
+  AS_HELP_STRING([--disable-tcl],[omit building accessory programs that require TCL-dev]),
       [use_tcl=$enableval],[use_tcl=yes])
 original_use_tcl=${use_tcl}
 if test x"${with_tclsh}" == x -a x"${with_tcl}" == x; then
@@ -261,21 +264,21 @@ AC_SUBST(RELEASE)
 # This must be early because it changes the toolchain.
 #
 AC_ARG_WITH(wasi-sdk,
-AS_HELP_STRING([--with-wasi-sdk=DIR],
+  AS_HELP_STRING([--with-wasi-sdk=DIR],
        [directory containing the WASI SDK. Triggers cross-compile to WASM.]), with_wasisdk=${withval})
-AC_MSG_CHECKING([for WASI SDK directory])
-AC_CACHE_VAL(ac_cv_c_wasi_sdk,[
-  # First check to see if --with-tcl was specified.
-  if test x"${with_wasi_sdk}" != x ; then
-    if ! test -d "${with_wasi_sdk}" ; then
-      AC_MSG_ERROR([${with_wasi_sdk} directory doesn't exist])
+  AC_MSG_CHECKING([for WASI SDK directory])
+  AC_CACHE_VAL(ac_cv_c_wasi_sdk,[
+    # First check to see if --with-tcl was specified.
+    if test x"${with_wasi_sdk}" != x ; then
+      if ! test -d "${with_wasi_sdk}" ; then
+        AC_MSG_ERROR([${with_wasi_sdk} directory doesn't exist])
+      fi
+      AC_MSG_RESULT([${with_wasi_sdk}: using wasi-sdk clang, disabling: tcl, CLI shell, DLL])
+      use_wasi_sdk=yes
+    else
+      use_wasi_sdk=no
     fi
-    AC_MSG_RESULT([${with_wasi_sdk}: using wasi-sdk clang, disabling: tcl, CLI shell, DLL])
-    use_wasi_sdk=yes
-  else
-    use_wasi_sdk=no
-  fi
-])
+  ])
 if test "${use_wasi_sdk}" = "no" ; then
   HAVE_WASI_SDK=""
   AC_MSG_RESULT([no])
@@ -326,15 +329,15 @@ AC_SUBST(BUILD_CC)
 # Do we want to support multithreaded use of sqlite
 #
 AC_ARG_ENABLE(threadsafe, 
-AS_HELP_STRING([--disable-threadsafe],[Disable mutexing]))
-AC_MSG_CHECKING([whether to support threadsafe operation])
-if test "$enable_threadsafe" = "no"; then
-  SQLITE_THREADSAFE=0
-  AC_MSG_RESULT([no])
-else
-  SQLITE_THREADSAFE=1
-  AC_MSG_RESULT([yes])
-fi
+  AS_HELP_STRING([--disable-threadsafe],[Disable mutexing]))
+  AC_MSG_CHECKING([whether to support threadsafe operation])
+  if test "$enable_threadsafe" = "no"; then
+    SQLITE_THREADSAFE=0
+    AC_MSG_RESULT([no])
+  else
+    SQLITE_THREADSAFE=1
+    AC_MSG_RESULT([yes])
+  fi
 AC_SUBST(SQLITE_THREADSAFE)
 
 if test "$SQLITE_THREADSAFE" = "1"; then
@@ -346,45 +349,45 @@ fi
 # Do we want to support release
 #
 AC_ARG_ENABLE(releasemode, 
-AS_HELP_STRING([--enable-releasemode],[Support libtool link to release mode]),,enable_releasemode=no)
-AC_MSG_CHECKING([whether to support shared library linked as release mode or not])
-if test "$enable_releasemode" = "no"; then
-  ALLOWRELEASE=""
-  AC_MSG_RESULT([no])
-else
-  ALLOWRELEASE="-release `cat $srcdir/VERSION`"
-  AC_MSG_RESULT([yes])
-fi
+  AS_HELP_STRING([--enable-releasemode],[Support libtool link to release mode]),,enable_releasemode=no)
+  AC_MSG_CHECKING([whether to support shared library linked as release mode or not])
+  if test "$enable_releasemode" = "no"; then
+    ALLOWRELEASE=""
+    AC_MSG_RESULT([no])
+  else
+    ALLOWRELEASE="-release `cat $srcdir/VERSION`"
+    AC_MSG_RESULT([yes])
+  fi
 AC_SUBST(ALLOWRELEASE)
 
 ##########
 # Do we want temporary databases in memory
 #
 AC_ARG_ENABLE(tempstore, 
-AS_HELP_STRING([--enable-tempstore],[Use an in-ram database for temporary tables (never,no,yes,always)]),,enable_tempstore=no)
-AC_MSG_CHECKING([whether to use an in-ram database for temporary tables])
-case "$enable_tempstore" in
-  never ) 
-    TEMP_STORE=0
-    AC_MSG_RESULT([never])
-  ;;
-  no ) 
-    TEMP_STORE=1
-    AC_MSG_RESULT([no])
-  ;;
-  yes ) 
-     TEMP_STORE=2
-    AC_MSG_RESULT([yes])
-  ;;
-  always ) 
-     TEMP_STORE=3
-    AC_MSG_RESULT([always])
-  ;;
-  * ) 
-    TEMP_STORE=1
-    AC_MSG_RESULT([no])
-  ;;
-esac
+  AS_HELP_STRING([--enable-tempstore],[Use an in-ram database for temporary tables (never,no,yes,always)]),,enable_tempstore=no)
+  AC_MSG_CHECKING([whether to use an in-ram database for temporary tables])
+  case "$enable_tempstore" in
+    never ) 
+      TEMP_STORE=0
+      AC_MSG_RESULT([never])
+    ;;
+    no ) 
+      TEMP_STORE=1
+      AC_MSG_RESULT([no])
+    ;;
+    yes ) 
+       TEMP_STORE=2
+      AC_MSG_RESULT([yes])
+    ;;
+    always ) 
+       TEMP_STORE=3
+      AC_MSG_RESULT([always])
+    ;;
+    * ) 
+      TEMP_STORE=1
+      AC_MSG_RESULT([no])
+    ;;
+  esac
 
 AC_SUBST(TEMP_STORE)
 
@@ -584,28 +587,28 @@ fi
 # Do we want to support math functions
 #
 AC_ARG_ENABLE(math, 
-AS_HELP_STRING([--disable-math],[Disable math functions]))
-AC_MSG_CHECKING([whether to support math functions])
-if test "$enable_math" = "no"; then
-  AC_MSG_RESULT([no])
-else
-  AC_MSG_RESULT([yes])
-  OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_ENABLE_MATH_FUNCTIONS"
-  AC_SEARCH_LIBS(ceil, m)
-fi
+  AS_HELP_STRING([--disable-math],[Disable math functions]))
+  AC_MSG_CHECKING([whether to support math functions])
+  if test "$enable_math" = "no"; then
+    AC_MSG_RESULT([no])
+  else
+    AC_MSG_RESULT([yes])
+    OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_ENABLE_MATH_FUNCTIONS"
+    AC_SEARCH_LIBS(ceil, m)
+  fi
 
 ##########
 # Do we want to support JSON functions
 #
 AC_ARG_ENABLE(json, 
-AS_HELP_STRING([--disable-json],[Disable JSON functions]))
-AC_MSG_CHECKING([whether to support JSON functions])
-if test "$enable_json" = "no"; then
-  AC_MSG_RESULT([no])
-  OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_OMIT_JSON"
-else
-  AC_MSG_RESULT([yes])
-fi
+  AS_HELP_STRING([--disable-json],[Disable JSON functions]))
+  AC_MSG_CHECKING([whether to support JSON functions])
+  if test "$enable_json" = "no"; then
+    AC_MSG_RESULT([no])
+    OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_OMIT_JSON"
+  else
+    AC_MSG_RESULT([yes])
+  fi
 
 ########
 # The --enable-all argument is short-hand to enable
@@ -619,12 +622,12 @@ AC_ARG_ENABLE(all, AS_HELP_STRING([--enable-all],
 AC_ARG_ENABLE(memsys5, 
   AS_HELP_STRING([--enable-memsys5],[Enable MEMSYS5]))
 AC_MSG_CHECKING([whether to support MEMSYS5])
-if test "${enable_memsys5}" = "yes"; then
-  OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_ENABLE_MEMSYS5"
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
+  if test "${enable_memsys5}" = "yes"; then
+    OPT_FEATURE_FLAGS="${OPT_FEATURE_FLAGS} -DSQLITE_ENABLE_MEMSYS5"
+    AC_MSG_RESULT([yes])
+  else
+    AC_MSG_RESULT([no])
+  fi
 AC_ARG_ENABLE(memsys3, 
   AS_HELP_STRING([--enable-memsys3],[Enable MEMSYS3]))
 AC_MSG_CHECKING([whether to support MEMSYS3])
index e94222760fca6ac46cc2df71d02a9610fa700e4d..5323103370234312bfb4f0fe196897573a5f68ad 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Initial\spristine\sautosetup\sbits.
-D 2024-09-24T21:08:49.699
+C Get\sskeleton\sauto.def\srunning,\sbut\sit\sdoesn't\sreally\sdo\smuch\sexcept\ssome\sstandard\sboilerplate\sstuff.
+D 2024-09-25T01:39:39.297
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -14,7 +14,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 1f07836fdcf7c5048d8d9e60955bfb568989c36fa94dd1e5953fd836fa11a033
+F auto.def eb8f5b72c433ef0d37b1d78b3a06ceb22165aa161a88cfd39d0cbef171dd1bc2
 F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903
 F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347
 F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac
@@ -46,6 +46,7 @@ F autosetup/cc-lib.tcl 493c5935b5dd3bf9bd4eca89b07c8b1b1a9356d61783035144e21795f
 F autosetup/cc-shared.tcl 4f024e94a47f427ba61de1739f6381ef0080210f9fae89112d5c1de1e5460d78
 F autosetup/cc.tcl 1b52de228642c1db5a714d54ca974d723ec8b4092e8c3765d348b625850f7311
 F autosetup/default.auto 5cdf016de2140e50f1db190a02039dc42fb390af1dda4cc4853e3042a9ef0e82
+F autosetup/hwaci-common.tcl 120d1cc6f1604fdf9403d730ed5955c18aaac11ce533231d62e22e614b9cbbfd
 F autosetup/jimsh0.c 1b5fe91fffcddbc29f2b16acb80f1650632ea2edbe8336b8155ef7b4c66f6d8d
 F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba
 F autosetup/system.tcl 3a39d6e0b3bfba526fd39afe07c1d0d325e5a31925013a1ba7c671e1128e31bb
@@ -54,7 +55,7 @@ F autosetup/tmake.tcl a275793ec1b6f8708179af0acef1f6f10d46c2920739743f7a8720c6d7
 F config.guess 883205ddf25b46f10c181818bf42c09da9888884af96f79e1719264345053bd6
 F config.sub c2d0260f17f3e4bc0b6808fccf1b291cb5e9126c14fc5890efc77b9fd0175559
 F configure 9a00b21dfd13757bbfb8d89b30660a89ec1f8f3a79402b8f9f9b6fc475c3303a x
-F configure.ac a100ebf7a07f5dedd319ef547dd467d1676ed059b85a7877aa9c44ac309f7000
+F configure.ac 934d33880d4c7dbff05c2ebaa3820e344e1321d5fff6d6393963e50c3a613e40
 F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad
 F doc/F2FS.txt c1d4a0ae9711cfe0e1d8b019d154f1c29e0d3abfe820787ba1e9ed7691160fcd
 F doc/compile-for-windows.md 4d4bfafda42a7a33f166d23aed4db1bb4ea1e5751595a5cced2bad349fd14652
@@ -2231,11 +2232,8 @@ F vsixtest/vsixtest.tcl 6195aba1f12a5e10efc2b8c0009532167be5e301abe5b31385638080
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 42bb941584a1ac922ee6b0b6ecadce71c9259555563cf49913a6f820f3f9b887
-R 84d3f178c5c16f5b308246d776945a8b
-T *branch * autosetup
-T *sym-autosetup *
-T -sym-trunk * Cancelled\sby\sbranch.
+P dfb1e7f0cce9bc79c43eee7208cad0e2df562b2bc9705d3a36fd78f86c75495b
+R dd0ebdea6824f43df28d73bb1d5be9bb
 U stephan
-Z 8191a33bd76375a0780db52c6f42efff
+Z 061986ba8b4c5587dccbe2f0a25494b3
 # Remove this line to create a well-formed Fossil manifest.
index 8defc94fe6005c6cf130d64fd1b5fd2ca4f57fa5..c9a78ea48e733b186a8e9ecfbc020074eb5842b0 100644 (file)
@@ -1 +1 @@
-dfb1e7f0cce9bc79c43eee7208cad0e2df562b2bc9705d3a36fd78f86c75495b
+e707634cf755346752bb83b7be5d0c683e39d6e0a497846019323fed31c08b9d