📄 configure.ac
字号:
# $Id: configure.ac,v 11.221 2004/11/16 01:07:57 mjc Exp $# Process this file with autoconf to produce a configure script.PACKAGE=dbAC_INIT(Berkeley DB, __EDIT_DB_VERSION__, support@sleepycat.com, db-__EDIT_DB_VERSION__)AC_CONFIG_SRCDIR([../db/db.c])AC_CONFIG_HEADERS([db_config.h:config.hin])# Configure setup.AC_CANONICAL_HOST()AC_ARG_PROGRAM()# Don't build in the top-level or dist directories.AC_MSG_CHECKING(if building in the top-level or dist directories)if [ test -d db_archive -o -f configure.ac ] ; then AC_MSG_RESULT(yes) AC_MSG_ERROR( [Berkeley DB should not be built in the top-level or dist directories.])fiAC_MSG_RESULT(no)# Substitution variables.AC_SUBST(ADDITIONAL_INCS)AC_SUBST(ADDITIONAL_LANG)AC_SUBST(ADDITIONAL_OBJS)AC_SUBST(ADDITIONAL_PROGS)AC_SUBST(BUILD_TARGET)AC_SUBST(CFLAGS)AC_SUBST(CONFIGURATION_ARGS)AC_SUBST(CONFIGURATION_PATH)AC_SUBST(CPPFLAGS)AC_SUBST(CRYPTO_OBJS)AC_SUBST(CXX)AC_SUBST(CXXFLAGS)AC_SUBST(DB_PROTO1)AC_SUBST(DB_PROTO2)AC_SUBST(DEFAULT_LIB)AC_SUBST(DEFAULT_LIB_CXX)AC_SUBST(INSTALLER)AC_SUBST(INSTALL_LIBS)AC_SUBST(INSTALL_TARGET)AC_SUBST(JAR)AC_SUBST(JAVACFLAGS)AC_SUBST(LDFLAGS)AC_SUBST(LIBJSO_LIBS)AC_SUBST(LIBS)AC_SUBST(LIBSO_LIBS)AC_SUBST(LIBTOOL)AC_SUBST(LIBTSO_LIBS)AC_SUBST(LIBTSO_MODSUFFIX)AC_SUBST(LIBTSO_MODULE)AC_SUBST(LIBXSO_LIBS)AC_SUBST(MAKEFILE_CC)AC_SUBST(MAKEFILE_CCLINK)AC_SUBST(MAKEFILE_CXX)AC_SUBST(MAKEFILE_CXXLINK)AC_SUBST(MAKEFILE_SOLINK)AC_SUBST(MAKEFILE_XSOLINK)AC_SUBST(OSDIR)AC_SUBST(PATH_SEPARATOR)AC_SUBST(POSTLINK)AC_SUBST(REPLACEMENT_OBJS)AC_SUBST(RPC_CLIENT_OBJS)AC_SUBST(RPC_SERVER_H)AC_SUBST(SOFLAGS)AC_SUBST(TEST_LIBS)AC_SUBST(db_int_def)AC_SUBST(o)# Set the default installation location.AC_PREFIX_DEFAULT(/usr/local/BerkeleyDB.__EDIT_DB_VERSION_MAJOR__.__EDIT_DB_VERSION_MINOR__)# Configure the version information.AC_SUBST(DB_VERSION_MAJOR)DB_VERSION_MAJOR="__EDIT_DB_VERSION_MAJOR__"AC_SUBST(DB_VERSION_MINOR)DB_VERSION_MINOR="__EDIT_DB_VERSION_MINOR__"AC_SUBST(DB_VERSION_PATCH)DB_VERSION_PATCH="__EDIT_DB_VERSION_PATCH__"AC_SUBST(DB_VERSION_STRING)DB_VERSION_STRING='"__EDIT_DB_VERSION_STRING__"'AC_SUBST(DB_VERSION_UNIQUE_NAME)# Process all options before using them.AM_OPTIONS_SET# Set some #defines based on configuration options.if test "$db_cv_diagnostic" = "yes"; then AC_DEFINE(DIAGNOSTIC) AH_TEMPLATE(DIAGNOSTIC, [Define to 1 if you want a version with run-time diagnostic checking.])fiif test "$db_cv_debug_rop" = "yes"; then AC_DEFINE(DEBUG_ROP) AH_TEMPLATE(DEBUG_ROP, [Define to 1 if you want a version that logs read operations.])fiif test "$db_cv_debug_wop" = "yes"; then AC_DEFINE(DEBUG_WOP) AH_TEMPLATE(DEBUG_WOP, [Define to 1 if you want a version that logs write operations.])fiif test "$db_cv_umrw" = "yes"; then AC_DEFINE(UMRW) AH_TEMPLATE(UMRW, [Define to 1 to mask harmless uninitialized memory read/writes.])fiif test "$db_cv_test" = "yes"; then AC_DEFINE(CONFIG_TEST) AH_TEMPLATE(CONFIG_TEST, [Define to 1 if you want to build a version for running the test suite.])fi# Check for programs used in building and installation.AM_PROGRAMS_SETAC_PROG_INSTALLBUILD_TARGET="library_build"INSTALL_TARGET="library_install"# This is where we handle stuff that autoconf can't handle: compiler,# preprocessor and load flags, libraries that the standard tests don't# look for.## There are additional libraries we need for some compiler/architecture# combinations.## Some architectures require DB to be compiled with special flags and/or# libraries for threaded applications## The makefile CC may be different than the CC used in config testing,# because the makefile CC may be set to use $(LIBTOOL).## Don't override anything if it's already set from the environment.optimize_def="-O"case "$host_os" inaix4.3.*|aix5*) optimize_def="-O2" CC=${CC-"xlc_r"} CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" LDFLAGS="$LDFLAGS -Wl,-brtl";;bsdi3*) CC=${CC-"shlicc2"} LIBS="$LIBS -lipc";;cygwin*) CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_REENTRANT";;freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" LDFLAGS="$LDFLAGS -pthread";;gnu*|k*bsd*-gnu|linux*) CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_REENTRANT";;hpux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT";;irix*) optimize_def="-O2" CPPFLAGS="$CPPFLAGS -D_SGI_MP_SOURCE";;mpeix*) CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_SOCKET_SOURCE" LIBS="$LIBS -lsocket -lsvipc";;osf*) CPPFLAGS="$CPPFLAGS -pthread";;*qnx*) AC_DEFINE(HAVE_QNX) AH_TEMPLATE(HAVE_QNX, [Define to 1 if building on QNX.]);;solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT";;esac# Set CFLAGS/CXXFLAGS. We MUST set the flags before we call autoconf# compiler configuration macros, because if we don't, they set CFLAGS# to no optimization and -g, which isn't what we want.CFLAGS=${CFLAGS-$optimize_def}CXXFLAGS=${CXXFLAGS-"$CFLAGS"}# If the user wants a debugging environment, add -g to the CFLAGS value.## XXX# Some compilers can't mix optimizing and debug flags. The only way to# handle this is to specify CFLAGS in the environment before configuring.if test "$db_cv_debug" = "yes"; then AC_DEFINE(DEBUG) AH_TEMPLATE(DEBUG, [Define to 1 if you want a debugging version.]) CFLAGS="$CFLAGS -g" CXXFLAGS="$CXXFLAGS -g" db_cv_build_type=debugelse db_cv_build_type=releasefiAC_SUBST(db_cv_build_type)# The default compiler is cc (NOT gcc), the default CFLAGS is as specified# above, NOT what is set by AC_PROG_CC, as it won't set optimization flags# for any compiler other than gcc.AC_PROG_CC(cc gcc)# Set specific per-compiler flags.if test "$GCC" = "yes"; then # We want -O2 if we're using gcc. CFLAGS="$CFLAGS " CFLAGS=`echo "$CFLAGS" | sed 's/-O /-O2 /g'`else case "$host_os" in hpux11.0*) ;; hpux11*) CPPFLAGS="$CPPFLAGS -mt";; esacfi# Checks for compiler characteristics.DB_PROTO1="#undef __P"# AC_PROG_CC_STDC only sets ac_cv_prog_cc_stdc if the test fails, so# check for "no", not "yes".if test "$ac_cv_prog_cc_stdc" = "no"; then DB_PROTO2="#define __P(protos) ()"else DB_PROTO2="#define __P(protos) protos"fiAC_C_CONSTAC_SUBST(DB_CONST)if test "$ac_cv_c_const" != "yes"; then DB_CONST="#define const"fi# Because of shared library building, the ${CC} used for config tests# may be different than the ${CC} we want to put in the Makefile.# The latter is known as ${MAKEFILE_CC} in this script.MAKEFILE_CC="${CC}"MAKEFILE_CCLINK="${CC}"MAKEFILE_CXX="nocxx"MAKEFILE_CXXLINK="nocxx"# See if we need the C++ compiler at all. If so, we'd like to find one that# interoperates with the C compiler we chose. Since we prefered cc over gcc,# we'll also prefer the vendor's compiler over g++/gcc. If we're wrong, the# user can set CC and CXX in their environment before running configure.## AC_PROG_CXX sets CXX, but it uses $CXX and $CCC (in that order) as its# first choices.if test "$db_cv_cxx" = "yes"; then if test "$GCC" != "yes"; then case "$host_os" in aix*) AC_CHECK_TOOL(CCC, xlC_r) LIBXSO_LIBS="-lC_r $LIBXSO_LIBS" LIBS="-lC_r $LIBS";; hpux*) AC_CHECK_TOOL(CCC, aCC);; irix*) AC_CHECK_TOOL(CCC, CC);; osf*) AC_CHECK_TOOL(CCC, cxx);; solaris*) AC_CHECK_TOOL(CCC, CC);; esac fi AC_PROG_CXX ###### WORKAROUND: SEE SR #7938 AC_PROG_CXXCPP ############################### AC_CXX_HAVE_STDHEADERS MAKEFILE_CXX="${CXX}" MAKEFILE_CXXLINK="${CXX}"fi# Do some gcc specific configuration.AC_GCC_CONFIG1AC_GCC_CONFIG2# We need the -Kthread/-pthread flag when compiling on SCO/Caldera's UnixWare# and OpenUNIX releases. We can't make the test until we know which compiler# we're using.case "$host_os" insysv5UnixWare*|sysv5OpenUNIX8*) if test "$GCC" == "yes"; then CPPFLAGS="$CPPFLAGS -pthread" LDFLAGS="$LDFLAGS -pthread" else CPPFLAGS="$CPPFLAGS -Kthread" LDFLAGS="$LDFLAGS -Kthread" fi;;esac# Export our compiler preferences for the libtool configuration.export CC CCCCCC=CXX# Libtool configuration.AC_PROG_LIBTOOLSOFLAGS="-rpath \$(libdir)"LIBTOOL_PROG="${SHELL} ./libtool"# Set SOSUFFIX and friendsSOSUFFIX_CONFIGMODSUFFIX_CONFIGJMODSUFFIX_CONFIGINSTALLER="\$(LIBTOOL) --mode=install cp -p"MAKEFILE_CC="\$(LIBTOOL) --mode=compile ${MAKEFILE_CC}"MAKEFILE_SOLINK="\$(LIBTOOL) --mode=link ${MAKEFILE_CCLINK} -avoid-version"MAKEFILE_CCLINK="\$(LIBTOOL) --mode=link ${MAKEFILE_CCLINK}"MAKEFILE_CXX="\$(LIBTOOL) --mode=compile ${MAKEFILE_CXX}"MAKEFILE_XSOLINK="\$(LIBTOOL) --mode=link ${MAKEFILE_CXXLINK} -avoid-version"MAKEFILE_CXXLINK="\$(LIBTOOL) --mode=link ${MAKEFILE_CXXLINK}"LIBTOOL="\$(SHELL) ./libtool"case "$host_os" incygwin* | mingw*) MAKEFILE_SOLINK="$MAKEFILE_SOLINK -no-undefined" MAKEFILE_XSOLINK="$MAKEFILE_XSOLINK -no-undefined";;esac# Configure for shared libraries, static libraries, or both. If both are# configured, build the utilities and example programs with shared versions.## $o is set to ".o" or ".lo", and is the file suffix used in the Makefile# instead of .oif test `$LIBTOOL_PROG --config | grep build_libtool_libs | grep no` 2>/dev/null; then enable_shared="no"else enable_shared="yes"fiif test `$LIBTOOL_PROG --config | grep build_old_libs | grep no` 2>/dev/null; then enable_static="no"else enable_static="yes"ficase "$host_os" in darwin*) LIBTSO_MODULE="" LIBTSO_MODSUFFIX=".dylib" ;; *) LIBTSO_MODULE="-module" LIBTSO_MODSUFFIX=@MODSUFFIX@ ;;esac# C API.if test "$enable_shared" = "no"; then DEFAULT_LIB="\$(libdb_version)" POSTLINK=": " o=".o"else DEFAULT_LIB="\$(libso_target)" POSTLINK="\$(LIBTOOL) --mode=execute true" o=".lo"fiINSTALL_LIBS="$DEFAULT_LIB"if test "$enable_static" = "yes"; then INSTALL_LIBS="$INSTALL_LIBS \$(libdb)"fi# Optional C++ API.if test "$db_cv_cxx" = "yes"; then if test "$enable_shared" = "no"; then DEFAULT_LIB_CXX="\$(libcxx_version)" fi if test "$enable_shared" = "yes"; then DEFAULT_LIB_CXX="\$(libxso_target)" fi INSTALL_LIBS="$INSTALL_LIBS $DEFAULT_LIB_CXX" if test "$enable_static" = "yes"; then INSTALL_LIBS="$INSTALL_LIBS \$(libcxx)" fifi# Optional Java API.if test "$db_cv_java" = "yes"; then # Java requires shared libraries. if test "$enable_shared" = "no"; then AC_MSG_ERROR([Java requires shared libraries]) fi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -