📄 configure.ac
字号:
## 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.## The generated configure script will make an attempt to guess# at all of the above parameters. You can override any of# the guesses by setting the environment variable named# "config_AAAA" where "AAAA" is the name of the parameter# described above. (Exception: srcdir cannot be set this way.)# If you have a file that sets one or more of these environment# variables, you can invoke configure as follows:## configure --with-hints=FILE## where FILE is the name of the file that sets the environment# variables. FILE should be an absolute pathname.## 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.#AC_INIT(sqlite, m4_esyscmd([cat VERSION | tr -d '\n']))dnl Put the RCS revision string after AC_INIT so that it will alsodnl show in in configure.# The following RCS revision string applies to configure.in# $Revision: 1.49 $########## Programs needed#AC_PROG_LIBTOOLAC_PROG_INSTALLAC_PROG_AWK########## Enable large file support (if special flags are necessary)#AC_SYS_LARGEFILE########## Check for needed/wanted data typesAC_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 headersAC_CHECK_HEADERS([sys/types.h stdlib.h stdint.h inttypes.h])########## Figure out whether or not we have these functions#AC_CHECK_FUNCS([usleep fdatasync localtime_r gmtime_r localtime_s])########## By default, we use the amalgamation (this may be changed below...)#USE_AMALGAMATION=1########## See whether we can run specific tclsh versions known to work well;# if not, then we fall back to plain tclsh.# TODO: try other versions before falling back?# AC_CHECK_PROGS(TCLSH_CMD, [tclsh8.4 tclsh], none)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. echo "Warning: can't find tclsh - defaulting to non-amalgamation build." USE_AMALGAMATION=0 TCLSH_CMD="tclsh"fiAC_SUBST(TCLSH_CMD)########## Set up an appropriate program prefix#if test "$program_prefix" = "NONE"; then program_prefix=""fiAC_SUBST(program_prefix)VERSION=[`cat $srcdir/VERSION | sed 's/^\([0-9]*\.*[0-9]*\).*/\1/'`]echo "Version set to $VERSION"AC_SUBST(VERSION)RELEASE=`cat $srcdir/VERSION`echo "Release set to $RELEASE"AC_SUBST(RELEASE)VERSION_NUMBER=[`cat $srcdir/VERSION \ | sed 's/[^0-9]/ /g' \ | awk '{printf "%d%03d%03d",$1,$2,$3}'`]echo "Version number set to $VERSION_NUMBER"AC_SUBST(VERSION_NUMBER)########## Check to see if the --with-hints=FILE option is used. If there is none,# then check for a files named "$host.hints" and ../$hosts.hints where# $host is the hostname of the build system. If still no hints are# found, try looking in $system.hints and ../$system.hints where# $system is the result of uname -s.#AC_ARG_WITH(hints, AC_HELP_STRING([--with-hints=FILE],[Read configuration options from FILE]), hints=$withval)if test "$hints" = ""; then host=`hostname | sed 's/\..*//'` if test -r $host.hints; then hints=$host.hints else if test -r ../$host.hints; then hints=../$host.hints fi fifiif test "$hints" = ""; then sys=`uname -s` if test -r $sys.hints; then hints=$sys.hints else if test -r ../$sys.hints; then hints=../$sys.hints fi fifiif test "$hints" != ""; then AC_MSG_RESULT(reading hints from $hints) . $hintsfi########## Locate a compiler for the build machine. This compiler should# generate command-line programs that run on the build machine.#if test x"$cross_compiling" = xno; then BUILD_CC=$CC BUILD_CFLAGS=$CFLAGSelse if test "${BUILD_CC+set}" != set; then AC_CHECK_PROGS(BUILD_CC, gcc cc cl) fi if test "${BUILD_CFLAGS+set}" != set; then BUILD_CFLAGS="-g" fifiAC_SUBST(BUILD_CC)########### Do we want to support multithreaded use of sqlite#AC_ARG_ENABLE(threadsafe, AC_HELP_STRING([--enable-threadsafe],[Support threadsafe operation]),,enable_threadsafe=yes)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])fiAC_SUBST(SQLITE_THREADSAFE)if test "$SQLITE_THREADSAFE" = "1"; then AC_SEARCH_LIBS(pthread_create, pthread)fi########### Do we want to allow a connection created in one thread to be used# in another thread. This does not work on many Linux systems (ex: RedHat 9)# due to bugs in the threading implementations. This is thus off by default.#AC_ARG_ENABLE(cross-thread-connections, AC_HELP_STRING([--enable-cross-thread-connections],[Allow connection sharing across threads]),,enable_xthreadconnect=no)AC_MSG_CHECKING([whether to allow connections to be shared across threads])if test "$enable_xthreadconnect" = "no"; then XTHREADCONNECT='' AC_MSG_RESULT([no])else XTHREADCONNECT='-DSQLITE_ALLOW_XTHREAD_CONNECT=1' AC_MSG_RESULT([yes])fiAC_SUBST(XTHREADCONNECT)########### Do we want to set threadsOverrideEachOthersLocks variable to be 1 (true) by# default. Normally, a test at runtime is performed to determine the# appropriate value of this variable. Use this option only if you're sure that# threads can safely override each others locks in all runtime situations.#AC_ARG_ENABLE(threads-override-locks, AC_HELP_STRING([--enable-threads-override-locks],[Threads can override each others locks]),,enable_threads_override_locks=no)AC_MSG_CHECKING([whether threads can override each others locks])if test "$enable_threads_override_locks" = "no"; then THREADSOVERRIDELOCKS='-1' AC_MSG_RESULT([no])else THREADSOVERRIDELOCKS='1' AC_MSG_RESULT([yes])fiAC_SUBST(THREADSOVERRIDELOCKS)########### Do we want to support release#AC_ARG_ENABLE(releasemode, AC_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])fiAC_SUBST(ALLOWRELEASE)########### Do we want temporary databases in memory#AC_ARG_ENABLE(tempstore, AC_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]) ;; always ) TEMP_STORE=3 AC_MSG_RESULT([always]) ;; yes ) TEMP_STORE=3 AC_MSG_RESULT([always]) ;; * ) TEMP_STORE=1 AC_MSG_RESULT([yes]) ;;esacAC_SUBST(TEMP_STORE)############ 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.#AC_MSG_CHECKING([if executables have the .exe suffix])if test "$config_BUILD_EXEEXT" = ".exe"; then CYGWIN=yes AC_MSG_RESULT(yes)else AC_MSG_RESULT(unknown)fiif test "$CYGWIN" != "yes"; then AC_CYGWINfiif test "$CYGWIN" = "yes"; then BUILD_EXEEXT=.exeelse BUILD_EXEEXT=$EXEEXTfiif test x"$cross_compiling" = xno; then TARGET_EXEEXT=$BUILD_EXEEXTelse TARGET_EXEEXT=$config_TARGET_EXEEXTfiif test "$TARGET_EXEEXT" = ".exe"; then if test $OS2_SHELL ; then SQLITE_OS_UNIX=0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -