diff --git a/src/cf/fuse.m4 b/src/cf/fuse.m4 index 054a4458fc..43d28a48dc 100644 --- a/src/cf/fuse.m4 +++ b/src/cf/fuse.m4 @@ -2,6 +2,28 @@ dnl FUSE Autoconf glue. Build with FUSE if it's available; if it's not, dnl don't enable the FUSE build. If --enable is given explicitly, FUSE dnl must be found or we bail out. +AC_DEFUN([OPENAFS_FUSE_DEFS], + [ENABLE_FUSE_CLIENT=afsd.fuse + CLIENT_UAFS_DEP=libuafs]) + +dnl Solaris 11 has a FUSE package, but it does not come with a pkg-config +dnl fuse.pc configuration. The libraries, headers, etc are in predictable +dnl places, though. +AC_DEFUN([OPENAFS_SUN511_FUSE], + [AS_CASE([$AFS_SYSNAME], + [sun4x_511|sunx86_511], + [sol11fuse= + fuse_cppflags=-D_FILE_OFFSET_BITS=64 + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$fuse_cppflags $CPPFLAGS" + AC_CHECK_HEADER([fuse.h], [sol11fuse=yes]) + AS_IF([test x"$sol11fuse" = xyes], + [FUSE_CFLAGS="$fuse_cppflags" + FUSE_LIBS=-lfuse + openafs_fuse=yes + OPENAFS_FUSE_DEFS]) + CPPFLAGS="$save_CPPFLAGS"])]) + AC_DEFUN([OPENAFS_FUSE], [openafs_fuse= ENABLE_FUSE_CLIENT= @@ -11,12 +33,16 @@ AC_DEFUN([OPENAFS_FUSE], [disable building of the FUSE userspace client, afsd.fuse (defaults to enabled)])], [openafs_fuse="$enableval"]) + AS_IF([test -z "$openafs_fuse"], - [PKG_CHECK_EXISTS([fuse], [openafs_fuse=yes])]) - AS_IF([test x"$openafs_fuse" = xyes], - [PKG_CHECK_MODULES([FUSE], [fuse]) - ENABLE_FUSE_CLIENT=afsd.fuse - CLIENT_UAFS_DEP=libuafs]) + [PKG_CHECK_EXISTS([fuse], [openafs_fuse=yes], [OPENAFS_SUN511_FUSE])]) + + AS_IF([test x"$openafs_fuse" = xyes && test x"$ENABLE_FUSE_CLIENT" = x], + [PKG_CHECK_MODULES([FUSE], [fuse], + [OPENAFS_FUSE_DEFS], + [OPENAFS_SUN511_FUSE + AS_IF([test x"ENABLE_FUSE_CLIENT" = x], + [AC_MSG_ERROR(["$FUSE_PACKAGE_ERRORS"])])])]) AC_SUBST([ENABLE_FUSE_CLIENT]) AC_SUBST([CLIENT_UAFS_DEP]) AC_SUBST([FUSE_CFLAGS])