1 dnl Process this file with autoconf to produce a configure script.
3 AC_INIT([linux nfs-utils],[1.2.4],[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(statduser,
27 [AC_HELP_STRING([--with-statduser=rpcuser],
28 [statd to run under @<:@rpcuser or nobody@:>@]
31 if test "x$cross_compiling" = "xno"; then
32 if grep -s '^rpcuser:' /etc/passwd > /dev/null; then
41 AC_ARG_WITH(start-statd,
42 [AC_HELP_STRING([--with-start-statd=scriptname],
43 [When an nfs filesystems is mounted with locking, run this script]
46 startstatd=/usr/sbin/start-statd
49 AC_DEFINE_UNQUOTED(START_STATD, "$startstatd", [Define this to a script which can start statd on mount])
51 [AC_HELP_STRING([--enable-nfsv3],
52 [enable support for NFSv3 @<:@default=yes@:>@])],
53 enable_nfsv3=$enableval,
55 if test "$enable_nfsv3" = yes; then
56 AC_DEFINE(NFS3_SUPPORTED, 1, [Define this if you want NFSv3 support compiled in])
60 AC_SUBST(enable_nfsv3)
62 [AC_HELP_STRING([--enable-nfsv4],
63 [enable support for NFSv4 @<:@default=yes@:>@])],
64 enable_nfsv4=$enableval,
66 if test "$enable_nfsv4" = yes; then
67 AC_DEFINE(NFS4_SUPPORTED, 1, [Define this if you want NFSv4 support compiled in])
74 AC_SUBST(enable_nfsv4)
75 AM_CONDITIONAL(CONFIG_NFSV4, [test "$enable_nfsv4" = "yes"])
78 [AC_HELP_STRING([--enable-nfsv41],
79 [enable support for NFSv41 @<:@default=no@:>@])],
80 enable_nfsv41=$enableval,
82 if test "$enable_nfsv41" = yes; then
83 AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv41 support compiled in])
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
96 AC_DEFINE(GSS_SUPPORTED, 1, [Define this if you want rpcsec_gss support compiled in])
107 AM_CONDITIONAL(CONFIG_GSS, [test "$enable_gss" = "yes"])
108 AC_ARG_ENABLE(kprefix,
109 [AC_HELP_STRING([--enable-kprefix], [install progs as rpc.knfsd etc])],
110 test "$enableval" = "yes" && kprefix=k,
114 [AC_HELP_STRING([--with-rpcgen=internal], [use internal rpcgen instead of system one])],
115 rpcgen_path=$withval,
118 if test "$rpcgen_path" = "yes"; then
119 for p in /usr/local/bin/rpcgen /usr/bin/rpcgen /bin/rpcgen
120 do if test -f $p ; then RPCGEN_PATH=$p ; break; fi ; done
121 elif test "$rpcgen_path" != "internal"; then
122 RPCGEN_PATH=$rpcgen_path
124 AC_SUBST(RPCGEN_PATH)
125 AM_CONDITIONAL(CONFIG_RPCGEN, [test "$RPCGEN_PATH" = ""])
127 [AC_HELP_STRING([--disable-uuid], [Exclude uuid support to avoid buggy libblkid])],
128 if test "$enableval" = "yes" ; then choose_blkid=yes; else choose_blkid=no; fi,
129 choose_blkid=default)
131 [AC_HELP_STRING([--enable-mount],
132 [Create mount.nfs and do not use the util-linux mount(8) functionality. @<:@default=yes@:>@])],
133 enable_mount=$enableval,
135 AM_CONDITIONAL(CONFIG_MOUNT, [test "$enable_mount" = "yes"])
137 if test "$enable_mount" = yes; then
138 AC_ARG_ENABLE(libmount-mount,
139 [AC_HELP_STRING([--enable-libmount-mount],
140 [Link mount.nfs with libmount (EXPERIMENTAL)])],
141 enable_libmount=$enableval,
146 [AC_HELP_STRING([--enable-tirpc],
147 [enable use of TI-RPC @<:@default=yes@:>@])],
148 enable_tirpc=$enableval,
151 [AC_HELP_STRING([--enable-ipv6],
152 [enable support for IPv6 @<:@default=no@:>@])],
153 enable_ipv6=$enableval,
155 if test "$enable_ipv6" = yes; then
156 AC_DEFINE(IPV6_SUPPORTED, 1, [Define this if you want IPv6 support compiled in])
160 AC_SUBST(enable_ipv6)
161 AM_CONDITIONAL(CONFIG_IPV6, [test "$enable_ipv6" = "yes"])
163 if test "$enable_mount" = yes; then
164 AC_ARG_ENABLE(mountconfig,
165 [AC_HELP_STRING([--enable-mountconfig],
166 [enable mount to use a configuration file])],
167 mountconfig=$enableval,
169 if test "$enable_mountconfig" = yes; then
170 AC_DEFINE(MOUNT_CONFIG, 1,
171 [Define this if you want mount to read a configuration file])
172 AC_ARG_WITH(mountfile,
173 [AC_HELP_STRING([--with-mountfile=filename],
174 [Using filename as the NFS mount options file [/etc/nfsmounts.conf]]
177 mountfile=/etc/nfsmount.conf)
179 AC_DEFINE_UNQUOTED(MOUNTOPTS_CONFFILE, "$mountfile",
180 [This defines the location of the NFS mount configuration file])
184 AC_SUBST(enable_mountconfig)
185 AM_CONDITIONAL(MOUNT_CONFIG, [test "$enable_mountconfig" = "yes"])
187 AM_CONDITIONAL(MOUNT_CONFIG, [test "$enable_mount" = "yes"])
190 dnl Check for TI-RPC library and headers
196 # Check whether user wants TCP wrappers support
199 # Arrange for large-file support
202 AC_CONFIG_SRCDIR([support/include/config.h.in])
203 AC_CONFIG_HEADERS([support/include/config.h])
205 # Checks for programs.
215 if test "x$cross_compiling" = "xno"; then
216 CC_FOR_BUILD=${CC_FOR_BUILD-${CC-gcc}}
218 CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
221 AC_SUBST(CC_FOR_BUILD)
223 AC_CHECK_TOOL(AR, ar)
224 AC_CHECK_TOOL(LD, ld)
230 dnl *************************************************************
231 dnl * Check for required libraries
232 dnl *************************************************************
234 AC_CHECK_FUNC([gethostbyname], ,
235 [AC_CHECK_LIB([nsl], [gethostbyname], [LIBNSL="-lnsl"])])
238 AC_CHECK_FUNC([connect], ,
239 [AC_CHECK_LIB([socket], [connect], [LIBSOCKET="-lsocket"],
240 [AC_MSG_ERROR([Function 'socket' not found.])], [$LIBNSL])])
242 AC_CHECK_FUNC([getaddrinfo], ,
243 [AC_MSG_ERROR([Function 'getaddrinfo' not found.])])
245 AC_CHECK_FUNC([getrpcbynumber], ,
246 [AC_MSG_ERROR([Function 'getrpcbynumber' not found.])])
248 AC_CHECK_FUNC([getservbyname], ,
249 [AC_MSG_ERROR([Function 'getservbyname' not found.])])
251 AC_CHECK_LIB([crypt], [crypt], [LIBCRYPT="-lcrypt"])
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
269 dnl enable nfsidmap when its support by libnfsidmap
270 AM_CONDITIONAL(CONFIG_NFSIDMAP, [test "$ac_cv_header_keyutils_h$ac_cv_lib_nfsidmap_nfs4_owner_to_uid" = "yesyes"])
273 if test "$knfsd_cv_glibc2" = no; then
274 AC_CHECK_LIB(bsd, daemon, [LIBBSD="-lbsd"])
277 if test "$choose_blkid" != no; then
278 AC_CHECK_LIB(blkid, blkid_get_library_version, [LIBBLKID="-lblkid"], AC_MSG_ERROR([libblkid needed]))
279 AC_CHECK_HEADER(blkid/blkid.h, , AC_MSG_ERROR([Cannot find libblkid header file blkid/blkid.h]))
281 if test $choose_blkid = yes; then
283 test $libblkid_cv_is_recent = no && AC_MSG_WARN([libblkid is old and may cause mountd to leak memory])
285 if test $libblkid_cv_is_recent = yes
288 AC_MSG_WARN([uuid support disabled as libblkid is too old])
291 AC_DEFINE_UNQUOTED(USE_BLKID, $use_blkid, [Define if you want to use blkid to find uuid of filesystems])
298 if test "$enable_libmount" != no; then
299 AC_CHECK_LIB(mount, mnt_context_do_mount, [LIBMOUNT="-lmount"], AC_MSG_ERROR([libmount needed]))
300 AC_CHECK_HEADER(libmount/libmount.h, , AC_MSG_ERROR([Cannot find libmount header file libmount/libmount.h]))
302 AM_CONDITIONAL(CONFIG_LIBMOUNT, [test "$enable_libmount" = "yes"])
305 if test "$enable_gss" = yes; then
306 dnl 'gss' requires getnameinfo - at least for gssd_proc.c
307 AC_CHECK_FUNC([getnameinfo], , [AC_MSG_ERROR([GSSAPI support requires 'getnameinfo' function])])
309 dnl 'gss' also depends on nfsidmap.h - at least for svcgssd_proc.c
312 AC_CHECK_HEADERS([spkm3.h], ,
313 [AC_MSG_WARN([Could not locate SPKM3 header; will not have SPKM3 support])])
315 dnl Check for Kerberos V5
318 dnl Invoked after AC_KERBEROS_V5; AC_LIBRPCSECGSS needs to have KRBLIBS set
323 dnl Check for IPv6 support
326 dnl *************************************************************
327 dnl Check for headers
328 dnl *************************************************************
329 AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h \
330 malloc.h memory.h netdb.h netinet/in.h paths.h \
331 stdlib.h string.h sys/file.h sys/ioctl.h sys/mount.h \
332 sys/param.h sys/socket.h sys/time.h sys/vfs.h \
333 syslog.h unistd.h com_err.h et/com_err.h \
336 dnl *************************************************************
337 dnl Checks for typedefs, structures, and compiler characteristics
338 dnl *************************************************************
348 dnl *************************************************************
349 dnl Check for functions
350 dnl *************************************************************
352 AC_FUNC_CLOSEDIR_VOID
353 AC_FUNC_ERROR_AT_LINE
357 AC_PROG_GCC_TRADITIONAL
359 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
364 AC_FUNC_SELECT_ARGTYPES
368 AC_CHECK_FUNCS([alarm atexit dup2 fdatasync ftruncate getcwd \
369 gethostbyaddr gethostbyname gethostname getmntent \
370 getnameinfo getrpcbyname getifaddrs \
371 gettimeofday hasmntopt inet_ntoa innetgr memset mkdir pathconf \
372 realpath rmdir select socket strcasecmp strchr strdup \
373 strerror strrchr strtol strtoul sigprocmask])
376 dnl *************************************************************
377 dnl Check for data sizes
378 dnl *************************************************************
379 AC_CHECK_SIZEOF(short)
381 AC_CHECK_SIZEOF(long)
382 AC_CHECK_SIZEOF(size_t)
383 AC_CHECK_SIZEOF(socklen_t)
386 dnl *************************************************************
387 dnl Export some path names to config.h
388 dnl *************************************************************
389 AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir", [This defines the location of the NFS state files. Warning: this must match definitions in config.mk!])
391 if test "x$cross_compiling" = "xno"; then
392 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-"$CFLAGS"}
393 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-"$CXXFLAGS"}
394 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"}
395 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-"$LDFLAGS"}
397 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-""}
398 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-""}
399 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
400 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
408 AC_SUBST(CFLAGS_FOR_BUILD)
409 AC_SUBST(CXXFLAGS_FOR_BUILD)
410 AC_SUBST(CPPFLAGS_FOR_BUILD)
411 AC_SUBST(LDFLAGS_FOR_BUILD)
413 dnl *************************************************************
414 dnl Set up "global" CFLAGS
415 dnl *************************************************************
416 dnl Use architecture-specific compile flags
417 dnl (We use $host and not $build in case we are cross-compiling)
418 dnl *************************************************************
419 dnl Note: we no longer have arch specific compile flags, but
420 dnl the stub is left here in case they are needed one day.
426 my_am_cflags="-Wall -Wextra -Wstrict-prototypes $ARCHFLAGS -pipe"
428 AC_SUBST([AM_CFLAGS], ["$my_am_cflags"])
430 # Make sure that $ACLOCAL_FLAGS are used during a rebuild
431 AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
437 support/export/Makefile
438 support/include/nfs/Makefile
439 support/include/rpcsvc/Makefile
440 support/include/sys/fs/Makefile
441 support/include/sys/Makefile
442 support/include/Makefile
443 support/misc/Makefile
447 tools/locktest/Makefile
448 tools/nlmtest/Makefile
449 tools/rpcdebug/Makefile
450 tools/rpcgen/Makefile
451 tools/mountstats/Makefile
452 tools/nfs-iostat/Makefile
454 utils/exportfs/Makefile
456 utils/idmapd/Makefile
458 utils/mountd/Makefile
460 utils/nfsstat/Makefile
461 utils/nfsidmap/Makefile
462 utils/showmount/Makefile
465 tests/nsm_client/Makefile])