1dnl Checks for libfuse required headers and functions 2dnl 3dnl Version: 20180403 4 5dnl Function to detect if libfuse is available 6dnl ac_libfuse_dummy is used to prevent AC_CHECK_LIB adding unnecessary -l<library> arguments 7AC_DEFUN([AX_LIBFUSE_CHECK_LIB], 8 [dnl Check if parameters were provided 9 AS_IF( 10 [test "x$ac_cv_with_libfuse" != x && test "x$ac_cv_with_libfuse" != xno && test "x$ac_cv_with_libfuse" != xauto-detect], 11 [AS_IF( 12 [test -d "$ac_cv_with_libfuse"], 13 [CFLAGS="$CFLAGS -I${ac_cv_with_libfuse}/include" 14 LDFLAGS="$LDFLAGS -L${ac_cv_with_libfuse}/lib"], 15 [AC_MSG_WARN([no such directory: $ac_cv_with_libfuse]) 16 ]) 17 ]) 18 19 AS_IF( 20 [test "x$ac_cv_with_libfuse" = xno], 21 [ac_cv_libfuse=no], 22 [dnl Check for a pkg-config file 23 AS_IF( 24 [test "x$cross_compiling" != "xyes" && test "x$PKGCONFIG" != "x"], 25 [PKG_CHECK_MODULES( 26 [fuse], 27 [fuse >= 2.6], 28 [ac_cv_libfuse=libfuse], 29 [ac_cv_libfuse=no]) 30 ]) 31 32 AS_IF( 33 [test "x$ac_cv_libfuse" = xlibfuse], 34 [ac_cv_libfuse_CPPFLAGS="$pkg_cv_fuse_CFLAGS" 35 ac_cv_libfuse_LIBADD="$pkg_cv_fuse_LIBS"], 36 [dnl Check for headers 37 AC_CHECK_HEADERS( 38 [fuse.h], 39 [ac_cv_header_fuse_h=yes], 40 [ac_cv_header_fuse_h=no]) 41 42 dnl libfuse sometimes requires -D_FILE_OFFSET_BITS=64 to be set 43 AS_IF( 44 [test "x$ac_cv_header_fuse_h" = xno], 45 [AS_UNSET([ac_cv_header_fuse_h]) 46 CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64" 47 AC_CHECK_HEADERS([fuse.h]) 48 ]) 49 50 AS_IF( 51 [test "x$ac_cv_header_fuse_h" = xno], 52 [ac_cv_libfuse=no], 53 [dnl Check for the individual functions 54 ac_cv_libfuse=libfuse 55 56 AC_CHECK_LIB( 57 fuse, 58 fuse_daemonize, 59 [ac_cv_libfuse_dummy=yes], 60 [ac_cv_libfuse=no]) 61 AC_CHECK_LIB( 62 fuse, 63 fuse_destroy, 64 [ac_cv_libfuse_dummy=yes], 65 [ac_cv_libfuse=no]) 66 AC_CHECK_LIB( 67 fuse, 68 fuse_mount, 69 [ac_cv_libfuse_dummy=yes], 70 [ac_cv_libfuse=no]) 71 AC_CHECK_LIB( 72 fuse, 73 fuse_new, 74 [ac_cv_libfuse_dummy=yes], 75 [ac_cv_libfuse=no]) 76 77 ac_cv_libfuse_LIBADD="-lfuse"; 78 ]) 79 ]) 80 81 dnl Check for libosxfuse 82 AS_IF( 83 [test "x$ac_cv_with_libfuse" != xno && test "x$ac_cv_header_fuse_h" = xno], 84 [CPPFLAGS="$CPPFLAGS -DFUSE_USE_VERSION=26" 85 AC_CHECK_HEADERS([osxfuse/fuse.h]) 86 87 dnl libosxfuse sometimes requires -D_FILE_OFFSET_BITS=64 to be set 88 AS_IF( 89 [test "x$ac_cv_header_osxfuse_fuse_h" = xno], 90 [AS_UNSET([ac_cv_header_osxfuse_fuse_h]) 91 CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64" 92 AC_CHECK_HEADERS([osxfuse/fuse.h]) 93 ]) 94 95 AS_IF( 96 [test "x$ac_cv_header_osxfuse_fuse_h" = xno], 97 [ac_cv_libfuse=no], 98 [dnl Check for the individual functions 99 ac_cv_libfuse=libosxfuse 100 101 AC_CHECK_LIB( 102 osxfuse, 103 fuse_daemonize, 104 [ac_cv_libfuse_dummy=yes], 105 [ac_cv_libfuse=no]) 106 AC_CHECK_LIB( 107 osxfuse, 108 fuse_destroy, 109 [ac_cv_libfuse_dummy=yes], 110 [ac_cv_libfuse=no]) 111 AC_CHECK_LIB( 112 osxfuse, 113 fuse_mount, 114 [ac_cv_libfuse_dummy=yes], 115 [ac_cv_libfuse=no]) 116 AC_CHECK_LIB( 117 osxfuse, 118 fuse_new, 119 [ac_cv_libfuse_dummy=yes], 120 [ac_cv_libfuse=no]) 121 122 ac_cv_libfuse_LIBADD="-losxfuse"; 123 ]) 124 ]) 125 ]) 126 127 AS_IF( 128 [test "x$ac_cv_libfuse" = xlibfuse], 129 [AC_DEFINE( 130 [HAVE_LIBFUSE], 131 [1], 132 [Define to 1 if you have the 'fuse' library (-lfuse).]) 133 ]) 134 AS_IF( 135 [test "x$ac_cv_libfuse" = xlibosxfuse], 136 [AC_DEFINE( 137 [HAVE_LIBOSXFUSE], 138 [1], 139 [Define to 1 if you have the 'osxfuse' library (-losxfuse).]) 140 ]) 141 142 AS_IF( 143 [test "x$ac_cv_libfuse" != xno], 144 [AC_SUBST( 145 [HAVE_LIBFUSE], 146 [1]) ], 147 [AC_SUBST( 148 [HAVE_LIBFUSE], 149 [0]) 150 ]) 151 ]) 152 153dnl Function to detect how to enable libfuse 154AC_DEFUN([AX_LIBFUSE_CHECK_ENABLE], 155 [AX_COMMON_ARG_WITH( 156 [libfuse], 157 [libfuse], 158 [search for libfuse in includedir and libdir or in the specified DIR, or no if not to use libfuse], 159 [auto-detect], 160 [DIR]) 161 162 dnl Check for a shared library version 163 AX_LIBFUSE_CHECK_LIB 164 165 AS_IF( 166 [test "x$ac_cv_libfuse_CPPFLAGS" != "x"], 167 [AC_SUBST( 168 [LIBFUSE_CPPFLAGS], 169 [$ac_cv_libfuse_CPPFLAGS]) 170 ]) 171 AS_IF( 172 [test "x$ac_cv_libfuse_LIBADD" != "x"], 173 [AC_SUBST( 174 [LIBFUSE_LIBADD], 175 [$ac_cv_libfuse_LIBADD]) 176 ]) 177 178 AS_IF( 179 [test "x$ac_cv_libfuse" = xlibfuse], 180 [AC_SUBST( 181 [ax_libfuse_pc_libs_private], 182 [-lfuse]) 183 ]) 184 AS_IF( 185 [test "x$ac_cv_libfuse" = xlibosxfuse], 186 [AC_SUBST( 187 [ax_libfuse_pc_libs_private], 188 [-losxfuse]) 189 ]) 190 191 AS_IF( 192 [test "x$ac_cv_libfuse" = xlibfuse], 193 [AC_SUBST( 194 [ax_libfuse_spec_requires], 195 [fuse-libs]) 196 AC_SUBST( 197 [ax_libfuse_spec_build_requires], 198 [fuse-devel]) 199 ]) 200 ]) 201 202