mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-13 10:52:56 +01:00
8be491b7bd
It turns out that feature test macros are a complete mess, and defining _GNU_SOURCE and _POSIX_C_SOURCE together breaks some systems. So we try and define the appropriate "make everything visible" combination specific to each system instead. This may still break something, so people should test their platforms and speak up if so.
647 lines
21 KiB
Plaintext
647 lines
21 KiB
Plaintext
# -*- Autoconf -*-
|
|
# Process this file with autoconf to produce a configure script.
|
|
AC_PREREQ(2.61)
|
|
#
|
|
# Change the version number below after doing a public release.
|
|
# The version in git should reflect the *next* version planned.
|
|
# Version must be MAJOR.MINOR.PATCH otherwise things will break.
|
|
#
|
|
AC_INIT([zeromq],[2.0.6],[zeromq-dev@lists.zeromq.org])
|
|
|
|
AC_CONFIG_AUX_DIR(config)
|
|
AC_CONFIG_MACRO_DIR(config)
|
|
AM_CONFIG_HEADER(src/platform.hpp)
|
|
AM_INIT_AUTOMAKE(tar-ustar)
|
|
|
|
# This defines PACKAGE_VERSION_... in src/platform.hpp
|
|
PV_MAJOR=`echo $PACKAGE_VERSION | cut -d . -f 1`
|
|
PV_MINOR=`echo $PACKAGE_VERSION | cut -d . -f 2`
|
|
PV_PATCH=`echo $PACKAGE_VERSION | cut -d . -f 3`
|
|
AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],[$PV_MAJOR],
|
|
[0MQ major version])
|
|
AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR],[$PV_MINOR],
|
|
[0MQ minor version])
|
|
AC_DEFINE_UNQUOTED([PACKAGE_VERSION_PATCH],[$PV_PATCH],
|
|
[0MQ patchlevel])
|
|
# This lets us use PACKAGE_VERSION in Makefiles
|
|
AC_SUBST(PACKAGE_VERSION)
|
|
|
|
#
|
|
# Libtool -version-info (ABI version)
|
|
#
|
|
# Currently 0.0.0 ("unstable"). Don't change this unless you
|
|
# know exactly what you're doing and have read and understand
|
|
# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
|
|
#
|
|
# libzmq -version-info
|
|
LTVER="0:0:0"
|
|
AC_SUBST(LTVER)
|
|
|
|
# librbzmq -version-info
|
|
RBLTVER="0:0:0"
|
|
AC_SUBST(RBLTVER)
|
|
|
|
# libjzmq -version-info
|
|
JLTVER="0:0:0"
|
|
AC_SUBST(JLTVER)
|
|
|
|
AM_PROG_CC_C_O
|
|
|
|
# Checks for programs.
|
|
AC_PROG_CXX
|
|
AC_LIBTOOL_WIN32_DLL
|
|
AC_PROG_LIBTOOL
|
|
AC_PROG_SED
|
|
AC_PROG_AWK
|
|
|
|
# Checks for libraries.
|
|
AC_CHECK_LIB(pthread, pthread_create)
|
|
AC_CHECK_LIB(stdc++, malloc)
|
|
|
|
# Extra CXXFLAGS are appended at the end of CXXFLAGS for libzmq.
|
|
LIBZMQ_EXTRA_CXXFLAGS=""
|
|
|
|
# Extra LDFLAGS are appended at the end of LDFLAGS for libzmq.
|
|
LIBZMQ_EXTRA_LDFLAGS=""
|
|
|
|
# By default compiling with -pedantic except QNX and OSX.
|
|
pedantic="yes"
|
|
|
|
#By default compiling with -Werror except OSX.
|
|
werror="yes"
|
|
|
|
#Whether we are on mingw or not.
|
|
on_mingw32="no"
|
|
|
|
# Host speciffic checks
|
|
AC_CANONICAL_HOST
|
|
|
|
# Determine whether or not documentation should be built.
|
|
build_doc="yes"
|
|
install_man="yes"
|
|
if test ! -f "doc/zmq.html"; then
|
|
# We are building from git.
|
|
# Check for asciidoc and xmlto and don't build the docs if these are not installed.
|
|
AC_CHECK_PROG(have_asciidoc, asciidoc, yes, no)
|
|
AC_CHECK_PROG(have_xmlto, xmlto, yes, no)
|
|
if test "x$have_asciidoc" = "xno" -o "x$have_xmlto" = "xno"; then
|
|
build_doc="no"
|
|
install_man="no"
|
|
AC_MSG_WARN([You are building from git and asciidoc is not installed. Documentation will not be built or installed.])
|
|
fi
|
|
fi
|
|
|
|
# Set some default features required by 0MQ code.
|
|
CPPFLAGS="-D_REENTRANT -D_THREAD_SAFE $CPPFLAGS"
|
|
|
|
# OS-specific tests
|
|
case "${host_os}" in
|
|
*linux*)
|
|
# Define on Linux to enable all library features
|
|
CPPFLAGS="-D_GNU_SOURCE $CPPFLAGS"
|
|
AC_DEFINE(ZMQ_HAVE_LINUX, 1, [Have Linux OS])
|
|
AC_CHECK_LIB(uuid, main, ,
|
|
[AC_MSG_ERROR([cannot link with -luuid, install uuid-dev.])])
|
|
;;
|
|
*solaris*)
|
|
# Define on Solaris to enable all library features
|
|
CPPFLAGS="-D_POSIX_C_SOURCE=200112L -D_PTHREADS $CPPFLAGS"
|
|
AC_DEFINE(ZMQ_HAVE_SOLARIS, 1, [Have Solaris OS])
|
|
AC_CHECK_LIB(socket, main)
|
|
AC_CHECK_LIB(nsl, main)
|
|
AC_CHECK_LIB(rt, main)
|
|
AC_CHECK_LIB(uuid, main, ,
|
|
[AC_MSG_ERROR([cannot link with -luuid, install uuid-dev.])])
|
|
AC_MSG_CHECKING([wheter atomic operations can be used])
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
|
|
[[#include <atomic.h>]],
|
|
[[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*)
|
|
# Define on FreeBSD to enable all library features
|
|
CPPFLAGS="-D__BSD_VISIBLE $CPPFLAGS"
|
|
AC_DEFINE(ZMQ_HAVE_FREEBSD, 1, [Have FreeBSD OS])
|
|
LIBS="-pthread"
|
|
;;
|
|
*darwin*)
|
|
# Define on Darwin to enable all library features
|
|
CPPFLAGS="-D_DARWIN_C_SOURCE $CPPFLAGS"
|
|
pedantic="no"
|
|
werror="no"
|
|
AC_DEFINE(ZMQ_HAVE_OSX, 1, [Have DarwinOSX OS])
|
|
LIBS="-pthread"
|
|
LIBZMQ_EXTRA_CXXFLAGS+="-Wno-uninitialized"
|
|
;;
|
|
*openbsd*)
|
|
# Define on OpenBSD to enable all library features
|
|
CPPFLAGS="-D_BSD_SOURCE $CPPFLAGS"
|
|
AC_DEFINE(ZMQ_HAVE_OPENBSD, 1, [Have OpenBSD OS])
|
|
LIBS="-pthread"
|
|
;;
|
|
*nto-qnx*)
|
|
pedantic="no"
|
|
AC_DEFINE(ZMQ_HAVE_QNXNTO, 1, [Have QNX Neutrino OS])
|
|
AC_CHECK_LIB(socket,main)
|
|
;;
|
|
*aix*)
|
|
AC_DEFINE(ZMQ_HAVE_AIX, 1, [Have AIX OS])
|
|
;;
|
|
*hpux*)
|
|
# Define on HP-UX to enable all library features
|
|
CPPFLAGS="-D_POSIX_C_SOURCE=200112L"
|
|
AC_DEFINE(ZMQ_HAVE_HPUX, 1, [Have HPUX OS])
|
|
AC_CHECK_LIB(rt, main)
|
|
;;
|
|
*mingw32*)
|
|
AC_DEFINE(ZMQ_HAVE_WINDOWS, 1, [Have Windows OS])
|
|
AC_DEFINE(ZMQ_HAVE_MINGW32, 1, [Have MinGW32])
|
|
AC_CHECK_HEADERS(windows.h)
|
|
AC_CHECK_LIB(ws2_32, main, ,
|
|
[AC_MSG_ERROR([cannot link with ws2_32.dll.])])
|
|
AC_CHECK_LIB(Rpcrt4, main, ,
|
|
[AC_MSG_ERROR([cannot link with Rpcrt4.dll.])])
|
|
AC_CHECK_LIB(Iphlpapi, main, ,
|
|
[AC_MSG_ERROR([cannot link with Iphlpapi.dll.])])
|
|
CFLAGS="${CFLAGS} -std=c99"
|
|
on_mingw32="yes"
|
|
install_man="no"
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([unsupported system: ${host_os}.])
|
|
;;
|
|
esac
|
|
|
|
# CPU-specific optimizations
|
|
case "${host_cpu}" in
|
|
*sparc*)
|
|
CPPFLAGS="$CPPFLAGS -mcpu=v9"
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
# 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)
|
|
|
|
# Force not to use eventfd
|
|
AC_ARG_ENABLE([eventfd], [AS_HELP_STRING([--disable-eventfd], [disable eventfd [default=no]])],
|
|
[disable_eventfd=yes], [disable_eventfd=no])
|
|
|
|
eventfd_headers="no"
|
|
eventfd_can_run="no"
|
|
|
|
if test "x$disable_eventfd" != "xyes"; then
|
|
# Check if we have eventfd.h header file.
|
|
AC_CHECK_HEADERS(sys/eventfd.h, [eventfd_headers=yes])
|
|
|
|
AC_MSG_CHECKING([for sys/eventfd.h functionality])
|
|
|
|
AC_RUN_IFELSE(
|
|
[AC_LANG_PROGRAM([[#include <sys/eventfd.h>
|
|
#include <assert.h>]],
|
|
[[int fd = eventfd (0, 0); assert (fd != -1);]])],
|
|
[eventfd_can_run=yes], [], eventfd_can_run=no)
|
|
|
|
AC_MSG_RESULT([$eventfd_can_run])
|
|
|
|
if test "x$eventfd_headers" = "xyes" -a "x$eventfd_can_run" = "xyes"; then
|
|
AC_DEFINE(ZMQ_HAVE_EVENTFD, 1,[Have eventfd extension.])
|
|
fi
|
|
fi
|
|
|
|
# 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)
|
|
|
|
# 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
|
|
|
|
# c
|
|
czmq="no"
|
|
AC_ARG_WITH([c], [AS_HELP_STRING([--with-c],
|
|
[build c language binding [default=no]])], [c=yes], [c=no])
|
|
|
|
if test "x$c" != "xno"; then
|
|
czmq="yes"
|
|
fi
|
|
|
|
# c++
|
|
cppzmq="no"
|
|
AC_ARG_WITH([cpp], [AS_HELP_STRING([--with-cpp],
|
|
[build c++ language binding [default=no]])], [cpp=yes], [cpp=no])
|
|
|
|
if test "x$cpp" != "xno"; then
|
|
cppzmq="yes"
|
|
fi
|
|
|
|
# Python
|
|
pyzmq="no"
|
|
AC_ARG_WITH(python_headersdir,
|
|
AS_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([the --with-python option requires that python be installled.]);
|
|
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([cannot find a usable Python.h in ${python_headersdir}.])])
|
|
|
|
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([cannot find a usable Python.h in $py_prefix/include/python${PYTHON_VERSION}.])])
|
|
fi
|
|
|
|
AC_SUBST(PYTHON_INCLUDES)
|
|
AC_SUBST(PYTHON_SETUP_INCLUDES)
|
|
|
|
pyzmq="yes"
|
|
fi
|
|
|
|
# RUBY
|
|
rbzmq="no"
|
|
AC_ARG_WITH(ruby_headersdir,
|
|
AS_HELP_STRING([--with-ruby-headersdir], [ruby.h header file location]),
|
|
[ruby_headersdir="$withval"], [ruby_headersdir="no"])
|
|
|
|
if test "x$ruby_headersdir" != "xno"; then
|
|
CPPFLAGS="${CPPFLAGS} -I${ruby_headersdir}"
|
|
fi
|
|
|
|
AC_ARG_WITH(ruby_libdir,
|
|
AS_HELP_STRING([--with-ruby-libdir],[libruby library file location]),
|
|
[ruby_libdir="$withval"], [ruby_libdir="no"])
|
|
|
|
if test "x$ruby_libdir" != "xno"; then
|
|
LDFLAGS="${LDFLAGS} -L${ruby_libdir}"
|
|
fi
|
|
|
|
AC_ARG_WITH([ruby], [AS_HELP_STRING([--with-ruby], [build ruby language binding [default=no]])], [with_ruby=yes], [with_ruby=no])
|
|
if test "x$with_ruby" != "xno"; then
|
|
AC_CHECK_HEADERS([ruby.h], [],
|
|
[AC_MSG_ERROR([cannot find Ruby header files. Please specify their location with --with-ruby-headersdir.])])
|
|
|
|
AC_SEARCH_LIBS(ruby_init,[ruby ruby1.8 ruby18],,
|
|
[AC_MSG_ERROR([cannot link with Ruby library. Please specify it's location with --with-ruby-libdir.])])
|
|
|
|
rbzmq="yes"
|
|
fi
|
|
|
|
AC_ARG_WITH([rubydir], [AS_HELP_STRING([--with-rubydir],
|
|
[librbzmq install dir [default=EPREFIX/lib]])],
|
|
[rubydir="$withval"], [rubydir="_default_"])
|
|
|
|
if test "$rubydir" = "_default_"; then
|
|
rubydir=${libdir}
|
|
else
|
|
rubydir=${rubydir}
|
|
fi
|
|
|
|
RUBYDIR="$rubydir"
|
|
AC_SUBST([RUBYDIR])
|
|
|
|
if test "x$pyzmq" = "xyes"; then
|
|
AC_CHECK_PROG(have_python, python, yes, no)
|
|
if test "x$have_python" != "xyes"; then
|
|
AC_MSG_ERROR([the --with-python option requires that python be installed.])
|
|
fi
|
|
fi
|
|
|
|
# Java language binding
|
|
jzmq="no"
|
|
AC_ARG_WITH([java], [AS_HELP_STRING([--with-java], [build Java language binding [default=no]])], [with_java=yes], [with_java=no])
|
|
if test "x$with_java" != "xno"; then
|
|
AC_PATH_PROG(JAVAC, javac, "no",[$PATH:$JAVA_HOME/bin])
|
|
if test "x$JAVAC" = "xno"; then
|
|
AC_MSG_ERROR([the --with-java option requires that javac be on the path.]);
|
|
fi
|
|
|
|
AC_PATH_PROG(JAVAH, javah, "no",[$PATH:$JAVA_HOME/bin])
|
|
if test "x$JAVAH" = "xno"; then
|
|
AC_MSG_ERROR([the --with-java option requires that javah be on the path.]);
|
|
fi
|
|
|
|
AC_PATH_PROG(JAR, jar, "no", [$PATH:$JAVA_HOME/bin])
|
|
if test "x$JAR" = "xno"; then
|
|
AC_MSG_ERROR([the --with-java option requires that jar be on the path.]);
|
|
fi
|
|
|
|
if test "x$JAVA_HOME" = "x"; then
|
|
AC_MSG_ERROR([the --with-java option requires the JAVA_HOME environment variable be set to your JDK location.]);
|
|
fi
|
|
|
|
AC_MSG_CHECKING([for jni.h in a $JAVA_HOME/include dir])
|
|
if test -f $JAVA_HOME/include/jni.h; then
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_MSG_ERROR([cannot find jni.h in the $JAVA_HOME/include directory.]);
|
|
fi
|
|
|
|
JAVAROOT=./
|
|
AC_SUBST(JAVAROOT)
|
|
|
|
case "${host_os}" in
|
|
*solaris*)
|
|
JAVA_INCLUDE="-I.. -I${JAVA_HOME}/include -I ${JAVA_HOME}/include/solaris"
|
|
;;
|
|
*openbsd*)
|
|
JAVA_INCLUDE="-I.. -I${JAVA_HOME}/include -I ${JAVA_HOME}/include/openbsd"
|
|
;;
|
|
*)
|
|
JAVA_INCLUDE="-I.. -I${JAVA_HOME}/include -I ${JAVA_HOME}/include/linux"
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(JAVA_INCLUDE)
|
|
|
|
jzmq="yes"
|
|
else
|
|
# Workaround to be able to run make dist without real JAVAH
|
|
JAVAH=true
|
|
JAVAC=true
|
|
JAR=true
|
|
fi
|
|
|
|
# PGM extension
|
|
pgm_ext="no"
|
|
|
|
pgm_basename="libpgm-2.0.23rc8"
|
|
|
|
AC_SUBST(pgm_basename)
|
|
|
|
AC_ARG_WITH([pgm], [AS_HELP_STRING([--with-pgm],
|
|
[build libzmq with PGM extension [default=no]])],
|
|
[with_pgm_ext=yes], [with_pgm_ext=no])
|
|
|
|
AC_ARG_WITH([pgm-examples], [AS_HELP_STRING([--with-pgm-examples],
|
|
[build PGM examples [default=no]])],
|
|
[with_pgm_examples=yes], [with_pgm_examples=no])
|
|
|
|
if test "x$with_pgm_ext" = "xno" -a "x$with_pgm_examples" = "xyes"; then
|
|
AC_MSG_ERROR([cannot configure --with-pgm-examples without --with-pgm.]);
|
|
fi
|
|
|
|
if test "x$c" = "xno" -a "x$with_pgm_examples" = "xyes"; then
|
|
AC_MSG_ERROR([cannot configure --with-pgm-examples without --with-c.]);
|
|
fi
|
|
|
|
if test "x$with_pgm_ext" != "xno"; then
|
|
|
|
AC_MSG_CHECKING([if the PGM extension is supported on this platform])
|
|
# OpenPGM is only supported by the vendor on x86 and AMD64 platforms...
|
|
case "${host_cpu}" in
|
|
i*86|x86_64)
|
|
# Supported
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([the PGM extension is not supported on the ${host_cpu} platform.])
|
|
;;
|
|
esac
|
|
|
|
# ... and on Linux/Windows/Solaris systems.
|
|
case "${host_os}" in
|
|
*linux*|*mingw32*|*solaris*)
|
|
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -Wno-variadic-macros -Wno-long-long "
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([the PGM extension is not supported on system ${host_os}.])
|
|
;;
|
|
esac
|
|
AC_MSG_RESULT([yes])
|
|
|
|
# Test if we have pkg-config
|
|
if test "x$have_pkg_config" != "xyes"; then
|
|
AC_MSG_ERROR([the --with-pgm option requires that pkg-config be installed.]);
|
|
fi
|
|
|
|
# Check for OpenPGM dependencies
|
|
PKG_CHECK_MODULES([GLIB], [glib-2.0 gthread-2.0])
|
|
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} ${GLIB_CFLAGS} "
|
|
LIBZMQ_EXTRA_LDFLAGS="${LIBZMQ_EXTRA_LDFLAGS} ${GLIB_LIBS} "
|
|
|
|
# Bunzip2, Perl and Python are required duing PGM build
|
|
AC_CHECK_PROG(have_bunzip2, bunzip2, yes, no)
|
|
if test "x$have_bunzip2" != "xyes"; then
|
|
AC_MSG_ERROR([bunzip2 is required for building the PGM extension.])
|
|
fi
|
|
AC_CHECK_PROG(have_perl, perl, yes, no)
|
|
if test "x$have_perl" != "xyes"; then
|
|
AC_MSG_ERROR([perl is required for building the PGM extension.])
|
|
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([python is required for building the PGM extension.])
|
|
fi
|
|
fi
|
|
|
|
# Unpack libpgm
|
|
AC_MSG_NOTICE([Unpacking ${pgm_basename}.tar.bz2])
|
|
if ! bunzip2 -c foreign/openpgm/${pgm_basename}.tar.bz2 | tar -xf - -C foreign/openpgm/; then
|
|
AC_MSG_ERROR([cannot unpack the foreign/openpgm/${pgm_basename}.tar.bz2 file.])
|
|
fi
|
|
|
|
# Success!
|
|
AC_DEFINE(ZMQ_HAVE_OPENPGM, 1, [Have OpenPGM extension])
|
|
pgm_ext="yes"
|
|
fi
|
|
|
|
# If not on QNX nor OSX nor PGM add -pedantic into LIBZMQ_EXTRA_CXXFLAGS.
|
|
if test "x$pedantic" = "xyes" -a "x$pgm_ext" = "xno"; then
|
|
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -pedantic"
|
|
fi
|
|
|
|
# If not on QNX nor PGM add -Werror into LIBZMQ_EXTRA_CXXFLAGS.
|
|
if test "x$werror" = "xyes" -a "x$pgm_ext" = "xno"; then
|
|
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -Werror"
|
|
fi
|
|
|
|
# Forwarder device
|
|
forwarder="no"
|
|
AC_ARG_WITH([forwarder], [AS_HELP_STRING([--with-forwarder],
|
|
[build forwarder device [default=no]])], [with_forwarder=yes], [with_forwarder=no])
|
|
|
|
if test "x$with_forwarder" != "xno"; then
|
|
forwarder="yes"
|
|
fi
|
|
|
|
# Streamer device
|
|
streamer="no"
|
|
AC_ARG_WITH([streamer], [AS_HELP_STRING([--with-streamer],
|
|
[build streamer device [default=no]])], [with_streamer=yes], [with_streamer=no])
|
|
|
|
if test "x$with_streamer" != "xno"; then
|
|
streamer="yes"
|
|
fi
|
|
|
|
# Queue device
|
|
queue="no"
|
|
AC_ARG_WITH([queue], [AS_HELP_STRING([--with-queue],
|
|
[build queue device [default=no]])], [with_queue=yes], [with_queue=no])
|
|
|
|
if test "x$with_queue" != "xno"; then
|
|
queue="yes"
|
|
fi
|
|
|
|
# Perf
|
|
perf="no"
|
|
AC_ARG_WITH([perf], [AS_HELP_STRING([--with-perf],
|
|
[build performance tests [default=no]])], [with_perf=yes], [with_perf=no])
|
|
|
|
if test "x$with_perf" != "xno"; then
|
|
perf="yes"
|
|
|
|
if test "x$czmq" = "xno" -a "x$cppzmq" = "xno" -a "x$pyzmq" = "xno" -a \
|
|
"x$jzmq" = "xno" -a "x$rbzmq" = "xno"; then
|
|
AC_MSG_ERROR([the --with-perf option requires at least one language binding.]);
|
|
fi
|
|
fi
|
|
|
|
if test "x$with_perf" = "xno" -a "x$with_pgm_examples" = "xyes"; then
|
|
AC_MSG_ERROR([cannot configure --with-pgm-examples without --with-perf.]);
|
|
fi
|
|
|
|
# Chat example
|
|
chat="no"
|
|
AC_ARG_WITH([chat], [AS_HELP_STRING([--with-chat], [build chatroom example [default=no]])], [with_chat=yes], [with_chat=no])
|
|
if test "x$with_chat" != "xno"; then
|
|
chat="yes"
|
|
fi
|
|
|
|
AM_CONDITIONAL(BUILD_PYTHON, test "x$pyzmq" = "xyes")
|
|
AM_CONDITIONAL(BUILD_JAVA, test "x$jzmq" = "xyes")
|
|
AM_CONDITIONAL(BUILD_PYTHON, test "x$pyzmq" = "xyes")
|
|
AM_CONDITIONAL(BUILD_RUBY, test "x$rbzmq" = "xyes")
|
|
AM_CONDITIONAL(BUILD_C, test "x$czmq" = "xyes")
|
|
AM_CONDITIONAL(BUILD_CPP, test "x$cppzmq" = "xyes")
|
|
AM_CONDITIONAL(BUILD_PGM, test "x$pgm_ext" = "xyes")
|
|
AM_CONDITIONAL(BUILD_NO_PGM, test "x$pgm_ext" = "xno")
|
|
AM_CONDITIONAL(BUILD_FORWARDER, test "x$forwarder" = "xyes")
|
|
AM_CONDITIONAL(BUILD_STREAMER, test "x$streamer" = "xyes")
|
|
AM_CONDITIONAL(BUILD_QUEUE, test "x$queue" = "xyes")
|
|
AM_CONDITIONAL(BUILD_PERF, test "x$perf" = "xyes")
|
|
AM_CONDITIONAL(BUILD_CHAT, test "x$chat" = "xyes")
|
|
AM_CONDITIONAL(ON_MINGW, test "x$on_mingw32" = "xyes")
|
|
AM_CONDITIONAL(BUILD_PGM_EXAMPLES, test "x$with_pgm_examples" = "xyes")
|
|
AM_CONDITIONAL(INSTALL_MAN, test "x$install_man" = "xyes")
|
|
AM_CONDITIONAL(BUILD_DOC, test "x$build_doc" = "xyes")
|
|
|
|
AC_SUBST(stdint)
|
|
AC_SUBST(inttypes)
|
|
|
|
# Subst LIBZMQ_EXTRA_CXXFLAGS & LDFLAGS
|
|
AC_SUBST(LIBZMQ_EXTRA_CXXFLAGS)
|
|
AC_SUBST(LIBZMQ_EXTRA_LDFLAGS)
|
|
|
|
|
|
# Checks for library functions.
|
|
AC_FUNC_MALLOC
|
|
AC_TYPE_SIGNAL
|
|
AC_CHECK_FUNCS(perror gettimeofday memset socket getifaddrs freeifaddrs)
|
|
|
|
AC_OUTPUT(Makefile src/Makefile doc/Makefile bindings/python/Makefile \
|
|
bindings/python/setup.py bindings/ruby/Makefile \
|
|
bindings/java/Makefile perf/Makefile perf/c/Makefile perf/cpp/Makefile \
|
|
perf/python/Makefile perf/ruby/Makefile perf/java/Makefile src/libzmq.pc \
|
|
devices/Makefile devices/zmq_forwarder/Makefile \
|
|
devices/zmq_streamer/Makefile devices/zmq_queue/Makefile bindings/Makefile \
|
|
examples/Makefile examples/chat/Makefile)
|
|
|
|
# On Linux patch libtool to delete hardcoded paths (rpath).
|
|
case "${host_os}" in
|
|
*linux*)
|
|
sed < libtool > libtool-2 \
|
|
's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" "/'
|
|
mv libtool-2 libtool
|
|
chmod 755 libtool
|
|
;;
|
|
esac
|
|
|
|
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([ Language bindings:])
|
|
AC_MSG_RESULT([ C: $czmq])
|
|
AC_MSG_RESULT([ C++: $cppzmq])
|
|
AC_MSG_RESULT([ Java: $jzmq])
|
|
AC_MSG_RESULT([ Python: $pyzmq])
|
|
AC_MSG_RESULT([ Ruby: $rbzmq])
|
|
if test "x$rbzmq" = "xyes"; then
|
|
AC_MSG_RESULT([ Ruby library install dir: $rubydir])
|
|
fi
|
|
AC_MSG_RESULT([ Transports:])
|
|
AC_MSG_RESULT([ tcp: yes])
|
|
AC_MSG_RESULT([ udp: $pgm_ext])
|
|
AC_MSG_RESULT([ pgm: $pgm_ext])
|
|
AC_MSG_RESULT([ inproc: yes])
|
|
AC_MSG_RESULT([ Devices:])
|
|
AC_MSG_RESULT([ Forwarder: $forwarder])
|
|
AC_MSG_RESULT([ Streamer: $streamer])
|
|
AC_MSG_RESULT([ Queue: $queue])
|
|
AC_MSG_RESULT([ Performance tests: $perf])
|
|
AC_MSG_RESULT([ Examples:])
|
|
AC_MSG_RESULT([ Chat: $chat])
|
|
AC_MSG_RESULT([ Documentation: $build_doc])
|
|
AC_MSG_RESULT([])
|
|
AC_MSG_RESULT([ ******************************************************** ])
|
|
AC_MSG_RESULT([])
|
|
|