1 dnl Process this file with autoconf to produce a configure script.
3 AC_INIT([linux nfs-utils],[1.2.6],[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 AC_ARG_ENABLE(nfsdcltrack,
189 [AC_HELP_STRING([--enable-nfsdcltrack],
190 [enable NFSv4 clientid tracking programs @<:@default=yes@:>@])],
191 enable_nfsdctrack=$enableval,
192 enable_nfsdcltrack="yes")
194 dnl Check for TI-RPC library and headers
200 # Check whether user wants TCP wrappers support
203 # Arrange for large-file support
206 AC_CONFIG_SRCDIR([support/include/config.h.in])
207 AC_CONFIG_HEADERS([support/include/config.h])
209 # Checks for programs.
219 if test "x$cross_compiling" = "xno"; then
220 CC_FOR_BUILD=${CC_FOR_BUILD-${CC-gcc}}
222 CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
225 AC_SUBST(CC_FOR_BUILD)
227 AC_CHECK_TOOL(AR, ar)
228 AC_CHECK_TOOL(LD, ld)
234 dnl *************************************************************
235 dnl * Check for required libraries
236 dnl *************************************************************
238 AC_CHECK_FUNC([gethostbyname], ,
239 [AC_CHECK_LIB([nsl], [gethostbyname], [LIBNSL="-lnsl"])])
242 AC_CHECK_FUNC([connect], ,
243 [AC_CHECK_LIB([socket], [connect], [LIBSOCKET="-lsocket"],
244 [AC_MSG_ERROR([Function 'socket' not found.])], [$LIBNSL])])
246 AC_CHECK_FUNC([getaddrinfo], ,
247 [AC_MSG_ERROR([Function 'getaddrinfo' not found.])])
249 AC_CHECK_FUNC([getrpcbynumber], ,
250 [AC_MSG_ERROR([Function 'getrpcbynumber' not found.])])
252 AC_CHECK_FUNC([getservbyname], ,
253 [AC_MSG_ERROR([Function 'getservbyname' not found.])])
255 AC_CHECK_LIB([crypt], [crypt], [LIBCRYPT="-lcrypt"])
257 AC_CHECK_LIB([dl], [dlclose], [LIBDL="-ldl"])
259 if test "$enable_nfsv4" = yes; then
260 dnl check for libevent libraries and headers
263 dnl check for nfsidmap libraries and headers
266 dnl check for the keyutils libraries and headers
269 dnl Check for sqlite3
272 if test "$enable_nfsdcltrack" = "yes"; then
273 AC_CHECK_HEADERS([libgen.h sys/inotify.h], ,
274 AC_MSG_ERROR([Cannot find header needed for nfsdcltrack]))
276 if test "$libsqlite3_cv_is_recent" != "yes" ; then
277 AC_MSG_ERROR([nfsdcltrack requires sqlite-devel])
281 dnl librpcsecgss already has a dependency on libgssapi,
282 dnl but we need to make sure we get the right version
283 if test "$enable_gss" = yes; then
287 enable_nfsdcltrack="no"
290 if test "$enable_nfsv41" = yes; then
291 AC_CHECK_LIB([devmapper], [dm_task_create], [LIBDEVMAPPER="-ldevmapper"], AC_MSG_ERROR([libdevmapper needed]))
292 AC_CHECK_HEADER(libdevmapper.h, , AC_MSG_ERROR([Cannot find devmapper header file libdevmapper.h]))
293 AC_CHECK_HEADER(sys/inotify.h, , AC_MSG_ERROR([Cannot find header file sys/inotify.h]))
296 dnl enable nfsidmap when its support by libnfsidmap
297 AM_CONDITIONAL(CONFIG_NFSDCLTRACK, [test "$enable_nfsdcltrack" = "yes" ])
298 AM_CONDITIONAL(CONFIG_NFSIDMAP, [test "$ac_cv_header_keyutils_h$ac_cv_lib_nfsidmap_nfs4_owner_to_uid" = "yesyes"])
301 if test "$knfsd_cv_glibc2" = no; then
302 AC_CHECK_LIB(bsd, daemon, [LIBBSD="-lbsd"])
305 if test "$choose_blkid" != no; then
306 AC_CHECK_LIB(blkid, blkid_get_library_version, [LIBBLKID="-lblkid"], AC_MSG_ERROR([libblkid needed]))
307 AC_CHECK_HEADER(blkid/blkid.h, , AC_MSG_ERROR([Cannot find libblkid header file blkid/blkid.h]))
309 if test $choose_blkid = yes; then
311 test $libblkid_cv_is_recent = no && AC_MSG_WARN([libblkid is old and may cause mountd to leak memory])
313 if test $libblkid_cv_is_recent = yes
316 AC_MSG_WARN([uuid support disabled as libblkid is too old])
319 AC_DEFINE_UNQUOTED(USE_BLKID, $use_blkid, [Define if you want to use blkid to find uuid of filesystems])
327 if test "$enable_libmount" != no; then
328 AC_CHECK_LIB(mount, mnt_context_do_mount, [LIBMOUNT="-lmount"], AC_MSG_ERROR([libmount needed]))
329 AC_CHECK_HEADER(libmount/libmount.h, , AC_MSG_ERROR([Cannot find libmount header file libmount/libmount.h]))
331 AM_CONDITIONAL(CONFIG_LIBMOUNT, [test "$enable_libmount" = "yes"])
334 if test "$enable_gss" = yes; then
335 dnl 'gss' requires getnameinfo - at least for gssd_proc.c
336 AC_CHECK_FUNC([getnameinfo], , [AC_MSG_ERROR([GSSAPI support requires 'getnameinfo' function])])
338 dnl 'gss' also depends on nfsidmap.h - at least for svcgssd_proc.c
341 dnl Check for Kerberos V5
344 dnl Invoked after AC_KERBEROS_V5; AC_LIBRPCSECGSS needs to have KRBLIBS set
349 dnl Check for IPv6 support
352 dnl *************************************************************
353 dnl Check for headers
354 dnl *************************************************************
355 AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h \
356 malloc.h memory.h netdb.h netinet/in.h paths.h \
357 stdlib.h string.h sys/file.h sys/ioctl.h sys/mount.h \
358 sys/param.h sys/socket.h sys/time.h sys/vfs.h \
359 syslog.h unistd.h com_err.h et/com_err.h \
360 ifaddrs.h nfs-plugin.h])
362 dnl *************************************************************
363 dnl Checks for typedefs, structures, and compiler characteristics
364 dnl *************************************************************
374 dnl *************************************************************
375 dnl Check for functions
376 dnl *************************************************************
378 AC_FUNC_CLOSEDIR_VOID
379 AC_FUNC_ERROR_AT_LINE
383 AC_PROG_GCC_TRADITIONAL
385 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
390 AC_FUNC_SELECT_ARGTYPES
394 AC_CHECK_FUNCS([alarm atexit dup2 fdatasync ftruncate getcwd \
395 gethostbyaddr gethostbyname gethostname getmntent \
396 getnameinfo getrpcbyname getifaddrs \
397 gettimeofday hasmntopt inet_ntoa innetgr memset mkdir pathconf \
398 ppoll realpath rmdir select socket strcasecmp strchr strdup \
399 strerror strrchr strtol strtoul sigprocmask])
402 dnl *************************************************************
403 dnl Check for data sizes
404 dnl *************************************************************
405 AC_CHECK_SIZEOF(short)
407 AC_CHECK_SIZEOF(long)
408 AC_CHECK_SIZEOF(size_t)
409 AC_CHECK_SIZEOF(socklen_t)
412 dnl *************************************************************
413 dnl Export some path names to config.h
414 dnl *************************************************************
415 AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir", [This defines the location of the NFS state files. Warning: this must match definitions in config.mk!])
416 AC_DEFINE_UNQUOTED(NSM_DEFAULT_STATEDIR, "$statdpath", [Define this to the pathname where statd keeps its state file])
418 if test "x$cross_compiling" = "xno"; then
419 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-"$CFLAGS"}
420 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-"$CXXFLAGS"}
421 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"}
422 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-"$LDFLAGS"}
424 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-""}
425 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-""}
426 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
427 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
435 AC_SUBST(CFLAGS_FOR_BUILD)
436 AC_SUBST(CXXFLAGS_FOR_BUILD)
437 AC_SUBST(CPPFLAGS_FOR_BUILD)
438 AC_SUBST(LDFLAGS_FOR_BUILD)
440 dnl *************************************************************
441 dnl Set up "global" CFLAGS
442 dnl *************************************************************
443 dnl Use architecture-specific compile flags
444 dnl (We use $host and not $build in case we are cross-compiling)
445 dnl *************************************************************
446 dnl Note: we no longer have arch specific compile flags, but
447 dnl the stub is left here in case they are needed one day.
453 my_am_cflags="-Wall -Wextra -Wstrict-prototypes $ARCHFLAGS -pipe"
455 AC_SUBST([AM_CFLAGS], ["$my_am_cflags"])
457 # Make sure that $ACLOCAL_FLAGS are used during a rebuild
458 AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
464 support/export/Makefile
465 support/include/nfs/Makefile
466 support/include/rpcsvc/Makefile
467 support/include/sys/fs/Makefile
468 support/include/sys/Makefile
469 support/include/Makefile
470 support/misc/Makefile
474 tools/locktest/Makefile
475 tools/nlmtest/Makefile
476 tools/rpcdebug/Makefile
477 tools/rpcgen/Makefile
478 tools/mountstats/Makefile
479 tools/nfs-iostat/Makefile
481 utils/blkmapd/Makefile
482 utils/nfsdcltrack/Makefile
483 utils/exportfs/Makefile
485 utils/idmapd/Makefile
487 utils/mountd/Makefile
489 utils/nfsstat/Makefile
490 utils/nfsidmap/Makefile
491 utils/showmount/Makefile
493 utils/osd_login/Makefile
495 tests/nsm_client/Makefile])