summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Lucina <mato@kotelna.sk>2010-04-10 16:18:34 +0200
committerMartin Lucina <mato@kotelna.sk>2010-04-10 16:18:34 +0200
commit770aedbd09fb1e11a4e4880da2603a517856c16c (patch)
treed98febe8e12c3d63241920b693d6e1b25639fdf6
parent1dc0380e29fecd70f6299243d81f67db850db616 (diff)
Build fixes for Solaris and non-GNU compilers
Compiling C++ code with -D_POSIX_SOURCE on Solaris is unsupported, so remove it. Isolate GCC-isms inside checks that we are actually using GCC/G++. Only check for -lstdc++ when on GCC and doing static linking.
-rw-r--r--configure.in38
-rw-r--r--src/Makefile.am2
2 files changed, 27 insertions, 13 deletions
diff --git a/configure.in b/configure.in
index cebc906..e936cc7 100644
--- a/configure.in
+++ b/configure.in
@@ -38,17 +38,25 @@ LTVER="0:0:0"
AC_SUBST(LTVER)
# Checks for programs.
-AM_PROG_CC_C_O
+AC_PROG_CC
AC_PROG_CXX
+AM_PROG_CC_C_O
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
AC_PROG_SED
AC_PROG_AWK
+# Set a helper variable to indicate GNU C and C++ are in use
+if test "x$GCC" = "xyes" -a "x$GXX" = "xyes"; then
+ gnu_compilers="yes"
+else
+ gnu_compilers="no"
+fi
+
# Checks for libraries.
AC_CHECK_LIB([pthread], [pthread_create])
-# If using GNU C++, libstdc++ must be available.
-if test "x$GXX" = "xyes"; then
+# If using GNU C/C++ and static linking, libstdc++ must be available.
+if test "x$gnu_compilers" = "xyes" -a "x$enable_shared" = "xno"; then
# libstdc++ depends on libm on some platforms
AC_CHECK_LIB([m], [main])
AC_CHECK_LIB([stdc++], [main], ,
@@ -106,7 +114,7 @@ case "${host_os}" in
;;
*solaris*)
# Define on Solaris to enable all library features
- CPPFLAGS="-D_POSIX_C_SOURCE=200112L -D_PTHREADS $CPPFLAGS"
+ CPPFLAGS="-D_PTHREADS $CPPFLAGS"
AC_DEFINE(ZMQ_HAVE_SOLARIS, 1, [Have Solaris OS])
AC_CHECK_LIB(socket, main)
AC_CHECK_LIB(nsl, main)
@@ -214,7 +222,9 @@ esac
# CPU-specific optimizations
case "${host_cpu}" in
*sparc*)
- CPPFLAGS="$CPPFLAGS -mcpu=v9"
+ if test "x$gnu_compilers" = "xyes"; then
+ CPPFLAGS="$CPPFLAGS -mcpu=v9"
+ fi
;;
*)
;;
@@ -359,14 +369,18 @@ if test "x$with_pgm_ext" != "xno"; then
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
+# -Wall, -Werror and -pedantic are GNU compiler specific.
+# Also, these break OpenPGM so don't specify them if we are building with it.
+if test "x$gnu_compilers" = "xyes" -a "x$pgm_ext" = "xno"; then
+ LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -Wall"
+
+ if test "x$pedantic" = "xyes"; 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"
+ if test "x$werror" = "xyes"; then
+ LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -Werror"
+ fi
fi
AM_CONDITIONAL(BUILD_PGM, test "x$pgm_ext" = "xyes")
diff --git a/src/Makefile.am b/src/Makefile.am
index 4e695f6..ea7ce54 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -257,7 +257,7 @@ libzmq_la_CXXFLAGS = -I$(top_srcdir)/foreign/openpgm/@pgm_basename@/openpgm/pgm/
endif
if BUILD_NO_PGM
-libzmq_la_CXXFLAGS = -Wall @LIBZMQ_EXTRA_CXXFLAGS@
+libzmq_la_CXXFLAGS = @LIBZMQ_EXTRA_CXXFLAGS@
endif
dist-hook: