1 dnl Process this file with autoconf to produce a configure script.
3 AC_INIT([linux nfs-utils],[1.2.8],[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_WARN([NFS v4 is not enabled. Disabling NFS v4.1])
87 AC_SUBST(enable_nfsv41)
88 AM_CONDITIONAL(CONFIG_NFSV41, [test "$enable_nfsv41" = "yes"])
91 [AC_HELP_STRING([--enable-gss],
92 [enable support for rpcsec_gss @<:@default=yes@:>@])],
93 enable_gss=$enableval,
95 if test "$enable_gss" = yes; then
106 AM_CONDITIONAL(CONFIG_GSS, [test "$enable_gss" = "yes"])
107 AC_ARG_ENABLE(kprefix,
108 [AC_HELP_STRING([--enable-kprefix], [install progs as rpc.knfsd etc])],
109 test "$enableval" = "yes" && kprefix=k,
113 [AC_HELP_STRING([--with-rpcgen=internal], [use internal rpcgen instead of system one])],
114 rpcgen_path=$withval,
117 if test "$rpcgen_path" = "yes"; then
118 for p in /usr/local/bin/rpcgen /usr/bin/rpcgen /bin/rpcgen
119 do if test -f $p ; then RPCGEN_PATH=$p ; break; fi ; done
120 elif test "$rpcgen_path" != "internal"; then
121 RPCGEN_PATH=$rpcgen_path
123 AC_SUBST(RPCGEN_PATH)
124 AM_CONDITIONAL(CONFIG_RPCGEN, [test "$RPCGEN_PATH" = ""])
126 [AC_HELP_STRING([--disable-uuid], [Exclude uuid support to avoid buggy libblkid])],
127 if test "$enableval" = "yes" ; then choose_blkid=yes; else choose_blkid=no; fi,
128 choose_blkid=default)
130 [AC_HELP_STRING([--enable-mount],
131 [Create mount.nfs and do not use the util-linux mount(8) functionality. @<:@default=yes@:>@])],
132 enable_mount=$enableval,
134 AM_CONDITIONAL(CONFIG_MOUNT, [test "$enable_mount" = "yes"])
136 if test "$enable_mount" = yes; then
137 AC_ARG_ENABLE(libmount-mount,
138 [AC_HELP_STRING([--enable-libmount-mount],
139 [Link mount.nfs with libmount (EXPERIMENTAL)])],
140 enable_libmount=$enableval,
145 [AC_HELP_STRING([--enable-tirpc],
146 [enable use of TI-RPC @<:@default=yes@:>@])],
147 enable_tirpc=$enableval,
150 [AC_HELP_STRING([--enable-ipv6],
151 [enable support for IPv6 @<:@default=no@:>@])],
152 enable_ipv6=$enableval,
154 if test "$enable_ipv6" = yes; then
155 AC_DEFINE(IPV6_SUPPORTED, 1, [Define this if you want IPv6 support compiled in])
159 AC_SUBST(enable_ipv6)
160 AM_CONDITIONAL(CONFIG_IPV6, [test "$enable_ipv6" = "yes"])
162 if test "$enable_mount" = yes; then
163 AC_ARG_ENABLE(mountconfig,
164 [AC_HELP_STRING([--enable-mountconfig],
165 [enable mount to use a configuration file])],
166 mountconfig=$enableval,
168 if test "$enable_mountconfig" = yes; then
169 AC_DEFINE(MOUNT_CONFIG, 1,
170 [Define this if you want mount to read a configuration file])
171 AC_ARG_WITH(mountfile,
172 [AC_HELP_STRING([--with-mountfile=filename],
173 [Using filename as the NFS mount options file [/etc/nfsmounts.conf]]
176 mountfile=/etc/nfsmount.conf)
178 AC_DEFINE_UNQUOTED(MOUNTOPTS_CONFFILE, "$mountfile",
179 [This defines the location of the NFS mount configuration file])
183 AC_SUBST(enable_mountconfig)
184 AM_CONDITIONAL(MOUNT_CONFIG, [test "$enable_mountconfig" = "yes"])
186 AM_CONDITIONAL(MOUNT_CONFIG, [test "$enable_mount" = "yes"])
189 AC_ARG_ENABLE(nfsdcltrack,
190 [AC_HELP_STRING([--enable-nfsdcltrack],
191 [enable NFSv4 clientid tracking programs @<:@default=yes@:>@])],
192 enable_nfsdctrack=$enableval,
193 enable_nfsdcltrack="yes")
195 dnl Check for TI-RPC library and headers
201 # Check whether user wants TCP wrappers support
204 # Arrange for large-file support
207 AC_CONFIG_SRCDIR([support/include/config.h.in])
208 AC_CONFIG_HEADERS([support/include/config.h])
210 # Checks for programs.
220 if test "x$cross_compiling" = "xno"; then
221 CC_FOR_BUILD=${CC_FOR_BUILD-${CC-gcc}}
223 CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
226 AC_SUBST(CC_FOR_BUILD)
228 AC_CHECK_TOOL(AR, ar)
229 AC_CHECK_TOOL(LD, ld)
235 dnl *************************************************************
236 dnl * Check for required libraries
237 dnl *************************************************************
239 AC_CHECK_FUNC([gethostbyname], ,
240 [AC_CHECK_LIB([nsl], [gethostbyname], [LIBNSL="-lnsl"])])
243 AC_CHECK_FUNC([connect], ,
244 [AC_CHECK_LIB([socket], [connect], [LIBSOCKET="-lsocket"],
245 [AC_MSG_ERROR([Function 'socket' not found.])], [$LIBNSL])])
247 AC_CHECK_FUNC([getaddrinfo], ,
248 [AC_MSG_ERROR([Function 'getaddrinfo' not found.])])
250 AC_CHECK_FUNC([getrpcbynumber], ,
251 [AC_MSG_ERROR([Function 'getrpcbynumber' not found.])])
253 AC_CHECK_FUNC([getservbyname], ,
254 [AC_MSG_ERROR([Function 'getservbyname' not found.])])
256 AC_CHECK_LIB([crypt], [crypt], [LIBCRYPT="-lcrypt"])
258 AC_CHECK_LIB([dl], [dlclose], [LIBDL="-ldl"])
260 if test "$enable_nfsv4" = yes; then
261 dnl check for libevent libraries and headers
264 dnl check for nfsidmap libraries and headers
267 dnl check for the keyutils libraries and headers
270 dnl Check for sqlite3
273 if test "$enable_nfsdcltrack" = "yes"; then
274 AC_CHECK_HEADERS([libgen.h sys/inotify.h], ,
275 AC_MSG_ERROR([Cannot find header needed for nfsdcltrack]))
277 case $libsqlite3_cv_is_recent in
280 dnl do not fail when cross-compiling
281 AC_MSG_WARN([assuming sqlite is at least v3.3]) ;;
283 AC_MSG_ERROR([nfsdcltrack requires sqlite-devel]) ;;
288 enable_nfsdcltrack="no"
291 if test "$enable_nfsv41" = yes; then
292 AC_CHECK_LIB([devmapper], [dm_task_create], [LIBDEVMAPPER="-ldevmapper"], AC_MSG_ERROR([libdevmapper needed]))
293 AC_CHECK_HEADER(libdevmapper.h, , AC_MSG_ERROR([Cannot find devmapper header file libdevmapper.h]))
294 AC_CHECK_HEADER(sys/inotify.h, , AC_MSG_ERROR([Cannot find header file sys/inotify.h]))
297 dnl enable nfsidmap when its support by libnfsidmap
298 AM_CONDITIONAL(CONFIG_NFSDCLTRACK, [test "$enable_nfsdcltrack" = "yes" ])
299 AM_CONDITIONAL(CONFIG_NFSIDMAP, [test "$ac_cv_header_keyutils_h$ac_cv_lib_nfsidmap_nfs4_owner_to_uid" = "yesyes"])
302 if test "$knfsd_cv_glibc2" = no; then
303 AC_CHECK_LIB(bsd, daemon, [LIBBSD="-lbsd"])
306 if test "$choose_blkid" != no; then
307 AC_CHECK_LIB(blkid, blkid_get_library_version, [LIBBLKID="-lblkid"], AC_MSG_ERROR([libblkid needed]))
308 AC_CHECK_HEADER(blkid/blkid.h, , AC_MSG_ERROR([Cannot find libblkid header file blkid/blkid.h]))
310 if test $choose_blkid = yes; then
312 test $libblkid_cv_is_recent = no && AC_MSG_WARN([libblkid is old and may cause mountd to leak memory])
314 if test $libblkid_cv_is_recent = yes
317 AC_MSG_WARN([uuid support disabled as libblkid is too old])
320 AC_DEFINE_UNQUOTED(USE_BLKID, $use_blkid, [Define if you want to use blkid to find uuid of filesystems])
328 if test "$enable_libmount" != no; then
329 AC_CHECK_LIB(mount, mnt_context_do_mount, [LIBMOUNT="-lmount"], AC_MSG_ERROR([libmount needed]))
330 AC_CHECK_HEADER(libmount/libmount.h, , AC_MSG_ERROR([Cannot find libmount header file libmount/libmount.h]))
332 AM_CONDITIONAL(CONFIG_LIBMOUNT, [test "$enable_libmount" = "yes"])
335 if test "$enable_gss" = yes; then
336 dnl 'gss' requires getnameinfo - at least for gssd_proc.c
337 AC_CHECK_FUNC([getnameinfo], , [AC_MSG_ERROR([GSSAPI support requires 'getnameinfo' function])])
339 dnl 'gss' also depends on nfsidmap.h - at least for svcgssd_proc.c
342 dnl Check for Kerberos V5
345 dnl Invoked after AC_KERBEROS_V5; AC_LIBRPCSECGSS needs to have KRBLIBS set
348 dnl librpcsecgss already has a dependency on libgssapi,
349 dnl but we need to make sure we get the right version
350 if test "$enable_gss" = yes; then
352 if test x"$GSSGLUE_LIBS" != x""; then
353 GSSAPI_CFLAGS=$GSSGLUE_CFLAGS
354 GSSAPI_LIBS=$GSSGLUE_LIBS
356 GSSAPI_CFLAGS=$GSSKRB_CFLAGS
357 GSSAPI_LIBS=$GSSKRB_LIBS
359 AC_SUBST([GSSAPI_CFLAGS])
360 AC_SUBST([GSSAPI_LIBS])
364 dnl Check for IPv6 support
367 dnl *************************************************************
368 dnl Check for headers
369 dnl *************************************************************
370 AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h \
371 malloc.h memory.h netdb.h netinet/in.h paths.h \
372 stdlib.h string.h sys/file.h sys/ioctl.h sys/mount.h \
373 sys/param.h sys/socket.h sys/time.h sys/vfs.h \
374 syslog.h unistd.h com_err.h et/com_err.h \
375 ifaddrs.h nfs-plugin.h libio.h])
377 dnl *************************************************************
378 dnl Checks for typedefs, structures, and compiler characteristics
379 dnl *************************************************************
389 dnl *************************************************************
390 dnl Check for functions
391 dnl *************************************************************
393 AC_FUNC_CLOSEDIR_VOID
394 AC_FUNC_ERROR_AT_LINE
398 AC_PROG_GCC_TRADITIONAL
400 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
405 AC_FUNC_SELECT_ARGTYPES
409 AC_CHECK_FUNCS([alarm atexit dup2 fdatasync ftruncate getcwd \
410 gethostbyaddr gethostbyname gethostname getmntent \
411 getnameinfo getrpcbyname getifaddrs \
412 gettimeofday hasmntopt inet_ntoa innetgr memset mkdir pathconf \
413 ppoll realpath rmdir select socket strcasecmp strchr strdup \
414 strerror strrchr strtol strtoul sigprocmask])
417 dnl *************************************************************
418 dnl Check for data sizes
419 dnl *************************************************************
420 AC_CHECK_SIZEOF(short)
422 AC_CHECK_SIZEOF(long)
423 AC_CHECK_SIZEOF(size_t)
424 AC_CHECK_SIZEOF(socklen_t)
427 dnl *************************************************************
428 dnl Export some path names to config.h
429 dnl *************************************************************
430 AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir", [This defines the location of the NFS state files. Warning: this must match definitions in config.mk!])
431 AC_DEFINE_UNQUOTED(NSM_DEFAULT_STATEDIR, "$statdpath", [Define this to the pathname where statd keeps its state file])
433 if test "x$cross_compiling" = "xno"; then
434 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-"$CFLAGS"}
435 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-"$CXXFLAGS"}
436 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"}
437 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-"$LDFLAGS"}
439 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-""}
440 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-""}
441 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
442 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
450 AC_SUBST(CFLAGS_FOR_BUILD)
451 AC_SUBST(CXXFLAGS_FOR_BUILD)
452 AC_SUBST(CPPFLAGS_FOR_BUILD)
453 AC_SUBST(LDFLAGS_FOR_BUILD)
455 dnl *************************************************************
456 dnl Set up "global" CFLAGS
457 dnl *************************************************************
458 dnl Use architecture-specific compile flags
459 dnl (We use $host and not $build in case we are cross-compiling)
460 dnl *************************************************************
461 dnl Note: we no longer have arch specific compile flags, but
462 dnl the stub is left here in case they are needed one day.
468 my_am_cflags="-Wall -Wextra -Wstrict-prototypes $ARCHFLAGS -pipe"
470 AC_SUBST([AM_CFLAGS], ["$my_am_cflags"])
472 # Make sure that $ACLOCAL_FLAGS are used during a rebuild
473 AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
479 support/export/Makefile
480 support/include/nfs/Makefile
481 support/include/rpcsvc/Makefile
482 support/include/sys/fs/Makefile
483 support/include/sys/Makefile
484 support/include/Makefile
485 support/misc/Makefile
489 tools/locktest/Makefile
490 tools/nlmtest/Makefile
491 tools/rpcdebug/Makefile
492 tools/rpcgen/Makefile
493 tools/mountstats/Makefile
494 tools/nfs-iostat/Makefile
496 utils/blkmapd/Makefile
497 utils/nfsdcltrack/Makefile
498 utils/exportfs/Makefile
500 utils/idmapd/Makefile
502 utils/mountd/Makefile
504 utils/nfsstat/Makefile
505 utils/nfsidmap/Makefile
506 utils/showmount/Makefile
508 utils/osd_login/Makefile
510 tests/nsm_client/Makefile])