Signed-off-by: Max Reitz <mreitz@redhat.com>
---
configure | 34 ++++++++++++++++++++++++++++++++++
meson.build | 6 ++++++
2 files changed, 40 insertions(+)
diff --git a/configure b/configure
index ce27eafb0a..21c31e4694 100755
--- a/configure
+++ b/configure
@@ -538,6 +538,7 @@ meson=""
ninja=""
skip_meson=no
gettext=""
+fuse=""
bogus_os="no"
malloc_trim=""
@@ -1621,6 +1622,10 @@ for opt do
;;
--disable-libdaxctl) libdaxctl=no
;;
+ --enable-fuse) fuse=yes
+ ;;
+ --disable-fuse) fuse=no
+ ;;
*)
echo "ERROR: unknown option $opt"
echo "Try '$0 --help' for more information"
@@ -1945,6 +1950,7 @@ disabled with --disable-FEATURE, default is enabled if available:
xkbcommon xkbcommon support
rng-none dummy RNG, avoid using /dev/(u)random and getrandom()
libdaxctl libdaxctl support
+ fuse fuse block device export
NOTE: The object files are built at the place where configure is launched
EOF
@@ -6206,6 +6212,28 @@ but not implemented on your system"
fi
fi
+##########################################
+# FUSE support
+
+if test "$fuse" != "no"; then
+ cat > $TMPC <<EOF
+#define FUSE_USE_VERSION 31
+#include <fuse.h>
+#include <fuse_lowlevel.h>
+int main(void) { return 0; }
+EOF
+ fuse_cflags=$(pkg-config --cflags fuse3)
+ fuse_libs=$(pkg-config --libs fuse3)
+ if compile_prog "$fuse_cflags" "$fuse_libs"; then
+ fuse=yes
+ else
+ if test "$fuse" = "yes"; then
+ feature_not_found "fuse"
+ fi
+ fuse=no
+ fi
+fi
+
##########################################
# End of CC checks
# After here, no more $cc or $ld runs
@@ -7393,6 +7421,12 @@ if test "$secret_keyring" = "yes" ; then
echo "CONFIG_SECRET_KEYRING=y" >> $config_host_mak
fi
+if test "$fuse" = "yes"; then
+ echo "CONFIG_FUSE=y" >> $config_host_mak
+ echo "FUSE_CFLAGS=$fuse_cflags" >> $config_host_mak
+ echo "FUSE_LIBS=$fuse_libs" >> $config_host_mak
+fi
+
if test "$tcg_interpreter" = "yes"; then
QEMU_INCLUDES="-iquote ${source_path}/tcg/tci $QEMU_INCLUDES"
elif test "$ARCH" = "sparc64" ; then
diff --git a/meson.build b/meson.build
index 86e1cca0ad..85addd8562 100644
--- a/meson.build
+++ b/meson.build
@@ -436,6 +436,11 @@ if 'CONFIG_TASN1' in config_host
endif
keyutils = dependency('libkeyutils', required: false,
method: 'pkg-config', static: enable_static)
+libfuse = not_found
+if 'CONFIG_FUSE' in config_host
+ libfuse = declare_dependency(compile_args: config_host['FUSE_CFLAGS'].split(),
+ link_args: config_host['FUSE_LIBS'].split())
+endif
has_gettid = cc.has_function('gettid')
@@ -1531,6 +1536,7 @@ endif
summary_info += {'thread sanitizer': config_host.has_key('CONFIG_TSAN')}
summary_info += {'rng-none': config_host.has_key('CONFIG_RNG_NONE')}
summary_info += {'Linux keyring': config_host.has_key('CONFIG_SECRET_KEYRING')}
+summary_info += {'fuse exports': config_host.has_key('CONFIG_FUSE')}
summary(summary_info, bool_yn: true)
if not supported_cpus.contains(cpu)
--
2.26.2