]> granicus.if.org Git - icinga2/commitdiff
Fixed library dependencies (libtool).
authorGunnar Beutner <gunnar.beutner@netways.de>
Wed, 9 May 2012 10:10:07 +0000 (12:10 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Wed, 9 May 2012 10:10:07 +0000 (12:10 +0200)
Makefile.am
base/Makefile.am
cJSON/Makefile.am
components/configfile/Makefile.am
components/configrpc/Makefile.am
components/demo/Makefile.am
configure.ac
icinga-app/Makefile.am
icinga/Makefile.am
jsonrpc/Makefile.am
m4/ax_pthread.m4 [new file with mode: 0644]

index bf5f101b0edbeaad9b12d5cbecd7fb6684cf3ad3..c445901cbe83f01ab1218b805756315305cc6a49 100644 (file)
@@ -3,8 +3,8 @@
 
 SUBDIRS = ltdl \
        mmatch \
-       base \
        cJSON \
+       base \
        jsonrpc \
        icinga \
        icinga-app \
index b4eabd0ddfa9595c7b0b37b46f6b84597253ee8d..f5520d9e68cbda0e5297e7c1e85fae18e27a2615 100644 (file)
@@ -56,6 +56,15 @@ libbase_la_SOURCES =  \
        win32.cpp \
        win32.h
 
-libbase_la_LIBADD=$(LIBLTDL)
+libbase_la_CXXFLAGS = \
+       -DI2_BASE_BUILD \
+       $(LTDLINCL) \
+       -I${top_srcdir}/mmatch
 
-libbase_la_CXXFLAGS=$(LTDLINCL) -DI2_BASE_BUILD -pthread -I${top_srcdir}/mmatch
+libbase_la_LDFLAGS = \
+       -no-undefined \
+       -version-info 0:0:0
+
+libbase_la_LIBADD = \
+       $(LIBLTDL) \
+       ${top_builddir}/mmatch/libmmatch.la
index a4d45f77c9ddb58fc0b2d8e2ed74b85ed9474783..f63e89930e928a44e221a349c731b3712315cb8d 100644 (file)
@@ -1,9 +1,9 @@
 ## Process this file with automake to produce Makefile.in
 
 
-noinst_LTLIBRARIES =  \
+noinst_LTLIBRARIES = \
        libcJSON.la
 
-libcJSON_la_SOURCES =  \
+libcJSON_la_SOURCES = \
        cJSON.c \
        cJSON.h
index 75c2df6afb95fef4311db8d7eef505f80200ca47..cb2b29cde484ce2132f4e6ec36ba7233ef80a4b7 100644 (file)
@@ -1,17 +1,23 @@
 ## Process this file with automake to produce Makefile.in
 
-pkglib_LTLIBRARIES =  \
+pkglib_LTLIBRARIES = \
        configfile.la
 
-configfile_la_SOURCES =  \
+configfile_la_SOURCES = \
        configfilecomponent.cpp \
        configfilecomponent.h \
        i2-configfile.h
 
-configfile_la_CXXFLAGS = -I${top_srcdir}/base \
+configfile_la_CXXFLAGS = \
+       -I${top_srcdir}/base \
        -I${top_srcdir}/jsonrpc \
        -I${top_srcdir}/cJSON
 
-configfile_la_LDFLAGS = -module -version-info 0:0:0 -no-undefined
-configfile_la_LIBADD = ${top_builddir}/base/libbase.la \
-       ${top_builddir}/cJSON/libcJSON.la
+configfile_la_LDFLAGS = \
+       -module \
+       -no-undefined \
+       -version-info 0:0:0
+
+configfile_la_LIBADD = \
+       $(top_builddir)/base/libbase.la \
+       $(top_builddir)/cJSON/libcJSON.la
index 07cf53aef164f03fcc6e5f76000805feddfa7b14..5661e148d35047ffe3f1e630a08c994f98767eb4 100644 (file)
@@ -1,20 +1,26 @@
 ## Process this file with automake to produce Makefile.in
 
-pkglib_LTLIBRARIES =  \
+pkglib_LTLIBRARIES = \
        configrpc.la
 
-configrpc_la_SOURCES =  \
+configrpc_la_SOURCES = \
        configrpccomponent.cpp \
        configrpccomponent.h \
        i2-configrpc.h
 
-configrpc_la_CXXFLAGS = -I${top_srcdir}/base \
+configrpc_la_CXXFLAGS = \
+       -I${top_srcdir}/base \
        -I${top_srcdir}/jsonrpc \
        -I${top_srcdir}/cJSON \
        -I${top_srcdir}/icinga
 
-configrpc_la_LDFLAGS = -module -version-info 0:0:0 -no-undefined -pthread
-configrpc_la_LIBADD = ${top_builddir}/base/libbase.la \
+configrpc_la_LDFLAGS = \
+       -module \
+       -no-undefined \
+       -version-info 0:0:0
+
+configrpc_la_LIBADD = \
+       ${top_builddir}/base/libbase.la \
        ${top_builddir}/jsonrpc/libjsonrpc.la \
        ${top_builddir}/cJSON/libcJSON.la \
        ${top_builddir}/icinga/libicinga.la
index d49b52c82f547ba52255bb697ebe4558e2264bd1..0406f4d3f50d964eb1f9871144895f20f251952e 100644 (file)
@@ -1,20 +1,25 @@
 ## Process this file with automake to produce Makefile.in
 
-pkglib_LTLIBRARIES =  \
+pkglib_LTLIBRARIES = \
        demo.la
 
-demo_la_SOURCES =  \
+demo_la_SOURCES = \
        democomponent.cpp \
        democomponent.h \
        i2-demo.h
 
-demo_la_CXXFLAGS = -I${top_srcdir}/base \
+demo_la_CXXFLAGS = \
+       -I${top_srcdir}/base \
        -I${top_srcdir}/jsonrpc \
        -I${top_srcdir}/cJSON \
        -I${top_srcdir}/icinga
 
-demo_la_LDFLAGS = -module -version-info 0:0:0 -no-undefined -pthread
-demo_la_LIBADD = ${top_builddir}/base/libbase.la \
+demo_la_LDFLAGS = \
+       -module \
+       -no-undefined \
+       -version-info 0:0:0
+
+demo_la_LIBADD = \
+       ${top_builddir}/base/libbase.la \
        ${top_builddir}/jsonrpc/libjsonrpc.la \
-       ${top_builddir}/cJSON/libcJSON.la \
        ${top_builddir}/icinga/libicinga.la
index c5b681897155b4e2a0fcacd5dab5e0187e865d61..53c7dd04586436cfb67d4b52a5e47fcbf77cbf89 100644 (file)
@@ -10,15 +10,19 @@ AM_INIT_AUTOMAKE([1.11])
 
 m4_include([m4/ax_cxx_gcc_abi_demangle.m4])
 m4_include([m4/ax_check_compile_flag.m4])
+m4_include([m4/ax_pthread.m4])
 
 AM_SILENT_RULES([yes])
 
 AC_PROG_CXX
 AX_CXX_GCC_ABI_DEMANGLE
+AX_PTHREAD
 
 AC_CHECK_LIB(ssl, SSL_new)
 AC_CHECK_LIB(crypto, X509_NAME_oneline)
 AC_CHECK_LIB(eay32, X509_NAME_oneline)
+AC_CHECK_LIB(m, floor)
+AC_CHECK_LIB(pthread, pthread_create)
 
 AX_CHECK_COMPILE_FLAG([-std=c++0x], [have_cxx11_support=yes])
 
index e2233e971e4f6fab7665225610443a25ec240796..1fe4fbacfcc77ff3889cf6d313c25f4c2ee127bf 100644 (file)
@@ -1,21 +1,20 @@
 ## Process this file with automake to produce Makefile.in
 
 
-bin_PROGRAMS =  \
+bin_PROGRAMS = \
        icinga
 
-icinga_SOURCES =  \
+icinga_SOURCES = \
        icinga.cpp
 
-icinga_CFLAGS = -DI2_ICINGALAUNCHER_BUILD
-
-icinga_CXXFLAGS = -DI2_ICINGALAUNCHER_BUILD -I${top_srcdir}/base \
+icinga_CXXFLAGS = \
+       -DI2_ICINGALAUNCHER_BUILD \
+       -I${top_srcdir}/base \
        -I${top_srcdir}/jsonrpc \
        -I${top_srcdir}/cJSON \
        -I${top_srcdir}/icinga \
        -I${top_srcdir}
 
-icinga_LDFLAGS = $(top_builddir)/icinga/libicinga.la \
-       $(top_builddir)/jsonrpc/libjsonrpc.la \
-       $(top_builddir)/base/libbase.la \
-       ${top_builddir}/cJSON/libcJSON.la
+icinga_LDADD = \
+       ${top_builddir}/base/libbase.la \
+       ${top_builddir}/icinga/libicinga.la
index b5cb25c8111474eca496495f64b36ab0d11ac7e9..85f99d2ecfe11a14568fb65974f30c62ff53af42 100644 (file)
@@ -21,11 +21,17 @@ libicinga_la_SOURCES =  \
 
 libicinga_la_CFLAGS = -DI2_ICINGA_BUILD
 
-libicinga_la_CXXFLAGS = -DI2_ICINGA_BUILD -I${top_srcdir}/base \
+libicinga_la_CXXFLAGS = \
+       -DI2_ICINGA_BUILD \
+       -I${top_srcdir}/base \
        -I${top_srcdir}/jsonrpc \
        -I${top_srcdir}/cJSON \
        -I${top_srcdir}
 
-libicinga_la_LDFLAGS = $(top_builddir)/jsonrpc/libjsonrpc.la \
-       $(top_builddir)/base/libbase.la \
-       ${top_builddir}/cJSON/libcJSON.la
+libicinga_la_LDFLAGS = \
+       -no-undefined \
+       -version-info 0:0:0
+
+libicinga_la_LIBADD = \
+       ${top_builddir}/jsonrpc/libjsonrpc.la \
+       ${top_builddir}/base/libbase.la
index de82b89d494ae8ceab05c47171e3b4f77cf58c19..3f1210a5afe9882385c9ed3c3e6b2e944ca76c91 100644 (file)
@@ -1,10 +1,10 @@
 ## Process this file with automake to produce Makefile.in
 
 
-pkglib_LTLIBRARIES =  \
+pkglib_LTLIBRARIES = \
        libjsonrpc.la
 
-libjsonrpc_la_SOURCES =  \
+libjsonrpc_la_SOURCES = \
        i2-jsonrpc.h \
        jsonrpcclient.cpp \
        jsonrpcclient.h \
@@ -19,5 +19,15 @@ libjsonrpc_la_SOURCES =  \
        netstring.cpp \
        netstring.h
 
-libjsonrpc_la_CXXFLAGS = -DI2_JSONRPC_BUILD -I${top_srcdir}/base \
-       -I${top_srcdir}/cJSON
\ No newline at end of file
+libjsonrpc_la_CXXFLAGS = \
+       -DI2_JSONRPC_BUILD \
+       -I${top_srcdir}/base \
+       -I${top_srcdir}/cJSON
+
+libjsonrpc_la_LDFLAGS = \
+       -no-undefined \
+       -version-info 0:0:0
+
+libjsonrpc_la_LIBADD = \
+       ${top_builddir}/base/libbase.la \
+       ${top_builddir}/cJSON/libcJSON.la
diff --git a/m4/ax_pthread.m4 b/m4/ax_pthread.m4
new file mode 100644 (file)
index 0000000..d90de34
--- /dev/null
@@ -0,0 +1,309 @@
+# ===========================================================================
+#        http://www.gnu.org/software/autoconf-archive/ax_pthread.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+#
+# DESCRIPTION
+#
+#   This macro figures out how to build C programs using POSIX threads. It
+#   sets the PTHREAD_LIBS output variable to the threads library and linker
+#   flags, and the PTHREAD_CFLAGS output variable to any special C compiler
+#   flags that are needed. (The user can also force certain compiler
+#   flags/libs to be tested by setting these environment variables.)
+#
+#   Also sets PTHREAD_CC to any special C compiler that is needed for
+#   multi-threaded programs (defaults to the value of CC otherwise). (This
+#   is necessary on AIX to use the special cc_r compiler alias.)
+#
+#   NOTE: You are assumed to not only compile your program with these flags,
+#   but also link it with them as well. e.g. you should link with
+#   $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
+#
+#   If you are only building threads programs, you may wish to use these
+#   variables in your default LIBS, CFLAGS, and CC:
+#
+#     LIBS="$PTHREAD_LIBS $LIBS"
+#     CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+#     CC="$PTHREAD_CC"
+#
+#   In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
+#   has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
+#   (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
+#
+#   Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
+#   PTHREAD_PRIO_INHERIT symbol is defined when compiling with
+#   PTHREAD_CFLAGS.
+#
+#   ACTION-IF-FOUND is a list of shell commands to run if a threads library
+#   is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
+#   is not found. If ACTION-IF-FOUND is not specified, the default action
+#   will define HAVE_PTHREAD.
+#
+#   Please let the authors know if this macro fails on any platform, or if
+#   you have any other suggestions or comments. This macro was based on work
+#   by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
+#   from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
+#   Alejandro Forero Cuervo to the autoconf macro repository. We are also
+#   grateful for the helpful feedback of numerous users.
+#
+#   Updated for Autoconf 2.68 by Daniel Richard G.
+#
+# LICENSE
+#
+#   Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
+#   Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
+#
+#   This program is free software: you can redistribute it and/or modify it
+#   under the terms of the GNU General Public License as published by the
+#   Free Software Foundation, either version 3 of the License, or (at your
+#   option) any later version.
+#
+#   This program is distributed in the hope that it will be useful, but
+#   WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+#   Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License along
+#   with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+#   As a special exception, the respective Autoconf Macro's copyright owner
+#   gives unlimited permission to copy, distribute and modify the configure
+#   scripts that are the output of Autoconf when processing the Macro. You
+#   need not follow the terms of the GNU General Public License when using
+#   or distributing such scripts, even though portions of the text of the
+#   Macro appear in them. The GNU General Public License (GPL) does govern
+#   all other use of the material that constitutes the Autoconf Macro.
+#
+#   This special exception to the GPL applies to versions of the Autoconf
+#   Macro released by the Autoconf Archive. When you make and distribute a
+#   modified version of the Autoconf Macro, you may extend this special
+#   exception to the GPL to apply to your modified version as well.
+
+#serial 18
+
+AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
+AC_DEFUN([AX_PTHREAD], [
+AC_REQUIRE([AC_CANONICAL_HOST])
+AC_LANG_PUSH([C])
+ax_pthread_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on True64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
+        AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes)
+        AC_MSG_RESULT($ax_pthread_ok)
+        if test x"$ax_pthread_ok" = xno; then
+                PTHREAD_LIBS=""
+                PTHREAD_CFLAGS=""
+        fi
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try.  Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all, and "pthread-config"
+# which is a program returning the flags for the Pth emulation library.
+
+ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+
+# The ordering *is* (sometimes) important.  Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+#       other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
+# -pthreads: Solaris/gcc
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+#      doesn't hurt to check since this sometimes defines pthreads too;
+#      also defines -D_REENTRANT)
+#      ... -mt is also the pthreads flag for HP/aCC
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+# pthread-config: use pthread-config program (for GNU Pth library)
+
+case ${host_os} in
+        solaris*)
+
+        # On Solaris (at least, for some versions), libc contains stubbed
+        # (non-functional) versions of the pthreads routines, so link-based
+        # tests will erroneously succeed.  (We need to link with -pthreads/-mt/
+        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
+        # a function called by this macro, so we could check for that, but
+        # who knows whether they'll stub that too in a future libc.)  So,
+        # we'll just look for -pthreads and -lpthread first:
+
+        ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
+        ;;
+
+        darwin*)
+        ax_pthread_flags="-pthread $ax_pthread_flags"
+        ;;
+esac
+
+if test x"$ax_pthread_ok" = xno; then
+for flag in $ax_pthread_flags; do
+
+        case $flag in
+                none)
+                AC_MSG_CHECKING([whether pthreads work without any flags])
+                ;;
+
+                -*)
+                AC_MSG_CHECKING([whether pthreads work with $flag])
+                PTHREAD_CFLAGS="$flag"
+                ;;
+
+                pthread-config)
+                AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no)
+                if test x"$ax_pthread_config" = xno; then continue; fi
+                PTHREAD_CFLAGS="`pthread-config --cflags`"
+                PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
+                ;;
+
+                *)
+                AC_MSG_CHECKING([for the pthreads library -l$flag])
+                PTHREAD_LIBS="-l$flag"
+                ;;
+        esac
+
+        save_LIBS="$LIBS"
+        save_CFLAGS="$CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Check for various functions.  We must include pthread.h,
+        # since some functions may be macros.  (On the Sequent, we
+        # need a special flag -Kthread to make this header compile.)
+        # We check for pthread_join because it is in -lpthread on IRIX
+        # while pthread_create is in libc.  We check for pthread_attr_init
+        # due to DEC craziness with -lpthreads.  We check for
+        # pthread_cleanup_push because it is one of the few pthread
+        # functions on Solaris that doesn't have a non-functional libc stub.
+        # We try pthread_create on general principles.
+        AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
+                        static void routine(void *a) { a = 0; }
+                        static void *start_routine(void *a) { return a; }],
+                       [pthread_t th; pthread_attr_t attr;
+                        pthread_create(&th, 0, start_routine, 0);
+                        pthread_join(th, 0);
+                        pthread_attr_init(&attr);
+                        pthread_cleanup_push(routine, 0);
+                        pthread_cleanup_pop(0) /* ; */])],
+                [ax_pthread_ok=yes],
+                [])
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        AC_MSG_RESULT($ax_pthread_ok)
+        if test "x$ax_pthread_ok" = xyes; then
+                break;
+        fi
+
+        PTHREAD_LIBS=""
+        PTHREAD_CFLAGS=""
+done
+fi
+
+# Various other checks:
+if test "x$ax_pthread_ok" = xyes; then
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
+        AC_MSG_CHECKING([for joinable pthread attribute])
+        attr_name=unknown
+        for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+            AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
+                           [int attr = $attr; return attr /* ; */])],
+                [attr_name=$attr; break],
+                [])
+        done
+        AC_MSG_RESULT($attr_name)
+        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
+            AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
+                               [Define to necessary symbol if this constant
+                                uses a non-standard name on your system.])
+        fi
+
+        AC_MSG_CHECKING([if more special flags are required for pthreads])
+        flag=no
+        case ${host_os} in
+            aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";;
+            osf* | hpux*) flag="-D_REENTRANT";;
+            solaris*)
+            if test "$GCC" = "yes"; then
+                flag="-D_REENTRANT"
+            else
+                flag="-mt -D_REENTRANT"
+            fi
+            ;;
+        esac
+        AC_MSG_RESULT(${flag})
+        if test "x$flag" != xno; then
+            PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
+        fi
+
+        AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
+            ax_cv_PTHREAD_PRIO_INHERIT, [
+                AC_LINK_IFELSE([
+                    AC_LANG_PROGRAM([[#include <pthread.h>]], [[int i = PTHREAD_PRIO_INHERIT;]])],
+                    [ax_cv_PTHREAD_PRIO_INHERIT=yes],
+                    [ax_cv_PTHREAD_PRIO_INHERIT=no])
+            ])
+        AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
+            AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.]))
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        # More AIX lossage: must compile with xlc_r or cc_r
+        if test x"$GCC" != xyes; then
+          AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC})
+        else
+          PTHREAD_CC=$CC
+        fi
+else
+        PTHREAD_CC="$CC"
+fi
+
+AC_SUBST(PTHREAD_LIBS)
+AC_SUBST(PTHREAD_CFLAGS)
+AC_SUBST(PTHREAD_CC)
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x"$ax_pthread_ok" = xyes; then
+        ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
+        :
+else
+        ax_pthread_ok=no
+        $2
+fi
+AC_LANG_POP
+])dnl AX_PTHREAD