# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) AC_INIT([zeromq],[dev]) AC_CONFIG_AUX_DIR(config) AM_CONFIG_HEADER(src/platform.hpp) AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) AM_PROG_CC_C_O # Checks for programs. AC_PROG_CXX AC_PROG_LIBTOOL # Checks for libraries. AC_CHECK_LIB(pthread, pthread_create) # Host speciffic checks AC_CANONICAL_HOST case "${host_os}" in *linux*) AC_DEFINE(ZMQ_HAVE_LINUX, 1, [Have Linux OS]) CPPFLAGS="-D_REENTRANT $CPPFLAGS" sed < libtool > libtool-2 \ 's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" "/' mv libtool-2 libtool chmod 755 libtool AC_CHECK_LIB(uuid, uuid_generate) ;; *solaris*) AC_DEFINE(ZMQ_HAVE_SOLARIS, 1, [Have Solaris OS]) AC_CHECK_LIB(socket, main) AC_CHECK_LIB(nsl, main) AC_CHECK_LIB(rt, main) CPPFLAGS="-D_REENTRANT -D_PTHREADS $CPPFLAGS" AC_MSG_CHECKING([wheter atomic operations can be used]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[#include ]], [[uint32_t value; atomic_cas_32 (&value, 0, 0); return 0;]])], [solaris_has_atomic=yes], [solaris_has_atomic=no]) AC_MSG_RESULT([$solaris_has_atomic]) # Solaris 8 does not have atomic operations exported to user space. if test "x$solaris_has_atomic" = "xno"; then AC_DEFINE(ZMQ_FORCE_MUTEXES, 1, [Force to use mutexes]) fi ;; *freebsd*) AC_DEFINE(ZMQ_HAVE_FREEBSD, 1, [Have FreeBSD OS]) CPPFLAGS="-D_THREAD_SAFE $CPPFLAGS" LIBS="-pthread" ;; *darwin*) AC_DEFINE(ZMQ_HAVE_OSX, 1, [Have DarwinOSX OS]) LIBS="-pthread" ZMQ_EXTRA_CXXFLAGS+="-Wno-uninitialized" ;; *openbsd*) AC_DEFINE(ZMQ_HAVE_OPENBSD, 1, [Have OpenBSD OS]) CPPFLAGS="-pthread $CPPFLAGS" LIBS="-pthread" ;; *nto-qnx*) AC_DEFINE(ZMQ_HAVE_QNXNTO, 1, [Have QNX Neutrino OS]) CPPFLAGS="-D_THREAD_SAFE $CPPFLAGS" AC_CHECK_LIB(socket,main) ;; *aix*) AC_DEFINE(ZMQ_HAVE_AIX, 1, [Have AIX OS]) if test "x$GXX" = "xyes"; then CPPFLAGS="-D_THREAD_SAFE $CPPFLAGS" fi ;; *hpux*) AC_DEFINE(ZMQ_HAVE_HPUX, 1, [Have HPUX OS]) if test "x$GXX" = "xyes"; then CPPFLAGS="-D_THREAD_SAFE $CPPFLAGS" fi AC_CHECK_LIB(rt, main) sed < libtool > libtool-2 \ 's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" "/' mv libtool-2 libtool chmod 755 libtool ;; *mingw32*) AC_DEFINE(ZMQ_HAVE_WINDOWS, 1, [Have Windows OS]) AC_DEFINE(ZMQ_HAVE_MINGW32, 1, [Have MinGW32]) AC_CHECK_HEADERS(windows.h) LIBS="-lwsock32 -lws2_32 -no-undefined" CFLAGS="-std=c99" install_man="no" ;; *) AC_MSG_ERROR([Not supported os: $host.]) ;; esac # Check if we are running at sparc harware AC_MSG_CHECKING([wheter __sparc__ is defined]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[#if defined __sparc__ //OK we are on sparc #else error: we are not on sparc #endif ]])], [sparc=yes], [sparc=no]) AC_MSG_RESULT([$sparc]) if test "x$sparc" = "xyes"; then CPPFLAGS="$CPPFLAGS -mcpu=v9" fi # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS(errno.h arpa/inet.h netinet/tcp.h netinet/in.h stddef.h \ stdlib.h string.h sys/socket.h sys/time.h unistd.h limits.h) # Check if we have eventfd.h header file. AC_CHECK_HEADERS(sys/eventfd.h, [AC_DEFINE(ZMQ_HAVE_EVENTFD, 1, [Have eventfd extension.])]) # Check if we have ifaddrs.h header file. AC_CHECK_HEADERS(ifaddrs.h, [AC_DEFINE(ZMQ_HAVE_IFADDRS, 1, [Have ifaddrs.h header.])]) # Use c++ in subsequent tests AC_LANG(C++) # Optional stuff AC_CHECK_PROG(have_pkg_config, pkg-config, yes, no) if test "x$have_pkg_config" != "xno"; then # First instance of PKG_CHECK_ has to be executed PKG_CHECK_EXISTS([dummy_pkg], [], []) fi # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_C_CONST AC_C_INLINE AC_TYPE_SIZE_T AC_TYPE_SSIZE_T AC_HEADER_TIME AC_TYPE_UINT32_T AC_C_VOLATILE # Substs stdint="0" if test "x$HAVE_STDINT_H" = "xyes"; then stdint="1" fi inttypes="0" if test "x$HAVE_INTTYPES_H" = "xyes"; then inttypes="1" fi # Python pyzmq="no" AC_ARG_WITH(python_headersdir, AC_HELP_STRING([--with-python-headersdir], [Python.h header file location]), [python_headersdir="$withval"], [python_headersdir="no"]) AC_ARG_WITH([python], [AS_HELP_STRING([--with-python], [build Python language binding [default=no]])], [with_python=yes], [with_python=no]) if test "x$with_python" != "xno"; then AM_PATH_PYTHON([2.4], , [:]) if test "x$PYTHON" = "x:"; then AC_MSG_ERROR([To run configure with --with-python option, Python has to be installed.]); fi if test "x$python_headersdir" != "xno"; then PYTHON_INCLUDES="-I${python_headersdir}" PYTHON_SETUP_INCLUDES="${python_headersdir}" AC_CHECK_HEADERS($python_headersdir/Python.h, [] , [AC_MSG_ERROR([To run configure with --with-python option, Python.h has to be usable.])]) else py_prefix=`$PYTHON -c "import sys; print sys.prefix"` py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}" PYTHON_SETUP_INCLUDES="${py_prefix}/include/python${PYTHON_VERSION}" if test "$py_prefix" != "$py_exec_prefix"; then PYTHON_INCLUDES="${PYTHON_INCLUDES} -I${py_exec_prefix}/include/python${PYTHON_VERSION}" fi AC_CHECK_HEADERS($py_prefix/include/python${PYTHON_VERSION}/Python.h, [] , [AC_MSG_ERROR([To run configure with --with-python option, Python.h has to be usable.])]) fi AC_SUBST(PYTHON_INCLUDES) AC_SUBST(PYTHON_SETUP_INCLUDES) pyzmq="yes" fi if test "x$pyzmq" != "xyes"; then AC_CHECK_PROG(have_python, python, yes, no) if test "x$have_python" != "xyes"; then AC_MSG_ERROR([Could not find python.]) fi fi # Generate version.c AC_CONFIG_COMMANDS([version.c], [python third-party/openpgm/libpgm-1.0.0/openpgm/pgm/version_generator.py > \ third-party/openpgm/libpgm-1.0.0/openpgm/pgm/version.c]) AC_SUBST(stdint) AC_SUBST(inttypes) # Subst ZMQ_EXTRA_CXXFLAGS AC_SUBST(ZMQ_EXTRA_CXXFLAGS) # Checks for library functions. AC_FUNC_MALLOC AC_TYPE_SIGNAL AC_CHECK_FUNCS(perror gettimeofday memset socket getifaddrs freeifaddrs) AC_OUTPUT(Makefile src/Makefile examples/Makefile examples/chat/Makefile python/Makefile \ python/setup.py) AC_MSG_RESULT([]) AC_MSG_RESULT([ ******************************************************** ]) AC_MSG_RESULT([ 0MQ ]) AC_MSG_RESULT([ ******************************************************** ]) AC_MSG_RESULT([ This software is distributed under the terms and ]) AC_MSG_RESULT([ conditions of the LESSER GNU GENERAL PUBLIC LICENSE. ]) AC_MSG_RESULT([ See the file COPYING and COPYING.LESSER for the full ]) AC_MSG_RESULT([ license text. ]) AC_MSG_RESULT([ ******************************************************** ]) AC_MSG_RESULT([]) AC_MSG_RESULT([ 0MQ install dir: $prefix]) AC_MSG_RESULT([ Python language binding: $pyzmq]) AC_MSG_RESULT([]) AM_CONDITIONAL(BUILD_PYTHON, test "x$pyzmq" = "xyes")