source: trunk/base/aclocal.m4 @ 19336

Last change on this file since 19336 was 18769, checked in by pguyot (Paul Guyot), 14 years ago

Fix darwintrace.c on 10.3 (tentative, no 10.3 box here) by determining with
autoconf if readlink conforms to POSIX 1003.1a as in 10.4+ or not (as in 10.3).

  • Property svn:eol-style set to native
File size: 22.2 KB
Line 
1builtin(include,tcl.m4)
2
3#------------------------------------------------------------------------
4# OD_CHECK_FRAMEWORK_COREFOUNDATION --
5#
6#       Check if CoreFoundation framework is available, define HAVE_FRAMEWORK_COREFOUNDATION if so.
7#
8# Arguments:
9#       None.
10#
11# Requires:
12#       None.
13#
14# Depends:
15#               AC_LANG_PROGRAM
16#
17# Results:
18#       Result is cached.
19#
20#       If CoreFoundation framework is available, defines the following variables:
21#               HAVE_FRAMEWORK_COREFOUNDATION
22#
23#------------------------------------------------------------------------
24AC_DEFUN(OD_CHECK_FRAMEWORK_COREFOUNDATION, [
25        FRAMEWORK_LIBS="-framework CoreFoundation"
26
27        AC_MSG_CHECKING([for CoreFoundation framework])
28
29        AC_CACHE_VAL(od_cv_have_framework_corefoundation, [
30                ac_save_LIBS="$LIBS"
31                LIBS="$FRAMEWORK_LIBS $LIBS"
32               
33                AC_LINK_IFELSE([
34                        AC_LANG_PROGRAM([
35                                        #include <CoreFoundation/CoreFoundation.h>
36                                ], [
37                                        CFURLRef url = CFURLCreateWithFileSystemPath(NULL, CFSTR("/testing"), kCFURLPOSIXPathStyle, 1);
38                                        CFArrayRef bundles = CFBundleCreateBundlesFromDirectory(NULL, url, CFSTR("pkg"));
39                        ])
40                        ], [
41                                od_cv_have_framework_corefoundation="yes"
42                        ], [
43                                od_cv_have_framework_corefoundation="no"
44                        ]
45                )
46
47                LIBS="$ac_save_LIBS"
48        ])
49
50        AC_MSG_RESULT(${od_cv_have_framework_corefoundation})
51
52        if test x"${od_cv_have_framework_corefoundation}" = "xyes"; then
53                AC_DEFINE([HAVE_FRAMEWORK_COREFOUNDATION], [], [Define if CoreFoundation framework is available])
54        fi
55
56        AC_SUBST(HAVE_FRAMEWORK_COREFOUNDATION)
57])
58
59
60#------------------------------------------------------------------------
61# OD_CHECK_FUNCTION_CFNOTIFICATIONCENTERGETDARWINNOTIFYCENTER --
62#
63#       Check if if the routine CFNOTIFICATIONCENTERGETDARWINNOTIFYCENTER
64#       is available in CoreFoundation.
65#
66# Arguments:
67#       None.
68#
69# Requires:
70#       None.
71#
72# Depends:
73#               AC_LANG_PROGRAM
74#
75# Results:
76#       Result is cached.
77#
78#       If function CFNotificationCenterGetDarwinNotifyCenter is in the CoreFoundation framework, defines the following variables:
79#               HAVE_FUNCTION_CFNOTIFICATIONCENTERGETDARWINNOTIFYCENTER
80#
81#------------------------------------------------------------------------
82AC_DEFUN(OD_CHECK_FUNCTION_CFNOTIFICATIONCENTERGETDARWINNOTIFYCENTER, [
83        FRAMEWORK_LIBS="-framework CoreFoundation"
84
85        AC_MSG_CHECKING([for CFNotificationCenterGetDarwinNotifyCenter])
86
87        AC_CACHE_VAL(od_cv_have_function_cfnotificationcentergetdarwinnotifycenter, [
88                ac_save_LIBS="$LIBS"
89                LIBS="$FRAMEWORK_LIBS $LIBS"
90               
91                AC_LINK_IFELSE([
92                        AC_LANG_PROGRAM([
93                                        #include <CoreFoundation/CoreFoundation.h>
94                                ], [
95                                        CFNotificationCenterRef ref = CFNotificationCenterGetDarwinNotifyCenter();
96                        ])
97                        ], [
98                                od_cv_have_function_cfnotificationcentergetdarwinnotifycenter="yes"
99                        ], [
100                                od_cv_have_function_cfnotificationcentergetdarwinnotifycenter="no"
101                        ]
102                )
103
104                LIBS="$ac_save_LIBS"
105        ])
106
107        AC_MSG_RESULT(${od_cv_have_function_cfnotificationcentergetdarwinnotifycenter})
108
109        if test x"${od_cv_have_function_cfnotificationcentergetdarwinnotifycenter}" = "xyes"; then
110                AC_DEFINE([HAVE_FUNCTION_CFNOTIFICATIONCENTERGETDARWINNOTIFYCENTER], [], [Define if function CFNotificationCenterGetDarwinNotifyCenter in CoreFoundation framework])
111        fi
112
113        AC_SUBST(HAVE_FUNCTION_CFNOTIFICATIONCENTERGETDARWINNOTIFYCENTER)
114])
115
116
117#------------------------------------------------------------------------
118# OD_CHECK_FRAMEWORK_SYSTEMCONFIGURATION --
119#
120#       Check if SystemConfiguration framework is available, define HAVE_FRAMEWORK_SYSTEMCONFIGURATION if so.
121#
122# Arguments:
123#       None.
124#
125# Requires:
126#       None.
127#
128# Depends:
129#               AC_LANG_PROGRAM
130#
131# Results:
132#       Result is cached.
133#
134#       If SystemConfiguration framework is available, defines the following variables:
135#               HAVE_FRAMEWORK_SYSTEMCONFIGURATION
136#
137#------------------------------------------------------------------------
138AC_DEFUN(OD_CHECK_FRAMEWORK_SYSTEMCONFIGURATION, [
139        FRAMEWORK_LIBS="-framework SystemConfiguration"
140
141        AC_MSG_CHECKING([for SystemConfiguration framework])
142
143        AC_CACHE_VAL(od_cv_have_framework_systemconfiguration, [
144                ac_save_LIBS="$LIBS"
145                LIBS="$FRAMEWORK_LIBS $LIBS"
146               
147                AC_LINK_IFELSE([
148                        AC_LANG_PROGRAM([
149                                        #include <SystemConfiguration/SystemConfiguration.h>
150                                ], [
151                                        int err = SCError();
152                                        SCDynamicStoreRef dsRef = SCDynamicStoreCreate(NULL, NULL, NULL, NULL);
153                        ])
154                        ], [
155                                od_cv_have_framework_systemconfiguration="yes"
156                        ], [
157                                od_cv_have_framework_systemconfiguration="no"
158                        ]
159                )
160
161                LIBS="$ac_save_LIBS"
162        ])
163
164        AC_MSG_RESULT(${od_cv_have_framework_systemconfiguration})
165
166        if test x"${od_cv_have_framework_systemconfiguration}" = "xyes"; then
167                AC_DEFINE([HAVE_FRAMEWORK_SYSTEMCONFIGURATION], [], [Define if SystemConfiguration framework is available])
168        fi
169
170        AC_SUBST(HAVE_FRAMEWORK_SYSTEMCONFIGURATION)
171])
172
173
174#------------------------------------------------------------------------
175# OD_CHECK_FRAMEWORK_IOKIT --
176#
177#       Check if IOKit framework is available, define HAVE_FRAMEWORK_IOKIT if so.
178#
179# Arguments:
180#       None.
181#
182# Requires:
183#       None.
184#
185# Depends:
186#               AC_LANG_PROGRAM
187#
188# Results:
189#       Result is cached.
190#
191#       If IOKit framework is available, defines the following variables:
192#               HAVE_FRAMEWORK_IOKIT
193#
194#------------------------------------------------------------------------
195AC_DEFUN(OD_CHECK_FRAMEWORK_IOKIT, [
196        FRAMEWORK_LIBS="-framework IOKit"
197
198        AC_MSG_CHECKING([for IOKit framework])
199
200        AC_CACHE_VAL(od_cv_have_framework_iokit, [
201                ac_save_LIBS="$LIBS"
202                LIBS="$FRAMEWORK_LIBS $LIBS"
203               
204                AC_LINK_IFELSE([
205                        AC_LANG_PROGRAM([
206                                        #include <IOKit/IOKitLib.h>
207                                ], [
208                                        IOCreateReceivePort(0, NULL);
209                                        IORegisterForSystemPower(0, NULL, NULL, NULL);
210                        ])
211                        ], [
212                                od_cv_have_framework_iokit="yes"
213                        ], [
214                                od_cv_have_framework_iokit="no"
215                        ]
216                )
217
218                LIBS="$ac_save_LIBS"
219        ])
220
221        AC_MSG_RESULT(${od_cv_have_framework_iokit})
222
223        if test x"${od_cv_have_framework_iokit}" = "xyes"; then
224                AC_DEFINE([HAVE_FRAMEWORK_IOKIT], [], [Define if IOKit framework is available])
225        fi
226
227        AC_SUBST(HAVE_FRAMEWORK_IOKIT)
228])
229
230
231dnl This macro checks if the user specified a dports tree
232dnl explicitly. If not, search for it
233
234# OD_PATH_DPORTSDIR(DEFAULT_DPORTSDIR)
235#---------------------------------------
236 AC_DEFUN([OD_PATH_DPORTSDIR],[
237        dnl For ease of reading, run after gcc has been found/configured
238        AC_REQUIRE([AC_PROG_CC])
239
240        AC_ARG_WITH(dports-dir, [AC_HELP_STRING([--with-dports-dir=DIR], [Specify alternate dports directory])], [ dportsdir="$withval" ] )
241
242
243        AC_MSG_CHECKING([for dports tree])
244        if test "x$dportsdir" != "x" ; then
245          if test -d "$dportsdir" -a -e "$dportsdir/PortIndex" ; then
246                :
247          else
248                AC_MSG_ERROR([$dportsdir not a valid dports tree])
249          fi
250        else
251                dnl If the user didn't give a path, look for default
252                if test "x$1" != "x" ; then
253                  if test -d "$1" -a -e "$1/PortIndex" ; then
254                        dportsdir=$1
255                  fi
256                fi
257        fi
258
259        if test "x$dportsdir" != "x" ; then
260                AC_MSG_RESULT($dportsdir)
261                DPORTSDIR="$dportsdir"
262                AC_SUBST(DPORTSDIR)
263        else
264                AC_MSG_WARN([No dports tree found])
265        fi
266
267         ])
268
269
270# OD_PATH_PORTCONFIGDIR
271#---------------------------------------
272AC_DEFUN([OD_PATH_PORTCONFIGDIR],[
273        dnl if the user actually specified --prefix, shift
274        dnl portconfigdir to $prefix/etc/ports
275        dnl     AC_REQUIRE([OD_PATH_DPORTSDIR])
276       
277        AC_MSG_CHECKING([for ports config directory])
278
279        portconfigdir='${sysconfdir}/ports'
280
281        AC_MSG_RESULT([$portconfigdir])
282        PORTCONFIGDIR="$portconfigdir"
283        AC_SUBST(PORTCONFIGDIR)
284
285        ])
286
287# OD_CHECK_INSTALLUSER
288#-------------------------------------------------
289AC_DEFUN([OD_CHECK_INSTALLUSER],[
290        dnl if with user specifies --with-install-user,
291        dnl use it. otherwise default to platform defaults
292        AC_REQUIRE([OD_PATH_PORTCONFIGDIR])
293
294        AC_ARG_WITH(install-user, [AC_HELP_STRING([--with-install-user=USER], [Specify user ownership of installed files])], [ DSTUSR=$withval ] )
295       
296        AC_MSG_CHECKING([for install user])
297        if test "x$DSTUSR" = "x" ; then
298           DSTUSR=root
299        fi
300
301        AC_MSG_RESULT([$DSTUSR])
302        AC_SUBST(DSTUSR)
303])
304
305# OD_CHECK_INSTALLGROUP
306#-------------------------------------------------
307AC_DEFUN([OD_CHECK_INSTALLGROUP],[
308        dnl if with user specifies --with-install-group,
309        dnl use it. otherwise default to platform defaults
310        AC_REQUIRE([OD_CHECK_INSTALLUSER])
311
312        AC_ARG_WITH(install-group, [AC_HELP_STRING([--with-install-group=GROUP], [Specify group ownership of installed files])], [ DSTGRP=$withval ] )
313
314        AC_MSG_CHECKING([for install group])
315        if test "x$DSTGRP" = "x" ; then
316           
317           case $host_os in
318           darwin*)
319                DSTGRP="admin"
320                ;;
321           *)
322                DSTGRP="wheel"
323                ;;
324           esac
325        fi
326
327        AC_MSG_RESULT([$DSTGRP])
328        AC_SUBST(DSTGRP)
329])
330
331# OD_DIRECTORY_MODE
332#-------------------------------------------------
333AC_DEFUN([OD_DIRECTORY_MODE],[
334        dnl if with user specifies --with-directory-mode,
335        dnl use the specified permissions for ${prefix} directories
336        dnl otherwise use 0775
337        AC_REQUIRE([OD_PATH_PORTCONFIGDIR])
338
339        AC_ARG_WITH(directory-mode, [AC_HELP_STRING([--with-directory-mode=MODE], [Specify directory mode of installed directories])], [ DSTMODE=$withval ] )
340       
341        AC_MSG_CHECKING([what permissions to use for installation directories])
342        if test "x$DSTMODE" = "x" ; then
343           DSTMODE=0775
344        fi
345
346        AC_MSG_RESULT([$DSTMODE])
347        AC_SUBST(DSTMODE)
348])
349
350# OD_LIB_MD5
351#---------------------------------------
352# Check for an md5 implementation
353AC_DEFUN([OD_LIB_MD5],[
354
355        # Check for libmd, which is prefered
356        AC_CHECK_LIB([md], [MD5Update],[
357                AC_CHECK_HEADERS([md5.h], ,[
358                        case $host_os in
359                                darwin*)       
360                                        AC_MSG_NOTICE([Please install the BSD SDK package from the Xcode Developer Tools CD.])
361                                        ;;
362                                *)     
363                                        AC_MSG_NOTICE([Please install the libmd developer headers for your platform.])
364                                        ;;
365                        esac
366                        AC_MSG_ERROR([libmd was found, but md5.h is missing.])
367                ])
368                AC_DEFINE([HAVE_LIBMD], ,[Define if you have the `md' library (-lmd).])
369                MD5_LIBS="-lmd"]
370        )
371        if test "x$MD5_LIBS" = "x" ; then
372                # If libmd is not found, check for libcrypto from OpenSSL
373                AC_CHECK_LIB([crypto], [MD5_Update],[
374                        AC_CHECK_HEADERS([openssl/md5.h],,[
375                                case $host_os in
376                                        darwin*)       
377                                        AC_MSG_NOTICE([Please install the BSD SDK package from the Xcode Developer Tools CD.])
378                                                ;;
379                                        *)     
380                                        AC_MSG_NOTICE([Please install the libmd developer headers for your platform.])
381                                                ;;
382                                esac
383                                AC_MSG_ERROR([libcrypt was found, but header file openssl/md5.h is missing.])
384                        ])
385                        AC_DEFINE([HAVE_LIBCRYPTO],,[Define if you have the `crypto' library (-lcrypto).])
386                        MD5_LIBS="-lcrypto"
387                ], [
388                        AC_MSG_ERROR([Neither OpenSSL or libmd were found. A working md5 implementation is required.])
389                ])
390        fi
391        if test "x$MD5_LIBS" = "x"; then
392                AC_MSG_ERROR([Neither OpenSSL or libmd were found. A working md5 implementation is required.])
393        fi
394        AC_SUBST([MD5_LIBS])
395])
396
397dnl This macro checks for X11 presence. If the libraries are
398dnl present, so must the headers be. If nothing is present,
399dnl print a warning
400
401# OD_CHECK_X11
402# ---------------------
403AC_DEFUN([OD_CHECK_X11], [
404
405        AC_PATH_XTRA
406
407        # Check for libX11
408        AC_CHECK_LIB([X11], [XOpenDisplay],[
409                has_x_runtime=yes
410                ], [ has_x_runtime=no ], [-L/usr/X11R6/lib $X_LIBS])
411
412#       echo "------done---------"
413#       echo "x_includes=${x_includes}"
414#       echo "x_libraries=${x_libraries}"
415#       echo "no_x=${no_x}"
416#       echo "X_CFLAGS=${X_CFLAGS}"
417#       echo "X_LIBS=${X_LIBS}"
418#       echo "X_DISPLAY_MISSING=${X_DISPLAY_MISSING}"
419#       echo "has_x_runtime=${has_x_runtime}"
420#       echo "host_os=${host_os}"
421#       echo "------done---------"
422
423        state=
424
425        case "__${has_x_runtime}__${no_x}__" in
426                "__no__yes__")
427                # either the user said --without-x, or it was not found
428                # at all (runtime or headers)
429                        AC_MSG_WARN([X11 not available. You will not be able to use dports that use X11])
430                        state=0
431                        ;;
432                "__yes__yes__")
433                        state=1
434                        ;;
435                "__yes____")
436                        state=2
437                        ;;
438                *)
439                        state=3
440                        ;;
441        esac
442
443        case $host_os in
444                darwin*)       
445                        case $state in
446                                1)
447                                        cat <<EOF;
448Please install the X11 SDK packages from the
449Xcode Developer Tools CD
450EOF
451                                        AC_MSG_ERROR([Broken X11 install. No X11 headers])
452
453                                        ;;
454                                3)
455                                        cat <<EOF;
456Unknown configuration problem. Please install the X11 runtime
457and/or X11 SDK  packages from the Xcode Developer Tools CD
458EOF
459                                        AC_MSG_ERROR([Broken X11 install])
460                                        ;;
461                        esac
462                        ;;
463                *)     
464                        case $state in
465                                1)
466                                        cat <<EOF;
467Please install the X11 developer headers for your platform
468EOF
469                                        AC_MSG_ERROR([Broken X11 install. No X11 headers])
470
471                                        ;;
472                                3)
473                                        cat <<EOF;
474Unknown configuration problem. Please install the X11
475implementation for your platform
476EOF
477                                        AC_MSG_ERROR([Broken X11 install])
478                                        ;;
479                        esac
480                        ;;
481        esac
482
483])
484
485# OD_PROG_MTREE
486#---------------------------------------
487AC_DEFUN([OD_PROG_MTREE],[
488
489        AC_PATH_PROG([MTREE], [mtree], ,  [/usr/bin:/usr/sbin:/bin:/sbin])
490
491        if test "x$MTREE" = "x" ; then
492                AC_CONFIG_SUBDIRS([src/programs/mtree])
493                MTREE='$(TOPSRCDIR)/src/programs/mtree/mtree'
494#               MTREE='${prefix}/bin/mtree'
495                REPLACEMENT_PROGS="$REPLACEMENT_PROGS mtree"
496        fi
497
498        AC_SUBST(MTREE)
499])
500
501# OD_PROG_DAEMONDO
502#---------------------------------------
503AC_DEFUN([OD_PROG_DAEMONDO],[
504        AC_REQUIRE([OD_CHECK_FRAMEWORK_COREFOUNDATION])
505        AC_REQUIRE([OD_CHECK_FRAMEWORK_SYSTEMCONFIGURATION])
506        AC_REQUIRE([OD_CHECK_FRAMEWORK_IOKIT])
507        AC_REQUIRE([OD_CHECK_FUNCTION_CFNOTIFICATIONCENTERGETDARWINNOTIFYCENTER])
508       
509    AC_MSG_CHECKING(for whether we will build daemondo)
510    result=no
511        case $host_os in
512        darwin*)
513                if test "x$od_cv_have_framework_corefoundation" == "xyes" &&
514                   test "x$od_cv_have_framework_systemconfiguration" == "xyes" &&
515                   test "x$od_cv_have_framework_iokit" == "xyes" &&
516                   test "x$od_cv_have_function_cfnotificationcentergetdarwinnotifycenter" == "xyes"; then
517                        result=yes
518                        EXTRA_PROGS="$EXTRA_PROGS daemondo"
519                        AC_CONFIG_FILES([src/programs/daemondo/Makefile])
520                fi
521                ;;
522        *)
523        esac
524        AC_MSG_RESULT(${result})
525])
526
527#------------------------------------------------------------------------
528# OD_TCL_PACKAGE_DIR --
529#
530#       Locate the correct directory for Tcl package installation
531#
532# Arguments:
533#       None.
534#
535# Requires:
536#       TCLVERSION must be set
537#       CYGPATH must be set
538#       TCLSH must be set
539#
540# Results:
541#
542#       Adds a --with-tclpackage switch to configure.
543#       Result is cached.
544#
545#       Substs the following vars:
546#               TCL_PACKAGE_DIR
547#------------------------------------------------------------------------
548
549AC_DEFUN(OD_TCL_PACKAGE_DIR, [
550    AC_MSG_CHECKING(for Tcl package directory)
551
552    AC_ARG_WITH(tclpackage, [  --with-tclpackage       Tcl package installation directory.], with_tclpackagedir=${withval})
553
554    if test x"${with_tclpackagedir}" != x ; then
555        ac_cv_c_tclpkgd=${with_tclpackagedir}
556    else
557        AC_CACHE_VAL(ac_cv_c_tclpkgd, [
558            # Use the value from --with-tclpackage, if it was given
559
560            if test x"${with_tclpackagedir}" != x ; then
561                echo "tclpackagedir"
562                ac_cv_c_tclpkgd=${with_tclpackagedir}
563            else
564                # On darwin we can do some intelligent guessing
565                case $host_os in
566                    darwin*)
567                        tcl_autopath=`echo 'puts -nonewline \$auto_path' | $TCLSH`
568                        for path in $tcl_autopath; do
569                            if test "$path" = "/Library/Tcl"; then
570                                ac_cv_c_tclpkgd="$path"
571                                break
572                            fi
573                            if test "$path" = "/System/Library/Tcl"; then
574                                if test -d "$path"; then
575                                    ac_cv_c_tclpkgd="$path"
576                                    break
577                                fi
578                            fi
579                        done
580                    ;;
581                esac
582                if test x"${ac_cv_c_tclpkgd}" = x ; then
583                    # Fudge a path from the first entry in the auto_path
584                    tcl_pkgpath=`echo 'puts -nonewline [[lindex \$auto_path 0]]' | $TCLSH`
585                    if test -d "$tcl_pkgpath"; then
586                        ac_cv_c_tclpkgd="$tcl_pkgpath"
587                    fi
588                    # If the first entry does not exist, do nothing
589                fi
590            fi
591        ])
592    fi
593
594    if test x"${ac_cv_c_tclpkgd}" = x ; then
595        AC_MSG_ERROR(Tcl package directory not found.  Please specify its location with --with-tclpackage)
596    else
597        AC_MSG_RESULT(${ac_cv_c_tclpkgd})
598    fi
599
600    # Convert to a native path and substitute into the output files.
601
602    PACKAGE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tclpkgd}`
603
604    TCL_PACKAGE_DIR=${PACKAGE_DIR_NATIVE}
605
606    AC_SUBST(TCL_PACKAGE_DIR)
607])
608
609# OD_PROG_TCLSH
610#---------------------------------------
611AC_DEFUN([OD_PROG_TCLSH],[
612
613
614        case $host_os in
615                freebsd*)
616                        # FreeBSD installs a dummy tclsh (annoying)
617                        # Look for a real versioned tclsh first
618                        AC_PATH_PROG([TCLSH], [tclsh${TCL_VERSION} tclsh])
619                        ;;
620                *)
621                        # Otherwise, look for a non-versioned tclsh
622                        AC_PATH_PROG([TCLSH], [tclsh tclsh${TCL_VERSION}])
623                        ;;
624        esac
625        if test "x$TCLSH" = "x" ; then
626                AC_MSG_ERROR([Could not find tclsh])
627        fi
628
629        AC_SUBST(TCLSH)
630])
631
632# OD_TCL_PACKAGE
633#       Determine if a Tcl package is present.
634#
635# Arguments:
636#       Package name (may include the version)
637#
638# Syntax:
639#   OD_TCL_PACKAGE (package, [action-if-found], [action-if-not-found])
640#
641# Requires:
642#       TCLSH must be set
643#
644# Results:
645#       Execute action-if-found or action-if-not-found
646#---------------------------------------
647AC_DEFUN([OD_TCL_PACKAGE],[
648        AC_MSG_CHECKING([for Tcl $1 package])
649        package_present=`echo 'if {[[catch {package require $1}]]} {puts -nonewline 0} else {puts -nonewline 1}' | $TCLSH`
650        AS_IF([test "$package_present" = "1"], [$2], [$3])[]
651])
652
653# OD_TCL_THREAD_SUPPORT
654#       Determine if thread support is available in tclsh.
655#
656# Arguments:
657#       None.
658#
659# Requires:
660#       TCLSH must be set
661#
662# Results:
663#   Fails if thread support isn't available.
664#---------------------------------------
665AC_DEFUN([OD_TCL_THREAD_SUPPORT],[
666        AC_MSG_CHECKING([whether tclsh was compiled with threads])
667        tcl_threadenabled=`echo 'puts -nonewline [[info exists tcl_platform(threaded)]]' | $TCLSH`
668        if test "$tcl_threadenabled" = "1" ; then
669                AC_MSG_RESULT([yes])
670        else
671                AC_MSG_RESULT([no])
672                AC_MSG_ERROR([tcl wasn't compiled with threads enabled])
673        fi
674])
675
676# OD_LIBCURL_FLAGS
677#       Sets the flags to compile with libcurl.
678#
679# Arguments:
680#       None.
681#
682# Requires:
683#   curl-config or user parameters to define the flags.
684#
685# Results:
686#   defines some help strings.
687#   sets CFLAGS_LIBCURL and LDFLAGS_LIBCURL
688#---------------------------------------
689AC_DEFUN([OD_LIBCURL_FLAGS],[
690        AC_ARG_WITH(curlprefix,
691                   [  --with-curlprefix       base directory for the cURL install '/usr', '/usr/local',...],
692                   [  curlprefix=$withval ])
693
694        if test "x$curlprefix" = "x"; then
695                AC_PATH_PROG([CURL_CONFIG], [curl-config])
696        else
697                AC_PATH_PROG([CURL_CONFIG], [curl-config], , [$curlprefix/bin])
698        fi
699
700        if test "x$CURL_CONFIG" = "x"; then
701                AC_MSG_ERROR([cannot find curl-config. Is libcurl installed?])
702        fi
703
704        CFLAGS_LIBCURL=$($CURL_CONFIG --cflags)
705        # Due to a bug in dist, --arch flags are improperly supplied by curl-config.
706        # Get rid of them.
707        LDFLAGS_LIBCURL=$($CURL_CONFIG --libs | [sed 's/-arch [A-Za-z0-9]* //g'])
708
709        AC_SUBST(CFLAGS_LIBCURL)
710        AC_SUBST(LDFLAGS_LIBCURL)
711])
712
713# OD_LIBCURL_VERSION
714#       Determine the version of libcurl.
715#
716# Arguments:
717#       None.
718#
719# Requires:
720#       CURL must be set (AC_PATH_PROG(CURL, [curl], []))
721#
722# Results:
723#   sets libcurl_version to "0" or some number
724#---------------------------------------
725AC_DEFUN([OD_LIBCURL_VERSION],[
726        if test "x$CURL" = "x"; then
727                libcurl_version="0"
728        else
729                AC_MSG_CHECKING([libcurl version])
730                libcurl_version=`$CURL -V | sed '2,$d' | awk '{print $ 2}' | sed -e 's/\.//g' -e 's/-.*//g'`
731                AC_MSG_RESULT([$libcurl_version])
732        fi
733])
734
735
736# OD_PATH_SQLITE3
737#       Specify sqlite3 location
738#
739# Arguments:
740#       None.
741#
742# Requires:
743#   System or user-specified --with-sqlite=dir to specify
744#
745# Results:
746#   Sets SQLITE3_DIR to the directory where sqlite3 tcl pkgIndex.tcl is
747#---------------------------------------
748AC_DEFUN([OD_PATH_SQLITE3],[
749
750        AC_ARG_WITH([sqlite],
751                AS_HELP_STRING([--with-sqlite3=DIR],
752                        [directory for sqlite3 (default /usr/lib/sqlite3)]),           
753                [od_sqlite3_dir=$withval], [od_sqlite3_dir=/usr/lib/sqlite3])
754               
755        AC_CACHE_CHECK([for sqlite3 location], [od_cv_sqlite3_dir],
756                [od_cv_sqlite3_dir=
757                test -r "${od_sqlite3_dir}/pkgIndex.tcl" && od_cv_sqlite3_dir=$od_sqlite3_dir
758                ])
759               
760        SQLITE3_DIR=$od_cv_sqlite3_dir
761        AC_SUBST(SQLITE3_DIR)
762])
763
764dnl This macro tests if the compiler supports GCC's
765dnl __attribute__ syntax for unused variables/parameters
766AC_DEFUN([OD_COMPILER_ATTRIBUTE_UNUSED], [
767        AC_MSG_CHECKING([how to mark unused variables])
768        AC_COMPILE_IFELSE(
769                [AC_LANG_SOURCE([[int a __attribute__ ((unused));]])],
770                [AC_DEFINE(UNUSED, [__attribute__((unused))], [Attribute to mark unused variables])],
771                [AC_DEFINE(UNUSED, [])])
772
773        AC_MSG_RESULT([])
774       
775])
776
777dnl This macro ensures DP installation prefix bin/sbin paths are NOT in PATH
778dnl for configure to prevent potential problems when base/ code is updated
779dnl and ports are installed that would match needed items.
780AC_DEFUN([OD_PATH_SCAN],[
781        oldprefix=$prefix
782        if test "x$prefix" = "xNONE" ; then
783                prefix=$ac_default_prefix
784        fi
785        oldPATH=$PATH
786        newPATH=
787        as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
788        for as_dir in $oldPATH
789        do
790                IFS=$as_save_IFS
791                if test "x$as_dir" != "x$prefix/bin" &&
792                        test "x$as_dir" != "x$prefix/sbin"; then
793                        if test -z "$newPATH"; then
794                                newPATH=$as_dir
795                        else
796                                newPATH=$newPATH$PATH_SEPARATOR$as_dir
797                        fi
798                fi
799        done
800        PATH=$newPATH; export PATH
801        prefix=$oldprefix
802])
803
804dnl This macro tests for tar support of --no-same-owner
805AC_DEFUN([OD_TAR_NO_SAME_OWNER],[
806        AC_PATH_PROG(TAR, [tar])
807        AC_PATH_PROG(GNUTAR, [gnutar])
808       
809        AC_MSG_CHECKING([for which tar variant to use])
810        AS_IF([test -n "$GNUTAR"], [TAR_CMD=$GNUTAR], [TAR_CMD=$TAR])
811        AC_MSG_RESULT([$TAR_CMD])
812        AC_SUBST(TAR_CMD)
813
814        AC_MSG_CHECKING([for $TAR_CMD --no-same-owner support])
815        [no_same_owner_support=`$TAR_CMD --help 2>&1 | grep no-same-owner`]
816        if test -z "$no_same_owner_support" ; then
817                AC_MSG_RESULT([no])
818        else
819                AC_MSG_RESULT([yes])
820                TAR_CMD="$TAR_CMD --no-same-owner"
821        fi
822])
823
824#------------------------------------------------------------------------
825# DP_CHECK_READLINK_IS_P1003_1A --
826#
827#       Check if readlink conforms to POSIX 1003.1a standard, define
828#       READLINK_IS_NOT_P1003_1A if it doesn't.
829#
830# Arguments:
831#       None.
832#
833# Requires:
834#       None.
835#
836# Depends:
837#               AC_LANG_PROGRAM
838#
839# Results:
840#       Result is cached.
841#
842#       If readlink doesn't conform to POSIX 1003.1a, defines the following variables:
843#               READLINK_IS_NOT_P1003_1A
844#
845#------------------------------------------------------------------------
846AC_DEFUN(DP_CHECK_READLINK_IS_P1003_1A, [
847        AC_MSG_CHECKING([if readlink conforms to POSIX 1003.1a])
848
849        AC_CACHE_VAL(dp_cv_readlink_is_posix_1003_1a, [
850                AC_COMPILE_IFELSE([
851                        AC_LANG_PROGRAM([
852                                        #include <unistd.h>
853                                        ssize_t readlink(const char *, char *, size_t);
854                                ], [
855                        ])
856                        ], [
857                                dp_cv_readlink_is_posix_1003_1a="yes"
858                        ], [
859                                dp_cv_readlink_is_posix_1003_1a="no"
860                        ]
861                )
862        ])
863
864        AC_MSG_RESULT(${dp_cv_readlink_is_posix_1003_1a})
865
866        if test x"${dp_cv_readlink_is_posix_1003_1a}" = "xno"; then
867                AC_DEFINE([READLINK_IS_NOT_P1003_1A], [], [Define to 1 if readlink does not conform with POSIX 1003.1a (where third argument is a size_t and return value is a ssize_t)])
868        fi
869
870        AC_SUBST(READLINK_IS_NOT_P1003_1A)
871])
Note: See TracBrowser for help on using the repository browser.