# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) AC_INIT([Stasis],[0.1],[sears@cs.berkeley.edu]) AM_INIT_AUTOMAKE() #hello,0.1) #AM_INIT_AUTOMAKE([subdir-objects]) # @todo use subdir-objects once transition to libtool is done. AC_CONFIG_SRCDIR([config.h.in]) AC_CONFIG_HEADER([config.h]) AC_DEFINE([_GNU_SOURCE], [], [Use gnu extensions (needed for sync_data_range)]) # Checks for programs. #AC_PROG_CXX AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET ## Need AC_PROG_LIBTOOL AC_PROG_LIBTOOL AC_PROG_AWK AC_PROG_RANLIB AC_PROG_YACC AC_PROG_LEX # Checks for libraries. # For SWIG & Python # AC_PROG_LIBTOOL AM_PATH_PYTHON(2.3) AC_PROG_SWIG(1.3) SWIG_ENABLE_CXX SWIG_PYTHON AM_CONDITIONAL(HAVE_SWIG, test x"$have_swig" = "xyes") ## alas, it won't link if this is put in here.. instead, it's linked in manually in the test directory... #AC_ARG_ENABLE(efence, #[ --enable-efence Use electric fence (www.perens.com)], #[case "$enableval" in \ # yes) efence=yes ;; \ # no) efence=no;; \ # *) efence=no;; \ #esac], [efence=no]) # #dnl Check for efence #if test $efence = yes; then #AC_CHECK_LIB(efence,memalign) #fi # Linux has a broken O_DIRECT flag, but we allow people to override it from # the command line. test_host_prw=yes AC_CACHE_CHECK([for open/O_DIRECT], db_cv_open_o_direct, [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include #include ]], [[ open("a", O_RDONLY | O_DIRECT, 0); ]])],[db_cv_open_o_direct=yes; test_host_prw=no],[db_cv_open_o_direct=no])]) if test "$test_host_prw" = "no" -a "$db_cv_open_o_direct" = "yes"; then case "$host_os" in linux*) # odirect probably works in linux now... # db_cv_open_o_direct=no; # AC_MSG_WARN( # [O_DIRECT interface ignored on $host_os-$host_vendor.]);; esac fi if test "$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.]) fi #AC_CHECK_LIB([check], [suite_create]) #AC_CHECK_LIB([check], [suite_create], # have_libcheck=yes, # have_libcheck=no) # #if test x$have_libcheck = xyes ; then #AM_CONDITIONAL(HAVE_LIBCHECK, true) #else #AM_CONDITIONAL(HAVE_LIBCHECK, false) #AC_MSG_WARN([Check not found; cannot run unit tests!]) #fi AC_CHECK_LIB([m], [sqrt]) AC_CHECK_LIB([pthread], [pthread_create]) AC_ARG_ENABLE([network], AS_HELP_STRING(--disable-network,Disable old networking code), if test x$enableval = xno ; then echo "Networking disabled; not checking for confuse"; have_libconfuse=no else AC_CHECK_LIB([confuse], [cfg_set_validate_func], have_libconfuse=yes, have_libconfuse=no) fi, AC_CHECK_LIB([confuse], [cfg_set_validate_func], have_libconfuse=yes, have_libconfuse=no) ) AM_CONDITIONAL(HAVE_LIBCONFUSE, test x$have_libconfuse = xyes) AC_ARG_ENABLE([pobj], AS_HELP_STRING(--disable-pobj,Don't build pobj), AM_CONDITIONAL(BUILD_POBJ, test x$enableval = xyes), AM_CONDITIONAL(BUILD_POBJ, true) ) AC_ARG_ENABLE([benchmarks], AS_HELP_STRING(--disable-benchmarks,Don't build benchmarks), if test x$enableval = xyes ; then build_benchmarks=yes else build_benchmarks=no fi, build_benchmarks=yes ) AC_CONFIG_DB AM_CONDITIONAL(DB_ENABLED, test $DB_ENABLED = 1) if test x$build_benchmarks = xyes ; then if test $DB_ENABLED = 0; then AC_MSG_WARN([Could not find Berkeley DB; some benchmarks will not be built]) fi AM_CONDITIONAL(BUILD_BENCHMARKS, true) else AM_CONDITIONAL(BUILD_BENCHMARKS, false) fi AC_CHECK_LIB([intl], [bindtextdomain]) AC_CHECK_LIB([c], [bindtextdomain]) # Checks for header files. AC_HEADER_DIRENT AC_FUNC_ALLOCA AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_CHECK_HEADERS([arpa/inet.h fcntl.h limits.h malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h strings.h sys/socket.h sys/time.h syslog.h unistd.h errno.h]) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE #AC_TYPE_INT64_T #AC_TYPE_UINT64_T AC_TYPE_OFF_T AC_TYPE_PID_T AC_TYPE_SIZE_T #AC_TYPE_SSIZE_T AC_HEADER_TIME AC_STRUCT_TM #enable largefile support. AC_SYS_LARGEFILE # Checks for library functions. AC_FUNC_ERROR_AT_LINE ## Assume we have these, and that they work. ## (otherwise, bad stuff happens sometimes) #AC_FUNC_MALLOC #AC_FUNC_REALLOC AC_FUNC_MEMCMP AC_FUNC_STAT AC_FUNC_VPRINTF AC_CHECK_FUNCS([bzero fdatasync floor ftruncate getcwd gettimeofday inet_ntoa localtime_r memmove memset mkdir posix_memalign pow powl socket sqrt strchr strdup strerror strrchr strstr strtol strtoul sync_file_range tcase_set_timeout]) #AC_CONFIG_LIBMYSQLD AC_CONFIG_FILES([Makefile benchmarks/Makefile benchmarks/berkeleyDB/Makefile libdfa/Makefile stasis/Makefile src/2pc/Makefile src/Makefile src/apps/Makefile src/apps/cht/Makefile src/apps/readOnlyHash/Makefile src/apps/cyrus/Makefile src/apps/referential/Makefile src/libdfa/Makefile src/stasis/Makefile src/pobj/Makefile src/timing/Makefile test/2pc/Makefile test/Makefile test/cht/Makefile test/dfa/Makefile test/lladd-old/Makefile test/stasis/Makefile test/messages/Makefile test/monotree/Makefile test/pobj/Makefile utilities/Makefile utilities/swig/Makefile examples/Makefile ]) AC_OUTPUT