source: trunk/base/aclocal.m4 @ 10525

Last change on this file since 10525 was 10525, checked in by landonf (Landon Fuller), 15 years ago

Fix typo

  • Property svn:eol-style set to native
File size: 12.1 KB
Line 
1builtin(include,tcl.m4)
2
3#------------------------------------------------------------------------
4# OD_COREFOUNDATION --
5#
6#       Check if CoreFoundation is available, and if so, use it.
7#
8# Arguments:
9#       None.
10#
11# Requires:
12#       None.
13#
14# Depends:
15#       AC_PROG_CC
16#
17# Results:
18#
19#       Result is cached.
20#
21#       If CoreFoundation is available, defines the following variables:
22#               CFOUNDATION_ENABLE
23#       Substitutes the following vars:
24#               CFOUNDATION_LIBS
25#
26#------------------------------------------------------------------------
27
28dnl Test for check, and define CHECK_CFLAGS and CHECK_LIBS
29dnl
30
31AC_DEFUN(OD_COREFOUNDATION, [
32        CFOUNDATION_LIBS="-framework CoreFoundation"
33
34        AC_MSG_CHECKING([for CoreFoundation])
35
36        AC_CACHE_VAL(od_cv_cfoundation, [
37
38                ac_save_LIBS="$LIBS"
39
40                LIBS="$CFOUNDATION_LIBS $LIBS"
41               
42                AC_LINK_IFELSE([
43                        AC_LANG_PROGRAM([
44                                        #include <CoreFoundation/CoreFoundation.h>
45                                ], [
46                                        CFURLRef url = CFURLCreateWithFileSystemPath(NULL, CFSTR("/testing"), kCFURLPOSIXPathStyle, 1);
47                                        CFArrayRef bundles = CFBundleCreateBundlesFromDirectory(NULL, url, CFSTR("pkg"));
48                        ])
49                        ], [
50                                od_cv_cfoundation="yes"
51                        ], [
52                                od_cv_cfoundation="no"
53                        ]
54                )
55
56                LIBS="$ac_save_LIBS"
57
58        ])
59
60        AC_MSG_RESULT(${od_cv_cfoundation})
61
62        if test x"${od_cv_cfoundation}" = "xyes"; then
63                AC_DEFINE([CFOUNDATION_ENABLE], [], [Define if the CoreFoundation is available and to be used])
64        else
65                CHECK_DIRS=""
66        fi
67                       
68
69        AC_SUBST(CFOUNDATION_LIBS)
70])
71
72dnl This macro checks if the user specified a dports tree
73dnl explicitly. If not, search for it
74
75# OD_PATH_DPORTSDIR(DEFAULT_DPORTSDIR)
76#---------------------------------------
77 AC_DEFUN([OD_PATH_DPORTSDIR],[
78        dnl For ease of reading, run after gcc has been found/configured
79        AC_REQUIRE([AC_PROG_CC])
80
81        AC_ARG_WITH(dports-dir, [AC_HELP_STRING([--with-dports-dir=DIR], [Specify alternate dports directory])], [ dportsdir="$withval" ] )
82
83
84        AC_MSG_CHECKING([for dports tree])
85        if test "x$dportsdir" != "x" ; then
86          if test -d "$dportsdir" -a -e "$dportsdir/PortIndex" ; then
87                :
88          else
89                AC_MSG_ERROR([$dportsdir not a valid dports tree])
90          fi
91        else
92                dnl If the user didn't give a path, look for default
93                if test "x$1" != "x" ; then
94                  if test -d "$1" -a -e "$1/PortIndex" ; then
95                        dportsdir=$1
96                  fi
97                fi
98        fi
99
100        if test "x$dportsdir" != "x" ; then
101                AC_MSG_RESULT($dportsdir)
102                DPORTSDIR="$dportsdir"
103                AC_SUBST(DPORTSDIR)
104        else
105                AC_MSG_WARN([No dports tree found])
106        fi
107
108         ])
109
110
111# OD_PATH_PORTCONFIGDIR(PREFIX)
112#---------------------------------------
113AC_DEFUN([OD_PATH_PORTCONFIGDIR],[
114        dnl if the user actually specified --prefix, shift
115        dnl portconfigdir to $prefix/etc/ports
116        dnl     AC_REQUIRE([OD_PATH_DPORTSDIR])
117       
118        AC_MSG_CHECKING([for ports config directory])
119
120        if test "$1" != "NONE" ; then
121                dnl user gave --prefix
122                portconfigdir='${sysconfdir}/ports'
123        else
124           case $host_os in
125           darwin*)
126                portconfigdir='/private/etc/ports'
127                ;;
128           *)
129                portconfigdir='/etc/ports'
130                ;;
131           esac
132        fi
133
134
135        AC_MSG_RESULT([$portconfigdir])
136        PORTCONFIGDIR="$portconfigdir"
137        AC_SUBST(PORTCONFIGDIR)
138
139        ])
140
141# OD_CHECK_INSTALLUSER
142#-------------------------------------------------
143AC_DEFUN([OD_CHECK_INSTALLUSER],[
144        dnl if with user specifies --with-install-user,
145        dnl use it. otherwise default to platform defaults
146        AC_REQUIRE([OD_PATH_PORTCONFIGDIR])
147
148        AC_ARG_WITH(install-user, [AC_HELP_STRING([--with-install-user=USER], [Specify user ownership of installed files])], [ DSTUSR=$withval ] )
149       
150        AC_MSG_CHECKING([for install user])
151        if test "x$DSTUSR" = "x" ; then
152           DSTUSR=root
153        fi
154
155        AC_MSG_RESULT([$DSTUSR])
156        AC_SUBST(DSTUSR)
157])
158
159# OD_CHECK_INSTALLGROUP
160#-------------------------------------------------
161AC_DEFUN([OD_CHECK_INSTALLGROUP],[
162        dnl if with user specifies --with-install-group,
163        dnl use it. otherwise default to platform defaults
164        AC_REQUIRE([OD_CHECK_INSTALLUSER])
165
166        AC_ARG_WITH(install-group, [AC_HELP_STRING([--with-install-group=GROUP], [Specify group ownership of installed files])], [ DSTGRP=$withval ] )
167
168        AC_MSG_CHECKING([for install group])
169        if test "x$DSTGRP" = "x" ; then
170           
171           case $host_os in
172           darwin*)
173                DSTGRP="admin"
174                ;;
175           *)
176                DSTGRP="wheel"
177                ;;
178           esac
179        fi
180
181        AC_MSG_RESULT([$DSTGRP])
182        AC_SUBST(DSTGRP)
183])
184
185# OD_DIRECTORY_MODE
186#-------------------------------------------------
187AC_DEFUN([OD_DIRECTORY_MODE],[
188        dnl if with user specifies --with-directory-mode,
189        dnl use the specified permissions for ${prefix} directories
190        dnl otherwise use 0775
191        AC_REQUIRE([OD_PATH_PORTCONFIGDIR])
192
193        AC_ARG_WITH(directory-mode, [AC_HELP_STRING([--with-directory-mode=MODE], [Specify directory mode of installed directories])], [ DSTMODE=$withval ] )
194       
195        AC_MSG_CHECKING([what permissions to use for installation directories])
196        if test "x$DSTMODE" = "x" ; then
197           DSTMODE=0775
198        fi
199
200        AC_MSG_RESULT([$DSTMODE])
201        AC_SUBST(DSTMODE)
202])
203
204# OD_LIB_MD5
205#---------------------------------------
206# Check for an md5 implementation
207AC_DEFUN([OD_LIB_MD5],[
208
209        # Check for libmd, which is prefered
210        AC_CHECK_LIB([md], [MD5Update],[
211                AC_CHECK_HEADERS([md5.h], ,[
212                        case $host_os in
213                                darwin*)       
214                                        AC_MSG_NOTICE([Please install the BSD SDK package from the Xcode Developer Tools CD.])
215                                        ;;
216                                *)     
217                                        AC_MSG_NOTICE([Please install the libmd developer headers for your platform.])
218                                        ;;
219                        esac
220                        AC_MSG_ERROR([libmd was found, but md5.h is missing.])
221                ])
222                AC_DEFINE([HAVE_LIBMD], ,[Define if you have the `md' library (-lmd).])
223                MD5_LIBS="-lmd"]
224        )
225        if test "x$MD5_LIBS" = "x" ; then
226                # If libmd is not found, check for libcrypto from OpenSSL
227                AC_CHECK_LIB([crypto], [MD5_Update],[
228                        AC_CHECK_HEADERS([openssl/md5.h],,[
229                                case $host_os in
230                                        darwin*)       
231                                        AC_MSG_NOTICE([Please install the BSD SDK package from the Xcode Developer Tools CD.])
232                                                ;;
233                                        *)     
234                                        AC_MSG_NOTICE([Please install the libmd developer headers for your platform.])
235                                                ;;
236                                esac
237                                AC_MSG_ERROR([libcrypt was found, but header file openssl/md5.h is missing.])
238                        ])
239                        AC_DEFINE([HAVE_LIBCRYPTO],,[Define if you have the `crypto' library (-lcrypto).])
240                        MD5_LIBS="-lcrypto"
241                ], [
242                        AC_MSG_ERROR([Neither OpenSSL or libmd were found. A working md5 implementation is required.])
243                ])
244        fi
245        if test "x$MD5_LIBS" = "x"; then
246                AC_MSG_ERROR([Neither OpenSSL or libmd were found. A working md5 implementation is required.])
247        fi
248        AC_SUBST([MD5_LIBS])
249])
250
251dnl This macro checks for X11 presence. If the libraries are
252dnl present, so must the headers be. If nothing is present,
253dnl print a warning
254
255# OD_CHECK_X11
256# ---------------------
257AC_DEFUN([OD_CHECK_X11], [
258
259        AC_PATH_XTRA
260
261        # Check for libX11
262        AC_CHECK_LIB([X11], [XOpenDisplay],[
263                has_x_runtime=yes
264                ], [ has_x_runtime=no ], [-L/usr/X11R6/lib $X_LIBS])
265
266#       echo "------done---------"
267#       echo "x_includes=${x_includes}"
268#       echo "x_libraries=${x_libraries}"
269#       echo "no_x=${no_x}"
270#       echo "X_CFLAGS=${X_CFLAGS}"
271#       echo "X_LIBS=${X_LIBS}"
272#       echo "X_DISPLAY_MISSING=${X_DISPLAY_MISSING}"
273#       echo "has_x_runtime=${has_x_runtime}"
274#       echo "host_os=${host_os}"
275#       echo "------done---------"
276
277        state=
278
279        case "__${has_x_runtime}__${no_x}__" in
280                "__no__yes__")
281                # either the user said --without-x, or it was not found
282                # at all (runtime or headers)
283                        AC_MSG_WARN([X11 not available. You will not be able to use dports that use X11])
284                        state=0
285                        ;;
286                "__yes__yes__")
287                        state=1
288                        ;;
289                "__yes____")
290                        state=2
291                        ;;
292                *)
293                        state=3
294                        ;;
295        esac
296
297        case $host_os in
298                darwin*)       
299                        case $state in
300                                1)
301                                        cat <<EOF;
302Please install the X11 SDK packages from the
303Xcode Developer Tools CD
304EOF
305                                        AC_MSG_ERROR([Broken X11 install. No X11 headers])
306
307                                        ;;
308                                3)
309                                        cat <<EOF;
310Unknown configuration problem. Please install the X11 runtime
311and/or X11 SDK  packages from the Xcode Developer Tools CD
312EOF
313                                        AC_MSG_ERROR([Broken X11 install])
314                                        ;;
315                        esac
316                        ;;
317                *)     
318                        case $state in
319                                1)
320                                        cat <<EOF;
321Please install the X11 developer headers for your platform
322EOF
323                                        AC_MSG_ERROR([Broken X11 install. No X11 headers])
324
325                                        ;;
326                                3)
327                                        cat <<EOF;
328Unknown configuration problem. Please install the X11
329implementation for your platform
330EOF
331                                        AC_MSG_ERROR([Broken X11 install])
332                                        ;;
333                        esac
334                        ;;
335        esac
336
337])
338
339# OD_PROG_MTREE
340#---------------------------------------
341AC_DEFUN([OD_PROG_MTREE],[
342
343        AC_PATH_PROG([MTREE], [mtree], ,  [/usr/bin:/usr/sbin:/bin:/sbin])
344
345        if test "x$MTREE" = "x" ; then
346                AC_CONFIG_SUBDIRS([src/programs/mtree])
347                MTREE='$(TOPSRCDIR)/src/programs/mtree/mtree'
348#               MTREE='${prefix}/bin/mtree'
349                REPLACEMENT_PROGS="$REPLACEMENT_PROGS mtree"
350        fi
351
352        AC_SUBST(MTREE)
353])
354
355#------------------------------------------------------------------------
356# OD_TCL_PACKAGE_DIR --
357#
358#       Locate the correct directory for Tcl package installation
359#
360# Arguments:
361#       None.
362#
363# Requires:
364#       TCLVERSION must be set
365#       CYGPATH must be set
366#       TCLSH must be set
367#
368# Results:
369#
370#       Adds a --with-tclpackage switch to configure.
371#       Result is cached.
372#
373#       Substs the following vars:
374#               TCL_PACKAGE_DIR
375#------------------------------------------------------------------------
376
377AC_DEFUN(OD_TCL_PACKAGE_DIR, [
378    AC_MSG_CHECKING(for Tcl package directory)
379
380    AC_ARG_WITH(tclpackage, [  --with-tclpackage       Tcl package installation directory.], with_tclpackagedir=${withval})
381
382    if test x"${with_tclpackagedir}" != x ; then
383        ac_cv_c_tclpkgd=${with_tclpackagedir}
384    else
385        AC_CACHE_VAL(ac_cv_c_tclpkgd, [
386            # Use the value from --with-tclpackagedir, if it was given
387
388            if test x"${with_tclpackagedir}" != x ; then
389                ac_cv_c_tclpkgd=${with_tclpackagedir}
390            else
391                # On darwin we can do some intelligent guessing
392                case $host_os in
393                    darwin*)
394                        tcl_autopath=`echo 'puts \$auto_path' | $TCLSH`
395                        for path in $tcl_autopath; do
396                            if test "$path" = "/Library/Tcl"; then
397                                ac_cv_c_tclpkgd="$path"
398                                break
399                            fi
400                            if test "$path" = "/System/Library/Tcl"; then
401                                if test -d "$path"; then
402                                    ac_cv_c_tclpkgd="$path"
403                                    break
404                                fi
405                            fi
406                        done
407                    ;;
408                esac
409                if test x"${ac_cv_c_tclpkgd}" = x ; then
410                    # Fudge a path from the first entry in the auto_path
411                    tcl_pkgpath=`echo 'puts [[lindex \$auto_path 0]]' | $TCLSH`
412                    if test -d "$tcl_pkgpath"; then
413                        ac_cv_c_tclpkgd="$tcl_pkgpath"
414                    fi
415                    # If the first entry does not exist, do nothing
416                fi
417            fi
418        ])
419    fi
420
421    if test x"${ac_cv_c_tclpkgd}" = x ; then
422        AC_MSG_ERROR(Tcl package directory not found.  Please specify its location with --with-tclpackagedir)
423    else
424        AC_MSG_RESULT(${ac_cv_c_tclpkgd})
425    fi
426
427    # Convert to a native path and substitute into the output files.
428
429    PACKAGE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tclpkgd}`
430
431    TCL_PACKAGE_DIR=${PACKAGE_DIR_NATIVE}
432
433    AC_SUBST(TCL_PACKAGE_DIR)
434])
435
436# OD_PROG_TCLSH
437#---------------------------------------
438AC_DEFUN([OD_PROG_TCLSH],[
439
440
441        case $host_os in
442                freebsd*)
443                        # FreeBSD installs a dummy tclsh (annoying)
444                        # Look for a real versioned tclsh first
445                        AC_PATH_PROG([TCLSH], [tclsh${TCL_VERSION} tclsh])
446                        ;;
447                *)
448                        # Otherwise, look for a non-versioned tclsh
449                        AC_PATH_PROG([TCLSH], [tclsh tclsh${TCL_VERSION}])
450                        ;;
451        esac
452        if test "x$TCLSH" = "x" ; then
453                AC_MSG_ERROR([Could not find tclsh])
454        fi
455
456        AC_SUBST(TCLSH)
457])
458
459
460dnl This macro tests if the compiler supports GCC's
461dnl __attribute__ syntax for unused variables/parameters
462AC_DEFUN([OD_COMPILER_ATTRIBUTE_UNUSED], [
463        AC_MSG_CHECKING([how to mark unused variables])
464        AC_COMPILE_IFELSE(
465                [AC_LANG_SOURCE([[int a __attribute__ ((unused));]])],
466                [AC_DEFINE(UNUSED, [__attribute__((unused))], [Attribute to mark unused variables])],
467                [AC_DEFINE(UNUSED, [])])
468
469        AC_MSG_RESULT([])
470       
471])
472
473dnl This macro ensures DP installation prefix bin/sbin paths are NOT in PATH
474dnl for configure to prevent potential problems when base/ code is updated
475dnl and ports are installed that would match needed items.
476AC_DEFUN([OD_PATH_SCAN],[
477        oldprefix=$prefix
478        if test "x$prefix" = "xNONE" ; then
479                prefix=$ac_default_prefix
480        fi
481        oldPATH=$PATH
482        newPATH=
483        as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
484        for as_dir in $oldPATH
485        do
486                IFS=$as_save_IFS
487                if test "x$as_dir" != "x$prefix/bin" &&
488                        test "x$as_dir" != "x$prefix/sbin"; then
489                        if test -z "$newPATH"; then
490                                newPATH=$as_dir
491                        else
492                                newPATH=$newPATH$PATH_SEPARATOR$as_dir
493                        fi
494                fi
495        done
496        PATH=$newPATH; export PATH
497        prefix=$oldprefix
498])
499
Note: See TracBrowser for help on using the repository browser.