123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405 |
- # configure.ac -*- autoconf -*- vim: filetype=config
- #
- # Gearman server and library
- # Copyright (C) 2011-2014 Data Differential, http://datadifferential.com/
- # Copyright (C) 2008 Brian Aker, Eric Day, Monty Taylor
- # All rights reserved.
- #
- # Use and distribution licensed under the BSD license. See
- # the COPYING file in this directory for full text.
- m4_include([./version.m4])
- AC_REVISION([m4_esyscmd_s([git describe --always])])
- AC_PREREQ([2.69])
- AC_INIT([gearmand],[VERSION_NUMBER],[https://github.com/gearman/gearmand/issues],[gearmand],[http://gearman.info/])
- AC_CONFIG_AUX_DIR([build-aux])
- # Setup the compilers early on
- AC_PROG_CC([cc gcc clang])
- AC_PROG_CXX([c++ g++ clang++])
- AC_CONFIG_MACRO_DIR([m4])
- AC_CANONICAL_HOST
- AC_ARG_PROGRAM
- AC_USE_SYSTEM_EXTENSIONS
- AX_GENERATE_CHANGELOG
- AM_INIT_AUTOMAKE([1.11 color-tests -Wno-portability subdir-objects foreign tar-ustar])
- AC_CONFIG_HEADERS([gear_config.h:gear_config.in])dnl Keep filename to 8.3 for MS-DOS.
- AC_SUBST([AUTOHEADER_FILE],[gear_config.h])
- AC_CONFIG_SRCDIR([libgearman/gearman.cc])
- GEARMAN_LIBRARY_VERSION=8:0:0
- # | | |
- # +------+ | +---+
- # | | |
- # current:revision:age
- # | | |
- # | | +- increment if interfaces have been added
- # | | set to zero if interfaces have been removed
- # | | or changed
- # | +- increment if source code has changed
- # | set to zero if current is incremented
- # +- increment if interfaces have been added, removed or changed
- AC_SUBST([GEARMAN_LIBRARY_VERSION])
- LT_PREREQ([2.2])
- LT_INIT([dlopen])
- LT_LANG([C++])
- LT_LIB_M
- AC_SUBST([lt_cv_dlopen_libs])
- # AC_REQUIRE(AC_PROG_CC)
- AC_DEFUN([CHECK_CXX0X],[
- AC_LANG_PUSH([C++])
- AX_CHECK_COMPILE_FLAG([-std=c++0x],[
- CXX_STD="c++0x"])
- AC_LANG_POP([C++])
- ])
- CHECK_CXX0X
- AX_PLATFORM
- m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
- # First look for Boost, maybe for a specific minimum version:
- AC_DEFUN([CHECK_BOOST],
- [AX_BOOST_BASE([1.39],,[AC_MSG_ERROR(could not find boost)])
- AX_BOOST_PROGRAM_OPTIONS])
- CHECK_BOOST
- m4_include([libhashkit/include.m4])
- AX_CXX_CINTTYPES
- CONFIG_EXTRA
- m4_include([libtest/yatl.m4])
- AM_CONDITIONAL([BUILDING_GEARMAN],true)
- AM_CONDITIONAL([HAVE_LIBGEARMAN],true)
- AC_SUBST([_WITH_LIBGEARMAN_SUPPORT],["_WITH_LIBGEARMAN_SUPPORT 0"])
- AC_DEFINE([GEARMAND_BINARY],["./gearmand/gearmand"],[Name of the gearmand binary used in make test])
- AC_DEFINE([HAVE_LIBGEARMAN],[1], [libgearman support])
- AC_DEFINE([HAVE_GEARMAND_BINARY],[1],[gearmand binary was found])
- AC_DEFUN([CHECK_CURL],
- [AX_LIB_CURL([7.21.7],
- [AX_CHECK_LIBRARY([LIBCURL],[curl/curl.h],[curl])],
- [AC_DEFINE([HAVE_LIBCURL],[0],[Have the LIBCURL library])
- ])
- ])
- CHECK_CURL
- AM_CONDITIONAL([HAVE_LIBCURL],[test "x${ax_cv_have_LIBCURL}" = "xyes"])
- m4_include([m4/drizzled.m4])
- WITH_LIBDRIZZLE
- AX_LIB_SQLITE3
- AS_IF([test "x${WANT_SQLITE3}" = "xyes"],
- [AC_DEFINE([HAVE_LIBSQLITE3],[1],[Have the SQLITE3 library])],
- [AC_DEFINE([HAVE_LIBSQLITE3],[0],[Have the SQLITE3 library])])
- AM_CONDITIONAL([HAVE_LIBSQLITE3],[test "x${WANT_SQLITE3}" = "xyes"])
- PANDORA_ENABLE_DTRACE
- AX_HAVE_LIBPQ
- PANDORA_HAVE_LIBTOKYOCABINET
- AC_FUNC_STRERROR_R
- SOCKET_SEND_FLAGS
- FCNTL_FLAGS
- AX_ENABLE_LIBHIREDIS
- # Checks for programs.
- AC_CHECK_PROGS([DPKG_GENSYMBOLS],[dpkg-gensymbols])
- AC_CHECK_PROGS([OPENSSL],[openssl])
- AC_CHECK_PROGS([VALGRIND],['valgrind'])
- AC_CHECK_PROGS([WINE],['wine'])
- AC_CHECK_PROGS([RPMBUILD],[rpmbuild --nocheck])
- AC_CHECK_PROGS([RPMDEV_SETUPTREE],[rpmdev-setuptree])
- AC_CHECK_PROGS([RPM],[rpm])
- AC_PATH_PROG([GPERF],['gperf'],[])
- AS_IF([test -z "$GPERF"],
- [AC_MSG_ERROR([Unable to find gperf])])
- AC_PROG_AWK
- AC_PROG_INSTALL
- AC_PROG_LN_S
- AC_PROG_MAKE_SET
- AX_PROG_MEMCACHED
- AX_PROG_SPHINX_BUILD(,[AC_MSG_WARN([sphinx-build version 1.0 or greater is required to build man pages])])
- AX_WITH_PROG([LCOV],[lcov])
- AX_WITH_PROG([LCOV_GENHTML],[genhtml])
- AC_HEADER_SYS_WAIT
- AC_CHECK_HEADERS_ONCE([arpa/inet.h])
- AC_CHECK_HEADERS_ONCE([errno.h])
- AC_CHECK_HEADERS_ONCE([execinfo.h])
- AC_CHECK_HEADERS_ONCE([fcntl.h])
- AC_CHECK_HEADERS_ONCE([features.h])
- AC_CHECK_HEADERS_ONCE([fnmatch.h])
- AC_CHECK_HEADERS_ONCE([getopt.h])
- AC_CHECK_HEADERS_ONCE([inttypes.h])
- AC_CHECK_HEADERS_ONCE([limits.h])
- AC_CHECK_HEADERS_ONCE([mach/mach.h])
- AC_CHECK_HEADERS_ONCE([netdb.h])
- AC_CHECK_HEADERS_ONCE([netinet/in.h])
- AC_CHECK_HEADERS_ONCE([netinet/tcp.h])
- AC_CHECK_HEADERS_ONCE([poll.h])
- AC_CHECK_HEADERS_ONCE([pwd.h])
- AC_CHECK_HEADERS_ONCE([signal.h])
- AC_CHECK_HEADERS_ONCE([spawn.h])
- AC_CHECK_HEADERS_ONCE([stdarg.h])
- AC_CHECK_HEADERS_ONCE([stddef.h])
- AC_CHECK_HEADERS_ONCE([stdint.h])
- AC_CHECK_HEADERS_ONCE([stdio.h])
- AC_CHECK_HEADERS_ONCE([stdlib.h])
- AC_CHECK_HEADERS_ONCE([string.h])
- AC_CHECK_HEADERS_ONCE([strings.h])
- AC_CHECK_HEADERS_ONCE([sys/epoll.h])
- AC_CHECK_HEADERS_ONCE([sys/resource.h])
- AC_CHECK_HEADERS_ONCE([sys/socket.h])
- AC_CHECK_HEADERS_ONCE([sys/stat.h])
- AC_CHECK_HEADERS_ONCE([sys/time.h])
- AC_CHECK_HEADERS_ONCE([sys/types.h])
- AC_CHECK_HEADERS_ONCE([sys/utsname.h])
- AC_CHECK_HEADERS_ONCE([sys/wait.h])
- AC_CHECK_HEADERS_ONCE([syslog.h])
- AC_CHECK_HEADERS_ONCE([unistd.h])
- AC_CHECK_HEADERS_ONCE([winsock2.h])
- AC_CHECK_HEADERS_ONCE([libmemcached-1.0/types/return.h])
- AC_CHECK_DECL([htonll],[AC_DEFINE([HAVE_HTONLL],[1],
- [Define to 1 if you have htonll.])])
- AM_CONDITIONAL([BUILD_WIN32_WRAPPERS],[test "x$ac_cv_header_winsock2_h" = "xyes"])
- AS_IF([test "x$ac_cv_header_winsock2_h" = "xyes"],
- [AM_LDFLAGS="$AM_LDFLAGS -lws2_32"
- AM_CFLAGS="$AM_CFLAGS $NO_WERROR"
- AM_CXXFLAGS="$AM_CXXFLAGS $NO_WERROR"
- ])
- # Checks for typedefs, structures, and compiler characteristics.
- AC_CHECK_TYPES([ptrdiff_t])
- AC_C_CONST
- AC_C_INLINE
- AC_C_VOLATILE
- AC_HEADER_STDBOOL
- AC_CHECK_HEADERS_ONCE([sys/time.h])
- AC_TYPE_INT32_T
- AC_TYPE_INT64_T
- AC_TYPE_OFF_T
- AC_TYPE_PID_T
- AC_TYPE_SIZE_T
- AC_TYPE_SSIZE_T
- AC_TYPE_UID_T
- AC_TYPE_UINT16_T
- AC_TYPE_UINT32_T
- AC_TYPE_UINT64_T
- AC_TYPE_UINT8_T
- # Checks for library functions.
- AC_FUNC_ERROR_AT_LINE
- AC_FUNC_FORK
- AC_FUNC_MEMCMP
- AC_FUNC_STRERROR_R
- AC_FUNC_VPRINTF
- AC_REPLACE_FNMATCH
- AC_CHECK_FUNCS([accept4])
- AC_CHECK_FUNCS([dup2])
- AC_CHECK_FUNCS([fork])
- AC_CHECK_FUNCS([gettimeofday])
- AC_CHECK_FUNCS([memchr])
- AC_CHECK_FUNCS([memmove])
- AC_CHECK_FUNCS([memset])
- AC_CHECK_FUNCS([pipe])
- AC_CHECK_FUNCS([pipe2])
- AC_CHECK_FUNCS([select])
- AC_CHECK_FUNCS([setenv])
- AC_CHECK_FUNCS([socket])
- AC_CHECK_FUNCS([strcasecmp])
- AC_CHECK_FUNCS([strdup])
- AC_CHECK_FUNCS([strerror])
- AC_CHECK_FUNCS([strncasecmp])
- AC_CHECK_FUNCS([strtol])
- AC_CHECK_FUNCS([strtoul])
- AC_CHECK_FUNCS([uname])
- AC_CHECK_FUNCS([atexit])
- AC_CHECK_FUNCS([getcwd])
- AC_CHECK_FUNCS([strstr])
- AC_CHECK_FUNC([setsockopt],[],[AC_CHECK_LIB([socket],[setsockopt])])
- AC_CHECK_FUNC([bind],[],[AC_CHECK_LIB([bind],[bind])])
- # Check for -lrt
- AC_CHECK_LIB([rt],[clock_gettime],
- [AX_SAVE_FLAGS
- LIBS="$LIB -lrt"
- AC_CHECK_FUNCS([clock_gettime])
- AX_RESTORE_FLAGS
- AC_SUBST([RT_LIB],[-lrt])
- AC_DEFINE([HAVE_LIBRT],[1],[Have -lrt])
- ],
- [AC_CHECK_FUNCS([clock_gettime])])
- # Check for OPENSSL
- AX_CHECK_OPENSSL([have_openssl=yes
- AC_DEFINE([HAVE_OPENSSL],[1],[Enable openssl Support])],
- [have_openssl=no])
- AM_CONDITIONAL([ENABLE_OPENSSL],[test "x${have_openssl}" = "xyes"])
- # Check for wolfSSL
- AX_CHECK_WOLFSSL([have_wolfssl=yes],[have_wolfssl=no])
- AM_CONDITIONAL([ENABLE_WOLFSSL],[test "x${have_wolfssl}" = "xyes"])
- AC_DEFUN([AX_ENABLE_SSL],
- [AC_PREREQ([2.69])dnl
- m4_define([_SSL_ENABLE_DEFAULT], [m4_if($1, no, no, no)])dnl
- AC_ARG_ENABLE([ssl],
- [AS_HELP_STRING([--enable-ssl],
- [Enable ssl support for Gearman @<:@default=]_SSL_ENABLE_DEFAULT[@:>@])],
- [AS_CASE([$enableval],
- [yes],[enable_ssl=yes],
- [no],[enable_ssl=no],
- [enable_ssl=no])
- ],
- [enable_ssl=]_SSL_ENABLE_DEFAULT)
- AS_IF([test "x${enable_ssl}" = "xyes"],
- [AS_IF([test "x${have_wolfssl}" = "xyes"],
- [AC_DEFINE([HAVE_SSL],[1],[Enable SSL Support])
- AC_DEFINE([HAVE_OPENSSL],[0],[Enable OPENSSL Support])
- ],
- [AS_IF([test "x${have_openssl}" = "xyes"],
- [AC_DEFINE([HAVE_SSL],[1],[Enable SSL Support])]
- )]
- )
- ]
- )
- AM_CONDITIONAL([ENABLE_SSL],[test "x${enable_ssl}" = "xyes"])
- ])
- if [ test "x${enable_ssl}" = "xyes" ]; then
- if ! [ test "x${have_openssl}" = "xyes" ] && ! [ test "x${have_wolfssl}" = "xyes" ]; then
- AC_MSG_ERROR([Unable to find either openssl or wolfssl])
- fi
- fi
- AX_ENABLE_SSL
- AX_ENABLE_LIBMEMCACHED
- AC_DEFINE([GEARMAND_BLOBSLAP_WORKER],[1],[Have Gearman Blobslap Worker])
- AX_LIBEVENT(,[AC_MSG_ERROR([Unable to find libevent])])
- AX_LIBEVENT2(,[AC_MSG_ERROR([Unable to find libevent2])])
- AX_LIBEVENT2_PTHREADS(,[AC_MSG_ERROR([Unable to find libevent_pthreads])])
- AX_UUID(,[AC_MSG_ERROR([Unable to find libuuid])])
- AX_UUID_GENERATE_TIME_SAFE
- AX_AM_JOBSERVER([yes])
- AS_IF([test "x${TARGET_LINUX}" = "xtrue"],
- [AC_DEFINE([BUILD_LIBHOSTILE],[1],[Build libhostile])],[AC_DEFINE([BUILD_LIBHOSTILE],[0],[Build libhostile])])
- AM_CONDITIONAL([TARGET_HOSTILE],[test "x${TARGET_LINUX}" = "xtrue"])
- AC_DEFUN([CHECK_FOR_PTHREAD_AND_SASL],
- [AC_LANG_PUSH([C++])
- AX_PTHREAD(, [AC_MSG_ERROR(could not find Posix Pthread support)])
- AX_PTHREAD_TIMEDJOIN_NP
- AC_LANG_POP([C++])
- ])
- CHECK_FOR_PTHREAD_AND_SASL
- AX_ENDIAN
- AX_HEX_VERSION([LIBGEARMAN],[$VERSION])
- AC_SUBST([RPM_RELEASE],[1])
- AX_HARDEN_COMPILER_FLAGS
- AM_CONDITIONAL([TARGET_MINGW],[test "x${MINGW}" = "xtrue"])
- # backtrace(), others require shared builds
- AS_IF([test "x$enable_shared" = "xyes"],
- [AC_DEFINE([HAVE_SHARED_ENABLED],[1],[Enable code which requires shared library support. Like backtrace().])
- AX_CXX_GCC_ABI_DEMANGLE])
- AM_CONDITIONAL([SHARED_ENABLED],[test "x$enable_shared" = "xyes"])
- AC_CONFIG_FILES([Makefile
- docs/source/conf.py
- libgearman-1.0/version.h
- scripts/gearmand
- scripts/gearmand.xml
- scripts/smf_install.sh
- support/gearmand.init
- support/gearmand.pc
- support/gearmand.spec])
- AS_IF([test "x${ax_enable_debug}" = "xyes"],
- [AC_DEFUN([CHECK_CXX11],
- [AC_LANG_PUSH([C++])
- AX_CHECK_COMPILE_FLAG([-std=c++11], [CXX_STD="c++11"])
- AC_LANG_POP([C++])
- ])
- CHECK_CXX11])
- CXXFLAGS=" $CXXFLAGS -std=$CXX_STD"
- AC_OUTPUT
- echo "---"
- echo "Configuration summary for $PACKAGE_NAME version $VERSION"
- echo ""
- echo " * Installation prefix: $prefix"
- echo " * System type: $host_vendor-$host_os"
- echo " * Host CPU: $host_cpu"
- echo " * C Compiler: $CC $CC_VERSION"
- echo " * C Flags: $CFLAGS"
- echo " * C++ Compiler: $CXX $CXX_VERSION"
- echo " * C++ Flags: $CXXFLAGS"
- echo " * CPP Flags: $CPPFLAGS"
- echo " * LIBS: $LIBS"
- echo " * LDFLAGS Flags: $LDFLAGS"
- echo " * Assertions enabled: $ax_enable_assert"
- echo " * Debug enabled: $ax_enable_debug"
- echo " * Warnings as failure: $ac_cv_warnings_as_errors"
- echo " * Building with hiredis $ac_enable_hiredis"
- echo " * Building with libsqlite3 $WANT_SQLITE3"
- echo " * Building with libdrizzle $ac_enable_libdrizzle"
- echo " * Building with libmemcached $ax_enable_libmemcached"
- echo " * Building with libpq $ac_cv_libpq"
- echo " * Building with tokyocabinet $ac_enable_libtokyocabinet"
- echo " * Building with libmysql $found_mysql"
- echo " * SSL enabled: $enable_ssl"
- echo " * wolfssl found: $have_wolfssl"
- echo " * openssl found: $have_openssl"
- echo " * make -j: $enable_jobserver"
- echo " * VCS checkout: $ac_cv_vcs_checkout"
- echo " * sphinx-build: $SPHINXBUILD"
- echo ""
- echo "---"
- if [test "x${ax_enable_debug}" = "xyes"]; then
- echo "*****"
- echo "*"
- echo "* NOTE: You should execute gearmand with --threads 0 when --enable-debug is specified."
- echo "*"
- echo "*****"
- fi
- case "$host_os" in
- *freebsd*)
- echo "*****"
- echo "*"
- echo "* NOTE: You are on FreeBSD. BSD 'make' will not work."
- echo "*"
- echo "* use 'gmake' To build gearmand"
- echo "*"
- echo "*****"
- ;;
- esac
|