source: trunk/base/aclocal.m4 @ 15053

Last change on this file since 15053 was 14473, checked in by pguyot (Paul Guyot), 15 years ago

Fix error messages about -with-tclpackage
Bug:
Submitted by:
Reviewed by:
Approved by:
Obtained from:

  • Property svn:eol-style set to native
File size: 20.3 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 -E 's/-arch +[^ ]* ?//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
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
Note: See TracBrowser for help on using the repository browser.