📄 configure.ac
字号:
# A classpath that includes . is needed to check for Java CLASSPATH=".:$CLASSPATH" export CLASSPATH AC_PROG_JAVAC AC_PROG_JAR AC_PROG_JAVA AC_JNI_INCLUDE_DIR AC_MSG_CHECKING(java version) case "$JAVA" in *kaffe* ) JAVA_VERSION=`$JAVA -version 2>&1 | sed -e '/Java Version:/!d' -e 's/.*Java Version: \([[^ ]]*\)[[ ]]*/\1/'` ;; * ) JAVA_VERSION=`$JAVA -version 2>&1 | sed -e '/ version /!d' -e 's/.*"\(.*\)".*/\1/'` ;; esac AC_MSG_RESULT($JAVA_VERSION) case "$JAVA_VERSION" in 1.[[3456789]]* | 1.[[1-9]][[0-9]]* | [[23456789]]* ) ;; * ) AC_MSG_ERROR([Java version 1.3 or higher required, got $JAVA_VERSION]) ;; esac for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS do CPPFLAGS="$CPPFLAGS -I$JNI_INCLUDE_DIR" done ADDITIONAL_LANG="$ADDITIONAL_LANG java" INSTALL_LIBS="$INSTALL_LIBS \$(libjso_target)"else JAVAC=nojavacfi# MinGW support.if test "$db_cv_mingw" = "yes"; then OSDIR=os_win32 PATH_SEPARATOR="\\\\/:" AC_DEFINE(DB_WIN32) AC_DEFINE(STDC_HEADERS)else OSDIR=os PATH_SEPARATOR="/"fi# Checks for include files, structures, C types.AC_HEADER_STATAC_HEADER_TIMEAC_HEADER_DIRENTAC_CHECK_HEADERS(sys/select.h sys/time.h sys/fcntl.h)AC_CHECK_MEMBERS([struct stat.st_blksize])AM_TYPESAC_CACHE_CHECK([for ANSI C exit success/failure values], db_cv_exit_defines, [AC_TRY_COMPILE([#include <stdlib.h>], return (EXIT_SUCCESS);, [db_cv_exit_defines=yes], [db_cv_exit_defines=no])])if test "$db_cv_exit_defines" = "yes"; then AC_DEFINE(HAVE_EXIT_SUCCESS) AH_TEMPLATE(HAVE_EXIT_SUCCESS, [Define to 1 if you have EXIT_SUCCESS/EXIT_FAILURE #defines.])fi# Test for various functions/libraries -- do tests that change library values# first.## The Berkeley DB library calls fdatasync, and it's only available in -lrt on# Solaris. See if we can find it either without additional libraries or in# -lrt. If fdatasync is found in -lrt, add -lrt to the Java and Tcl shared# library link lines.AC_SEARCH_LIBS(fdatasync, rt, [dnl if test "$ac_cv_search_fdatasync" != "none required" ; then LIBJSO_LIBS="$LIBJSO_LIBS -lrt"; LIBSO_LIBS="$LIBSO_LIBS -lrt"; LIBTSO_LIBS="$LIBTSO_LIBS -lrt"; fi])# The test and example programs use the sched_yield function, taken from -lrt# on Solaris.AC_SEARCH_LIBS(sched_yield, rt)# !!!# We can't check for pthreads in the same way we did the test for sched_yield# because the Solaris C library includes pthread interfaces which are not# inter-process safe. For that reason we always add -lpthread if we find a# pthread library.## We can't depend on any specific call existing (pthread_create, for example),# as it may be #defined in an include file -- OSF/1 (Tru64) has this problem.AC_HAVE_LIBRARY(pthread, TEST_LIBS="$TEST_LIBS -lpthread")# !!!# We could be more exact about whether these libraries are needed, but don't# bother -- if they exist, we load them, it's only the test programs anyway.AC_HAVE_LIBRARY(m, TEST_LIBS="$TEST_LIBS -lm")AC_HAVE_LIBRARY(socket, TEST_LIBS="$TEST_LIBS -lsocket")AC_HAVE_LIBRARY(nsl, TEST_LIBS="$TEST_LIBS -lnsl")# Check for mutexes.# We do this here because it changes $LIBS.AM_DEFINE_MUTEXES# Checks for system functions for which we have replacements.## XXX# The only portable getcwd call is getcwd(char *, size_t), where the# buffer is non-NULL -- Solaris can't handle a NULL buffer, and they# deleted getwd().AC_REPLACE_FUNCS(getcwd getopt memcmp memcpy memmove raise)AC_REPLACE_FUNCS(strcasecmp strdup strerror strtol strtoul)# Check for system functions we optionally use.AC_CHECK_FUNCS(_fstati64 clock_gettime directio fdatasync ftruncate getrusage)AC_CHECK_FUNCS(gettimeofday getuid pstat_getdynamic rand sched_yield)AC_CHECK_FUNCS(select snprintf srand sysconf vsnprintf yield)# Pread/pwrite.# HP-UX has pread/pwrite, but it doesn't work with largefile support.# NCR's version of System V R 4.3 has pread/pwrite symbols, but no support.case "$host_os-$host_vendor" inhpux*|sysv4.3*-ncr) AC_MSG_WARN( [pread/pwrite interfaces ignored on $host_os-$host_vendor.]);;*) AC_CHECK_FUNCS(pread pwrite);;esac# Check for fcntl(2) to deny child process access to file descriptors.AC_CACHE_CHECK([for fcntl/F_SETFD], db_cv_fcntl_f_setfd, [AC_TRY_LINK([#include <sys/types.h>#include <fcntl.h>], [ fcntl(1, F_SETFD, 1);], [db_cv_fcntl_f_setfd=yes], [db_cv_fcntl_f_setfd=no])])if test "$db_cv_fcntl_f_setfd" = "yes"; then AC_DEFINE(HAVE_FCNTL_F_SETFD) AH_TEMPLATE(HAVE_FCNTL_F_SETFD, [Define to 1 if fcntl/F_SETFD denies child access to file descriptors.])fi# A/UX has a broken getopt(3).case "$host_os" inaux*) AC_LIBOBJ([getopt]);;esac# Linux has a broken O_DIRECT flag, but you can't detect it at configure time.# Linux and SGI require buffer alignment we may not match, otherwise writes# will fail. Default to not using the O_DIRECT flag.if test "$db_cv_o_direct" = "yes"; then AC_CACHE_CHECK([for open/O_DIRECT], db_cv_open_o_direct, [ AC_TRY_LINK([ #include <sys/types.h> #include <fcntl.h>], [ open("a", O_RDONLY | O_DIRECT, 0); ], [db_cv_open_o_direct=yes], [db_cv_open_o_direct=no])]) if test \ "$db_cv_o_direct" = "yes" -a "$db_cv_open_o_direct" = "yes"; then AC_DEFINE(HAVE_O_DIRECT) AH_TEMPLATE(HAVE_O_DIRECT, [Define to 1 if you have the O_DIRECT flag.]) fifi# Check for largefile support.AC_SYS_LARGEFILE# Figure out how to create shared regions.## First, we look for mmap.## BSD/OS has mlock(2), but it doesn't work until the 4.1 release.## Nextstep (version 3.3) apparently supports mmap(2) (the mmap symbol# is defined in the C library) but does not support munmap(2). Don't# try to use mmap if we can't find munmap.## Ultrix has mmap(2), but it doesn't work.mmap_ok=nocase "$host_os" inbsdi3*|bsdi4.0) AC_MSG_WARN([mlock(2) interface ignored on $host_os-$host_vendor.]) mmap_ok=yes AC_CHECK_FUNCS(mmap munmap, , mmap_ok=no);;ultrix*) AC_MSG_WARN([mmap(2) interface ignored on $host_os-$host_vendor.]);;*) mmap_ok=yes AC_CHECK_FUNCS(mlock munlock) AC_CHECK_FUNCS(mmap munmap, , mmap_ok=no);;esac# Second, we look for shmget.## SunOS has the shmget(2) interfaces, but there appears to be a missing# #include <debug/debug.h> file, so we ignore them.shmget_ok=nocase "$host_os" insunos*) AC_MSG_WARN([shmget(2) interface ignored on $host_os-$host_vendor.]);;*) shmget_ok=yes AC_CHECK_FUNCS(shmget, , shmget_ok=no);;esac# We require either mmap/munmap(2) or shmget(2).if test "$mmap_ok" = "no" -a "$shmget_ok" = "no"; then AC_MSG_WARN([Neither mmap/munmap(2) or shmget(2) library functions.])fi# Optional RPC client/server.if test "$db_cv_rpc" = "yes"; then AM_RPC_CONFIGUREfi# Optional Tcl support.if test "$db_cv_tcl" = "yes"; then AM_TCL_LOADfi# Optional sequence code.AM_SEQUENCE_CONFIGURE# Optional DB 1.85 compatibility API.if test "$db_cv_compat185" = "yes"; then ADDITIONAL_INCS="db_185.h $ADDITIONAL_INCS" ADDITIONAL_OBJS="db185${o} $ADDITIONAL_OBJS"fi# Optional utilities.if test "$db_cv_dump185" = "yes"; then ADDITIONAL_PROGS="db_dump185 $ADDITIONAL_PROGS"fi# You can disable pieces of functionality to save space.## Btree is always configured: it is the standard method, and Hash off-page# duplicates require it.ADDITIONAL_OBJS="$ADDITIONAL_OBJS \$(BTREE_OBJS)"# Hash can be disabled.if test "$db_cv_build_hash" = "yes"; then AC_DEFINE(HAVE_HASH) AH_TEMPLATE(HAVE_HASH, [Define to 1 if building Hash access method.]) ADDITIONAL_OBJS="$ADDITIONAL_OBJS \$(HASH_OBJS)" if test "$db_cv_build_verify" = "yes"; then ADDITIONAL_OBJS="$ADDITIONAL_OBJS \$(HASH_VRFY_OBJS)" fielse ADDITIONAL_OBJS="$ADDITIONAL_OBJS hash_stub${o}"fi# Queue can be disabled.if test "$db_cv_build_queue" = "yes"; then AC_DEFINE(HAVE_QUEUE) AH_TEMPLATE(HAVE_QUEUE, [Define to 1 if building Queue access method.]) ADDITIONAL_OBJS="$ADDITIONAL_OBJS \$(QUEUE_OBJS)" if test "$db_cv_build_verify" = "yes"; then ADDITIONAL_OBJS="$ADDITIONAL_OBJS \$(QUEUE_VRFY_OBJS)" fielse ADDITIONAL_OBJS="$ADDITIONAL_OBJS qam_stub${o}"fi# Replication can be disabled.if test "$db_cv_build_replication" = "yes"; then AC_DEFINE(HAVE_REPLICATION) AH_TEMPLATE(HAVE_REPLICATION, [Define to 1 if building replication support.]) ADDITIONAL_OBJS="$ADDITIONAL_OBJS \$(REP_OBJS)"else ADDITIONAL_OBJS="$ADDITIONAL_OBJS rep_stub${o}"fi# The statistics code can be disabled.if test "$db_cv_build_statistics" = "yes"; then AC_DEFINE(HAVE_STATISTICS) AH_TEMPLATE(HAVE_STATISTICS, [Define to 1 if building statistics support.])fi# The verification code can be disabled.if test "$db_cv_build_verify" = "yes"; then AC_DEFINE(HAVE_VERIFY) AH_TEMPLATE(HAVE_VERIFY, [Define to 1 if building access method verification support.]) ADDITIONAL_OBJS="$ADDITIONAL_OBJS \$(BTREE_VRFY_OBJS)"else ADDITIONAL_OBJS="$ADDITIONAL_OBJS db_vrfy_stub${o}"fi# The crypto code can be disabled.if test -d "$srcdir/../crypto" -a "$db_cv_build_cryptography" = "yes"; then AC_DEFINE(HAVE_CRYPTO) AH_TEMPLATE(HAVE_CRYPTO, [Define to 1 if Berkeley DB release includes strong cryptography.]) CRYPTO_OBJS="\$(CRYPTO_OBJS)"else CRYPTO_OBJS="crypto_stub${o}"fi# We need to add the additional object files into the Makefile with the correct# suffix. We can't use $LTLIBOBJS itself, because that variable has $U encoded# in it for automake, and that's not what we want. See SR #7227 for additional# information.## XXX: I'm not sure this is correct.REPLACEMENT_OBJS=`echo "$LIB@&t@OBJS" | sed "s,\.[[^.]]* ,$o ,g;s,\.[[^.]]*$,$o,"`# This is necessary so that .o files in LIBOBJS are also built via# the ANSI2KNR-filtering rules.LIB@&t@OBJS=`echo "$LIB@&t@OBJS" | sed 's,\.[[^.]]* ,$U&,g;s,\.[[^.]]*$,$U&,'`LTLIBOBJS=`echo "$LIB@&t@OBJS" | sed 's,\.[[^.]]* ,.lo ,g;s,\.[[^.]]*$,.lo,'`AC_SUBST(LTLIBOBJS)# Initial output file list.CREATE_LIST="Makefile db_cxx.h:$srcdir/../dbinc/db_cxx.in db_int.h:$srcdir/../dbinc/db_int.in include.tcl:$srcdir/../test/include.tcl"# MinGW needs win_db.h.if test "$db_cv_mingw" = "yes"; thenCREATE_LIST="$CREATE_LIST win_db.h:$srcdir/win_db.in"fi# Create the db.h file from a source file, a list of global function# prototypes, and, if configured for unique names, a list of #defines# to do DB_VERSION_UNIQUE_NAME substitution.if test "$db_cv_uniquename" = "yes"; then CREATE_LIST="$CREATE_LIST db.h:$srcdir/../dbinc/db.in:$srcdir/../dbinc_auto/ext_def.in:$srcdir/../dbinc_auto/ext_prot.in"else CREATE_LIST="$CREATE_LIST db.h:$srcdir/../dbinc/db.in:$srcdir/../dbinc_auto/ext_prot.in"fi# If configured for unique names, create the db_int_uext.h file (which# does the DB_VERSION_UNIQUE_NAME substitution), which is included by# the db_int.h file.if test "$db_cv_uniquename" = "yes"; then CREATE_LIST="$CREATE_LIST db_int_def.h:$srcdir/../dbinc_auto/int_def.in" db_int_def='#include "db_int_def.h"'fi# Create the db_185.h and db185_int.h files from source files, a list of# global function prototypes, and, if configured for unique names, a list# of #defines to do DB_VERSION_UNIQUE_NAME substitution.if test "$db_cv_compat185" = "yes"; then if test "$db_cv_uniquename" = "yes"; then CREATE_LIST="$CREATE_LIST db_185.h:$srcdir/../dbinc/db_185.in:$srcdir/../dbinc_auto/ext_185_def.in:$srcdir/../dbinc_auto/ext_185_prot.in db185_int.h:$srcdir/../db185/db185_int.in:$srcdir/../dbinc_auto/ext_185_def.in:$srcdir/../dbinc_auto/ext_185_prot.in" else CREATE_LIST="$CREATE_LIST db_185.h:$srcdir/../dbinc/db_185.in:$srcdir/../dbinc_auto/ext_185_prot.in db185_int.h:$srcdir/../db185/db185_int.in:$srcdir/../dbinc_auto/ext_185_prot.in" fifiAC_CONFIG_FILES($CREATE_LIST)AC_OUTPUT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -