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