diff --git a/auto.def b/auto.def index bed7e333f9..32cb94185b 100644 --- a/auto.def +++ b/auto.def @@ -1,10 +1,944 @@ -# 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} + +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 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 } -make-config-header config.h -make-template Makefile.in +######### +# 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 index 0000000000..de2317b100 --- /dev/null +++ b/autosetup/hwaci-common.tcl @@ -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 +} diff --git a/configure.ac b/configure.ac index b3a0dd299f..40d1dbd07f 100644 --- a/configure.ac +++ b/configure.ac @@ -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]) diff --git a/manifest b/manifest index e94222760f..5323103370 100644 --- 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. diff --git a/manifest.uuid b/manifest.uuid index 8defc94fe6..c9a78ea48e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -dfb1e7f0cce9bc79c43eee7208cad0e2df562b2bc9705d3a36fd78f86c75495b +e707634cf755346752bb83b7be5d0c683e39d6e0a497846019323fed31c08b9d