source: trunk/base/aclocal.m4 @ 25770

Last change on this file since 25770 was 25770, checked in by sfiera@…, 13 years ago

Build MacPorts with sqlite3 support in preparation for GSoC work

  • Include sqlite-3.1.3 for Panther; link against static lib
  • Install Tcl sqlite3 to ${prefix}/share/darwinports/Tcl if it's built, thus, it's always available
  • Rename ambiguous configure option "--with-sqlite3" to "--with-tcl-sqlite3"
  • Build our_included_packages before MacPorts so the static lib is there in later stages
  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 21.5 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
735dnl This macro tests if the compiler supports GCC's
736dnl __attribute__ syntax for unused variables/parameters
737AC_DEFUN([OD_COMPILER_ATTRIBUTE_UNUSED], [
738        AC_MSG_CHECKING([how to mark unused variables])
739        AC_COMPILE_IFELSE(
740                [AC_LANG_SOURCE([[int a __attribute__ ((unused));]])],
741                [AC_DEFINE(UNUSED, [__attribute__((unused))], [Attribute to mark unused variables])],
742                [AC_DEFINE(UNUSED, [])])
743
744        AC_MSG_RESULT([])
745       
746])
747
748dnl This macro ensures DP installation prefix bin/sbin paths are NOT in PATH
749dnl for configure to prevent potential problems when base/ code is updated
750dnl and ports are installed that would match needed items.
751AC_DEFUN([OD_PATH_SCAN],[
752        oldprefix=$prefix
753        if test "x$prefix" = "xNONE" ; then
754                prefix=$ac_default_prefix
755        fi
756        oldPATH=$PATH
757        newPATH=
758        as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
759        for as_dir in $oldPATH
760        do
761                IFS=$as_save_IFS
762                if test "x$as_dir" != "x$prefix/bin" &&
763                        test "x$as_dir" != "x$prefix/sbin"; then
764                        if test -z "$newPATH"; then
765                                newPATH=$as_dir
766                        else
767                                newPATH=$newPATH$PATH_SEPARATOR$as_dir
768                        fi
769                fi
770        done
771        PATH=$newPATH; export PATH
772        prefix=$oldprefix
773])
774
775dnl This macro tests for tar support of --no-same-owner
776AC_DEFUN([OD_TAR_NO_SAME_OWNER],[
777        AC_PATH_PROG(TAR, [tar])
778        AC_PATH_PROG(GNUTAR, [gnutar])
779       
780        AC_MSG_CHECKING([for which tar variant to use])
781        AS_IF([test -n "$GNUTAR"], [TAR_CMD=$GNUTAR], [TAR_CMD=$TAR])
782        AC_MSG_RESULT([$TAR_CMD])
783        AC_SUBST(TAR_CMD)
784
785        AC_MSG_CHECKING([for $TAR_CMD --no-same-owner support])
786        [no_same_owner_support=`$TAR_CMD --help 2>&1 | grep no-same-owner`]
787        if test -z "$no_same_owner_support" ; then
788                AC_MSG_RESULT([no])
789        else
790                AC_MSG_RESULT([yes])
791                TAR_CMD="$TAR_CMD --no-same-owner"
792        fi
793])
794
795#------------------------------------------------------------------------
796# DP_CHECK_READLINK_IS_P1003_1A --
797#
798#       Check if readlink conforms to POSIX 1003.1a standard, define
799#       READLINK_IS_NOT_P1003_1A if it doesn't.
800#
801# Arguments:
802#       None.
803#
804# Requires:
805#       None.
806#
807# Depends:
808#               AC_LANG_PROGRAM
809#
810# Results:
811#       Result is cached.
812#
813#       If readlink doesn't conform to POSIX 1003.1a, defines the following variables:
814#               READLINK_IS_NOT_P1003_1A
815#
816#------------------------------------------------------------------------
817AC_DEFUN(DP_CHECK_READLINK_IS_P1003_1A, [
818        AC_MSG_CHECKING([if readlink conforms to POSIX 1003.1a])
819
820        AC_CACHE_VAL(dp_cv_readlink_is_posix_1003_1a, [
821                AC_COMPILE_IFELSE([
822                        AC_LANG_PROGRAM([
823                                        #include <unistd.h>
824                                        ssize_t readlink(const char *, char *, size_t);
825                                ], [
826                        ])
827                        ], [
828                                dp_cv_readlink_is_posix_1003_1a="yes"
829                        ], [
830                                dp_cv_readlink_is_posix_1003_1a="no"
831                        ]
832                )
833        ])
834
835        AC_MSG_RESULT(${dp_cv_readlink_is_posix_1003_1a})
836
837        if test x"${dp_cv_readlink_is_posix_1003_1a}" = "xno"; then
838                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)])
839        fi
840
841        AC_SUBST(READLINK_IS_NOT_P1003_1A)
842])
Note: See TracBrowser for help on using the repository browser.