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 AC_ARG_ENABLE(nfsdcld,
189 [AC_HELP_STRING([--enable-nfsdcld],
190 [Create nfsdcld NFSv4 clientid tracking daemon. @<:@default=no@:>@])],
191 enable_nfsdcld=$enableval,
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 AM_CONDITIONAL(CONFIG_NFSDCLD, [test "$enable_nfsdcld" = "yes" ])
271 dnl librpcsecgss already has a dependency on libgssapi,
272 dnl but we need to make sure we get the right version
273 if test "$enable_gss" = yes; then
278 if test "$enable_nfsv41" = yes; then
279 AC_CHECK_LIB([devmapper], [dm_task_create], [LIBDEVMAPPER="-ldevmapper"], AC_MSG_ERROR([libdevmapper needed]))
280 AC_CHECK_HEADER(libdevmapper.h, , AC_MSG_ERROR([Cannot find devmapper header file libdevmapper.h]))
283 dnl enable nfsidmap when its support by libnfsidmap
284 AM_CONDITIONAL(CONFIG_NFSIDMAP, [test "$ac_cv_header_keyutils_h$ac_cv_lib_nfsidmap_nfs4_owner_to_uid" = "yesyes"])
287 if test "$knfsd_cv_glibc2" = no; then
288 AC_CHECK_LIB(bsd, daemon, [LIBBSD="-lbsd"])
291 if test "$choose_blkid" != no; then
292 AC_CHECK_LIB(blkid, blkid_get_library_version, [LIBBLKID="-lblkid"], AC_MSG_ERROR([libblkid needed]))
293 AC_CHECK_HEADER(blkid/blkid.h, , AC_MSG_ERROR([Cannot find libblkid header file blkid/blkid.h]))
295 if test $choose_blkid = yes; then
297 test $libblkid_cv_is_recent = no && AC_MSG_WARN([libblkid is old and may cause mountd to leak memory])
299 if test $libblkid_cv_is_recent = yes
302 AC_MSG_WARN([uuid support disabled as libblkid is too old])
305 AC_DEFINE_UNQUOTED(USE_BLKID, $use_blkid, [Define if you want to use blkid to find uuid of filesystems])
313 if test "$enable_libmount" != no; then
314 AC_CHECK_LIB(mount, mnt_context_do_mount, [LIBMOUNT="-lmount"], AC_MSG_ERROR([libmount needed]))
315 AC_CHECK_HEADER(libmount/libmount.h, , AC_MSG_ERROR([Cannot find libmount header file libmount/libmount.h]))
317 AM_CONDITIONAL(CONFIG_LIBMOUNT, [test "$enable_libmount" = "yes"])
320 if test "$enable_gss" = yes; then
321 dnl 'gss' requires getnameinfo - at least for gssd_proc.c
322 AC_CHECK_FUNC([getnameinfo], , [AC_MSG_ERROR([GSSAPI support requires 'getnameinfo' function])])
324 dnl 'gss' also depends on nfsidmap.h - at least for svcgssd_proc.c
327 dnl Check for Kerberos V5
330 dnl Invoked after AC_KERBEROS_V5; AC_LIBRPCSECGSS needs to have KRBLIBS set
335 dnl Check for IPv6 support
338 dnl *************************************************************
339 dnl Check for headers
340 dnl *************************************************************
341 AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h \
342 malloc.h memory.h netdb.h netinet/in.h paths.h \
343 stdlib.h string.h sys/file.h sys/ioctl.h sys/mount.h \
344 sys/param.h sys/socket.h sys/time.h sys/vfs.h \
345 syslog.h unistd.h com_err.h et/com_err.h \
346 ifaddrs.h nfs-plugin.h])
348 dnl *************************************************************
349 dnl Checks for typedefs, structures, and compiler characteristics
350 dnl *************************************************************
360 dnl *************************************************************
361 dnl Check for functions
362 dnl *************************************************************
364 AC_FUNC_CLOSEDIR_VOID
365 AC_FUNC_ERROR_AT_LINE
369 AC_PROG_GCC_TRADITIONAL
371 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
376 AC_FUNC_SELECT_ARGTYPES
380 AC_CHECK_FUNCS([alarm atexit dup2 fdatasync ftruncate getcwd \
381 gethostbyaddr gethostbyname gethostname getmntent \
382 getnameinfo getrpcbyname getifaddrs \
383 gettimeofday hasmntopt inet_ntoa innetgr memset mkdir pathconf \
384 realpath rmdir select socket strcasecmp strchr strdup \
385 strerror strrchr strtol strtoul sigprocmask])
388 dnl *************************************************************
389 dnl Check for data sizes
390 dnl *************************************************************
391 AC_CHECK_SIZEOF(short)
393 AC_CHECK_SIZEOF(long)
394 AC_CHECK_SIZEOF(size_t)
395 AC_CHECK_SIZEOF(socklen_t)
398 dnl *************************************************************
399 dnl Export some path names to config.h
400 dnl *************************************************************
401 AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir", [This defines the location of the NFS state files. Warning: this must match definitions in config.mk!])
402 AC_DEFINE_UNQUOTED(NSM_DEFAULT_STATEDIR, "$statdpath", [Define this to the pathname where statd keeps its state file])
404 if test "x$cross_compiling" = "xno"; then
405 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-"$CFLAGS"}
406 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-"$CXXFLAGS"}
407 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"}
408 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-"$LDFLAGS"}
410 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-""}
411 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-""}
412 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
413 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
421 AC_SUBST(CFLAGS_FOR_BUILD)
422 AC_SUBST(CXXFLAGS_FOR_BUILD)
423 AC_SUBST(CPPFLAGS_FOR_BUILD)
424 AC_SUBST(LDFLAGS_FOR_BUILD)
426 dnl *************************************************************
427 dnl Set up "global" CFLAGS
428 dnl *************************************************************
429 dnl Use architecture-specific compile flags
430 dnl (We use $host and not $build in case we are cross-compiling)
431 dnl *************************************************************
432 dnl Note: we no longer have arch specific compile flags, but
433 dnl the stub is left here in case they are needed one day.
439 my_am_cflags="-Wall -Wextra -Wstrict-prototypes $ARCHFLAGS -pipe"
441 AC_SUBST([AM_CFLAGS], ["$my_am_cflags"])
443 # Make sure that $ACLOCAL_FLAGS are used during a rebuild
444 AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
450 support/export/Makefile
451 support/include/nfs/Makefile
452 support/include/rpcsvc/Makefile
453 support/include/sys/fs/Makefile
454 support/include/sys/Makefile
455 support/include/Makefile
456 support/misc/Makefile
460 tools/locktest/Makefile
461 tools/nlmtest/Makefile
462 tools/rpcdebug/Makefile
463 tools/rpcgen/Makefile
464 tools/mountstats/Makefile
465 tools/nfs-iostat/Makefile
467 utils/blkmapd/Makefile
468 utils/nfsdcld/Makefile
469 utils/exportfs/Makefile
471 utils/idmapd/Makefile
473 utils/mountd/Makefile
475 utils/nfsstat/Makefile
476 utils/nfsidmap/Makefile
477 utils/showmount/Makefile
480 tests/nsm_client/Makefile])