aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
blob: 0e621d43dbfc94134de91ccfd6fa331302c8ea7e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
AC_INIT(fuse, 3.0.0-pre0)
AC_PREREQ(2.59d)
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)])
AC_CONFIG_HEADERS(include/config.h)

AC_PROG_LIBTOOL
AC_PROG_CC_STDC
AC_SYS_LARGEFILE
AC_PROG_MKDIR_P
AM_PROG_CC_C_O

case $target_os in
     *linux*)	arch=linux;;
     *netbsd*)  arch=netbsd;;
     *bsd*)	arch=bsd;;
     *)		arch=unknown;;
esac

if test "$ac_env_CFLAGS_set" != set; then
	CFLAGS="-Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing"
fi

AC_ARG_ENABLE(lib,
	[  --enable-lib            Compile with library ])
AC_ARG_ENABLE(util,
	[  --enable-util           Compile with util ])
AC_ARG_ENABLE(example,
	[  --enable-example        Compile with examples ])
AC_ARG_ENABLE(mtab,
	[  --disable-mtab          Disable and ignore usage of /etc/mtab ])

AC_ARG_WITH(pkgconfigdir,
            [  --with-pkgconfigdir=DIR      pkgconfig file in DIR @<:@LIBDIR/pkgconfig@:>@],
            [pkgconfigdir=$withval],
            [pkgconfigdir='${libdir}/pkgconfig'])
AC_SUBST(pkgconfigdir)

subdirs2="include"

if test "$enable_lib" != "no"; then
	subdirs2="$subdirs2 lib";
fi
if test "$arch" = linux -a "$enable_util" != "no"; then
	subdirs2="$subdirs2 util";
fi
if test "$enable_example" != "no"; then
	subdirs2="$subdirs2 example";
fi
if test "$enable_mtab" = "no"; then
	AC_DEFINE(IGNORE_MTAB, 1, [Don't update /etc/mtab])
fi

AC_CHECK_FUNCS([fork setxattr fdatasync splice vmsplice utimensat pipe2])
AC_CHECK_FUNCS([posix_fallocate])
AC_CHECK_MEMBERS([struct stat.st_atim])
AC_CHECK_MEMBERS([struct stat.st_atimespec])

LIBS=
AC_SEARCH_LIBS(dlopen, [dl])
AC_SEARCH_LIBS(clock_gettime, [rt])
libfuse_libs=$LIBS
LIBS=
AC_CHECK_LIB(ulockmgr, ulockmgr_op)
fusexmp_fh_libs=$LIBS
AC_SUBST(fusexmp_fh_libs)
LIBS=

AC_ARG_WITH([libiconv-prefix],
[  --with-libiconv-prefix=DIR  search for libiconv in DIR/include and DIR/lib], [
    for dir in `echo "$withval" | tr : ' '`; do
      if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
      if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
    done
   ])
AM_ICONV
libfuse_libs="$libfuse_libs $LTLIBICONV"
AM_CONDITIONAL(ICONV, test "$am_cv_func_iconv" = yes)
AC_SUBST(libfuse_libs)

if test -z "$MOUNT_FUSE_PATH"; then
	MOUNT_FUSE_PATH=/sbin
fi
AC_SUBST(MOUNT_FUSE_PATH)
if test -z "$UDEV_RULES_PATH"; then
	UDEV_RULES_PATH=/etc/udev/rules.d
fi
AC_SUBST(UDEV_RULES_PATH)
if test -z "$INIT_D_PATH"; then
	INIT_D_PATH=/etc/init.d
fi
AC_SUBST(INIT_D_PATH)

AC_SUBST(subdirs2)

AM_CONDITIONAL(LINUX, test "$arch" = linux)
AM_CONDITIONAL(NETBSD, test "$arch" = netbsd)
AM_CONDITIONAL(BSD, test "$arch" = bsd)

util_linux_ok=yes
if test "$arch" = linux -a "$cross_compiling" != "yes"; then
	AC_MSG_CHECKING([if umount supports --fake --no-canonicalize])
	# exit code of umount is 1 if option is unrecognised, 2 otherwise
	umount --fake --no-canonicalize > /dev/null 2>&1
	if test $? != 1; then
		AC_MSG_RESULT([yes])
	else
		firstline=`umount --fake --no-canonicalize 2>&1 | head -1`
		if test "$firstline" = 'umount: only root can use "--fake" option'; then
			AC_MSG_RESULT([yes])
		else
			AC_MSG_RESULT([$firstline])
			util_linux_ok=no
		fi
	fi
fi

AC_CONFIG_FILES([fuse3.pc Makefile lib/Makefile util/Makefile example/Makefile include/Makefile doc/Makefile])
AC_OUTPUT

if test "$util_linux_ok" = no; then
	AC_MSG_WARN([
******************************************************************
* Please install util-linux version 2.18 or later which supports *
* --fake and --no-canonicalize options in mount and umount       *
******************************************************************])
fi