[commit message]
[asterisk/asterisk.git] / acinclude.m4
1 # Various support functions for configure.ac in asterisk
2 #
3
4 # Helper function to check for gcc attributes.
5 # AST_GCC_ATTRIBUTE([attribute name])
6
7 AC_DEFUN([AST_GCC_ATTRIBUTE],
8 [
9 AC_MSG_CHECKING(for compiler 'attribute $1' support)
10 AC_COMPILE_IFELSE(
11         AC_LANG_PROGRAM([static int __attribute__(($1)) test(void) {}],
12                         []),
13         AC_MSG_RESULT(yes)
14         AC_DEFINE_UNQUOTED([HAVE_ATTRIBUTE_$1], 1, [Define to 1 if your GCC C compiler supports the '$1' attribute.]),
15         AC_MSG_RESULT(no))
16 ])
17
18 # Helper function to setup variables for a package.
19 # $1 -> the package name. Used in configure.ac and also as a prefix
20 #       for the variables ($1_DIR, $1_INCLUDE, $1_LIB) in makeopts
21 # $3 -> option name, used in --with-$3 or --without-$3 when calling configure.
22 # $2 and $4 are just text describing the package (short and long form)
23
24 # AST_EXT_LIB_SETUP([package], [short description], [configure option name], [long description])
25
26 AC_DEFUN([AST_EXT_LIB_SETUP],
27 [
28     $1_DESCRIP="$2"
29     $1_OPTION="$3"
30     AC_ARG_WITH([$3], AC_HELP_STRING([--with-$3=PATH],[use $2 files in PATH $4]),
31     [
32         case ${withval} in
33         n|no)
34         USE_$1=no
35         ;;
36         y|ye|yes)
37         ac_mandatory_list="${ac_mandatory_list} $1"
38         ;;
39         *)
40         $1_DIR="${withval}"
41         ac_mandatory_list="${ac_mandatory_list} $1"
42         ;;
43         esac
44     ])
45     PBX_$1=0
46     AC_SUBST([$1_LIB])
47     AC_SUBST([$1_INCLUDE])
48     AC_SUBST([$1_DIR])
49     AC_SUBST([PBX_$1])
50 ])
51
52 # Check whether any of the mandatory modules are not present, and
53 # print error messages in case. The mandatory list is built using
54 # --with-* arguments when invoking configure.
55
56 AC_DEFUN([AST_CHECK_MANDATORY],
57 [
58         AC_MSG_CHECKING([for mandatory modules: ${ac_mandatory_list}])
59         err=0;
60         for i in ${ac_mandatory_list}; do
61                 eval "a=\${PBX_$i}"
62                 if test "x${a}" = "x1" ; then continue; fi
63                 if test ${err} = "0" ; then AC_MSG_RESULT(fail) ; fi
64                 AC_MSG_RESULT()
65                 eval "a=\${${i}_OPTION}"
66                 AC_MSG_NOTICE([***])
67                 AC_MSG_NOTICE([*** The $i installation appears to be missing or broken.])
68                 AC_MSG_NOTICE([*** Either correct the installation, or run configure])
69                 AC_MSG_NOTICE([*** including --without-${a}.])
70                 err=1
71         done
72         if test $err = 1 ; then exit 1; fi
73         AC_MSG_RESULT(ok)
74 ])
75
76 # The next three functions check for the availability of a given package.
77 # AST_C_DEFINE_CHECK looks for the presence of a #define in a header file,
78 # AST_C_COMPILE_CHECK can be used for testing for various items in header files,
79 # AST_EXT_LIB_CHECK looks for a symbol in a given library, or at least
80 #       for the presence of a header file.
81 # AST_EXT_TOOL_CHECK looks for a symbol in using $1-config to determine CFLAGS and LIBS
82 #
83 # They are only run if PBX_$1 != 1 (where $1 is the package),
84 # so you can call them multiple times and stop at the first matching one.
85 # On success, they both set PBX_$1 = 1, set $1_INCLUDE and $1_LIB as applicable,
86 # and also #define HAVE_$1 1 and #define HAVE_$1_VERSION ${last_argument}
87 # in autoconfig.h so you can tell which test succeeded.
88 # They should be called after AST_EXT_LIB_SETUP($1, ...)
89
90 # Check if a given macro is defined in a certain header.
91
92 # AST_C_DEFINE_CHECK([package], [macro name], [header file], [version])
93 AC_DEFUN([AST_C_DEFINE_CHECK],
94 [
95     if test "x${PBX_$1}" != "x1" -a "${USE_$1}" != "no"; then
96         AC_MSG_CHECKING([for $2 in $3])
97         saved_cppflags="${CPPFLAGS}"
98         if test "x${$1_DIR}" != "x"; then
99             $1_INCLUDE="-I${$1_DIR}/include"
100         fi
101         CPPFLAGS="${CPPFLAGS} ${$1_INCLUDE}"
102
103         AC_COMPILE_IFELSE(
104             [ AC_LANG_PROGRAM( [#include <$3>],
105                                [#if defined($2)
106                                 int foo = 0;
107                                 #else
108                                 int foo = bar;
109                                 #endif
110                                 0
111                                ])],
112             [   AC_MSG_RESULT(yes)
113                 PBX_$1=1
114                 AC_DEFINE([HAVE_$1], 1, [Define if your system has the $1 headers.])
115                 AC_DEFINE([HAVE_$1_VERSION], $4, [Define $1 headers version])
116             ],
117             [       AC_MSG_RESULT(no) ] 
118         )
119         CPPFLAGS="${saved_cppflags}"
120     fi
121 ])
122
123
124 # Check if a given expression will compile using a certain header.
125
126 # AST_C_COMPILE_CHECK([package], [expression], [header file], [version])
127 AC_DEFUN([AST_C_COMPILE_CHECK],
128 [
129     if test "x${PBX_$1}" != "x1" -a "${USE_$1}" != "no"; then
130         AC_MSG_CHECKING([if "$2" compiles using $3])
131         saved_cppflags="${CPPFLAGS}"
132         if test "x${$1_DIR}" != "x"; then
133             $1_INCLUDE="-I${$1_DIR}/include"
134         fi
135         CPPFLAGS="${CPPFLAGS} ${$1_INCLUDE}"
136
137         AC_COMPILE_IFELSE(
138             [ AC_LANG_PROGRAM( [#include <$3>],
139                                [ $2; ]
140                                )],
141             [   AC_MSG_RESULT(yes)
142                 PBX_$1=1
143                 AC_DEFINE([HAVE_$1], 1, [Define if your system has the $1 headers.])
144                 AC_DEFINE([HAVE_$1_VERSION], $4, [Define $1 headers version])
145             ],
146             [       AC_MSG_RESULT(no) ] 
147         )
148         CPPFLAGS="${saved_cppflags}"
149     fi
150 ])
151
152
153 # Check for existence of a given package ($1), either looking up a function
154 # in a library, or, if no function is supplied, only check for the
155 # existence of the header files.
156
157 # AST_EXT_LIB_CHECK([package], [library], [function], [header],
158 #        [extra libs], [extra cflags], [version])
159 AC_DEFUN([AST_EXT_LIB_CHECK],
160 [
161 if test "x${PBX_$1}" != "x1" -a "${USE_$1}" != "no"; then
162    pbxlibdir=""
163    # if --with-$1=DIR has been specified, use it.
164    if test "x${$1_DIR}" != "x"; then
165       if test -d ${$1_DIR}/lib; then
166          pbxlibdir="-L${$1_DIR}/lib"
167       else
168          pbxlibdir="-L${$1_DIR}"
169       fi
170    fi
171    pbxfuncname="$3"
172    if test "x${pbxfuncname}" = "x" ; then   # empty lib, assume only headers
173       AST_$1_FOUND=yes
174    else
175       AC_CHECK_LIB([$2], [${pbxfuncname}], [AST_$1_FOUND=yes], [AST_$1_FOUND=no], ${pbxlibdir} $5)
176    fi
177
178    # now check for the header.
179    if test "${AST_$1_FOUND}" = "yes"; then
180       $1_LIB="${pbxlibdir} -l$2 $5"
181       # if --with-$1=DIR has been specified, use it.
182       if test "x${$1_DIR}" != "x"; then
183          $1_INCLUDE="-I${$1_DIR}/include"
184       fi
185       $1_INCLUDE="${$1_INCLUDE} $6"
186       if test "x$4" = "x" ; then        # no header, assume found
187          $1_HEADER_FOUND="1"
188       else                              # check for the header
189          saved_cppflags="${CPPFLAGS}"
190          CPPFLAGS="${CPPFLAGS} ${$1_INCLUDE} $6"
191          AC_CHECK_HEADER([$4], [$1_HEADER_FOUND=1], [$1_HEADER_FOUND=0])
192          CPPFLAGS="${saved_cppflags}"
193       fi
194       if test "x${$1_HEADER_FOUND}" = "x0" ; then
195          $1_LIB=""
196          $1_INCLUDE=""
197       else
198          if test "x${pbxfuncname}" = "x" ; then         # only checking headers -> no library
199             $1_LIB=""
200          fi
201          PBX_$1=1
202          # XXX don't know how to evaluate the description (third argument) in AC_DEFINE_UNQUOTED
203          AC_DEFINE_UNQUOTED([HAVE_$1], 1, [Define this to indicate the ${$1_DESCRIP} library])
204          AC_DEFINE_UNQUOTED([HAVE_$1_VERSION], [$7], [Define to indicate the ${$1_DESCRIP} library version])
205       fi
206    fi
207 fi
208 ])
209
210
211 # Check for a package using $2-config. Similar to AST_EXT_LIB_CHECK,
212 # but use $2-config to determine cflags and libraries to use.
213 # $3 and $4 can be used to replace --cflags and --libs in the request 
214
215 # AST_EXT_TOOL_CHECK([package], [tool name], [--cflags], [--libs])
216 AC_DEFUN([AST_EXT_TOOL_CHECK],
217 [
218     if test "x${PBX_$1}" != "x1" -a "${USE_$1}" != "no"; then
219         PBX_$1=0
220         AC_CHECK_TOOL(CONFIG_$1, $2-config, No)
221         if test ! "x${CONFIG_$1}" = xNo; then
222             if test x"$3" = x ; then A=--cflags ; else A="$3" ; fi
223             $1_INCLUDE=$(${CONFIG_$1} $A)
224             if test x"$4" = x ; then A=--libs ; else A="$4" ; fi
225             $1_LIB=$(${CONFIG_$1} $A)
226             PBX_$1=1
227             AC_DEFINE([HAVE_$1], 1, [Define if your system has the $1 libraries.])
228         fi
229     fi
230 ])
231
232 AC_DEFUN(
233 [AST_CHECK_GNU_MAKE], [AC_CACHE_CHECK(for GNU make, GNU_MAKE,
234    GNU_MAKE='Not Found' ;
235    GNU_MAKE_VERSION_MAJOR=0 ;
236    GNU_MAKE_VERSION_MINOR=0 ;
237    for a in make gmake gnumake ; do
238       if test -z "$a" ; then continue ; fi ;
239       if ( sh -c "$a --version" 2> /dev/null | grep GNU  2>&1 > /dev/null ) ;  then
240          GNU_MAKE=$a ;
241          GNU_MAKE_VERSION_MAJOR=`$GNU_MAKE --version | grep "GNU Make" | cut -f3 -d' ' | cut -f1 -d'.'`
242          GNU_MAKE_VERSION_MINOR=`$GNU_MAKE --version | grep "GNU Make" | cut -f2 -d'.' | cut -c1-2`
243          break;
244       fi
245    done ;
246 ) ;
247 if test  "x$GNU_MAKE" = "xNot Found"  ; then
248    AC_MSG_ERROR( *** Please install GNU make.  It is required to build Asterisk!)
249    exit 1
250 fi
251 AC_SUBST([GNU_MAKE])
252 ])
253
254
255 AC_DEFUN(
256 [AST_CHECK_PWLIB], [
257 PWLIB_INCDIR=
258 PWLIB_LIBDIR=
259 AC_LANG_PUSH([C++])
260 if test "${PWLIBDIR:-unset}" != "unset" ; then
261   AC_CHECK_HEADER(${PWLIBDIR}/version.h, HAS_PWLIB=1, )
262 fi
263 if test "${HAS_PWLIB:-unset}" = "unset" ; then
264   if test "${OPENH323DIR:-unset}" != "unset"; then
265     AC_CHECK_HEADER(${OPENH323DIR}/../pwlib/version.h, HAS_PWLIB=1, )
266   fi
267   if test "${HAS_PWLIB:-unset}" != "unset" ; then
268     PWLIBDIR="${OPENH323DIR}/../pwlib"
269   else
270     AC_CHECK_HEADER(${HOME}/pwlib/include/ptlib.h, HAS_PWLIB=1, )
271     if test "${HAS_PWLIB:-unset}" != "unset" ; then
272       PWLIBDIR="${HOME}/pwlib"
273     else
274       AC_CHECK_HEADER(/usr/local/include/ptlib.h, HAS_PWLIB=1, )
275       if test "${HAS_PWLIB:-unset}" != "unset" ; then
276         AC_PATH_PROG(PTLIB_CONFIG, ptlib-config, , /usr/local/bin)
277         if test "${PTLIB_CONFIG:-unset}" = "unset" ; then
278           AC_PATH_PROG(PTLIB_CONFIG, ptlib-config, , /usr/local/share/pwlib/make)
279         fi
280         PWLIB_INCDIR="/usr/local/include"
281         PWLIB_LIBDIR=`${PTLIB_CONFIG} --pwlibdir`
282         if test "${PWLIB_LIBDIR:-unset}" = "unset"; then
283           if test "x$LIB64" != "x"; then
284             PWLIB_LIBDIR="/usr/local/lib64"
285           else
286             PWLIB_LIBDIR="/usr/local/lib"
287           fi
288         fi
289         PWLIB_LIB=`${PTLIB_CONFIG} --ldflags --libs`
290         PWLIB_LIB="-L${PWLIB_LIBDIR} `echo ${PWLIB_LIB}`"
291       else
292         AC_CHECK_HEADER(/usr/include/ptlib.h, HAS_PWLIB=1, )
293         if test "${HAS_PWLIB:-unset}" != "unset" ; then
294           AC_PATH_PROG(PTLIB_CONFIG, ptlib-config, , /usr/share/pwlib/make)
295           PWLIB_INCDIR="/usr/include"
296           PWLIB_LIBDIR=`${PTLIB_CONFIG} --pwlibdir`
297           if test "${PWLIB_LIBDIR:-unset}" = "unset"; then
298             if test "x$LIB64" != "x"; then
299               PWLIB_LIBDIR="/usr/lib64"
300             else
301               PWLIB_LIBDIR="/usr/lib"
302             fi
303           fi
304           PWLIB_LIB=`${PTLIB_CONFIG} --ldflags --libs`
305           PWLIB_LIB="-L${PWLIB_LIBDIR} `echo ${PWLIB_LIB}`"
306         fi
307       fi
308     fi
309   fi
310 fi
311
312 #if test "${HAS_PWLIB:-unset}" = "unset" ; then
313 #  echo "Cannot find pwlib - please install or set PWLIBDIR and try again"
314 #  exit
315 #fi
316
317 if test "${HAS_PWLIB:-unset}" != "unset" ; then
318   if test "${PWLIBDIR:-unset}" = "unset" ; then
319     if test "${PTLIB_CONFIG:-unset}" != "unset" ; then
320       PWLIBDIR=`$PTLIB_CONFIG --prefix`
321     else
322       echo "Cannot find ptlib-config - please install and try again"
323       exit
324     fi
325   fi
326
327   if test "x$PWLIBDIR" = "x/usr" -o "x$PWLIBDIR" = "x/usr/"; then
328     PWLIBDIR="/usr/share/pwlib"
329     PWLIB_INCDIR="/usr/include"
330     if test "x$LIB64" != "x"; then
331       PWLIB_LIBDIR="/usr/lib64"
332     else
333       PWLIB_LIBDIR="/usr/lib"
334     fi
335   fi
336   if test "x$PWLIBDIR" = "x/usr/local" -o "x$PWLIBDIR" = "x/usr/"; then
337     PWLIBDIR="/usr/local/share/pwlib"
338     PWLIB_INCDIR="/usr/local/include"
339     if test "x$LIB64" != "x"; then
340       PWLIB_LIBDIR="/usr/local/lib64"
341     else
342       PWLIB_LIBDIR="/usr/local/lib"
343     fi
344   fi
345
346   if test "${PWLIB_INCDIR:-unset}" = "unset"; then
347     PWLIB_INCDIR="${PWLIBDIR}/include"
348   fi
349   if test "${PWLIB_LIBDIR:-unset}" = "unset"; then
350     PWLIB_LIBDIR="${PWLIBDIR}/lib"
351   fi
352
353   AC_SUBST([PWLIBDIR])
354   AC_SUBST([PWLIB_INCDIR])
355   AC_SUBST([PWLIB_LIBDIR])
356 fi
357   AC_LANG_POP([C++])
358 ])
359
360
361 AC_DEFUN(
362 [AST_CHECK_OPENH323_PLATFORM], [
363 PWLIB_OSTYPE=
364 case "$host_os" in
365   linux*)          PWLIB_OSTYPE=linux ;
366                 ;;
367   freebsd* )       PWLIB_OSTYPE=FreeBSD ;
368                 ;;
369   openbsd* )       PWLIB_OSTYPE=OpenBSD ;
370                                    ENDLDLIBS="-lossaudio" ;
371                 ;;
372   netbsd* )        PWLIB_OSTYPE=NetBSD ;
373                                    ENDLDLIBS="-lossaudio" ;
374                 ;;
375   solaris* | sunos* ) PWLIB_OSTYPE=solaris ;
376                 ;;
377   darwin* )            PWLIB_OSTYPE=Darwin ;
378                 ;;
379   beos*)           PWLIB_OSTYPE=beos ;
380                    STDCCFLAGS="$STDCCFLAGS -D__BEOS__"
381                 ;;
382   cygwin*)         PWLIB_OSTYPE=cygwin ;
383                 ;;
384   mingw*)              PWLIB_OSTYPE=mingw ;
385                            STDCCFLAGS="$STDCCFLAGS -mms-bitfields" ;
386                            ENDLDLIBS="-lwinmm -lwsock32 -lsnmpapi -lmpr -lcomdlg32 -lgdi32 -lavicap32" ;
387                 ;;
388   * )                  PWLIB_OSTYPE="$host_os" ;
389                            AC_MSG_WARN("OS $PWLIB_OSTYPE not recognized - proceed with caution!") ;
390                 ;;
391 esac
392
393 PWLIB_MACHTYPE=
394 case "$host_cpu" in
395    x86 | i686 | i586 | i486 | i386 ) PWLIB_MACHTYPE=x86
396                    ;;
397
398    x86_64)         PWLIB_MACHTYPE=x86_64 ;
399                    P_64BIT=1 ;
400                    LIB64=1 ;
401                    ;;
402
403    alpha | alphaev56 | alphaev6 | alphaev67 | alphaev7) PWLIB_MACHTYPE=alpha ;
404                    P_64BIT=1 ;
405                    ;;
406
407    sparc )         PWLIB_MACHTYPE=sparc ;
408                    ;;
409
410    powerpc )       PWLIB_MACHTYPE=ppc ;
411                    ;;
412
413    ppc )           PWLIB_MACHTYPE=ppc ;
414                    ;;
415
416    powerpc64 )     PWLIB_MACHTYPE=ppc64 ;
417                    P_64BIT=1 ;
418                    LIB64=1 ;
419                    ;;
420
421    ppc64 )         PWLIB_MACHTYPE=ppc64 ;
422                    P_64BIT=1 ;
423                    LIB64=1 ;
424                    ;;
425
426    ia64)           PWLIB_MACHTYPE=ia64 ;
427                    P_64BIT=1 ;
428                    ;;
429
430    s390x)          PWLIB_MACHTYPE=s390x ;
431                    P_64BIT=1 ;
432                    LIB64=1 ;
433                    ;;
434
435    s390)           PWLIB_MACHTYPE=s390 ;
436                    ;;
437
438    * )             PWLIB_MACHTYPE="$host_cpu";
439                    AC_MSG_WARN("CPU $PWLIB_MACHTYPE not recognized - proceed with caution!") ;;
440 esac
441
442 PWLIB_PLATFORM="${PWLIB_OSTYPE}_${PWLIB_MACHTYPE}"
443
444 AC_SUBST([PWLIB_PLATFORM])
445 ])
446
447
448 AC_DEFUN(
449 [AST_CHECK_OPENH323], [
450 OPENH323_INCDIR=
451 OPENH323_LIBDIR=
452 AC_LANG_PUSH([C++])
453 if test "${OPENH323DIR:-unset}" != "unset" ; then
454   AC_CHECK_HEADER(${OPENH323DIR}/version.h, HAS_OPENH323=1, )
455 fi
456 if test "${HAS_OPENH323:-unset}" = "unset" ; then
457   AC_CHECK_HEADER(${PWLIBDIR}/../openh323/version.h, OPENH323DIR="${PWLIBDIR}/../openh323"; HAS_OPENH323=1, )
458   if test "${HAS_OPENH323:-unset}" != "unset" ; then
459     OPENH323DIR="${PWLIBDIR}/../openh323"
460     saved_cppflags="${CPPFLAGS}"
461     CPPFLAGS="${CPPFLAGS} -I${PWLIB_INCDIR}/openh323 -I${PWLIB_INCDIR}"
462     AC_CHECK_HEADER(${OPENH323DIR}/include/h323.h, , OPENH323_INCDIR="${PWLIB_INCDIR}/openh323"; OPENH323_LIBDIR="${PWLIB_LIBDIR}", [#include <ptlib.h>])
463     CPPFLAGS="${saved_cppflags}"
464   else
465     saved_cppflags="${CPPFLAGS}"
466     CPPFLAGS="${CPPFLAGS} -I${HOME}/openh323/include -I${PWLIB_INCDIR}"
467     AC_CHECK_HEADER(${HOME}/openh323/include/h323.h, HAS_OPENH323=1, )
468     CPPFLAGS="${saved_cppflags}"
469     if test "${HAS_OPENH323:-unset}" != "unset" ; then
470       OPENH323DIR="${HOME}/openh323"
471     else
472       saved_cppflags="${CPPFLAGS}"
473       CPPFLAGS="${CPPFLAGS} -I/usr/local/include/openh323 -I${PWLIB_INCDIR}"
474       AC_CHECK_HEADER(/usr/local/include/openh323/h323.h, HAS_OPENH323=1, )
475       CPPFLAGS="${saved_cppflags}"
476       if test "${HAS_OPENH323:-unset}" != "unset" ; then
477         OPENH323DIR="/usr/local/share/openh323"
478         OPENH323_INCDIR="/usr/local/include/openh323"
479         if test "x$LIB64" != "x"; then
480           OPENH323_LIBDIR="/usr/local/lib64"
481         else
482           OPENH323_LIBDIR="/usr/local/lib"
483         fi
484       else
485         saved_cppflags="${CPPFLAGS}"
486         CPPFLAGS="${CPPFLAGS} -I/usr/include/openh323 -I${PWLIB_INCDIR}"
487         AC_CHECK_HEADER(/usr/include/openh323/h323.h, HAS_OPENH323=1, , [#include <ptlib.h>])
488         CPPFLAGS="${saved_cppflags}"
489         if test "${HAS_OPENH323:-unset}" != "unset" ; then
490           OPENH323DIR="/usr/share/openh323"
491           OPENH323_INCDIR="/usr/include/openh323"
492           if test "x$LIB64" != "x"; then
493             OPENH323_LIBDIR="/usr/lib64"
494           else
495             OPENH323_LIBDIR="/usr/lib"
496           fi
497         fi
498       fi
499     fi
500   fi
501 fi
502
503 if test "${HAS_OPENH323:-unset}" != "unset" ; then
504   if test "${OPENH323_INCDIR:-unset}" = "unset"; then
505     OPENH323_INCDIR="${OPENH323DIR}/include"
506   fi
507   if test "${OPENH323_LIBDIR:-unset}" = "unset"; then
508     OPENH323_LIBDIR="${OPENH323DIR}/lib"
509   fi
510
511   OPENH323_LIBDIR="`cd ${OPENH323_LIBDIR}; pwd`"
512   OPENH323_INCDIR="`cd ${OPENH323_INCDIR}; pwd`"
513   OPENH323DIR="`cd ${OPENH323DIR}; pwd`"
514
515   AC_SUBST([OPENH323DIR])
516   AC_SUBST([OPENH323_INCDIR])
517   AC_SUBST([OPENH323_LIBDIR])
518 fi
519   AC_LANG_POP([C++])
520 ])
521
522
523 AC_DEFUN(
524 [AST_CHECK_PWLIB_VERSION], [
525         if test "${HAS_$2:-unset}" != "unset"; then
526                 $2_VERSION=`grep "$2_VERSION" ${$2_INCDIR}/$3 | cut -f2 -d ' ' | sed -e 's/"//g'`
527                 $2_MAJOR_VERSION=`echo ${$2_VERSION} | cut -f1 -d.`
528                 $2_MINOR_VERSION=`echo ${$2_VERSION} | cut -f2 -d.`
529                 $2_BUILD_NUMBER=`echo ${$2_VERSION} | cut -f3 -d.`
530                 let $2_VER=${$2_MAJOR_VERSION}*10000+${$2_MINOR_VERSION}*100+${$2_BUILD_NUMBER}
531                 let $2_REQ=$4*10000+$5*100+$6
532
533                 AC_MSG_CHECKING(if $1 version ${$2_VERSION} is compatible with chan_h323)
534                 if test ${$2_VER} -lt ${$2_REQ}; then
535                         AC_MSG_RESULT(no)
536                         unset HAS_$2
537                 else
538                         AC_MSG_RESULT(yes)
539                 fi
540         fi
541 ])
542
543
544 AC_DEFUN(
545 [AST_CHECK_PWLIB_BUILD], [
546         if test "${HAS_$2:-unset}" != "unset"; then
547            AC_MSG_CHECKING($1 installation validity)
548
549            saved_cppflags="${CPPFLAGS}"
550            saved_libs="${LIBS}"
551            if test "${$2_LIB:-unset}" != "unset"; then
552               LIBS="${LIBS} ${$2_LIB} $7"
553            else
554               LIBS="${LIBS} -L${$2_LIBDIR} -l${PLATFORM_$2} $7"
555            fi
556            CPPFLAGS="${CPPFLAGS} -I${$2_INCDIR} $6"
557
558            AC_LANG_PUSH([C++])
559
560            AC_LINK_IFELSE(
561                 [AC_LANG_PROGRAM([$4],[$5])],
562                 [       AC_MSG_RESULT(yes) 
563                         ac_cv_lib_$2="yes" 
564                 ],
565                 [       AC_MSG_RESULT(no) 
566                         ac_cv_lib_$2="no" 
567                 ]
568                 )
569
570            AC_LANG_POP([C++])
571
572            LIBS="${saved_libs}"
573            CPPFLAGS="${saved_cppflags}"
574
575            if test "${ac_cv_lib_$2}" = "yes"; then
576               if test "${$2_LIB:-undef}" = "undef"; then
577                  if test "${$2_LIBDIR}" != "" -a "${$2_LIBDIR}" != "/usr/lib"; then
578                     $2_LIB="-L${$2_LIBDIR} -l${PLATFORM_$2}"
579                  else
580                     $2_LIB="-l${PLATFORM_$2}"
581                  fi
582               fi
583               if test "${$2_INCDIR}" != "" -a "${$2_INCDIR}" != "/usr/include"; then
584                  $2_INCLUDE="-I${$2_INCDIR}"
585               fi
586                   PBX_$2=1
587                   AC_DEFINE([HAVE_$2], 1, [$3])
588            fi
589         fi
590 ])
591
592 AC_DEFUN(
593 [AST_CHECK_OPENH323_BUILD], [
594         if test "${HAS_OPENH323:-unset}" != "unset"; then
595                 AC_MSG_CHECKING(OpenH323 build option)
596                 OPENH323_SUFFIX=
597                 prefixes="h323_${PWLIB_PLATFORM}_ h323_ openh323"
598                 for pfx in $prefixes; do
599                         files=`ls -l ${OPENH323_LIBDIR}/lib${pfx}*.so* 2>/dev/null`
600                         libfile=
601                         if test -n "$files"; then
602                                 for f in $files; do
603                                         if test -f $f -a ! -L $f; then
604                                                 libfile=`basename $f`
605                                                 break;
606                                         fi
607                                 done
608                         fi
609                         if test -n "$libfile"; then
610                                 OPENH323_PREFIX=$pfx
611                                 break;
612                         fi
613                 done
614                 if test "${libfile:-unset}" != "unset"; then
615                         OPENH323_SUFFIX=`eval "echo ${libfile} | sed -e 's/lib${OPENH323_PREFIX}\(@<:@^.@:>@*\)\..*/\1/'"`
616                 fi
617                 case "${OPENH323_SUFFIX}" in
618                         n)
619                                 OPENH323_BUILD="notrace";;
620                         r)
621                                 OPENH323_BUILD="opt";;
622                         d)
623                                 OPENH323_BUILD="debug";;
624                         *)
625                                 if test "${OPENH323_PREFIX:-undef}" = "openh323"; then
626                                         notrace=`eval "grep NOTRACE ${OPENH323DIR}/openh323u.mak | grep = | sed -e 's/@<:@A-Z0-9_@:>@*@<:@      @:>@*=@<:@      @:>@*//'"`
627                                         if test "x$notrace" = "x"; then
628                                                 notrace="0"
629                                         fi
630                                         if test "$notrace" -ne 0; then
631                                                 OPENH323_BUILD="notrace"
632                                         else
633                                                 OPENH323_BUILD="opt"
634                                         fi
635                                         OPENH323_LIB="-l${OPENH323_PREFIX}"
636                                 else
637                                         OPENH323_BUILD="notrace"
638                                 fi
639                                 ;;
640                 esac
641                 AC_MSG_RESULT(${OPENH323_BUILD})
642
643                 AC_SUBST([OPENH323_SUFFIX])
644                 AC_SUBST([OPENH323_BUILD])
645         fi
646 ])
647
648
649 # AST_FUNC_FORK
650 # -------------
651 AN_FUNCTION([fork],  [AST_FUNC_FORK])
652 AN_FUNCTION([vfork], [AST_FUNC_FORK])
653 AC_DEFUN([AST_FUNC_FORK],
654 [AC_REQUIRE([AC_TYPE_PID_T])dnl
655 AC_CHECK_HEADERS(vfork.h)
656 AC_CHECK_FUNCS(fork vfork)
657 if test "x$ac_cv_func_fork" = xyes; then
658   _AST_FUNC_FORK
659 else
660   ac_cv_func_fork_works=$ac_cv_func_fork
661 fi
662 if test "x$ac_cv_func_fork_works" = xcross; then
663   case $host in
664     *-*-amigaos* | *-*-msdosdjgpp* | *-*-uclinux* | *-*-linux-uclibc* )
665       # Override, as these systems have only a dummy fork() stub
666       ac_cv_func_fork_works=no
667       ;;
668     *)
669       ac_cv_func_fork_works=yes
670       ;;
671   esac
672   AC_MSG_WARN([result $ac_cv_func_fork_works guessed because of cross compilation])
673 fi
674 ac_cv_func_vfork_works=$ac_cv_func_vfork
675 if test "x$ac_cv_func_vfork" = xyes; then
676   _AC_FUNC_VFORK
677 fi;
678 if test "x$ac_cv_func_fork_works" = xcross; then
679   ac_cv_func_vfork_works=$ac_cv_func_vfork
680   AC_MSG_WARN([result $ac_cv_func_vfork_works guessed because of cross compilation])
681 fi
682
683 if test "x$ac_cv_func_vfork_works" = xyes; then
684   AC_DEFINE(HAVE_WORKING_VFORK, 1, [Define to 1 if `vfork' works.])
685 else
686   AC_DEFINE(vfork, fork, [Define as `fork' if `vfork' does not work.])
687 fi
688 if test "x$ac_cv_func_fork_works" = xyes; then
689   AC_DEFINE(HAVE_WORKING_FORK, 1, [Define to 1 if `fork' works.])
690 fi
691 ])# AST_FUNC_FORK
692
693
694 # _AST_FUNC_FORK
695 # -------------
696 AC_DEFUN([_AST_FUNC_FORK],
697   [AC_CACHE_CHECK(for working fork, ac_cv_func_fork_works,
698     [AC_RUN_IFELSE(
699       [AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
700         [
701           /* By Ruediger Kuhlmann. */
702           return fork () < 0;
703         ])],
704       [ac_cv_func_fork_works=yes],
705       [ac_cv_func_fork_works=no],
706       [ac_cv_func_fork_works=cross])])]
707 )# _AST_FUNC_FORK
708
709 # AST_PROG_LD
710 # ----------
711 # find the pathname to the GNU or non-GNU linker
712 AC_DEFUN([AST_PROG_LD],
713 [AC_ARG_WITH([gnu-ld],
714     [AC_HELP_STRING([--with-gnu-ld],
715         [assume the C compiler uses GNU ld @<:@default=no@:>@])],
716     [test "$withval" = no || with_gnu_ld=yes],
717     [with_gnu_ld=no])
718 AC_REQUIRE([AST_PROG_SED])dnl
719 AC_REQUIRE([AC_PROG_CC])dnl
720 AC_REQUIRE([AC_CANONICAL_HOST])dnl
721 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
722 ac_prog=ld
723 if test "$GCC" = yes; then
724   # Check if gcc -print-prog-name=ld gives a path.
725   AC_MSG_CHECKING([for ld used by $CC])
726   case $host in
727   *-*-mingw*)
728     # gcc leaves a trailing carriage return which upsets mingw
729     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
730   *)
731     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
732   esac
733   case $ac_prog in
734     # Accept absolute paths.
735     [[\\/]]* | ?:[[\\/]]*)
736       re_direlt='/[[^/]][[^/]]*/\.\./'
737       # Canonicalize the pathname of ld
738       ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
739       while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
740         ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
741       done
742       test -z "$LD" && LD="$ac_prog"
743       ;;
744   "")
745     # If it fails, then pretend we aren't using GCC.
746     ac_prog=ld
747     ;;
748   *)
749     # If it is relative, then search for the first ld in PATH.
750     with_gnu_ld=unknown
751     ;;
752   esac
753 elif test "$with_gnu_ld" = yes; then
754   AC_MSG_CHECKING([for GNU ld])
755 else
756   AC_MSG_CHECKING([for non-GNU ld])
757 fi
758 AC_CACHE_VAL(lt_cv_path_LD,
759 [if test -z "$LD"; then
760   lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
761   for ac_dir in $PATH; do
762     IFS="$lt_save_ifs"
763     test -z "$ac_dir" && ac_dir=.
764     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
765       lt_cv_path_LD="$ac_dir/$ac_prog"
766       # Check to see if the program is GNU ld.  I'd rather use --version,
767       # but apparently some variants of GNU ld only accept -v.
768       # Break only if it was the GNU/non-GNU ld that we prefer.
769       case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
770       *GNU* | *'with BFD'*)
771         test "$with_gnu_ld" != no && break
772         ;;
773       *)
774         test "$with_gnu_ld" != yes && break
775         ;;
776       esac
777     fi
778   done
779   IFS="$lt_save_ifs"
780 else
781   lt_cv_path_LD="$LD" # Let the user override the test with a path.
782 fi])
783 LD="$lt_cv_path_LD"
784 if test -n "$LD"; then
785   AC_MSG_RESULT($LD)
786 else
787   AC_MSG_RESULT(no)
788 fi
789 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
790 AST_PROG_LD_GNU
791 ])# AST_PROG_LD
792
793
794 # AST_PROG_LD_GNU
795 # --------------
796 AC_DEFUN([AST_PROG_LD_GNU],
797 [AC_REQUIRE([AST_PROG_EGREP])dnl
798 AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
799 [# I'd rather use --version here, but apparently some GNU lds only accept -v.
800 case `$LD -v 2>&1 </dev/null` in
801 *GNU* | *'with BFD'*)
802   lt_cv_prog_gnu_ld=yes
803   ;;
804 *)
805   lt_cv_prog_gnu_ld=no
806   ;;
807 esac])
808 with_gnu_ld=$lt_cv_prog_gnu_ld
809 ])# AST_PROG_LD_GNU
810
811 # AST_PROG_EGREP
812 # -------------
813 m4_ifndef([AST_PROG_EGREP], [AC_DEFUN([AST_PROG_EGREP],
814 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
815    [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
816     then ac_cv_prog_egrep='grep -E'
817     else ac_cv_prog_egrep='egrep'
818     fi])
819  EGREP=$ac_cv_prog_egrep
820  AC_SUBST([EGREP])
821 ])]) # AST_PROG_EGREP
822
823 # AST_PROG_SED
824 # -----------
825 # Check for a fully functional sed program that truncates
826 # as few characters as possible.  Prefer GNU sed if found.
827 AC_DEFUN([AST_PROG_SED],
828 [AC_CACHE_CHECK([for a sed that does not truncate output], ac_cv_path_SED,
829     [dnl ac_script should not contain more than 99 commands (for HP-UX sed),
830      dnl but more than about 7000 bytes, to catch a limit in Solaris 8 /usr/ucb/sed.
831      ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
832      for ac_i in 1 2 3 4 5 6 7; do
833        ac_script="$ac_script$as_nl$ac_script"
834      done
835      echo "$ac_script" | sed 99q >conftest.sed
836      $as_unset ac_script || ac_script=
837      _AC_PATH_PROG_FEATURE_CHECK(SED, [sed gsed],
838         [_AC_FEATURE_CHECK_LENGTH([ac_path_SED], [ac_cv_path_SED],
839                 ["$ac_path_SED" -f conftest.sed])])])
840  SED="$ac_cv_path_SED"
841  AC_SUBST([SED])dnl
842  rm -f conftest.sed
843 ])# AST_PROG_SED
844
845 dnl @synopsis ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
846 dnl
847 dnl @summary figure out how to build C programs using POSIX threads
848 dnl
849 dnl This macro figures out how to build C programs using POSIX threads.
850 dnl It sets the PTHREAD_LIBS output variable to the threads library and
851 dnl linker flags, and the PTHREAD_CFLAGS output variable to any special
852 dnl C compiler flags that are needed. (The user can also force certain
853 dnl compiler flags/libs to be tested by setting these environment
854 dnl variables.)
855 dnl
856 dnl Also sets PTHREAD_CC to any special C compiler that is needed for
857 dnl multi-threaded programs (defaults to the value of CC otherwise).
858 dnl (This is necessary on AIX to use the special cc_r compiler alias.)
859 dnl
860 dnl NOTE: You are assumed to not only compile your program with these
861 dnl flags, but also link it with them as well. e.g. you should link
862 dnl with $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS
863 dnl $LIBS
864 dnl
865 dnl If you are only building threads programs, you may wish to use
866 dnl these variables in your default LIBS, CFLAGS, and CC:
867 dnl
868 dnl        LIBS="$PTHREAD_LIBS $LIBS"
869 dnl        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
870 dnl        CC="$PTHREAD_CC"
871 dnl
872 dnl In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute
873 dnl constant has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to
874 dnl that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
875 dnl
876 dnl ACTION-IF-FOUND is a list of shell commands to run if a threads
877 dnl library is found, and ACTION-IF-NOT-FOUND is a list of commands to
878 dnl run it if it is not found. If ACTION-IF-FOUND is not specified, the
879 dnl default action will define HAVE_PTHREAD.
880 dnl
881 dnl Please let the authors know if this macro fails on any platform, or
882 dnl if you have any other suggestions or comments. This macro was based
883 dnl on work by SGJ on autoconf scripts for FFTW (www.fftw.org) (with
884 dnl help from M. Frigo), as well as ac_pthread and hb_pthread macros
885 dnl posted by Alejandro Forero Cuervo to the autoconf macro repository.
886 dnl We are also grateful for the helpful feedback of numerous users.
887 dnl
888 dnl @category InstalledPackages
889 dnl @author Steven G. Johnson <stevenj@alum.mit.edu>
890 dnl @version 2006-05-29
891 dnl @license GPLWithACException
892
893 AC_DEFUN([ACX_PTHREAD],
894 [
895 AC_REQUIRE([AC_CANONICAL_HOST])
896 AC_LANG_SAVE
897 AC_LANG_C
898 acx_pthread_ok=no
899
900 # We used to check for pthread.h first, but this fails if pthread.h
901 # requires special compiler flags (e.g. on True64 or Sequent).
902 # It gets checked for in the link test anyway.
903
904 # First of all, check if the user has set any of the PTHREAD_LIBS,
905 # etcetera environment variables, and if threads linking works using
906 # them:
907 if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
908         save_CFLAGS="$CFLAGS"
909         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
910         save_LIBS="$LIBS"
911         LIBS="$PTHREAD_LIBS $LIBS"
912         AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
913         AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes)
914         AC_MSG_RESULT($acx_pthread_ok)
915         if test x"$acx_pthread_ok" = xno; then
916                 PTHREAD_LIBS=""
917                 PTHREAD_CFLAGS=""
918         fi
919         LIBS="$save_LIBS"
920         CFLAGS="$save_CFLAGS"
921 fi
922
923 # We must check for the threads library under a number of different
924 # names; the ordering is very important because some systems
925 # (e.g. DEC) have both -lpthread and -lpthreads, where one of the
926 # libraries is broken (non-POSIX).
927
928 # Create a list of thread flags to try.  Items starting with a "-" are
929 # C compiler flags, and other items are library names, except for "none"
930 # which indicates that we try without any flags at all, and "pthread-config"
931 # which is a program returning the flags for the Pth emulation library.
932
933 acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
934
935 # The ordering *is* (sometimes) important.  Some notes on the
936 # individual items follow:
937
938 # pthreads: AIX (must check this before -lpthread)
939 # none: in case threads are in libc; should be tried before -Kthread and
940 #       other compiler flags to prevent continual compiler warnings
941 # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
942 # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
943 # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
944 # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
945 # -pthreads: Solaris/gcc
946 # -mthreads: Mingw32/gcc, Lynx/gcc
947 # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
948 #      doesn't hurt to check since this sometimes defines pthreads too;
949 #      also defines -D_REENTRANT)
950 #      ... -mt is also the pthreads flag for HP/aCC
951 # pthread: Linux, etcetera
952 # --thread-safe: KAI C++
953 # pthread-config: use pthread-config program (for GNU Pth library)
954
955 case "${host_cpu}-${host_os}" in
956         *solaris*)
957
958         # On Solaris (at least, for some versions), libc contains stubbed
959         # (non-functional) versions of the pthreads routines, so link-based
960         # tests will erroneously succeed.  (We need to link with -pthreads/-mt/
961         # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
962         # a function called by this macro, so we could check for that, but
963         # who knows whether they'll stub that too in a future libc.)  So,
964         # we'll just look for -pthreads and -lpthread first:
965
966         acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags"
967         ;;
968 esac
969
970 if test x"$acx_pthread_ok" = xno; then
971 for flag in $acx_pthread_flags; do
972
973         case $flag in
974                 none)
975                 AC_MSG_CHECKING([whether pthreads work without any flags])
976                 ;;
977
978                 -*)
979                 AC_MSG_CHECKING([whether pthreads work with $flag])
980                 PTHREAD_CFLAGS="$flag"
981                 ;;
982
983                 pthread-config)
984                 AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no)
985                 if test x"$acx_pthread_config" = xno; then continue; fi
986                 PTHREAD_CFLAGS="`pthread-config --cflags`"
987                 PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
988                 ;;
989
990                 *)
991                 AC_MSG_CHECKING([for the pthreads library -l$flag])
992                 PTHREAD_LIBS="-l$flag"
993                 ;;
994         esac
995
996         save_LIBS="$LIBS"
997         save_CFLAGS="$CFLAGS"
998         LIBS="$PTHREAD_LIBS $LIBS"
999         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
1000
1001         # Check for various functions.  We must include pthread.h,
1002         # since some functions may be macros.  (On the Sequent, we
1003         # need a special flag -Kthread to make this header compile.)
1004         # We check for pthread_join because it is in -lpthread on IRIX
1005         # while pthread_create is in libc.  We check for pthread_attr_init
1006         # due to DEC craziness with -lpthreads.  We check for
1007         # pthread_cleanup_push because it is one of the few pthread
1008         # functions on Solaris that doesn't have a non-functional libc stub.
1009         # We try pthread_create on general principles.
1010         AC_TRY_LINK([#include <pthread.h>],
1011                     [pthread_t th; pthread_join(th, 0);
1012                      pthread_attr_init(0); pthread_cleanup_push(0, 0);
1013                      pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
1014                     [acx_pthread_ok=yes])
1015
1016         LIBS="$save_LIBS"
1017         CFLAGS="$save_CFLAGS"
1018
1019         AC_MSG_RESULT($acx_pthread_ok)
1020         if test "x$acx_pthread_ok" = xyes; then
1021                 break;
1022         fi
1023
1024         PTHREAD_LIBS=""
1025         PTHREAD_CFLAGS=""
1026 done
1027 fi
1028
1029 # Various other checks:
1030 if test "x$acx_pthread_ok" = xyes; then
1031         save_LIBS="$LIBS"
1032         LIBS="$PTHREAD_LIBS $LIBS"
1033         save_CFLAGS="$CFLAGS"
1034         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
1035
1036         # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
1037         AC_MSG_CHECKING([for joinable pthread attribute])
1038         attr_name=unknown
1039         for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
1040             AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;],
1041                         [attr_name=$attr; break])
1042         done
1043         AC_MSG_RESULT($attr_name)
1044         if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
1045             AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
1046                                [Define to necessary symbol if this constant
1047                                 uses a non-standard name on your system.])
1048         fi
1049
1050         AC_MSG_CHECKING([if more special flags are required for pthreads])
1051         flag=no
1052         case "${host_cpu}-${host_os}" in
1053             *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
1054             *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
1055         esac
1056         AC_MSG_RESULT(${flag})
1057         if test "x$flag" != xno; then
1058             PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
1059         fi
1060
1061         LIBS="$save_LIBS"
1062         CFLAGS="$save_CFLAGS"
1063
1064         # More AIX lossage: must compile with xlc_r or cc_r
1065         if test x"$GCC" != xyes; then
1066           AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC})
1067         else
1068           PTHREAD_CC=$CC
1069         fi
1070 else
1071         PTHREAD_CC="$CC"
1072 fi
1073
1074 AC_SUBST(PTHREAD_LIBS)
1075 AC_SUBST(PTHREAD_CFLAGS)
1076 AC_SUBST(PTHREAD_CC)
1077
1078 # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
1079 if test x"$acx_pthread_ok" = xyes; then
1080         ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
1081         :
1082 else
1083         acx_pthread_ok=no
1084         $2
1085 fi
1086 AC_LANG_RESTORE
1087 ])dnl ACX_PTHREAD