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(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-nfsv3],
60 [enable support for NFSv3 @<:@default=yes@:>@])],
61 enable_nfsv3=$enableval,
63 if test "$enable_nfsv3" = yes; then
64 AC_DEFINE(NFS3_SUPPORTED, 1, [Define this if you want NFSv3 support compiled in])
68 AC_SUBST(enable_nfsv3)
70 [AC_HELP_STRING([--enable-nfsv4],
71 [enable support for NFSv4 @<:@default=yes@:>@])],
72 enable_nfsv4=$enableval,
74 if test "$enable_nfsv4" = yes; then
75 AC_DEFINE(NFS4_SUPPORTED, 1, [Define this if you want NFSv4 support compiled in])
82 AC_SUBST(enable_nfsv4)
83 AM_CONDITIONAL(CONFIG_NFSV4, [test "$enable_nfsv4" = "yes"])
86 [AC_HELP_STRING([--enable-nfsv41],
87 [enable support for NFSv41 @<:@default=no@:>@])],
88 enable_nfsv41=$enableval,
90 if test "$enable_nfsv41" = yes; then
91 AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv41 support compiled in])
95 AC_SUBST(enable_nfsv41)
96 AM_CONDITIONAL(CONFIG_NFSV41, [test "$enable_nfsv41" = "yes"])
99 [AC_HELP_STRING([--enable-gss],
100 [enable support for rpcsec_gss @<:@default=yes@:>@])],
101 enable_gss=$enableval,
103 if test "$enable_gss" = yes; then
104 AC_DEFINE(GSS_SUPPORTED, 1, [Define this if you want rpcsec_gss support compiled in])
115 AM_CONDITIONAL(CONFIG_GSS, [test "$enable_gss" = "yes"])
116 AC_ARG_ENABLE(kprefix,
117 [AC_HELP_STRING([--enable-kprefix], [install progs as rpc.knfsd etc])],
118 test "$enableval" = "yes" && kprefix=k,
122 [AC_HELP_STRING([--with-rpcgen=internal], [use internal rpcgen instead of system one])],
123 rpcgen_path=$withval,
126 if test "$rpcgen_path" = "yes"; then
127 for p in /usr/local/bin/rpcgen /usr/bin/rpcgen /bin/rpcgen
128 do if test -f $p ; then RPCGEN_PATH=$p ; break; fi ; done
129 elif test "$rpcgen_path" != "internal"; then
130 RPCGEN_PATH=$rpcgen_path
132 AC_SUBST(RPCGEN_PATH)
133 AM_CONDITIONAL(CONFIG_RPCGEN, [test "$RPCGEN_PATH" = ""])
135 [AC_HELP_STRING([--disable-uuid], [Exclude uuid support to avoid buggy libblkid])],
136 if test "$enableval" = "yes" ; then choose_blkid=yes; else choose_blkid=no; fi,
137 choose_blkid=default)
139 [AC_HELP_STRING([--enable-mount],
140 [Create mount.nfs and do not use the util-linux mount(8) functionality. @<:@default=yes@:>@])],
141 enable_mount=$enableval,
143 AM_CONDITIONAL(CONFIG_MOUNT, [test "$enable_mount" = "yes"])
145 if test "$enable_mount" = yes; then
146 AC_ARG_ENABLE(libmount-mount,
147 [AC_HELP_STRING([--enable-libmount-mount],
148 [Link mount.nfs with libmount (EXPERIMENTAL)])],
149 enable_libmount=$enableval,
154 [AC_HELP_STRING([--enable-tirpc],
155 [enable use of TI-RPC @<:@default=yes@:>@])],
156 enable_tirpc=$enableval,
159 [AC_HELP_STRING([--enable-ipv6],
160 [enable support for IPv6 @<:@default=no@:>@])],
161 enable_ipv6=$enableval,
163 if test "$enable_ipv6" = yes; then
164 AC_DEFINE(IPV6_SUPPORTED, 1, [Define this if you want IPv6 support compiled in])
168 AC_SUBST(enable_ipv6)
169 AM_CONDITIONAL(CONFIG_IPV6, [test "$enable_ipv6" = "yes"])
171 if test "$enable_mount" = yes; then
172 AC_ARG_ENABLE(mountconfig,
173 [AC_HELP_STRING([--enable-mountconfig],
174 [enable mount to use a configuration file])],
175 mountconfig=$enableval,
177 if test "$enable_mountconfig" = yes; then
178 AC_DEFINE(MOUNT_CONFIG, 1,
179 [Define this if you want mount to read a configuration file])
180 AC_ARG_WITH(mountfile,
181 [AC_HELP_STRING([--with-mountfile=filename],
182 [Using filename as the NFS mount options file [/etc/nfsmounts.conf]]
185 mountfile=/etc/nfsmount.conf)
187 AC_DEFINE_UNQUOTED(MOUNTOPTS_CONFFILE, "$mountfile",
188 [This defines the location of the NFS mount configuration file])
192 AC_SUBST(enable_mountconfig)
193 AM_CONDITIONAL(MOUNT_CONFIG, [test "$enable_mountconfig" = "yes"])
195 AM_CONDITIONAL(MOUNT_CONFIG, [test "$enable_mount" = "yes"])
198 dnl Check for TI-RPC library and headers
204 # Check whether user wants TCP wrappers support
207 # Arrange for large-file support
210 AC_CONFIG_SRCDIR([support/include/config.h.in])
211 AC_CONFIG_HEADERS([support/include/config.h])
213 # Checks for programs.
223 if test "x$cross_compiling" = "xno"; then
224 CC_FOR_BUILD=${CC_FOR_BUILD-${CC-gcc}}
226 CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
229 AC_SUBST(CC_FOR_BUILD)
231 AC_CHECK_TOOL(AR, ar)
232 AC_CHECK_TOOL(LD, ld)
238 dnl *************************************************************
239 dnl * Check for required libraries
240 dnl *************************************************************
242 AC_CHECK_FUNC([gethostbyname], ,
243 [AC_CHECK_LIB([nsl], [gethostbyname], [LIBNSL="-lnsl"])])
246 AC_CHECK_FUNC([connect], ,
247 [AC_CHECK_LIB([socket], [connect], [LIBSOCKET="-lsocket"],
248 [AC_MSG_ERROR([Function 'socket' not found.])], [$LIBNSL])])
250 AC_CHECK_FUNC([getaddrinfo], ,
251 [AC_MSG_ERROR([Function 'getaddrinfo' not found.])])
253 AC_CHECK_FUNC([getrpcbynumber], ,
254 [AC_MSG_ERROR([Function 'getrpcbynumber' not found.])])
256 AC_CHECK_FUNC([getservbyname], ,
257 [AC_MSG_ERROR([Function 'getservbyname' not found.])])
259 AC_CHECK_LIB([crypt], [crypt], [LIBCRYPT="-lcrypt"])
261 if test "$enable_nfsv4" = yes; then
262 dnl check for libevent libraries and headers
265 dnl check for nfsidmap libraries and headers
268 dnl check for the keyutils libraries and headers
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
277 dnl enable nfsidmap when its support by libnfsidmap
278 AM_CONDITIONAL(CONFIG_NFSIDMAP, [test "$ac_cv_header_keyutils_h$ac_cv_lib_nfsidmap_nfs4_owner_to_uid" = "yesyes"])
281 if test "$knfsd_cv_glibc2" = no; then
282 AC_CHECK_LIB(bsd, daemon, [LIBBSD="-lbsd"])
285 if test "$choose_blkid" != no; then
286 AC_CHECK_LIB(blkid, blkid_get_library_version, [LIBBLKID="-lblkid"], AC_MSG_ERROR([libblkid needed]))
287 AC_CHECK_HEADER(blkid/blkid.h, , AC_MSG_ERROR([Cannot find libblkid header file blkid/blkid.h]))
289 if test $choose_blkid = yes; then
291 test $libblkid_cv_is_recent = no && AC_MSG_WARN([libblkid is old and may cause mountd to leak memory])
293 if test $libblkid_cv_is_recent = yes
296 AC_MSG_WARN([uuid support disabled as libblkid is too old])
299 AC_DEFINE_UNQUOTED(USE_BLKID, $use_blkid, [Define if you want to use blkid to find uuid of filesystems])
306 if test "$enable_libmount" != no; then
307 AC_CHECK_LIB(mount, mnt_context_do_mount, [LIBMOUNT="-lmount"], AC_MSG_ERROR([libmount needed]))
308 AC_CHECK_HEADER(libmount/libmount.h, , AC_MSG_ERROR([Cannot find libmount header file libmount/libmount.h]))
310 AM_CONDITIONAL(CONFIG_LIBMOUNT, [test "$enable_libmount" = "yes"])
313 if test "$enable_gss" = yes; then
314 dnl 'gss' requires getnameinfo - at least for gssd_proc.c
315 AC_CHECK_FUNC([getnameinfo], , [AC_MSG_ERROR([GSSAPI support requires 'getnameinfo' function])])
317 dnl 'gss' also depends on nfsidmap.h - at least for svcgssd_proc.c
320 AC_CHECK_HEADERS([spkm3.h], ,
321 [AC_MSG_WARN([Could not locate SPKM3 header; will not have SPKM3 support])])
323 dnl Check for Kerberos V5
326 dnl Invoked after AC_KERBEROS_V5; AC_LIBRPCSECGSS needs to have KRBLIBS set
331 dnl Check for IPv6 support
334 dnl *************************************************************
335 dnl Check for headers
336 dnl *************************************************************
337 AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h \
338 malloc.h memory.h netdb.h netinet/in.h paths.h \
339 stdlib.h string.h sys/file.h sys/ioctl.h sys/mount.h \
340 sys/param.h sys/socket.h sys/time.h sys/vfs.h \
341 syslog.h unistd.h com_err.h et/com_err.h \
344 dnl *************************************************************
345 dnl Checks for typedefs, structures, and compiler characteristics
346 dnl *************************************************************
356 dnl *************************************************************
357 dnl Check for functions
358 dnl *************************************************************
360 AC_FUNC_CLOSEDIR_VOID
361 AC_FUNC_ERROR_AT_LINE
365 AC_PROG_GCC_TRADITIONAL
367 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
372 AC_FUNC_SELECT_ARGTYPES
376 AC_CHECK_FUNCS([alarm atexit dup2 fdatasync ftruncate getcwd \
377 gethostbyaddr gethostbyname gethostname getmntent \
378 getnameinfo getrpcbyname getifaddrs \
379 gettimeofday hasmntopt inet_ntoa innetgr memset mkdir pathconf \
380 realpath rmdir select socket strcasecmp strchr strdup \
381 strerror strrchr strtol strtoul sigprocmask])
384 dnl *************************************************************
385 dnl Check for data sizes
386 dnl *************************************************************
387 AC_CHECK_SIZEOF(short)
389 AC_CHECK_SIZEOF(long)
390 AC_CHECK_SIZEOF(size_t)
391 AC_CHECK_SIZEOF(socklen_t)
394 dnl *************************************************************
395 dnl Export some path names to config.h
396 dnl *************************************************************
397 AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir", [This defines the location of the NFS state files. Warning: this must match definitions in config.mk!])
398 AC_DEFINE_UNQUOTED(NSM_DEFAULT_STATEDIR, "$statdpath", [Define this to the pathname where statd keeps its state file])
400 if test "x$cross_compiling" = "xno"; then
401 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-"$CFLAGS"}
402 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-"$CXXFLAGS"}
403 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"}
404 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-"$LDFLAGS"}
406 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-""}
407 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-""}
408 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
409 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
417 AC_SUBST(CFLAGS_FOR_BUILD)
418 AC_SUBST(CXXFLAGS_FOR_BUILD)
419 AC_SUBST(CPPFLAGS_FOR_BUILD)
420 AC_SUBST(LDFLAGS_FOR_BUILD)
422 dnl *************************************************************
423 dnl Set up "global" CFLAGS
424 dnl *************************************************************
425 dnl Use architecture-specific compile flags
426 dnl (We use $host and not $build in case we are cross-compiling)
427 dnl *************************************************************
428 dnl Note: we no longer have arch specific compile flags, but
429 dnl the stub is left here in case they are needed one day.
435 my_am_cflags="-Wall -Wextra -Wstrict-prototypes $ARCHFLAGS -pipe"
437 AC_SUBST([AM_CFLAGS], ["$my_am_cflags"])
439 # Make sure that $ACLOCAL_FLAGS are used during a rebuild
440 AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
446 support/export/Makefile
447 support/include/nfs/Makefile
448 support/include/rpcsvc/Makefile
449 support/include/sys/fs/Makefile
450 support/include/sys/Makefile
451 support/include/Makefile
452 support/misc/Makefile
456 tools/locktest/Makefile
457 tools/nlmtest/Makefile
458 tools/rpcdebug/Makefile
459 tools/rpcgen/Makefile
460 tools/mountstats/Makefile
461 tools/nfs-iostat/Makefile
463 utils/exportfs/Makefile
465 utils/idmapd/Makefile
467 utils/mountd/Makefile
469 utils/nfsstat/Makefile
470 utils/nfsidmap/Makefile
471 utils/showmount/Makefile
474 tests/nsm_client/Makefile])