source: trunk/base/aclocal.m4 @ 25570

Last change on this file since 25570 was 24366, checked in by jmpp@…, 13 years ago

Cruft cleanup: there's no need to keep mtree sources around, since every copy of Mac OS X ships with mtree(8) by default.
We had them around when Mac(Darwin)Ports was targeted at other platforms too, but that's no longer the case.
Therefore I'm removing mtree sources from our repo and references to them from our autoconf macros (default path in Mac OS X
includes /usr/sbin, so there should be no need for autoconf to find the binary).

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
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_XAR
486#---------------------------------------
487AC_DEFUN([OD_PROG_XAR],[
488
489        AC_PATH_PROG([XAR], [xar], ,  [/usr/bin:/usr/sbin:/bin:/sbin])
490
491        if test "x$XAR" = "x" ; then
492                AC_CONFIG_SUBDIRS([src/programs/xar])
493                XAR='$(TOPSRCDIR)/src/programs/xar/xar'
494                REPLACEMENT_PROGS="$REPLACEMENT_PROGS xar"
495        fi
496
497        AC_SUBST(XAR)
498])
499
500# OD_PROG_DAEMONDO
501#---------------------------------------
502AC_DEFUN([OD_PROG_DAEMONDO],[
503        AC_REQUIRE([OD_CHECK_FRAMEWORK_COREFOUNDATION])
504        AC_REQUIRE([OD_CHECK_FRAMEWORK_SYSTEMCONFIGURATION])
505        AC_REQUIRE([OD_CHECK_FRAMEWORK_IOKIT])
506        AC_REQUIRE([OD_CHECK_FUNCTION_CFNOTIFICATIONCENTERGETDARWINNOTIFYCENTER])
507       
508    AC_MSG_CHECKING(for whether we will build daemondo)
509    result=no
510        case $host_os in
511        darwin*)
512                if test "x$od_cv_have_framework_corefoundation" == "xyes" &&
513                   test "x$od_cv_have_framework_systemconfiguration" == "xyes" &&
514                   test "x$od_cv_have_framework_iokit" == "xyes" &&
515                   test "x$od_cv_have_function_cfnotificationcentergetdarwinnotifycenter" == "xyes"; then
516                        result=yes
517                        EXTRA_PROGS="$EXTRA_PROGS daemondo"
518                        AC_CONFIG_FILES([src/programs/daemondo/Makefile])
519                fi
520                ;;
521        *)
522        esac
523        AC_MSG_RESULT(${result})
524])
525
526#------------------------------------------------------------------------
527# OD_TCL_PACKAGE_DIR --
528#
529#       Locate the correct directory for Tcl package installation
530#
531# Arguments:
532#       None.
533#
534# Requires:
535#       TCLVERSION must be set
536#       CYGPATH must be set
537#       TCLSH must be set
538#
539# Results:
540#
541#       Adds a --with-tclpackage switch to configure.
542#       Result is cached.
543#
544#       Substs the following vars:
545#               TCL_PACKAGE_DIR
546#------------------------------------------------------------------------
547
548AC_DEFUN(OD_TCL_PACKAGE_DIR, [
549    AC_MSG_CHECKING(for Tcl package directory)
550
551    AC_ARG_WITH(tclpackage, [  --with-tclpackage       Tcl package installation directory.], with_tclpackagedir=${withval})
552
553    if test x"${with_tclpackagedir}" != x ; then
554        ac_cv_c_tclpkgd=${with_tclpackagedir}
555    else
556        AC_CACHE_VAL(ac_cv_c_tclpkgd, [
557            # Use the value from --with-tclpackage, if it was given
558
559            if test x"${with_tclpackagedir}" != x ; then
560                echo "tclpackagedir"
561                ac_cv_c_tclpkgd=${with_tclpackagedir}
562            else
563                # On darwin we can do some intelligent guessing
564                case $host_os in
565                    darwin*)
566                        tcl_autopath=`echo 'puts -nonewline \$auto_path' | $TCLSH`
567                        for path in $tcl_autopath; do
568                            if test "$path" = "/Library/Tcl"; then
569                                ac_cv_c_tclpkgd="$path"
570                                break
571                            fi
572                            if test "$path" = "/System/Library/Tcl"; then
573                                if test -d "$path"; then
574                                    ac_cv_c_tclpkgd="$path"
575                                    break
576                                fi
577                            fi
578                        done
579                    ;;
580                esac
581                if test x"${ac_cv_c_tclpkgd}" = x ; then
582                    # Fudge a path from the first entry in the auto_path
583                    tcl_pkgpath=`echo 'puts -nonewline [[lindex \$auto_path 0]]' | $TCLSH`
584                    if test -d "$tcl_pkgpath"; then
585                        ac_cv_c_tclpkgd="$tcl_pkgpath"
586                    fi
587                    # If the first entry does not exist, do nothing
588                fi
589            fi
590        ])
591    fi
592
593    if test x"${ac_cv_c_tclpkgd}" = x ; then
594        AC_MSG_ERROR(Tcl package directory not found.  Please specify its location with --with-tclpackage)
595    else
596        AC_MSG_RESULT(${ac_cv_c_tclpkgd})
597    fi
598
599    # Convert to a native path and substitute into the output files.
600
601    PACKAGE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tclpkgd}`
602
603    TCL_PACKAGE_DIR=${PACKAGE_DIR_NATIVE}
604
605    AC_SUBST(TCL_PACKAGE_DIR)
606])
607
608# OD_PROG_TCLSH
609#---------------------------------------
610AC_DEFUN([OD_PROG_TCLSH],[
611
612
613        case $host_os in
614                freebsd*)
615                        # FreeBSD installs a dummy tclsh (annoying)
616                        # Look for a real versioned tclsh first
617                        AC_PATH_PROG([TCLSH], [tclsh${TCL_VERSION} tclsh])
618                        ;;
619                *)
620                        # Otherwise, look for a non-versioned tclsh
621                        AC_PATH_PROG([TCLSH], [tclsh tclsh${TCL_VERSION}])
622                        ;;
623        esac
624        if test "x$TCLSH" = "x" ; then
625                AC_MSG_ERROR([Could not find tclsh])
626        fi
627
628        AC_SUBST(TCLSH)
629])
630
631# OD_TCL_PACKAGE
632#       Determine if a Tcl package is present.
633#
634# Arguments:
635#       Package name (may include the version)
636#
637# Syntax:
638#   OD_TCL_PACKAGE (package, [action-if-found], [action-if-not-found])
639#
640# Requires:
641#       TCLSH must be set
642#
643# Results:
644#       Execute action-if-found or action-if-not-found
645#---------------------------------------
646AC_DEFUN([OD_TCL_PACKAGE],[
647        AC_MSG_CHECKING([for Tcl $1 package])
648        package_present=`echo 'if {[[catch {package require $1}]]} {puts -nonewline 0} else {puts -nonewline 1}' | $TCLSH`
649        AS_IF([test "$package_present" = "1"], [$2], [$3])[]
650])
651
652# OD_TCL_THREAD_SUPPORT
653#       Determine if thread support is available in tclsh.
654#
655# Arguments:
656#       None.
657#
658# Requires:
659#       TCLSH must be set
660#
661# Results:
662#   Fails if thread support isn't available.
663#---------------------------------------
664AC_DEFUN([OD_TCL_THREAD_SUPPORT],[
665        AC_MSG_CHECKING([whether tclsh was compiled with threads])
666        tcl_threadenabled=`echo 'puts -nonewline [[info exists tcl_platform(threaded)]]' | $TCLSH`
667        if test "$tcl_threadenabled" = "1" ; then
668                AC_MSG_RESULT([yes])
669        else
670                AC_MSG_RESULT([no])
671                AC_MSG_ERROR([tcl wasn't compiled with threads enabled])
672        fi
673])
674
675# OD_LIBCURL_FLAGS
676#       Sets the flags to compile with libcurl.
677#
678# Arguments:
679#       None.
680#
681# Requires:
682#   curl-config or user parameters to define the flags.
683#
684# Results:
685#   defines some help strings.
686#   sets CFLAGS_LIBCURL and LDFLAGS_LIBCURL
687#---------------------------------------
688AC_DEFUN([OD_LIBCURL_FLAGS],[
689        AC_ARG_WITH(curlprefix,
690                   [  --with-curlprefix       base directory for the cURL install '/usr', '/usr/local',...],
691                   [  curlprefix=$withval ])
692
693        if test "x$curlprefix" = "x"; then
694                AC_PATH_PROG([CURL_CONFIG], [curl-config])
695        else
696                AC_PATH_PROG([CURL_CONFIG], [curl-config], , [$curlprefix/bin])
697        fi
698
699        if test "x$CURL_CONFIG" = "x"; then
700                AC_MSG_ERROR([cannot find curl-config. Is libcurl installed?])
701        fi
702
703        CFLAGS_LIBCURL=$($CURL_CONFIG --cflags)
704        # Due to a bug in dist, --arch flags are improperly supplied by curl-config.
705        # Get rid of them.
706        LDFLAGS_LIBCURL=$($CURL_CONFIG --libs | [sed 's/-arch [A-Za-z0-9]* //g'])
707
708        AC_SUBST(CFLAGS_LIBCURL)
709        AC_SUBST(LDFLAGS_LIBCURL)
710])
711
712# OD_LIBCURL_VERSION
713#       Determine the version of libcurl.
714#
715# Arguments:
716#       None.
717#
718# Requires:
719#       CURL must be set (AC_PATH_PROG(CURL, [curl], []))
720#
721# Results:
722#   sets libcurl_version to "0" or some number
723#---------------------------------------
724AC_DEFUN([OD_LIBCURL_VERSION],[
725        if test "x$CURL" = "x"; then
726                libcurl_version="0"
727        else
728                AC_MSG_CHECKING([libcurl version])
729                libcurl_version=`$CURL -V | sed '2,$d' | awk '{print $ 2}' | sed -e 's/\.//g' -e 's/-.*//g'`
730                AC_MSG_RESULT([$libcurl_version])
731        fi
732])
733
734
735# OD_PATH_SQLITE3
736#       Specify sqlite3 location
737#
738# Arguments:
739#       None.
740#
741# Requires:
742#   System or user-specified --with-sqlite=dir to specify
743#
744# Results:
745#   Sets SQLITE3_DIR to the directory where sqlite3 tcl pkgIndex.tcl is
746#---------------------------------------
747AC_DEFUN([OD_PATH_SQLITE3],[
748
749        AC_ARG_WITH([sqlite],
750                AS_HELP_STRING([--with-sqlite3=DIR],
751                        [directory for sqlite3 (default /usr/lib/sqlite3)]),           
752                [od_sqlite3_dir=$withval], [od_sqlite3_dir=/usr/lib/sqlite3])
753               
754        AC_CACHE_CHECK([for sqlite3 location], [od_cv_sqlite3_dir],
755                [od_cv_sqlite3_dir=
756                test -r "${od_sqlite3_dir}/pkgIndex.tcl" && od_cv_sqlite3_dir=$od_sqlite3_dir
757                ])
758               
759        SQLITE3_DIR=$od_cv_sqlite3_dir
760        AC_SUBST(SQLITE3_DIR)
761])
762
763dnl This macro tests if the compiler supports GCC's
764dnl __attribute__ syntax for unused variables/parameters
765AC_DEFUN([OD_COMPILER_ATTRIBUTE_UNUSED], [
766        AC_MSG_CHECKING([how to mark unused variables])
767        AC_COMPILE_IFELSE(
768                [AC_LANG_SOURCE([[int a __attribute__ ((unused));]])],
769                [AC_DEFINE(UNUSED, [__attribute__((unused))], [Attribute to mark unused variables])],
770                [AC_DEFINE(UNUSED, [])])
771
772        AC_MSG_RESULT([])
773       
774])
775
776dnl This macro ensures DP installation prefix bin/sbin paths are NOT in PATH
777dnl for configure to prevent potential problems when base/ code is updated
778dnl and ports are installed that would match needed items.
779AC_DEFUN([OD_PATH_SCAN],[
780        oldprefix=$prefix
781        if test "x$prefix" = "xNONE" ; then
782                prefix=$ac_default_prefix
783        fi
784        oldPATH=$PATH
785        newPATH=
786        as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
787        for as_dir in $oldPATH
788        do
789                IFS=$as_save_IFS
790                if test "x$as_dir" != "x$prefix/bin" &&
791                        test "x$as_dir" != "x$prefix/sbin"; then
792                        if test -z "$newPATH"; then
793                                newPATH=$as_dir
794                        else
795                                newPATH=$newPATH$PATH_SEPARATOR$as_dir
796                        fi
797                fi
798        done
799        PATH=$newPATH; export PATH
800        prefix=$oldprefix
801])
802
803dnl This macro tests for tar support of --no-same-owner
804AC_DEFUN([OD_TAR_NO_SAME_OWNER],[
805        AC_PATH_PROG(TAR, [tar])
806        AC_PATH_PROG(GNUTAR, [gnutar])
807       
808        AC_MSG_CHECKING([for which tar variant to use])
809        AS_IF([test -n "$GNUTAR"], [TAR_CMD=$GNUTAR], [TAR_CMD=$TAR])
810        AC_MSG_RESULT([$TAR_CMD])
811        AC_SUBST(TAR_CMD)
812
813        AC_MSG_CHECKING([for $TAR_CMD --no-same-owner support])
814        [no_same_owner_support=`$TAR_CMD --help 2>&1 | grep no-same-owner`]
815        if test -z "$no_same_owner_support" ; then
816                AC_MSG_RESULT([no])
817        else
818                AC_MSG_RESULT([yes])
819                TAR_CMD="$TAR_CMD --no-same-owner"
820        fi
821])
822
823#------------------------------------------------------------------------
824# DP_CHECK_READLINK_IS_P1003_1A --
825#
826#       Check if readlink conforms to POSIX 1003.1a standard, define
827#       READLINK_IS_NOT_P1003_1A if it doesn't.
828#
829# Arguments:
830#       None.
831#
832# Requires:
833#       None.
834#
835# Depends:
836#               AC_LANG_PROGRAM
837#
838# Results:
839#       Result is cached.
840#
841#       If readlink doesn't conform to POSIX 1003.1a, defines the following variables:
842#               READLINK_IS_NOT_P1003_1A
843#
844#------------------------------------------------------------------------
845AC_DEFUN(DP_CHECK_READLINK_IS_P1003_1A, [
846        AC_MSG_CHECKING([if readlink conforms to POSIX 1003.1a])
847
848        AC_CACHE_VAL(dp_cv_readlink_is_posix_1003_1a, [
849                AC_COMPILE_IFELSE([
850                        AC_LANG_PROGRAM([
851                                        #include <unistd.h>
852                                        ssize_t readlink(const char *, char *, size_t);
853                                ], [
854                        ])
855                        ], [
856                                dp_cv_readlink_is_posix_1003_1a="yes"
857                        ], [
858                                dp_cv_readlink_is_posix_1003_1a="no"
859                        ]
860                )
861        ])
862
863        AC_MSG_RESULT(${dp_cv_readlink_is_posix_1003_1a})
864
865        if test x"${dp_cv_readlink_is_posix_1003_1a}" = "xno"; then
866                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)])
867        fi
868
869        AC_SUBST(READLINK_IS_NOT_P1003_1A)
870])
Note: See TracBrowser for help on using the repository browser.