mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-12 10:33:52 +01:00
7f7ac843d5
As decided on the mailing list, there have been five 2.x releases to date, so the upcoming release will be numbered 2.0.6.
661 lines
21 KiB
Plaintext
661 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_LDFLAFS=""
|
|
|
|
# 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
|
|
|
|
case "${host_os}" in
|
|
*linux*)
|
|
AC_DEFINE(ZMQ_HAVE_LINUX, 1, [Have Linux OS])
|
|
CPPFLAGS="-D_REENTRANT $CPPFLAGS"
|
|
AC_CHECK_LIB(uuid, main, ,
|
|
[AC_MSG_ERROR([Could not link with libuuid, install develop version.])])
|
|
;;
|
|
*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)
|
|
AC_CHECK_LIB(uuid, main, ,
|
|
[AC_MSG_ERROR([Could not link with libuuid, install develop version.])])
|
|
CPPFLAGS="-D_REENTRANT -D_PTHREADS $CPPFLAGS"
|
|
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*)
|
|
AC_DEFINE(ZMQ_HAVE_FREEBSD, 1, [Have FreeBSD OS])
|
|
CPPFLAGS="-D_THREAD_SAFE $CPPFLAGS"
|
|
LIBS="-pthread"
|
|
;;
|
|
*darwin*)
|
|
pedantic="no"
|
|
werror="no"
|
|
AC_DEFINE(ZMQ_HAVE_OSX, 1, [Have DarwinOSX OS])
|
|
LIBS="-pthread"
|
|
LIBZMQ_EXTRA_CXXFLAGS+="-Wno-uninitialized"
|
|
;;
|
|
*openbsd*)
|
|
AC_DEFINE(ZMQ_HAVE_OPENBSD, 1, [Have OpenBSD OS])
|
|
CPPFLAGS="-pthread $CPPFLAGS"
|
|
LIBS="-pthread"
|
|
;;
|
|
*nto-qnx*)
|
|
pedantic="no"
|
|
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)
|
|
;;
|
|
*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([Could not link with ws2_32.dll.])])
|
|
AC_CHECK_LIB(Rpcrt4, main, ,
|
|
[AC_MSG_ERROR([Could not link with Rpcrt4.dll.])])
|
|
AC_CHECK_LIB(Iphlpapi, main, ,
|
|
[AC_MSG_ERROR([Could not link with Iphlpapi.dll.])])
|
|
CFLAGS="${CFLAGS} -std=c99"
|
|
on_mingw32="yes"
|
|
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)
|
|
|
|
# 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)
|
|
|
|
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
|
|
|
|
# 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([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
|
|
|
|
# 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([Could not find Ruby header files, Please specify their location with --with-ruby-headersdir.])])
|
|
|
|
AC_SEARCH_LIBS(ruby_init,[ruby ruby1.8 ruby18],,
|
|
[AC_MSG_ERROR([Could not link with Ruby library. Please specify their 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([Could not find python.])
|
|
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([To run configure with --with-java option, javac has to be on the path.]);
|
|
fi
|
|
|
|
AC_PATH_PROG(JAVAH, javah, "no",[$PATH:$JAVA_HOME/bin])
|
|
if test "x$JAVAH" = "xno"; then
|
|
AC_MSG_ERROR([To run configure with --with-java option, javah has to be on the path.]);
|
|
fi
|
|
|
|
AC_PATH_PROG(JAR, jar, "no", [$PATH:$JAVA_HOME/bin])
|
|
if test "x$JAR" = "xno"; then
|
|
AC_MSG_ERROR([To run configure with --with-java option, jar has to be on the path.]);
|
|
fi
|
|
|
|
if test "x$JAVA_HOME" = "x"; then
|
|
AC_MSG_ERROR([To run configure with --with-java, please set the JAVA_HOME variable to your JDK environment.]);
|
|
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([Could not find jni.h in $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
|
|
pgm2_ext="no"
|
|
|
|
pgm2_basename="libpgm-2.0.23rc8"
|
|
|
|
AC_SUBST(pgm2_basename)
|
|
|
|
pgm_basename=""
|
|
|
|
AC_ARG_WITH([pgm], [AS_HELP_STRING([--with-pgm],
|
|
[build libzmq with PGM extension [default=no]])],
|
|
[with_pgm2_ext=yes], [with_pgm2_ext=no])
|
|
|
|
AC_ARG_WITH([pgm-examples], [AS_HELP_STRING([--with-pgm-examples],
|
|
[build PGM examples [default=no]])],
|
|
[with_pgm2_examples=yes], [with_pgm2_examples=no])
|
|
|
|
if test "x$with_pgm2_ext" = "xno" -a "x$with_pgm2_examples" = "xyes"; then
|
|
AC_MSG_ERROR([Can not configure --with-pgm2-examples without --with-pgm2.]);
|
|
fi
|
|
|
|
if test "x$c" = "xno" -a "x$with_pgm2_examples" = "xyes"; then
|
|
AC_MSG_ERROR([Can not configure --with-pgm2-examples without --with-c.]);
|
|
fi
|
|
|
|
if test "x$with_pgm2_ext" != "xno"; then
|
|
|
|
pgm_basename=${pgm2_basename}
|
|
|
|
# Test if we have pkg-config
|
|
if test "x$have_pkg_config" != "xyes"; then
|
|
AC_MSG_ERROR([To run configure with --with-pgm2 option, pkg-config has to be installed.]);
|
|
fi
|
|
|
|
case "${host_os}" in
|
|
*linux*)
|
|
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -Wno-variadic-macros -Wno-long-long "
|
|
;;
|
|
*mingw32*)
|
|
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -Wno-variadic-macros -Wno-long-long "
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([PGM extesion is not supported on this platform $host.])
|
|
;;
|
|
esac
|
|
|
|
# Unpack libpgm2
|
|
AC_MSG_CHECKING([Unpacking ${pgm_basename}.tar.bz2])
|
|
|
|
if tar -xjf foreign/openpgm/${pgm_basename}.tar.bz2 -C foreign/openpgm/; then
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_MSG_ERROR([Could not unpack foreign/openpgm/${pgm_basename}.tar.bz2 file.])
|
|
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 galois_tables.c
|
|
AC_CONFIG_COMMANDS([galois_tables2.c],
|
|
[perl foreign/openpgm/libpgm-2.0.23rc8/openpgm/pgm/galois_generator.pl > \
|
|
foreign/openpgm/libpgm-2.0.23rc8/openpgm/pgm/galois_tables.c])
|
|
|
|
# Generate version.c
|
|
AC_CONFIG_COMMANDS([version2.c],
|
|
[python foreign/openpgm/libpgm-2.0.23rc8/openpgm/pgm/version_generator.py > \
|
|
foreign/openpgm/libpgm-2.0.23rc8/openpgm/pgm/version.c])
|
|
|
|
# Check for OpenPGM nedded libraries.
|
|
PKG_CHECK_MODULES([GLIB], [glib-2.0 gthread-2.0])
|
|
|
|
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} ${GLIB_CFLAGS} "
|
|
|
|
LIBZMQ_EXTRA_LDFLAFS="${LIBZMQ_EXTRA_LDFLAFS} ${GLIB_LIBS}"
|
|
|
|
AC_DEFINE(ZMQ_HAVE_OPENPGM, 1, [Have OpenPGM v1 or v2 extension.])
|
|
AC_DEFINE(ZMQ_HAVE_OPENPGM2, 1, [Have OpenPGM v2 extension.])
|
|
pgm2_ext="yes"
|
|
else
|
|
# Fallback for make dist.
|
|
pgm_basename=${pgm2_basename}
|
|
fi
|
|
|
|
AC_SUBST(pgm_basename)
|
|
|
|
# If not on QNX nor OSX nor PGM add -pedantic into LIBZMQ_EXTRA_CXXFLAGS.
|
|
if test "x$pedantic" = "xyes" -a "x$pgm2_ext" = "xno"; then
|
|
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -pedantic"
|
|
fi
|
|
|
|
# If not on QNX nor --with-pgm2 add -Werror into LIBZMQ_EXTRA_CXXFLAGS.
|
|
if test "x$werror" = "xyes" -a "x$pgm2_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([To run configure with --with-perf option chose at least one language binding.]);
|
|
fi
|
|
fi
|
|
|
|
if test "x$with_perf" = "xno" -a "x$with_pgm2_examples" = "xyes"; then
|
|
AC_MSG_ERROR([Can not configure --with-pgm2-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_PGM2, test "x$pgm2_ext" = "xyes")
|
|
AM_CONDITIONAL(BUILD_NO_PGM, test "x$pgm2_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_PGM2_EXAMPLES, test "x$with_pgm2_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_LDFLAFS)
|
|
|
|
|
|
# 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: $pgm2_ext])
|
|
AC_MSG_RESULT([ pgm: $pgm2_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([])
|
|
|