123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- # -*- Autoconf -*-
- # Process this file with autoconf to produce a configure script.
- AC_PREREQ(2.59)
- AC_INIT([zookeeper C client],3.10.0,[user@zookeeper.apache.org],[zookeeper])
- AC_CONFIG_SRCDIR([src/zookeeper.c])
- # Save initial CFLAGS and CXXFLAGS values before AC_PROG_CC and AC_PROG_CXX
- init_cflags="$CFLAGS"
- init_cxxflags="$CXXFLAGS"
- # initialize Doxygen support
- DX_HTML_FEATURE(ON)
- DX_CHM_FEATURE(OFF)
- DX_CHI_FEATURE(OFF)
- DX_MAN_FEATURE(OFF)
- DX_RTF_FEATURE(OFF)
- DX_XML_FEATURE(OFF)
- DX_PDF_FEATURE(OFF)
- DX_PS_FEATURE(OFF)
- DX_INIT_DOXYGEN([zookeeper],[c-doc.Doxyfile],[docs])
- # initialize automake
- AM_INIT_AUTOMAKE([-Wall foreign])
- AC_CONFIG_HEADER([config.h])
- # Checks for programs.
- AC_ARG_WITH(cppunit,
- [ --without-cppunit do not use CPPUNIT])
- if test "$with_cppunit" = "no" ; then
- CPPUNIT_PATH="No_CPPUNIT"
- CPPUNIT_INCLUDE=
- CPPUNIT_LIBS=
- else
- CHECK_CPPUNIT(1.10.2)
- fi
- dnl OpenSSL
- AC_ARG_WITH(openssl,
- [AC_HELP_STRING([--with-openssl[=DIR]], [build with openssl (autodetect openssl library by default) )])],
- [], [with_openssl=yes])
- AC_MSG_NOTICE([configuring SSL using --with-openssl=$with_openssl])
- saved_CPPFLAGS="$CPPFLAGS"
- saved_LDFLAGS="$LDFLAGS"
- if test "x$with_openssl" != "xno" && test "x$with_openssl" != "xyes" ; then
- CPPFLAGS="$CPPFLAGS -I$with_openssl/include"
- LDFLAGS="$LDFLAGS -L$with_openssl/lib"
- fi
- have_openssl=no
- AC_CHECK_HEADER(openssl/ssl.h, [ AC_CHECK_LIB(ssl, SSL_CTX_new, [have_openssl=yes]) ])
- if test "x$with_openssl" != "xno" && test "x$with_openssl" != "xyes" && test "x$have_openssl" != "xyes"; then
- CPPFLAGS="$saved_CPPFLAGS"
- LDFLAGS="$saved_LDFLAGS"
- fi
- if test "x$with_openssl" != xno && test "x$have_openssl" = xno; then
- AC_MSG_WARN([cannot build SSL support -- openssl not found])
- with_openssl=no
- fi
- if test "x$with_openssl" != xno; then
- AC_MSG_NOTICE([building with SSL support])
- else
- AC_MSG_NOTICE([building without SSL support])
- fi
- AM_CONDITIONAL([WANT_OPENSSL],[test "x$with_openssl" != xno])
- if test "$CALLER" = "ANT" ; then
- CPPUNIT_CFLAGS="$CPPUNIT_CFLAGS -DZKSERVER_CMD=\"\\\"${base_dir}/zookeeper-client/zookeeper-client-c/tests/zkServer.sh\\\"\""
- else
- CPPUNIT_CFLAGS="$CPPUNIT_CFLAGS -DZKSERVER_CMD=\"\\\"./tests/zkServer.sh\\\"\""
- AC_CHECK_FILES([$srcdir/generated/zookeeper.jute.c $srcdir/generated/zookeeper.jute.h],[],
- [AC_MSG_ERROR([jute files are missing! Please run "ant compile_jute" while in the zookeeper top level directory.])
- ])
- fi
- AC_SUBST(CPPUNIT_CFLAGS)
- AC_PROG_CC
- AM_PROG_CC_C_O
- AC_PROG_CXX
- AC_PROG_INSTALL
- AC_PROG_LN_S
- # AC_DISABLE_SHARED
- AC_PROG_LIBTOOL
- #enable -D_GNU_SOURCE since the return code value of getaddrinfo
- #ifdefed with __USE_GNU
- #features.h header undef's __USE_GNU and defines it only if _GNU_SOURCE is defined
- #hence this define for gcc
- AC_ARG_ENABLE([debug],
- [AS_HELP_STRING([--enable-debug],[enable debug build [default=no]])],
- [],[enable_debug=no])
- if test "x$enable_debug" = xyes; then
- if test "x$init_cflags" = x; then
- CFLAGS=""
- fi
- CFLAGS="$CFLAGS -g -O0 -D_GNU_SOURCE"
- else
- if test "x$init_cflags" = x; then
- CFLAGS="-g -O2 -D_GNU_SOURCE"
- fi
- fi
- if test "x$enable_debug" = xyes; then
- if test "x$init_cxxflags" = x; then
- CXXFLAGS=""
- fi
- CXXFLAGS="$CXXFLAGS -g -O0"
- else
- if test "x$init_cxxflags" = x; then
- CXXFLAGS="-g -O2"
- fi
- fi
- # Check whether to enable gcov (coverage test)
- AC_ARG_ENABLE(gcov, [AS_HELP_STRING([--enable-gcov],[enable coverage test])])
- AC_MSG_CHECKING([whether to enable gcov])
- AS_IF([test "x${enable_gcov}" = "xyes"],AC_MSG_RESULT([yes]),AC_MSG_RESULT([no]))
- AM_CONDITIONAL([ENABLEGCOV],[test "x${enable_gcov}" = "xyes"])
- CXXFLAGS="$CXXFLAGS -std=c++11"
- AC_ARG_WITH([syncapi],
- [AS_HELP_STRING([--with-syncapi],[build with support for SyncAPI [default=yes]])],
- [],[with_syncapi=yes])
- # Checks for libraries.
- AC_CHECK_LIB([pthread], [pthread_mutex_lock],[have_pthread=yes],[have_pthread=no])
- if test "x$with_syncapi" != xno && test "x$have_pthread" = xno; then
- AC_MSG_WARN([cannot build SyncAPI -- pthread not found])
- with_syncapi=no
- fi
- if test "x$with_syncapi" != xno; then
- AC_MSG_NOTICE([building with SyncAPI support])
- else
- AC_MSG_NOTICE([building without SyncAPI support])
- fi
- AM_CONDITIONAL([WANT_SYNCAPI],[test "x$with_syncapi" != xno])
- dnl Cyrus SASL 2.x
- AC_ARG_WITH(sasl,
- [AC_HELP_STRING([--with-sasl[=DIR]], [build with SASL support via Cyrus SASL 2.x (default=auto)])],
- [], [with_sasl=yes])
- if test "x$with_sasl" != "xno"; then
- saved_CPPFLAGS="$CPPFLAGS"
- saved_LDFLAGS="$LDFLAGS"
- if test "x$with_sasl" != "xyes" ; then
- CPPFLAGS="$CPPFLAGS -I$with_sasl/include"
- LDFLAGS="$LDFLAGS -L$with_sasl/lib"
- fi
- have_sasl=no
- AC_CHECK_HEADER(sasl/sasl.h, [
- AC_CHECK_LIB(sasl2, sasl_client_init, [have_sasl=yes])])
- if test "x$have_sasl" != "xyes"; then
- CPPFLAGS="$saved_CPPFLAGS"
- LDFLAGS="$saved_LDFLAGS"
- fi
- fi
- if test "x$with_sasl" != xno && test "x$have_sasl" = xno; then
- AC_MSG_WARN([cannot build SASL support -- sasl2 not found])
- with_sasl=no
- fi
- if test "x$with_sasl" != xno; then
- AC_MSG_NOTICE([building with SASL support])
- else
- AC_MSG_NOTICE([building without SASL support])
- fi
- AM_CONDITIONAL([WANT_SASL],[test "x$with_sasl" != xno])
- # Checks for header files.
- AC_HEADER_STDC
- AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h sys/time.h unistd.h sys/utsname.h])
- # Checks for typedefs, structures, and compiler characteristics.
- AC_C_CONST
- AC_C_INLINE
- AC_HEADER_TIME
- AC_CHECK_TYPE([nfds_t],
- [AC_DEFINE([POLL_NFDS_TYPE],[nfds_t],[poll() second argument type])],
- [AC_DEFINE([POLL_NFDS_TYPE],[unsigned int],[poll() second argument type])],
- [#include <poll.h>])
- AC_MSG_CHECKING([whether to enable ipv6])
- AC_TRY_RUN([ /* is AF_INET6 available? */
- #include <sys/types.h>
- #include <sys/socket.h>
- main()
- {
- if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
- exit(1);
- else
- exit(0);
- }
- ], AC_MSG_RESULT(yes)
- ipv6=yes,
- AC_MSG_RESULT(no)
- ipv6=no,
- AC_MSG_RESULT(no)
- ipv6=no)
- if test x"$ipv6" = xyes; then
- USEIPV6="-DZOO_IPV6_ENABLED"
- AC_SUBST(USEIPV6)
- fi
- # use SOCK_CLOEXEC if available and wanted
- AC_ARG_WITH([sock_cloexec],
- [AS_HELP_STRING([--with-sock-cloexec],[build with SOCK_CLOEXEC flag set on the connections])],
- [],[with_sock_cloexec=no])
- AC_MSG_CHECKING([whether SOCK_CLOEXEC is available])
- AC_TRY_RUN([ /* is SOCK_CLOEXEC available ? */
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <stdlib.h>
- main()
- {
- #ifdef SOCK_CLOEXEC
- exit(0);
- #else
- exit(1);
- #endif
- }
- ], AC_MSG_RESULT(yes)
- has_sock_cloexec=yes,
- AC_MSG_RESULT(no)
- has_sock_cloexec=no,
- AC_MSG_RESULT(no)
- has_sock_cloexec=no)
- if test "x$with_sock_cloexec" != xno && test "x$has_sock_cloexec" = xno; then
- AC_MSG_WARN([cannot use SOCK_CLOEXEC -- SOCK_CLOEXEC undefined on this platform])
- with_sock_cloexec=no
- fi
- if test "x$with_sock_cloexec" != xno; then
- AC_MSG_NOTICE([building with SOCK_CLOEXEC])
- else
- AC_MSG_NOTICE([building without SOCK_CLOEXEC])
- fi
- AS_IF([test x"$with_sock_cloexec" != xno], [AC_DEFINE([SOCK_CLOEXEC_ENABLED], [1], [Define to 1, if SOCK_CLOEXEC is defined and wanted])])
- AM_CONDITIONAL([SOCK_CLOEXEC_ENABLED],[test "x$with_sock_cloexec" != xno])
- # Determine which libraries we need to use clock_gettime
- saved_LIBS="$LIBS"
- LIBS=""
- AC_CHECK_LIB(rt, clock_gettime)
- CLOCK_GETTIME_LIBS=$LIBS
- AC_SUBST(CLOCK_GETTIME_LIBS)
- LIBS="$saved_LIBS"
- # Checks for library functions.
- AC_CHECK_FUNCS([getcwd gethostbyname gethostname getlogin getpwuid_r gettimeofday getuid memmove memset poll socket strchr strdup strerror strtol])
- AC_CONFIG_FILES([Makefile])
- AC_CANONICAL_HOST
- AM_CONDITIONAL([SOLARIS],[
- case "$host_os" in
- *solaris*)
- true
- ;;
- *)
- false
- ;;
- esac ])
- AC_OUTPUT
|