| |
| |
|
|
| |
|
|
| |
| |
| |
| |
|
|
| |
| |
| |
| |
|
|
| |
| |
|
|
| |
|
|
| AC_DEFUN([cu_PREREQ_STAT_PROG], |
| [ |
| AC_REQUIRE([gl_FSUSAGE]) |
| AC_REQUIRE([gl_FSTYPENAME]) |
| AC_CHECK_HEADERS_ONCE([OS.h netinet/in.h sys/param.h sys/vfs.h]) |
|
|
| dnl Check for vfs.h first, since this avoids a warning with nfs_client.h |
| dnl on Solaris 8. |
| test $ac_cv_header_sys_param_h = yes && |
| test $ac_cv_header_sys_mount_h = yes && |
| AC_CHECK_HEADERS([nfs/vfs.h], |
| [AC_CHECK_HEADERS([nfs/nfs_client.h])]) |
|
|
| statvfs_includes="\ |
| AC_INCLUDES_DEFAULT |
| #include <sys/statvfs.h> |
| " |
| statfs_includes="\ |
| AC_INCLUDES_DEFAULT |
| #if HAVE_SYS_VFS_H |
| # include <sys/vfs.h> |
| #elif HAVE_SYS_MOUNT_H && HAVE_SYS_PARAM_H |
| # include <sys/param.h> |
| # include <sys/mount.h> |
| # if HAVE_NETINET_IN_H && HAVE_NFS_NFS_CLNT_H && HAVE_NFS_VFS_H |
| # include <netinet/in.h> |
| # include <nfs/nfs_clnt.h> |
| # include <nfs/vfs.h> |
| # endif |
| #elif HAVE_OS_H |
| # include <fs_info.h> |
| #endif |
| " |
| dnl Keep this long conditional in sync with the USE_STATVFS conditional |
| dnl in ../src/stat.c. |
| if case "$fu_cv_sys_stat_statvfs$fu_cv_sys_stat_statvfs64" in |
| *yes*) ;; *) false;; esac && |
| { AC_CHECK_MEMBERS([struct statvfs.f_basetype],,, [$statvfs_includes]) |
| test $ac_cv_member_struct_statvfs_f_basetype = yes || |
| { AC_CHECK_MEMBERS([struct statvfs.f_fstypename],,, [$statvfs_includes]) |
| test $ac_cv_member_struct_statvfs_f_fstypename = yes || |
| { test $ac_cv_member_struct_statfs_f_fstypename != yes && |
| { AC_CHECK_MEMBERS([struct statvfs.f_type],,, [$statvfs_includes]) |
| test $ac_cv_member_struct_statvfs_f_type = yes; }; }; }; } |
| then |
| AC_CHECK_MEMBERS([struct statvfs.f_namemax],,, [$statvfs_includes]) |
| AC_COMPILE_IFELSE( |
| [AC_LANG_PROGRAM( |
| [$statvfs_includes], |
| [static statvfs s; |
| return (s.s_fsid ^ 0) == 0;])], |
| [AC_DEFINE([STRUCT_STATVFS_F_FSID_IS_INTEGER], [1], |
| [Define to 1 if the f_fsid member of struct statvfs is an integer.])]) |
| else |
| AC_CHECK_MEMBERS([struct statfs.f_namelen, struct statfs.f_namemax, |
| struct statfs.f_type, struct statfs.f_frsize],,, |
| [$statfs_includes]) |
| if test $ac_cv_header_OS_h != yes; then |
| AC_COMPILE_IFELSE( |
| [AC_LANG_PROGRAM( |
| [$statfs_includes], |
| [static statfs s; |
| return (s.s_fsid ^ 0) == 0;])], |
| [AC_DEFINE([STRUCT_STATFS_F_FSID_IS_INTEGER], [1], |
| [Define to 1 if the f_fsid member of struct statfs is an integer.])]) |
| fi |
| fi |
| ]) |
|
|