1 dnl Process this file with autoconf to produce a configure script.
3 AC_INIT([linux nfs-utils],[1.2.5],[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],
28 [define the statd state dir as /foo instead of the NFS statedir @<:@default=/var/lib/nfs@:>@])],
33 AC_ARG_WITH(statduser,
34 [AC_HELP_STRING([--with-statduser=rpcuser],
35 [statd to run under @<:@rpcuser or nobody@:>@]
38 if test "x$cross_compiling" = "xno"; then
39 if grep -s '^rpcuser:' /etc/passwd > /dev/null; then
48 AC_ARG_WITH(start-statd,
49 [AC_HELP_STRING([--with-start-statd=scriptname],
50 [When an nfs filesystems is mounted with locking, run this script]
53 startstatd=/usr/sbin/start-statd
56 AC_DEFINE_UNQUOTED(START_STATD, "$startstatd", [Define this to a script which can start statd on mount])
58 [AC_HELP_STRING([--enable-nfsv4],
59 [enable support for NFSv4 @<:@default=yes@:>@])],
60 enable_nfsv4=$enableval,
62 if test "$enable_nfsv4" = yes; then
69 AC_SUBST(enable_nfsv4)
70 AM_CONDITIONAL(CONFIG_NFSV4, [test "$enable_nfsv4" = "yes"])
73 [AC_HELP_STRING([--enable-nfsv41],
74 [enable support for NFSv41 @<:@default=yes@:>@])],
75 enable_nfsv41=$enableval,
77 if test "$enable_nfsv41" = yes; then
78 if test "$enable_nfsv4" != yes; then
79 AC_MSG_ERROR([NFS v4.1 is enabled but NFS v4 is not. Use --disable-nfsv41])
86 AC_SUBST(enable_nfsv41)
87 AM_CONDITIONAL(CONFIG_NFSV41, [test "$enable_nfsv41" = "yes"])
90 [AC_HELP_STRING([--enable-gss],
91 [enable support for rpcsec_gss @<:@default=yes@:>@])],
92 enable_gss=$enableval,
94 if test "$enable_gss" = yes; then
105 AM_CONDITIONAL(CONFIG_GSS, [test "$enable_gss" = "yes"])
106 AC_ARG_ENABLE(kprefix,
107 [AC_HELP_STRING([--enable-kprefix], [install progs as rpc.knfsd etc])],
108 test "$enableval" = "yes" && kprefix=k,
112 [AC_HELP_STRING([--with-rpcgen=internal], [use internal rpcgen instead of system one])],
113 rpcgen_path=$withval,
116 if test "$rpcgen_path" = "yes"; then
117 for p in /usr/local/bin/rpcgen /usr/bin/rpcgen /bin/rpcgen
118 do if test -f $p ; then RPCGEN_PATH=$p ; break; fi ; done
119 elif test "$rpcgen_path" != "internal"; then
120 RPCGEN_PATH=$rpcgen_path
122 AC_SUBST(RPCGEN_PATH)
123 AM_CONDITIONAL(CONFIG_RPCGEN, [test "$RPCGEN_PATH" = ""])
125 [AC_HELP_STRING([--disable-uuid], [Exclude uuid support to avoid buggy libblkid])],
126 if test "$enableval" = "yes" ; then choose_blkid=yes; else choose_blkid=no; fi,
127 choose_blkid=default)
129 [AC_HELP_STRING([--enable-mount],
130 [Create mount.nfs and do not use the util-linux mount(8) functionality. @<:@default=yes@:>@])],
131 enable_mount=$enableval,
133 AM_CONDITIONAL(CONFIG_MOUNT, [test "$enable_mount" = "yes"])
135 if test "$enable_mount" = yes; then
136 AC_ARG_ENABLE(libmount-mount,
137 [AC_HELP_STRING([--enable-libmount-mount],
138 [Link mount.nfs with libmount (EXPERIMENTAL)])],
139 enable_libmount=$enableval,
144 [AC_HELP_STRING([--enable-tirpc],
145 [enable use of TI-RPC @<:@default=yes@:>@])],
146 enable_tirpc=$enableval,
149 [AC_HELP_STRING([--enable-ipv6],
150 [enable support for IPv6 @<:@default=no@:>@])],
151 enable_ipv6=$enableval,
153 if test "$enable_ipv6" = yes; then
154 AC_DEFINE(IPV6_SUPPORTED, 1, [Define this if you want IPv6 support compiled in])
158 AC_SUBST(enable_ipv6)
159 AM_CONDITIONAL(CONFIG_IPV6, [test "$enable_ipv6" = "yes"])
161 if test "$enable_mount" = yes; then
162 AC_ARG_ENABLE(mountconfig,
163 [AC_HELP_STRING([--enable-mountconfig],
164 [enable mount to use a configuration file])],
165 mountconfig=$enableval,
167 if test "$enable_mountconfig" = yes; then
168 AC_DEFINE(MOUNT_CONFIG, 1,
169 [Define this if you want mount to read a configuration file])
170 AC_ARG_WITH(mountfile,
171 [AC_HELP_STRING([--with-mountfile=filename],
172 [Using filename as the NFS mount options file [/etc/nfsmounts.conf]]
175 mountfile=/etc/nfsmount.conf)
177 AC_DEFINE_UNQUOTED(MOUNTOPTS_CONFFILE, "$mountfile",
178 [This defines the location of the NFS mount configuration file])
182 AC_SUBST(enable_mountconfig)
183 AM_CONDITIONAL(MOUNT_CONFIG, [test "$enable_mountconfig" = "yes"])
185 AM_CONDITIONAL(MOUNT_CONFIG, [test "$enable_mount" = "yes"])
188 dnl Check for TI-RPC library and headers
194 # Check whether user wants TCP wrappers support
197 # Arrange for large-file support
200 AC_CONFIG_SRCDIR([support/include/config.h.in])
201 AC_CONFIG_HEADERS([support/include/config.h])
203 # Checks for programs.
213 if test "x$cross_compiling" = "xno"; then
214 CC_FOR_BUILD=${CC_FOR_BUILD-${CC-gcc}}
216 CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
219 AC_SUBST(CC_FOR_BUILD)
221 AC_CHECK_TOOL(AR, ar)
222 AC_CHECK_TOOL(LD, ld)
228 dnl *************************************************************
229 dnl * Check for required libraries
230 dnl *************************************************************
232 AC_CHECK_FUNC([gethostbyname], ,
233 [AC_CHECK_LIB([nsl], [gethostbyname], [LIBNSL="-lnsl"])])
236 AC_CHECK_FUNC([connect], ,
237 [AC_CHECK_LIB([socket], [connect], [LIBSOCKET="-lsocket"],
238 [AC_MSG_ERROR([Function 'socket' not found.])], [$LIBNSL])])
240 AC_CHECK_FUNC([getaddrinfo], ,
241 [AC_MSG_ERROR([Function 'getaddrinfo' not found.])])
243 AC_CHECK_FUNC([getrpcbynumber], ,
244 [AC_MSG_ERROR([Function 'getrpcbynumber' not found.])])
246 AC_CHECK_FUNC([getservbyname], ,
247 [AC_MSG_ERROR([Function 'getservbyname' not found.])])
249 AC_CHECK_LIB([crypt], [crypt], [LIBCRYPT="-lcrypt"])
251 AC_CHECK_LIB([dl], [dlclose], [LIBDL="-ldl"])
253 if test "$enable_nfsv4" = yes; then
254 dnl check for libevent libraries and headers
257 dnl check for nfsidmap libraries and headers
260 dnl check for the keyutils libraries and headers
263 dnl librpcsecgss already has a dependency on libgssapi,
264 dnl but we need to make sure we get the right version
265 if test "$enable_gss" = yes; then
270 if test "$enable_nfsv41" = yes; then
271 AC_CHECK_LIB([devmapper], [dm_task_create], [LIBDEVMAPPER="-ldevmapper"], AC_MSG_ERROR([libdevmapper needed]))
272 AC_CHECK_HEADER(libdevmapper.h, , AC_MSG_ERROR([Cannot find devmapper header file libdevmapper.h]))
275 dnl enable nfsidmap when its support by libnfsidmap
276 AM_CONDITIONAL(CONFIG_NFSIDMAP, [test "$ac_cv_header_keyutils_h$ac_cv_lib_nfsidmap_nfs4_owner_to_uid" = "yesyes"])
279 if test "$knfsd_cv_glibc2" = no; then
280 AC_CHECK_LIB(bsd, daemon, [LIBBSD="-lbsd"])
283 if test "$choose_blkid" != no; then
284 AC_CHECK_LIB(blkid, blkid_get_library_version, [LIBBLKID="-lblkid"], AC_MSG_ERROR([libblkid needed]))
285 AC_CHECK_HEADER(blkid/blkid.h, , AC_MSG_ERROR([Cannot find libblkid header file blkid/blkid.h]))
287 if test $choose_blkid = yes; then
289 test $libblkid_cv_is_recent = no && AC_MSG_WARN([libblkid is old and may cause mountd to leak memory])
291 if test $libblkid_cv_is_recent = yes
294 AC_MSG_WARN([uuid support disabled as libblkid is too old])
297 AC_DEFINE_UNQUOTED(USE_BLKID, $use_blkid, [Define if you want to use blkid to find uuid of filesystems])
305 if test "$enable_libmount" != no; then
306 AC_CHECK_LIB(mount, mnt_context_do_mount, [LIBMOUNT="-lmount"], AC_MSG_ERROR([libmount needed]))
307 AC_CHECK_HEADER(libmount/libmount.h, , AC_MSG_ERROR([Cannot find libmount header file libmount/libmount.h]))
309 AM_CONDITIONAL(CONFIG_LIBMOUNT, [test "$enable_libmount" = "yes"])
312 if test "$enable_gss" = yes; then
313 dnl 'gss' requires getnameinfo - at least for gssd_proc.c
314 AC_CHECK_FUNC([getnameinfo], , [AC_MSG_ERROR([GSSAPI support requires 'getnameinfo' function])])
316 dnl 'gss' also depends on nfsidmap.h - at least for svcgssd_proc.c
319 AC_CHECK_HEADERS([spkm3.h], ,
320 [AC_MSG_WARN([Could not locate SPKM3 header; will not have SPKM3 support])])
322 dnl Check for Kerberos V5
325 dnl Invoked after AC_KERBEROS_V5; AC_LIBRPCSECGSS needs to have KRBLIBS set
330 dnl Check for IPv6 support
333 dnl *************************************************************
334 dnl Check for headers
335 dnl *************************************************************
336 AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h \
337 malloc.h memory.h netdb.h netinet/in.h paths.h \
338 stdlib.h string.h sys/file.h sys/ioctl.h sys/mount.h \
339 sys/param.h sys/socket.h sys/time.h sys/vfs.h \
340 syslog.h unistd.h com_err.h et/com_err.h \
341 ifaddrs.h nfs-plugin.h])
343 dnl *************************************************************
344 dnl Checks for typedefs, structures, and compiler characteristics
345 dnl *************************************************************
355 dnl *************************************************************
356 dnl Check for functions
357 dnl *************************************************************
359 AC_FUNC_CLOSEDIR_VOID
360 AC_FUNC_ERROR_AT_LINE
364 AC_PROG_GCC_TRADITIONAL
366 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
371 AC_FUNC_SELECT_ARGTYPES
375 AC_CHECK_FUNCS([alarm atexit dup2 fdatasync ftruncate getcwd \
376 gethostbyaddr gethostbyname gethostname getmntent \
377 getnameinfo getrpcbyname getifaddrs \
378 gettimeofday hasmntopt inet_ntoa innetgr memset mkdir pathconf \
379 realpath rmdir select socket strcasecmp strchr strdup \
380 strerror strrchr strtol strtoul sigprocmask])
383 dnl *************************************************************
384 dnl Check for data sizes
385 dnl *************************************************************
386 AC_CHECK_SIZEOF(short)
388 AC_CHECK_SIZEOF(long)
389 AC_CHECK_SIZEOF(size_t)
390 AC_CHECK_SIZEOF(socklen_t)
393 dnl *************************************************************
394 dnl Export some path names to config.h
395 dnl *************************************************************
396 AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir", [This defines the location of the NFS state files. Warning: this must match definitions in config.mk!])
397 AC_DEFINE_UNQUOTED(NSM_DEFAULT_STATEDIR, "$statdpath", [Define this to the pathname where statd keeps its state file])
399 if test "x$cross_compiling" = "xno"; then
400 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-"$CFLAGS"}
401 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-"$CXXFLAGS"}
402 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"}
403 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-"$LDFLAGS"}
405 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-""}
406 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-""}
407 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
408 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
416 AC_SUBST(CFLAGS_FOR_BUILD)
417 AC_SUBST(CXXFLAGS_FOR_BUILD)
418 AC_SUBST(CPPFLAGS_FOR_BUILD)
419 AC_SUBST(LDFLAGS_FOR_BUILD)
421 dnl *************************************************************
422 dnl Set up "global" CFLAGS
423 dnl *************************************************************
424 dnl Use architecture-specific compile flags
425 dnl (We use $host and not $build in case we are cross-compiling)
426 dnl *************************************************************
427 dnl Note: we no longer have arch specific compile flags, but
428 dnl the stub is left here in case they are needed one day.
434 my_am_cflags="-Wall -Wextra -Wstrict-prototypes $ARCHFLAGS -pipe"
436 AC_SUBST([AM_CFLAGS], ["$my_am_cflags"])
438 # Make sure that $ACLOCAL_FLAGS are used during a rebuild
439 AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
445 support/export/Makefile
446 support/include/nfs/Makefile
447 support/include/rpcsvc/Makefile
448 support/include/sys/fs/Makefile
449 support/include/sys/Makefile
450 support/include/Makefile
451 support/misc/Makefile
455 tools/locktest/Makefile
456 tools/nlmtest/Makefile
457 tools/rpcdebug/Makefile
458 tools/rpcgen/Makefile
459 tools/mountstats/Makefile
460 tools/nfs-iostat/Makefile
462 utils/blkmapd/Makefile
463 utils/exportfs/Makefile
465 utils/idmapd/Makefile
467 utils/mountd/Makefile
469 utils/nfsstat/Makefile
470 utils/nfsidmap/Makefile
471 utils/showmount/Makefile
474 tests/nsm_client/Makefile])