1 dnl Process this file with autoconf to produce a configure script.
3 AC_INIT([linux nfs-utils],[1.2.4],[linux-nfs@vger.kernel.org],[nfs-utils])
6 AC_CONFIG_MACRO_DIR(aclocal)
9 AC_PREFIX_DEFAULT(/usr)
12 dnl *************************************************************
13 dnl * Define the set of applicable options
14 dnl *************************************************************
16 [AC_HELP_STRING([--with-release=XXX], [set release to XXX [1]])],
21 [AC_HELP_STRING([--with-statedir=/foo],
22 [use state dir /foo @<:@default=/var/lib/nfs@:>@])],
24 statedir=/var/lib/nfs)
26 AC_ARG_WITH(statdpath,
27 [AC_HELP_STRING([--with-statdpath=/foo @<:@default=/var/lib/nfs@:>@],
28 [define statd's state dir as /foo instead of the NFS statedir]
34 AC_ARG_WITH(statduser,
35 [AC_HELP_STRING([--with-statduser=rpcuser],
36 [statd to run under @<:@rpcuser or nobody@:>@]
39 if test "x$cross_compiling" = "xno"; then
40 if grep -s '^rpcuser:' /etc/passwd > /dev/null; then
49 AC_ARG_WITH(start-statd,
50 [AC_HELP_STRING([--with-start-statd=scriptname],
51 [When an nfs filesystems is mounted with locking, run this script]
54 startstatd=/usr/sbin/start-statd
57 AC_DEFINE_UNQUOTED(START_STATD, "$startstatd", [Define this to a script which can start statd on mount])
59 [AC_HELP_STRING([--enable-nfsv3],
60 [enable support for NFSv3 @<:@default=yes@:>@])],
61 enable_nfsv3=$enableval,
63 if test "$enable_nfsv3" = yes; then
64 AC_DEFINE(NFS3_SUPPORTED, 1, [Define this if you want NFSv3 support compiled in])
68 AC_SUBST(enable_nfsv3)
70 [AC_HELP_STRING([--enable-nfsv4],
71 [enable support for NFSv4 @<:@default=yes@:>@])],
72 enable_nfsv4=$enableval,
74 if test "$enable_nfsv4" = yes; then
75 AC_DEFINE(NFS4_SUPPORTED, 1, [Define this if you want NFSv4 support compiled in])
82 AC_SUBST(enable_nfsv4)
83 AM_CONDITIONAL(CONFIG_NFSV4, [test "$enable_nfsv4" = "yes"])
86 [AC_HELP_STRING([--enable-nfsv41],
87 [enable support for NFSv41 @<:@default=yes@:>@])],
88 enable_nfsv41=$enableval,
90 if test "$enable_nfsv41" = yes; then
92 AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv41 support compiled in])
97 AC_SUBST(enable_nfsv41)
98 AM_CONDITIONAL(CONFIG_NFSV41, [test "$enable_nfsv41" = "yes"])
101 [AC_HELP_STRING([--enable-gss],
102 [enable support for rpcsec_gss @<:@default=yes@:>@])],
103 enable_gss=$enableval,
105 if test "$enable_gss" = yes; then
106 AC_DEFINE(GSS_SUPPORTED, 1, [Define this if you want rpcsec_gss support compiled in])
117 AM_CONDITIONAL(CONFIG_GSS, [test "$enable_gss" = "yes"])
118 AC_ARG_ENABLE(kprefix,
119 [AC_HELP_STRING([--enable-kprefix], [install progs as rpc.knfsd etc])],
120 test "$enableval" = "yes" && kprefix=k,
124 [AC_HELP_STRING([--with-rpcgen=internal], [use internal rpcgen instead of system one])],
125 rpcgen_path=$withval,
128 if test "$rpcgen_path" = "yes"; then
129 for p in /usr/local/bin/rpcgen /usr/bin/rpcgen /bin/rpcgen
130 do if test -f $p ; then RPCGEN_PATH=$p ; break; fi ; done
131 elif test "$rpcgen_path" != "internal"; then
132 RPCGEN_PATH=$rpcgen_path
134 AC_SUBST(RPCGEN_PATH)
135 AM_CONDITIONAL(CONFIG_RPCGEN, [test "$RPCGEN_PATH" = ""])
137 [AC_HELP_STRING([--disable-uuid], [Exclude uuid support to avoid buggy libblkid])],
138 if test "$enableval" = "yes" ; then choose_blkid=yes; else choose_blkid=no; fi,
139 choose_blkid=default)
141 [AC_HELP_STRING([--enable-mount],
142 [Create mount.nfs and do not use the util-linux mount(8) functionality. @<:@default=yes@:>@])],
143 enable_mount=$enableval,
145 AM_CONDITIONAL(CONFIG_MOUNT, [test "$enable_mount" = "yes"])
147 if test "$enable_mount" = yes; then
148 AC_ARG_ENABLE(libmount-mount,
149 [AC_HELP_STRING([--enable-libmount-mount],
150 [Link mount.nfs with libmount (EXPERIMENTAL)])],
151 enable_libmount=$enableval,
156 [AC_HELP_STRING([--enable-tirpc],
157 [enable use of TI-RPC @<:@default=yes@:>@])],
158 enable_tirpc=$enableval,
161 [AC_HELP_STRING([--enable-ipv6],
162 [enable support for IPv6 @<:@default=no@:>@])],
163 enable_ipv6=$enableval,
165 if test "$enable_ipv6" = yes; then
166 AC_DEFINE(IPV6_SUPPORTED, 1, [Define this if you want IPv6 support compiled in])
170 AC_SUBST(enable_ipv6)
171 AM_CONDITIONAL(CONFIG_IPV6, [test "$enable_ipv6" = "yes"])
173 if test "$enable_mount" = yes; then
174 AC_ARG_ENABLE(mountconfig,
175 [AC_HELP_STRING([--enable-mountconfig],
176 [enable mount to use a configuration file])],
177 mountconfig=$enableval,
179 if test "$enable_mountconfig" = yes; then
180 AC_DEFINE(MOUNT_CONFIG, 1,
181 [Define this if you want mount to read a configuration file])
182 AC_ARG_WITH(mountfile,
183 [AC_HELP_STRING([--with-mountfile=filename],
184 [Using filename as the NFS mount options file [/etc/nfsmounts.conf]]
187 mountfile=/etc/nfsmount.conf)
189 AC_DEFINE_UNQUOTED(MOUNTOPTS_CONFFILE, "$mountfile",
190 [This defines the location of the NFS mount configuration file])
194 AC_SUBST(enable_mountconfig)
195 AM_CONDITIONAL(MOUNT_CONFIG, [test "$enable_mountconfig" = "yes"])
197 AM_CONDITIONAL(MOUNT_CONFIG, [test "$enable_mount" = "yes"])
200 dnl Check for TI-RPC library and headers
206 # Check whether user wants TCP wrappers support
209 # Arrange for large-file support
212 AC_CONFIG_SRCDIR([support/include/config.h.in])
213 AC_CONFIG_HEADERS([support/include/config.h])
215 # Checks for programs.
225 if test "x$cross_compiling" = "xno"; then
226 CC_FOR_BUILD=${CC_FOR_BUILD-${CC-gcc}}
228 CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
231 AC_SUBST(CC_FOR_BUILD)
233 AC_CHECK_TOOL(AR, ar)
234 AC_CHECK_TOOL(LD, ld)
240 dnl *************************************************************
241 dnl * Check for required libraries
242 dnl *************************************************************
244 AC_CHECK_FUNC([gethostbyname], ,
245 [AC_CHECK_LIB([nsl], [gethostbyname], [LIBNSL="-lnsl"])])
248 AC_CHECK_FUNC([connect], ,
249 [AC_CHECK_LIB([socket], [connect], [LIBSOCKET="-lsocket"],
250 [AC_MSG_ERROR([Function 'socket' not found.])], [$LIBNSL])])
252 AC_CHECK_FUNC([getaddrinfo], ,
253 [AC_MSG_ERROR([Function 'getaddrinfo' not found.])])
255 AC_CHECK_FUNC([getrpcbynumber], ,
256 [AC_MSG_ERROR([Function 'getrpcbynumber' not found.])])
258 AC_CHECK_FUNC([getservbyname], ,
259 [AC_MSG_ERROR([Function 'getservbyname' not found.])])
261 AC_CHECK_LIB([crypt], [crypt], [LIBCRYPT="-lcrypt"])
263 if test "$enable_nfsv4" = yes; then
264 dnl check for libevent libraries and headers
267 dnl check for nfsidmap libraries and headers
270 dnl check for the keyutils libraries and headers
273 dnl librpcsecgss already has a dependency on libgssapi,
274 dnl but we need to make sure we get the right version
275 if test "$enable_gss" = yes; then
279 dnl enable nfsidmap when its support by libnfsidmap
280 AM_CONDITIONAL(CONFIG_NFSIDMAP, [test "$ac_cv_header_keyutils_h$ac_cv_lib_nfsidmap_nfs4_owner_to_uid" = "yesyes"])
283 if test "$knfsd_cv_glibc2" = no; then
284 AC_CHECK_LIB(bsd, daemon, [LIBBSD="-lbsd"])
287 if test "$choose_blkid" != no; then
288 AC_CHECK_LIB(blkid, blkid_get_library_version, [LIBBLKID="-lblkid"], AC_MSG_ERROR([libblkid needed]))
289 AC_CHECK_HEADER(blkid/blkid.h, , AC_MSG_ERROR([Cannot find libblkid header file blkid/blkid.h]))
291 if test $choose_blkid = yes; then
293 test $libblkid_cv_is_recent = no && AC_MSG_WARN([libblkid is old and may cause mountd to leak memory])
295 if test $libblkid_cv_is_recent = yes
298 AC_MSG_WARN([uuid support disabled as libblkid is too old])
301 AC_DEFINE_UNQUOTED(USE_BLKID, $use_blkid, [Define if you want to use blkid to find uuid of filesystems])
308 if test "$enable_libmount" != no; then
309 AC_CHECK_LIB(mount, mnt_context_do_mount, [LIBMOUNT="-lmount"], AC_MSG_ERROR([libmount needed]))
310 AC_CHECK_HEADER(libmount/libmount.h, , AC_MSG_ERROR([Cannot find libmount header file libmount/libmount.h]))
312 AM_CONDITIONAL(CONFIG_LIBMOUNT, [test "$enable_libmount" = "yes"])
315 if test "$enable_gss" = yes; then
316 dnl 'gss' requires getnameinfo - at least for gssd_proc.c
317 AC_CHECK_FUNC([getnameinfo], , [AC_MSG_ERROR([GSSAPI support requires 'getnameinfo' function])])
319 dnl 'gss' also depends on nfsidmap.h - at least for svcgssd_proc.c
322 AC_CHECK_HEADERS([spkm3.h], ,
323 [AC_MSG_WARN([Could not locate SPKM3 header; will not have SPKM3 support])])
325 dnl Check for Kerberos V5
328 dnl Invoked after AC_KERBEROS_V5; AC_LIBRPCSECGSS needs to have KRBLIBS set
333 dnl Check for IPv6 support
336 dnl *************************************************************
337 dnl Check for headers
338 dnl *************************************************************
339 AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h \
340 malloc.h memory.h netdb.h netinet/in.h paths.h \
341 stdlib.h string.h sys/file.h sys/ioctl.h sys/mount.h \
342 sys/param.h sys/socket.h sys/time.h sys/vfs.h \
343 syslog.h unistd.h com_err.h et/com_err.h \
346 dnl *************************************************************
347 dnl Checks for typedefs, structures, and compiler characteristics
348 dnl *************************************************************
358 dnl *************************************************************
359 dnl Check for functions
360 dnl *************************************************************
362 AC_FUNC_CLOSEDIR_VOID
363 AC_FUNC_ERROR_AT_LINE
367 AC_PROG_GCC_TRADITIONAL
369 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
374 AC_FUNC_SELECT_ARGTYPES
378 AC_CHECK_FUNCS([alarm atexit dup2 fdatasync ftruncate getcwd \
379 gethostbyaddr gethostbyname gethostname getmntent \
380 getnameinfo getrpcbyname getifaddrs \
381 gettimeofday hasmntopt inet_ntoa innetgr memset mkdir pathconf \
382 realpath rmdir select socket strcasecmp strchr strdup \
383 strerror strrchr strtol strtoul sigprocmask])
386 dnl *************************************************************
387 dnl Check for data sizes
388 dnl *************************************************************
389 AC_CHECK_SIZEOF(short)
391 AC_CHECK_SIZEOF(long)
392 AC_CHECK_SIZEOF(size_t)
393 AC_CHECK_SIZEOF(socklen_t)
396 dnl *************************************************************
397 dnl Export some path names to config.h
398 dnl *************************************************************
399 AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir", [This defines the location of the NFS state files. Warning: this must match definitions in config.mk!])
400 AC_DEFINE_UNQUOTED(NSM_DEFAULT_STATEDIR, "$statdpath", [Define this to the pathname where statd keeps its state file])
402 if test "x$cross_compiling" = "xno"; then
403 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-"$CFLAGS"}
404 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-"$CXXFLAGS"}
405 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"}
406 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-"$LDFLAGS"}
408 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-""}
409 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-""}
410 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
411 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
419 AC_SUBST(CFLAGS_FOR_BUILD)
420 AC_SUBST(CXXFLAGS_FOR_BUILD)
421 AC_SUBST(CPPFLAGS_FOR_BUILD)
422 AC_SUBST(LDFLAGS_FOR_BUILD)
424 dnl *************************************************************
425 dnl Set up "global" CFLAGS
426 dnl *************************************************************
427 dnl Use architecture-specific compile flags
428 dnl (We use $host and not $build in case we are cross-compiling)
429 dnl *************************************************************
430 dnl Note: we no longer have arch specific compile flags, but
431 dnl the stub is left here in case they are needed one day.
437 my_am_cflags="-Wall -Wextra -Wstrict-prototypes $ARCHFLAGS -pipe"
439 AC_SUBST([AM_CFLAGS], ["$my_am_cflags"])
441 # Make sure that $ACLOCAL_FLAGS are used during a rebuild
442 AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
448 support/export/Makefile
449 support/include/nfs/Makefile
450 support/include/rpcsvc/Makefile
451 support/include/sys/fs/Makefile
452 support/include/sys/Makefile
453 support/include/Makefile
454 support/misc/Makefile
458 tools/locktest/Makefile
459 tools/nlmtest/Makefile
460 tools/rpcdebug/Makefile
461 tools/rpcgen/Makefile
462 tools/mountstats/Makefile
463 tools/nfs-iostat/Makefile
465 utils/blkmapd/Makefile
466 utils/exportfs/Makefile
468 utils/idmapd/Makefile
470 utils/mountd/Makefile
472 utils/nfsstat/Makefile
473 utils/nfsidmap/Makefile
474 utils/showmount/Makefile
477 tests/nsm_client/Makefile])