X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=aclocal.m4;h=b678f475637576bdcb1f0c6a73ab96805cb25292;hp=c9362ecf799a574dede7a5c1809f545ab688542d;hb=ca1023716d4c2ab890696f3e41fa0d94267a940e;hpb=4fbbf33311630a467654077776f088d7810c2202 diff --git a/aclocal.m4 b/aclocal.m4 index c9362ec..b678f47 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,86 +1,63 @@ -# Originally by John Hawkinson -# Under Solaris, those -# applications need to link with "-lsocket -lnsl". Under IRIX, they -# need to link with "-lnsl" but should *not* link with "-lsocket" -# because libsocket.a breaks a number of things (for instance, -# gethostbyname() under IRIX 5.2, and snoop sockets under most versions -# of IRIX). # -# The check for libresolv is in case you are attempting to link -# statically and happen to have a libresolv.a lying around (and no -# libnsl.a). An example of such a case would be Solaris with -# BIND 4.9.5 installed. +# Updated for more modern systems. Check to see if we need to link against +# optional libraries for networking functions. +# -AC_DEFUN(AC_CHECK_NETLIBS, -[AC_CHECK_FUNC(gethostbyname, , - AC_CHECK_LIB(nsl, gethostbyname, , - AC_CHECK_LIB(resolv, gethostbyname))) -AC_CHECK_FUNC(socket, , - AC_CHECK_LIB(socket, socket)) -]) +AC_DEFUN([AC_CHECK_NETLIBS], +[AC_SEARCH_LIBS([gethostbyname], [nsl], , + [AC_MSG_ERROR([gethostbyname not found])]) + AC_SEARCH_LIBS([connect], [socket], , [AC_MSG_ERROR([connect not found])]) +])dnl -dnl -------------- -dnl CHECK FOR NDBM -dnl -------------- +dnl ---------------- +dnl CHECK FOR d_type +dnl ---------------- dnl -dnl NMH_CHECK_DBM(libname,action-if-true,action-if-false,other-libraries) -dnl Check for presence of dbm_open() in the specified library -dnl (if libname is the empty string then don't try to link against -dnl any particular library). If action-if-true is unspecified it -dnl defaults to adding "-llibname" to the beginning of LIBS. -dnl If other-libraries is specified then these are prepended to -dnl LIBS for the duration of the check. -dnl NB that the checks for the right dbm header files must -dnl be done before using this macro! +dnl From Jim Meyering. dnl -dnl We try to link our own code fragment (which includes the -dnl headers in the same way slocal.c does) rather than -dnl using AC_CHECK_LIB because on later versions of libdb -dnl the dbm_open() function is provided via a #define and -dnl we don't want to hardcode searching for the internal -dnl function that lies behind it. (AC_CHECK_LIB works by -dnl defining its own bogus prototype rather than pulling in -dnl the right header files.) -AC_DEFUN(NMH_CHECK_DBM, -[ -if test "x$1" == "x"; then - nmh_libs= - dnl this is just for the benefit of AC_CACHE_CHECK's message - nmh_testname=libc -else - nmh_libs="-l$1 " - nmh_testname="$1" -fi -AC_CACHE_CHECK([for dbm in $nmh_testname], [nmh_cv_check_dbm_$1],[ -nmh_saved_libs="$LIBS" -LIBS="$nmh_libs $4 $LIBS" -AC_LINK_IFELSE(AC_LANG_PROGRAM([[ -#ifdef HAVE_DB1_NDBM_H -#include -#else -#ifdef HAVE_GDBM_NDBM_H -#include -#else -#if defined(HAVE_DB_H) -#define DB_DBM_HSEARCH 1 -#include -#else -#include -#endif -#endif -#endif -]], -[[dbm_open("",0,0);]]),[nmh_cv_check_dbm_$1=yes],[ -nmh_cv_check_dbm_$1=no]) -LIBS="$nmh_saved_libs" -]) -if eval "test \"`echo '$nmh_cv_check_dbm_'$1`\" = yes"; then - nmh_tr_macro=HAVE_LIB`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - AC_DEFINE_UNQUOTED($nmh_tr_macro) - m4_if([$2],,[LIBS="$nmh_libs$LIBS"],[$2]) -else - $3 - : -fi -])dnl +dnl Check whether struct dirent has a member named d_type. +dnl + +# Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004 Free Software +# Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +AC_DEFUN([CHECK_TYPE_STRUCT_DIRENT_D_TYPE], + [AC_REQUIRE([AC_HEADER_DIRENT])dnl + AC_CACHE_CHECK([for d_type member in directory struct], + jm_cv_struct_dirent_d_type, + [AC_TRY_LINK(dnl + [ +#include +#ifdef HAVE_DIRENT_H +# include +#else /* not HAVE_DIRENT_H */ +# define dirent direct +# ifdef HAVE_SYS_NDIR_H +# include +# endif /* HAVE_SYS_NDIR_H */ +# ifdef HAVE_SYS_DIR_H +# include +# endif /* HAVE_SYS_DIR_H */ +# ifdef HAVE_NDIR_H +# include +# endif /* HAVE_NDIR_H */ +#endif /* HAVE_DIRENT_H */ + ], + [struct dirent dp; dp.d_type = 0;], + + jm_cv_struct_dirent_d_type=yes, + jm_cv_struct_dirent_d_type=no) + ] + ) + if test $jm_cv_struct_dirent_d_type = yes; then + AC_DEFINE(HAVE_STRUCT_DIRENT_D_TYPE, 1, + [Define if there is a member named d_type in the struct describing + directory headers.]) + fi + ] +)