mirror of
https://github.com/vgough/encfs.git
synced 2025-06-23 13:31:40 +02:00
rework fuse detection to allow OSX to work out of the box using OSXFuse
git-svn-id: http://encfs.googlecode.com/svn/trunk@73 db9cf616-1c43-0410-9cb8-a902689de0d6
This commit is contained in:
parent
478cc1c90f
commit
9fa5deb196
@ -14,4 +14,4 @@ AUTOMAKE_OPTIONS = foreign
|
|||||||
MAINTAINERCLEANFILES = aclocal.m4
|
MAINTAINERCLEANFILES = aclocal.m4
|
||||||
|
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4 -I m4-local
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
52
configure.ac
52
configure.ac
@ -1,14 +1,14 @@
|
|||||||
dnl Process this file with autoconf to produce a configure script.
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
AC_INIT(encfs/encfs.h) dnl a source file from your sub dir
|
AC_INIT(encfs/encfs.h) dnl a source file from your sub dir
|
||||||
|
AC_CONFIG_AUX_DIR([build-aux])
|
||||||
AM_INIT_AUTOMAKE(encfs, 1.7.4) dnl searches for some needed programs
|
AM_INIT_AUTOMAKE(encfs, 1.7.4) dnl searches for some needed programs
|
||||||
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
|
||||||
AC_CANONICAL_HOST
|
AC_CANONICAL_HOST
|
||||||
AM_CONDITIONAL([DARWIN],
|
AM_CONDITIONAL([DARWIN],
|
||||||
[case $host_os in darwin*) true;; *) false;; esac])
|
[case $host_os in darwin*) true;; *) false;; esac])
|
||||||
|
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
|
||||||
|
|
||||||
dnl without this order in this file, automake will be confused!
|
dnl without this order in this file, automake will be confused!
|
||||||
dnl
|
dnl
|
||||||
AM_CONFIG_HEADER(config.h)
|
AM_CONFIG_HEADER(config.h)
|
||||||
@ -28,6 +28,7 @@ AC_PREFIX_DEFAULT(/usr/local)
|
|||||||
AM_GNU_GETTEXT([external])
|
AM_GNU_GETTEXT([external])
|
||||||
AM_GNU_GETTEXT_VERSION([0.17])
|
AM_GNU_GETTEXT_VERSION([0.17])
|
||||||
dnl AC_LIB_LINKFLAGS([asprintf]) # use internal copy
|
dnl AC_LIB_LINKFLAGS([asprintf]) # use internal copy
|
||||||
|
LIBINTL=-lgettextlib
|
||||||
|
|
||||||
dnl create only shared libtool-libraries
|
dnl create only shared libtool-libraries
|
||||||
dnl These can be overridden by command line arguments
|
dnl These can be overridden by command line arguments
|
||||||
@ -43,7 +44,7 @@ fi
|
|||||||
|
|
||||||
AC_PROG_LIBTOOL
|
AC_PROG_LIBTOOL
|
||||||
|
|
||||||
ACX_PTHREAD
|
AX_PTHREAD
|
||||||
|
|
||||||
AX_BOOST_BASE([1.34])
|
AX_BOOST_BASE([1.34])
|
||||||
AX_BOOST_SYSTEM
|
AX_BOOST_SYSTEM
|
||||||
@ -52,35 +53,36 @@ AX_BOOST_FILESYSTEM
|
|||||||
|
|
||||||
dnl Need to include any user specified flags in the tests below, as they might
|
dnl Need to include any user specified flags in the tests below, as they might
|
||||||
dnl specify required include directories..
|
dnl specify required include directories..
|
||||||
FUSEFLAGS="-D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26"
|
FUSE_FLAGS="-D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26"
|
||||||
CPPFLAGS="$CPPFLAGS $USER_INCLUDES $FUSEFLAGS -D__STDC_FORMAT_MACROS"
|
CPPFLAGS="$CPPFLAGS $USER_INCLUDES $FUSE_FLAGS -D__STDC_FORMAT_MACROS"
|
||||||
CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS $USER_INCLUDES"
|
CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS $USER_INCLUDES"
|
||||||
LDFLAGS="$LDFLAGS $PTHREAD_LIBS $USER_LDFLAGS"
|
LDFLAGS="$LDFLAGS $PTHREAD_LIBS $USER_LDFLAGS $FUSE_LIBS"
|
||||||
|
|
||||||
# default install path on Darwin of Macports, which is where rlog may be
|
dnl Look for fuse headers.
|
||||||
if test -z "${DARWIN_TRUE}"; then
|
AX_EXT_HAVE_HEADER(fuse.h, /usr/include/fuse /usr/local/include/fuse \
|
||||||
LDFLAGS="$LDFLAGS -L/opt/local/lib"
|
/opt/include/fuse /opt/local/include/fuse \
|
||||||
fi
|
/usr/include/osxfuse /usr/local/include/osxfuse)
|
||||||
|
|
||||||
|
dnl Ensure the necessary paths are added to LDPATH
|
||||||
|
AX_EXT_HAVE_LIB(/usr/lib /usr/local/lib /opt/lib /opt/local/lib, fuse,
|
||||||
|
fuse_new, [])
|
||||||
|
AX_EXT_HAVE_LIB(/usr/lib /usr/local/lib /opt/lib /opt/local/lib, osxfuse,
|
||||||
|
fuse_new, [])
|
||||||
|
|
||||||
if test "$GXX" = "yes"; then
|
if test "$GXX" = "yes"; then
|
||||||
CXXFLAGS="-W -Wall -Wpointer-arith -Wwrite-strings $CXXFLAGS"
|
CXXFLAGS="-W -Wall -Wpointer-arith -Wwrite-strings $CXXFLAGS"
|
||||||
dnl CXXFLAGS="$CXXFLAGS -Wformat=2 -Wconversion"
|
dnl CXXFLAGS="$CXXFLAGS -Wformat=2 -Wconversion"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_CHECK_HEADER(fuse.h,,
|
if test -z "${DARWIN_TRUE}"; then
|
||||||
[AC_MSG_ERROR([
|
dnl Prefer OSXFuse, but fall back to libfuse.
|
||||||
Can't find fuse.h - add the search path to CPPFLAGS and
|
AC_CHECK_LIB(osxfuse, fuse_new, [FUSE_LIBS="$FUSE_LIBS -losxfuse"],
|
||||||
rerun configure, eg:
|
AC_CHECK_LIB(fuse, fuse_new, [FUSE_LIBS="$FUSE_LIBS -lfuse"],
|
||||||
export CPPFLAGS=-I/usr/local/include ])])
|
AC_MSG_ERROR([Unable to find libfuse or libosxfuse.])))
|
||||||
AC_CHECK_LIB(fuse_ino64,fuse_new, [FUSE_LIBS="-lfuse_ino64"],
|
else
|
||||||
[ AC_CHECK_LIB(fuse,fuse_new, [FUSE_LIBS="-lfuse"],
|
AC_CHECK_LIB(fuse, fuse_new, [FUSE_LIBS="$FUSE_LIBS -lfuse"],
|
||||||
[AC_MSG_ERROR([
|
AC_MSG_ERROR([Unable to find libfuse.]))
|
||||||
Can't find libfuse.a - add the search path to LDFLAGS
|
fi
|
||||||
and rerun configure, eg:
|
|
||||||
export LDFLAGS=-L/usr/local/lib ])],)
|
|
||||||
],)
|
|
||||||
|
|
||||||
AC_SUBST(FUSE_LIBS)
|
|
||||||
|
|
||||||
# check for a supported FUSE_MAJOR_VERSION.
|
# check for a supported FUSE_MAJOR_VERSION.
|
||||||
AC_MSG_CHECKING([For supported FUSE API version])
|
AC_MSG_CHECKING([For supported FUSE API version])
|
||||||
@ -106,7 +108,7 @@ dnl fuse_operations.setxattr was added 2004-03-31
|
|||||||
dnl only enable it if setxattr function is found..
|
dnl only enable it if setxattr function is found..
|
||||||
AC_CHECK_HEADERS([attr/xattr.h sys/xattr.h])
|
AC_CHECK_HEADERS([attr/xattr.h sys/xattr.h])
|
||||||
|
|
||||||
# Do xattr functions take additional options like on Darwin?
|
dnl xattr functions take additional arguments on some systems (eg Darwin).
|
||||||
AC_CACHE_CHECK([whether xattr interface takes additional options],
|
AC_CACHE_CHECK([whether xattr interface takes additional options],
|
||||||
smb_attr_cv_xattr_add_opt, [
|
smb_attr_cv_xattr_add_opt, [
|
||||||
old_LIBS=$LIBS
|
old_LIBS=$LIBS
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
include $(top_srcdir)/Makefile.common
|
include $(top_srcdir)/Makefile.common
|
||||||
|
|
||||||
ALL_INCLUDES = @RLOG_CFLAGS@ @OPENSSL_CFLAGS@ @BOOST_CPPFLAGS@
|
ALL_INCLUDES = @RLOG_CFLAGS@ @OPENSSL_CFLAGS@ @BOOST_CPPFLAGS@
|
||||||
ALL_LDFLAGS = @RLOG_LIBS@ @OPENSSL_LIBS@ @FUSE_LIBS@ @BOOST_LDFLAGS@
|
ALL_LDFLAGS = @RLOG_LIBS@ @OPENSSL_LIBS@ @BOOST_LDFLAGS@
|
||||||
ALL_LDFLAGS += @BOOST_SERIALIZATION_LIB@ @BOOST_FILESYSTEM_LIB@ @BOOST_SYSTEM_LIB@
|
ALL_LDFLAGS += @BOOST_SERIALIZATION_LIB@ @BOOST_FILESYSTEM_LIB@ @BOOST_SYSTEM_LIB@
|
||||||
|
|
||||||
INCLUDES = $(all_includes) -I../intl
|
INCLUDES = $(all_includes) -I../intl
|
||||||
|
@ -51,11 +51,6 @@
|
|||||||
|
|
||||||
#include "openssl.h"
|
#include "openssl.h"
|
||||||
|
|
||||||
// Fuse version >= 26 requires another argument to fuse_unmount, which we
|
|
||||||
// don't have. So use the backward compatible call instead..
|
|
||||||
extern "C" void fuse_unmount_compat22(const char *mountpoint);
|
|
||||||
# define fuse_unmount fuse_unmount_compat22
|
|
||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
|
|
||||||
#include "i18n.h"
|
#include "i18n.h"
|
||||||
@ -770,7 +765,7 @@ static bool unmountFS(EncFS_Context *ctx)
|
|||||||
// xgroup(diag)
|
// xgroup(diag)
|
||||||
rWarning(_("Unmounting filesystem %s due to inactivity"),
|
rWarning(_("Unmounting filesystem %s due to inactivity"),
|
||||||
arg->mountPoint.c_str());
|
arg->mountPoint.c_str());
|
||||||
fuse_unmount( arg->mountPoint.c_str() );
|
fuse_unmount( arg->mountPoint.c_str(), NULL );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user