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 @<:@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-nfsv4],
60 [enable support for NFSv4 @<:@default=yes@:>@])],
61 enable_nfsv4=$enableval,
63 if test "$enable_nfsv4" = yes; then
70 AC_SUBST(enable_nfsv4)
71 AM_CONDITIONAL(CONFIG_NFSV4, [test "$enable_nfsv4" = "yes"])
74 [AC_HELP_STRING([--enable-nfsv41],
75 [enable support for NFSv41 @<:@default=yes@:>@])],
76 enable_nfsv41=$enableval,
78 if test "$enable_nfsv41" = yes; then
79 if test "$enable_nfsv4" != yes; then
80 AC_MSG_ERROR([NFS v4.1 is enabled but NFS v4 is not. Use --disable-nfsv41])
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 dnl Check for TI-RPC library and headers
195 # Check whether user wants TCP wrappers support
198 # Arrange for large-file support
201 AC_CONFIG_SRCDIR([support/include/config.h.in])
202 AC_CONFIG_HEADERS([support/include/config.h])
204 # Checks for programs.
214 if test "x$cross_compiling" = "xno"; then
215 CC_FOR_BUILD=${CC_FOR_BUILD-${CC-gcc}}
217 CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
220 AC_SUBST(CC_FOR_BUILD)
222 AC_CHECK_TOOL(AR, ar)
223 AC_CHECK_TOOL(LD, ld)
229 dnl *************************************************************
230 dnl * Check for required libraries
231 dnl *************************************************************
233 AC_CHECK_FUNC([gethostbyname], ,
234 [AC_CHECK_LIB([nsl], [gethostbyname], [LIBNSL="-lnsl"])])
237 AC_CHECK_FUNC([connect], ,
238 [AC_CHECK_LIB([socket], [connect], [LIBSOCKET="-lsocket"],
239 [AC_MSG_ERROR([Function 'socket' not found.])], [$LIBNSL])])
241 AC_CHECK_FUNC([getaddrinfo], ,
242 [AC_MSG_ERROR([Function 'getaddrinfo' not found.])])
244 AC_CHECK_FUNC([getrpcbynumber], ,
245 [AC_MSG_ERROR([Function 'getrpcbynumber' not found.])])
247 AC_CHECK_FUNC([getservbyname], ,
248 [AC_MSG_ERROR([Function 'getservbyname' not found.])])
250 AC_CHECK_LIB([crypt], [crypt], [LIBCRYPT="-lcrypt"])
252 if test "$enable_nfsv4" = yes; then
253 dnl check for libevent libraries and headers
256 dnl check for nfsidmap libraries and headers
259 dnl check for the keyutils libraries and headers
262 dnl librpcsecgss already has a dependency on libgssapi,
263 dnl but we need to make sure we get the right version
264 if test "$enable_gss" = yes; then
269 if test "$enable_nfsv41" = yes; then
270 AC_CHECK_LIB([devmapper], [dm_task_create], [LIBDEVMAPPER="-ldevmapper"], AC_MSG_ERROR([libdevmapper needed]))
271 AC_CHECK_HEADER(libdevmapper.h, , AC_MSG_ERROR([Cannot find devmapper header file libdevmapper.h]))
274 dnl enable nfsidmap when its support by libnfsidmap
275 AM_CONDITIONAL(CONFIG_NFSIDMAP, [test "$ac_cv_header_keyutils_h$ac_cv_lib_nfsidmap_nfs4_owner_to_uid" = "yesyes"])
278 if test "$knfsd_cv_glibc2" = no; then
279 AC_CHECK_LIB(bsd, daemon, [LIBBSD="-lbsd"])
282 if test "$choose_blkid" != no; then
283 AC_CHECK_LIB(blkid, blkid_get_library_version, [LIBBLKID="-lblkid"], AC_MSG_ERROR([libblkid needed]))
284 AC_CHECK_HEADER(blkid/blkid.h, , AC_MSG_ERROR([Cannot find libblkid header file blkid/blkid.h]))
286 if test $choose_blkid = yes; then
288 test $libblkid_cv_is_recent = no && AC_MSG_WARN([libblkid is old and may cause mountd to leak memory])
290 if test $libblkid_cv_is_recent = yes
293 AC_MSG_WARN([uuid support disabled as libblkid is too old])
296 AC_DEFINE_UNQUOTED(USE_BLKID, $use_blkid, [Define if you want to use blkid to find uuid of filesystems])
303 if test "$enable_libmount" != no; then
304 AC_CHECK_LIB(mount, mnt_context_do_mount, [LIBMOUNT="-lmount"], AC_MSG_ERROR([libmount needed]))
305 AC_CHECK_HEADER(libmount/libmount.h, , AC_MSG_ERROR([Cannot find libmount header file libmount/libmount.h]))
307 AM_CONDITIONAL(CONFIG_LIBMOUNT, [test "$enable_libmount" = "yes"])
310 if test "$enable_gss" = yes; then
311 dnl 'gss' requires getnameinfo - at least for gssd_proc.c
312 AC_CHECK_FUNC([getnameinfo], , [AC_MSG_ERROR([GSSAPI support requires 'getnameinfo' function])])
314 dnl 'gss' also depends on nfsidmap.h - at least for svcgssd_proc.c
317 AC_CHECK_HEADERS([spkm3.h], ,
318 [AC_MSG_WARN([Could not locate SPKM3 header; will not have SPKM3 support])])
320 dnl Check for Kerberos V5
323 dnl Invoked after AC_KERBEROS_V5; AC_LIBRPCSECGSS needs to have KRBLIBS set
328 dnl Check for IPv6 support
331 dnl *************************************************************
332 dnl Check for headers
333 dnl *************************************************************
334 AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h \
335 malloc.h memory.h netdb.h netinet/in.h paths.h \
336 stdlib.h string.h sys/file.h sys/ioctl.h sys/mount.h \
337 sys/param.h sys/socket.h sys/time.h sys/vfs.h \
338 syslog.h unistd.h com_err.h et/com_err.h \
341 dnl *************************************************************
342 dnl Checks for typedefs, structures, and compiler characteristics
343 dnl *************************************************************
353 dnl *************************************************************
354 dnl Check for functions
355 dnl *************************************************************
357 AC_FUNC_CLOSEDIR_VOID
358 AC_FUNC_ERROR_AT_LINE
362 AC_PROG_GCC_TRADITIONAL
364 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
369 AC_FUNC_SELECT_ARGTYPES
373 AC_CHECK_FUNCS([alarm atexit dup2 fdatasync ftruncate getcwd \
374 gethostbyaddr gethostbyname gethostname getmntent \
375 getnameinfo getrpcbyname getifaddrs \
376 gettimeofday hasmntopt inet_ntoa innetgr memset mkdir pathconf \
377 realpath rmdir select socket strcasecmp strchr strdup \
378 strerror strrchr strtol strtoul sigprocmask])
381 dnl *************************************************************
382 dnl Check for data sizes
383 dnl *************************************************************
384 AC_CHECK_SIZEOF(short)
386 AC_CHECK_SIZEOF(long)
387 AC_CHECK_SIZEOF(size_t)
388 AC_CHECK_SIZEOF(socklen_t)
391 dnl *************************************************************
392 dnl Export some path names to config.h
393 dnl *************************************************************
394 AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir", [This defines the location of the NFS state files. Warning: this must match definitions in config.mk!])
395 AC_DEFINE_UNQUOTED(NSM_DEFAULT_STATEDIR, "$statdpath", [Define this to the pathname where statd keeps its state file])
397 if test "x$cross_compiling" = "xno"; then
398 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-"$CFLAGS"}
399 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-"$CXXFLAGS"}
400 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"}
401 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-"$LDFLAGS"}
403 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-""}
404 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-""}
405 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
406 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
414 AC_SUBST(CFLAGS_FOR_BUILD)
415 AC_SUBST(CXXFLAGS_FOR_BUILD)
416 AC_SUBST(CPPFLAGS_FOR_BUILD)
417 AC_SUBST(LDFLAGS_FOR_BUILD)
419 dnl *************************************************************
420 dnl Set up "global" CFLAGS
421 dnl *************************************************************
422 dnl Use architecture-specific compile flags
423 dnl (We use $host and not $build in case we are cross-compiling)
424 dnl *************************************************************
425 dnl Note: we no longer have arch specific compile flags, but
426 dnl the stub is left here in case they are needed one day.
432 my_am_cflags="-Wall -Wextra -Wstrict-prototypes $ARCHFLAGS -pipe"
434 AC_SUBST([AM_CFLAGS], ["$my_am_cflags"])
436 # Make sure that $ACLOCAL_FLAGS are used during a rebuild
437 AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
443 support/export/Makefile
444 support/include/nfs/Makefile
445 support/include/rpcsvc/Makefile
446 support/include/sys/fs/Makefile
447 support/include/sys/Makefile
448 support/include/Makefile
449 support/misc/Makefile
453 tools/locktest/Makefile
454 tools/nlmtest/Makefile
455 tools/rpcdebug/Makefile
456 tools/rpcgen/Makefile
457 tools/mountstats/Makefile
458 tools/nfs-iostat/Makefile
460 utils/blkmapd/Makefile
461 utils/exportfs/Makefile
463 utils/idmapd/Makefile
465 utils/mountd/Makefile
467 utils/nfsstat/Makefile
468 utils/nfsidmap/Makefile
469 utils/showmount/Makefile
472 tests/nsm_client/Makefile])