X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fls-mntd-fs.m4;h=7229f78f50efa7c59456cf75d1e56f5e73a7ce85;hb=d36212cb0a461bc3f063ecbcb1c4d88316eaa397;hp=aa8ca2d5ab74eea3d9f45d05f21096059adf4602;hpb=6e900bf767985dcb7defca2b443dad6a329fc244;p=gnulib.git diff --git a/m4/ls-mntd-fs.m4 b/m4/ls-mntd-fs.m4 index aa8ca2d5a..7229f78f5 100644 --- a/m4/ls-mntd-fs.m4 +++ b/m4/ls-mntd-fs.m4 @@ -1,4 +1,4 @@ -#serial 5 +#serial 11 dnl From Jim Meyering. dnl @@ -6,13 +6,27 @@ dnl This is not pretty. I've just taken the autoconf code and wrapped dnl it in an AC_DEFUN. dnl -AC_PREREQ(2.14a) - # jm_LIST_MOUNTED_FILESYSTEMS([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) -AC_DEFUN(jm_LIST_MOUNTED_FILESYSTEMS, +AC_DEFUN([jm_LIST_MOUNTED_FILESYSTEMS], [ -AC_CHECK_FUNCS(listmntent getmntent getmntinfo) -AC_CHECK_HEADERS(mntent.h) +AC_CHECK_FUNCS(listmntent getmntinfo) +AC_CHECK_HEADERS(mntent.h sys/param.h sys/ucred.h sys/mount.h sys/fs_types.h) + getfsstat_includes="\ +$ac_includes_default +#if HAVE_SYS_PARAM_H +# include /* needed by powerpc-apple-darwin1.3.7 */ +#endif +#if HAVE_SYS_UCRED_H +# include /* needed by powerpc-apple-darwin1.3.7 */ +#endif +#if HAVE_SYS_MOUNT_H +# include +#endif +#if HAVE_SYS_FS_TYPES_H +# include /* needed by powerpc-apple-darwin1.3.7 */ +#endif +" +AC_CHECK_MEMBERS([struct fsstat.f_fstypename],,,[$getfsstat_includes]) # Determine how to get the list of mounted filesystems. ac_list_mounted_fs= @@ -62,9 +76,26 @@ if test $ac_cv_func_getmntent = yes; then # 4.3BSD, SunOS, HP-UX, Dynix, Irix AC_MSG_CHECKING([for one-argument getmntent function]) AC_CACHE_VAL(fu_cv_sys_mounted_getmntent1, - [test $ac_cv_header_mntent_h = yes \ - && fu_cv_sys_mounted_getmntent1=yes \ - || fu_cv_sys_mounted_getmntent1=no]) + [AC_TRY_COMPILE([ +/* SunOS 4.1.x /usr/include/mntent.h needs this for FILE */ +#include + +#include +#if !defined MOUNTED +# if defined _PATH_MOUNTED /* GNU libc */ +# define MOUNTED _PATH_MOUNTED +# endif +# if defined MNT_MNTTAB /* HP-UX. */ +# define MOUNTED MNT_MNTTAB +# endif +# if defined MNTTABNAME /* Dynix. */ +# define MOUNTED MNTTABNAME +# endif +#endif +], + [ struct mntent *mnt = 0; char *table = MOUNTED; ], + fu_cv_sys_mounted_getmntent1=yes, + fu_cv_sys_mounted_getmntent1=no)]) AC_MSG_RESULT($fu_cv_sys_mounted_getmntent1) if test $fu_cv_sys_mounted_getmntent1 = yes; then ac_list_mounted_fs=found @@ -91,26 +122,30 @@ if test $ac_cv_func_getmntent = yes; then fi fi - if test -z "$ac_list_mounted_fs"; then - AC_MSG_ERROR([could not determine how to read list of mounted filesystems]) - fi - fi if test -z "$ac_list_mounted_fs"; then - # DEC Alpha running OSF/1. + # DEC Alpha running OSF/1, and Apple Darwin 1.3. + # powerpc-apple-darwin1.3.7 needs sys/param.h sys/ucred.h sys/fs_types.h + AC_MSG_CHECKING([for getfsstat function]) - AC_CACHE_VAL(fu_cv_sys_mounted_getsstat, + AC_CACHE_VAL(fu_cv_sys_mounted_getfsstat, [AC_TRY_LINK([ #include -#include -#include ], +#if HAVE_STRUCT_FSSTAT_F_FSTYPENAME +# define FS_TYPE(Ent) ((Ent).f_fstypename) +#else +# define FS_TYPE(Ent) mnt_names[(Ent).f_type] +#endif +]$getfsstat_includes +, [struct statfs *stats; - int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT); ], - fu_cv_sys_mounted_getsstat=yes, - fu_cv_sys_mounted_getsstat=no)]) - AC_MSG_RESULT($fu_cv_sys_mounted_getsstat) - if test $fu_cv_sys_mounted_getsstat = yes; then + int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT); + char *t = FS_TYPE (*stats); ], + fu_cv_sys_mounted_getfsstat=yes, + fu_cv_sys_mounted_getfsstat=no)]) + AC_MSG_RESULT($fu_cv_sys_mounted_getfsstat) + if test $fu_cv_sys_mounted_getfsstat = yes; then ac_list_mounted_fs=found AC_DEFINE(MOUNTED_GETFSSTAT, 1, [Define if there is a function named getfsstat for reading the @@ -239,6 +274,6 @@ if test -z "$ac_list_mounted_fs"; then # Can't build mountlist.c or anything that needs its functions fi -AC_SHELL_IFELSE([test $ac_list_mounted_fs = found], [$1], [$2])dnl +AS_IF([test $ac_list_mounted_fs = found], [$1], [$2]) ])