1 dnl This file contains the common configuration code which would
2 dnl otherwise be duplicated between configure and configure-libafs.
4 dnl NB: Because this code is a macro, references to positional shell
5 dnl parameters must be done like $[]1 instead of $1
7 AC_DEFUN([OPENAFS_CONFIGURE_COMMON],[
12 #BOZO_SAVE_CORES pam sia
15 AC_ARG_WITH([afs-sysname],
16 [AS_HELP_STRING([--with-afs-sysname=sys], [use sys for the afs sysname])])
18 dnl General feature options.
19 AC_ARG_ENABLE([afsdb],
20 [AS_HELP_STRING([--disable-afsdb], [disable AFSDB DNS RR support])],
23 AC_ARG_ENABLE([obsolete],
24 [AC_HELP_STRING([--enable-obsolete],
25 [enable obsolete portions of AFS (mpp and package)])],
27 [enable_obsolete="no"])
29 [AS_HELP_STRING([--disable-pam], [disable PAM support])],
32 AC_ARG_ENABLE([bos-restricted-mode],
33 [AS_HELP_STRING([--enable-bos-restricted-mode],
34 [enable bosserver restricted mode which disables certain bosserver
37 [enable_bos_restricted_mode="no"])
38 AC_ARG_ENABLE([bos-new-config],
39 [AS_HELP_STRING([--enable-bos-new-config],
40 [enable bosserver pickup of BosConfig.new on restarts])],
42 [enable_bos_new_config="no"])
43 AC_ARG_ENABLE([largefile-fileserver],
44 [AS_HELP_STRING([--disable-largefile-fileserver],
45 [disable large file support in fileserver])],
47 [enable_largefile_fileserver="yes"])
48 AC_ARG_ENABLE([namei-fileserver],
49 [AS_HELP_STRING([--enable-namei-fileserver],
50 [force compilation of namei fileserver in preference to inode
53 [enable_namei_fileserver="default"])
54 AC_ARG_ENABLE([cache-bypass],
55 [AS_HELP_STRING([--enable-cache-bypass],
56 [enable client support for cache bypass])],
58 [enable_cache_bypass="no"])
59 AC_ARG_ENABLE([supergroups],
60 [AS_HELP_STRING([--enable-supergroups],
61 [enable support for nested pts groups])],
63 [enable_supergroups="no"])
64 AC_ARG_ENABLE([fast-restart],
65 [AS_HELP_STRING([--enable-fast-restart],
66 [enable fast startup of file server without salvaging])],
68 [enable_fast_restart="no"])
69 AC_ARG_ENABLE([bitmap-later],
70 [AS_HELP_STRING([--enable-bitmap-later],
71 [enable fast startup of file server by not reading bitmap till
74 [enable_bitmap_later="no"])
75 AC_ARG_ENABLE([demand-attach-fs],
76 [AS_HELP_STRING([--enable-demand-attach-fs],
77 [enable Demand Attach Fileserver (please see documentation)])],
79 [enable_demand_attach_fs="no"])
80 AC_ARG_ENABLE([disconnected],
81 [AS_HELP_STRING([--enable-disconnected],
82 [enable disconnected support in cache manager (experimental)])],
84 [enable_disconnected="no"])
85 AC_ARG_ENABLE([unix-sockets],
86 [AS_HELP_STRING([--enable-unix-sockets],
87 [enable use of unix domain sockets for fssync])],
89 [enable_unix_sockets="yes"])
90 AC_ARG_ENABLE([full-vos-listvol-switch],
91 [AS_HELP_STRING([--disable-full-vos-listvol-switch],
92 [disable vos full listvol switch for formatted output])],
94 [enable_full_vos_listvol_switch="yes"])
95 AC_ARG_ENABLE([icmp-pmtu-discovery],
96 [AS_HELP_STRING([--enable-icmp-pmtu-discovery],
97 [enable path MTU discovery by decoding ICMP unreachable replies])],
99 [enable_icmp_pmtu_discovery="no"])
100 AC_ARG_ENABLE([tivoli-tsm],
101 [AS_HELP_STRING([--enable-tivoli-tsm],
102 [enable use of the Tivoli TSM API libraries for butc support])],
104 [enable_tivoli_tsm="no"])
105 AC_ARG_ENABLE([pthreaded-ubik],
106 [AS_HELP_STRING([--enable-pthreaded-ubik],
107 [enable installation of pthreaded ubik applications (defaults to
110 [enable_pthreaded_ubik="no"])
112 dnl Kernel module build options.
113 AC_ARG_WITH([dux-kernel-headers],
114 [AS_HELP_STRING([--with-dux-kernel-headers=path],
115 [use the kernel headers found at path (optional, defaults to first
116 match in /usr/sys)])])
117 AC_ARG_WITH([linux-kernel-headers],
118 [AS_HELP_STRING([--with-linux-kernel-headers=path],
119 [use the kernel headers found at path (optional, defaults to
120 /usr/src/linux-2.4, then /usr/src/linux)])])
121 AC_ARG_WITH([bsd-kernel-headers],
122 [AS_HELP_STRING([--with-bsd-kernel-headers=path],
123 [use the kernel headers found at path (optional, defaults to
125 AC_ARG_WITH([bsd-kernel-build],
126 [AS_HELP_STRING([--with-bsd-kernel-build=path],
127 [use the kernel build found at path (optional, defaults to
128 KSRC/i386/compile/GENERIC)])])
129 AC_ARG_WITH([linux-kernel-packaging],
130 [AS_HELP_STRING([--with-linux-kernel-packaging],
131 [use standard naming conventions to aid Linux kernel build packaging
132 (disables MPS, sets the kernel module name to openafs.ko, and
133 installs kernel modules into the standard Linux location)])],
134 [AC_SUBST(LINUX_KERNEL_PACKAGING, "yes")
135 AC_SUBST(LINUX_LIBAFS_NAME, "openafs")],
136 [AC_SUBST(LINUX_LIBAFS_NAME, "libafs")])
137 AC_ARG_ENABLE([kernel-module],
138 [AS_HELP_STRING([--disable-kernel-module],
139 [disable compilation of the kernel module (defaults to enabled)])],
141 [enable_kernel_module="yes"])
142 AC_ARG_ENABLE([redhat-buildsys],
143 [AS_HELP_STRING([--enable-redhat-buildsys],
144 [enable compilation of the redhat build system kernel (defaults to
147 [enable_redhat_buildsys="no"])
149 dnl Installation locations.
150 AC_ARG_ENABLE([transarc-paths],
151 [AS_HELP_STRING([--enable-transarc-paths],
152 [use Transarc style paths like /usr/afs and /usr/vice])],
154 [enable_transarc_paths="no"])
156 dnl Optimization and debugging flags.
157 AC_ARG_ENABLE([strip-binaries],
158 [AS_HELP_STRING([--disable-strip-binaries],
159 [disable stripping of symbol information from binaries (defaults to
162 [enable_strip_binaries="maybe"])
163 AC_ARG_ENABLE([debug],
164 [AS_HELP_STRING([--enable-debug],
165 [enable compilation of the user space code with debugging information
166 (defaults to disabled)])],
169 AC_ARG_ENABLE([optimize],
170 [AS_HELP_STRING([--disable-optimize],
171 [disable optimization for compilation of the user space code (defaults
174 [enable_optimize="yes"])
175 AC_ARG_ENABLE([warnings],
176 [AS_HELP_STRING([--enable-warnings],
177 [enable compilation warnings when building with gcc (defaults to
180 [enable_warnings="no"])
181 AC_ARG_ENABLE([debug-kernel],
182 [AS_HELP_STRING([--enable-debug-kernel],
183 [enable compilation of the kernel module with debugging information
184 (defaults to disabled)])],
186 [enable_debug_kernel="no"])
187 AC_ARG_ENABLE([optimize-kernel],
188 [AS_HELP_STRING([--disable-optimize-kernel],
189 [disable compilation of the kernel module with optimization (defaults
190 based on platform)])],
192 [enable_optimize_kernel="yes"])
193 AC_ARG_ENABLE([debug-lwp],
194 [AS_HELP_STRING([--enable-debug-lwp],
195 [enable compilation of the LWP code with debugging information
196 (defaults to disabled)])],
198 [enable_debug_lwp="no"])
199 AC_ARG_ENABLE([optimize-lwp],
200 [AS_HELP_STRING([--disable-optimize-lwp],
201 [disable optimization for compilation of the LWP code (defaults to
204 [enable_optimize_lwp="yes"])
205 AC_ARG_ENABLE([debug-pam],
206 [AS_HELP_STRING([--enable-debug-pam],
207 [enable compilation of the PAM code with debugging information
208 (defaults to disabled)])],
210 [enable_debug_pam="no"])
211 AC_ARG_ENABLE([optimize-pam],
212 [AS_HELP_STRING([--disable-optimize-pam],
213 [disable optimization for compilation of the PAM code (defaults to
216 [enable_optimize_pam="yes"])
221 dnl weird ass systems
226 dnl Various compiler setup.
230 COMPILER_HAS_FUNCTION_MACRO
232 dnl Checks for programs.
239 OPENAFS_CHECK_BIGENDIAN
241 AC_MSG_CHECKING(your OS)
247 if test "x$enable_redhat_buildsys" = "xyes"; then
248 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
250 if test "x$enable_kernel_module" = "xyes"; then
251 if test "x$with_linux_kernel_headers" != "x"; then
252 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
254 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/source"
255 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
256 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
258 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
259 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
261 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
262 LINUX_KERNEL_PATH="/usr/src/linux"
265 if test -f "$LINUX_KERNEL_PATH/include/linux/utsrelease.h"; then
266 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
267 LINUX_VERSION="$linux_kvers"
269 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
270 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
271 if test "x$linux_kvers" = "x"; then
272 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
273 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
274 if test "x$linux_kvers" = "x"; then
276 AC_MSG_ERROR(Linux headers lack version definition [2])
279 LINUX_VERSION="$linux_kvers"
282 AC_MSG_ERROR(Linux headers lack version definition)
286 LINUX_VERSION="$linux_kvers"
289 enable_kernel_module="no"
292 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
293 enable_kernel_module="no"
295 if test "x$enable_kernel_module" = "xno"; then
296 if test "x$with_linux_kernel_headers" != "x"; then
297 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
300 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
303 dnl do we need to determine SUBARCH from autoconf.h
307 if test "x$enable_kernel_module" = "xyes"; then
308 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
309 if test "x${AFS_SYSKVERS}" = "x"; then
310 AC_MSG_ERROR(Couldn't guess your Linux version [2])
317 SOLARIS_UFSVFS_HAS_DQRWLOCK
318 SOLARIS_PROC_HAS_P_COREFILE
319 SOLARIS_FS_HAS_FS_ROLLED
323 enable_kernel_module=no
329 if test -f "/usr/old/usr/include/ndir.h"; then
330 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
334 if test -d /usr/include/sys/SN/SN1; then
335 IRIX_BUILD_IP35="IP35"
342 AC_MSG_RESULT(rs_aix)
346 AC_MSG_RESULT(alpha_dux)
347 if test "x$enable_kernel_module" = "xyes"; then
348 if test "x$with_dux_kernel_headers" != "x"; then
349 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
351 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
354 if test "$HEADER_RT" = "*" ; then
355 AC_MSG_ERROR([Need a configured kernel directory])
357 AC_SUBST([HEADER_RT])
361 AC_MSG_RESULT(ppc_darwin)
365 AC_MSG_RESULT(x86_darwin)
369 AC_MSG_RESULT(i386_fbsd)
377 AC_MSG_RESULT(i386_obsd)
380 AC_MSG_RESULT($system)
384 if test "x$with_afs_sysname" != "x"; then
385 AFS_SYSNAME="$with_afs_sysname"
387 AC_MSG_CHECKING(your AFS sysname)
393 AFS_SYSNAME="i386_obsd${vM}${vm}"
395 sparc64-*-openbsd?.?)
399 AFS_SYSNAME="sparc64_obsd${vM}${vm}"
405 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
408 AFS_PARAM_COMMON=param.nbsd15.h
409 AFS_SYSNAME="i386_nbsd15"
412 AFS_PARAM_COMMON=param.nbsd15.h
413 AFS_SYSNAME="alpha_nbsd15"
415 i?86-*-netbsd*1.6[[M-Z]]*)
416 AFS_PARAM_COMMON=param.nbsd20.h
417 AFS_SYSNAME="i386_nbsd20"
419 powerpc-*-netbsd*1.6[[M-Z]]*)
420 AFS_PARAM_COMMON=param.nbsd20.h
421 AFS_SYSNAME="ppc_nbsd20"
424 AFS_PARAM_COMMON=param.nbsd20.h
425 AFS_SYSNAME="i386_nbsd20"
428 AFS_PARAM_COMMON=param.nbsd20.h
429 AFS_SYSNAME="amd64_nbsd20"
431 x86_64-*-netbsd*3.[0-8]*)
432 AFS_PARAM_COMMON=param.nbsd30.h
433 AFS_SYSNAME="amd64_nbsd30"
435 x86_64-*-netbsd*4.[0-8]*)
436 AFS_PARAM_COMMON=param.nbsd40.h
437 AFS_SYSNAME="amd64_nbsd40"
439 powerpc-*-netbsd*2.0*)
440 AFS_PARAM_COMMON=param.nbsd20.h
441 AFS_SYSNAME="ppc_nbsd20"
444 AFS_PARAM_COMMON=param.nbsd16.h
445 AFS_SYSNAME="i386_nbsd16"
448 AFS_PARAM_COMMON=param.nbsd16.h
449 AFS_SYSNAME="alpha_nbsd16"
451 powerpc-*-netbsd*1.6*)
452 AFS_PARAM_COMMON=param.nbsd16.h
453 AFS_SYSNAME="ppc_nbsd16"
456 AFS_PARAM_COMMON=param.nbsd21.h
457 AFS_SYSNAME="i386_nbsd21"
460 AFS_PARAM_COMMON=param.nbsd30.h
461 AFS_SYSNAME="i386_nbsd30"
463 i?86-*-netbsd*3.[[0-8]]*)
464 AFS_PARAM_COMMON=param.nbsd30.h
465 AFS_SYSNAME="i386_nbsd30"
468 AFS_PARAM_COMMON=param.nbsd30.h
469 AFS_SYSNAME="i386_nbsd30"
471 i?86-*-netbsd*4.[[0-8]]*)
472 AFS_PARAM_COMMON=param.nbsd40.h
473 AFS_SYSNAME="i386_nbsd40"
476 AFS_PARAM_COMMON=param.nbsd40.h
477 AFS_SYSNAME="i386_nbsd40"
480 AFS_SYSNAME="hp_ux110"
483 AFS_SYSNAME="hp_ux11i"
486 AFS_SYSNAME="hp_ux1123"
489 AFS_SYSNAME="ia64_hpux1122"
492 AFS_SYSNAME="ia64_hpux1123"
495 AFS_SYSNAME="hp_ux102"
497 powerpc-apple-darwin1.2*)
498 AFS_SYSNAME="ppc_darwin_12"
500 powerpc-apple-darwin1.3*)
501 AFS_SYSNAME="ppc_darwin_13"
503 powerpc-apple-darwin1.4*)
504 AFS_SYSNAME="ppc_darwin_14"
506 powerpc-apple-darwin5.1*)
507 AFS_SYSNAME="ppc_darwin_14"
509 powerpc-apple-darwin5.2*)
510 AFS_SYSNAME="ppc_darwin_14"
512 powerpc-apple-darwin5.3*)
513 AFS_SYSNAME="ppc_darwin_14"
515 powerpc-apple-darwin5.4*)
516 AFS_SYSNAME="ppc_darwin_14"
518 powerpc-apple-darwin5.5*)
519 AFS_SYSNAME="ppc_darwin_14"
521 powerpc-apple-darwin6.0*)
522 AFS_SYSNAME="ppc_darwin_60"
524 powerpc-apple-darwin6.1*)
525 AFS_SYSNAME="ppc_darwin_60"
527 powerpc-apple-darwin6.2*)
528 AFS_SYSNAME="ppc_darwin_60"
530 powerpc-apple-darwin6.3*)
531 AFS_SYSNAME="ppc_darwin_60"
533 powerpc-apple-darwin6.4*)
534 AFS_SYSNAME="ppc_darwin_60"
536 powerpc-apple-darwin6.5*)
537 AFS_SYSNAME="ppc_darwin_60"
539 powerpc-apple-darwin7.0*)
540 AFS_SYSNAME="ppc_darwin_70"
542 powerpc-apple-darwin7.1*)
543 AFS_SYSNAME="ppc_darwin_70"
545 powerpc-apple-darwin7.2*)
546 AFS_SYSNAME="ppc_darwin_70"
548 powerpc-apple-darwin7.3*)
549 AFS_SYSNAME="ppc_darwin_70"
551 powerpc-apple-darwin7.4*)
552 AFS_SYSNAME="ppc_darwin_70"
554 powerpc-apple-darwin7.5*)
555 AFS_SYSNAME="ppc_darwin_70"
557 powerpc-apple-darwin8.0*)
558 AFS_SYSNAME="ppc_darwin_80"
560 powerpc-apple-darwin8.*)
561 AFS_SYSNAME="ppc_darwin_80"
563 i386-apple-darwin8.*)
564 AFS_SYSNAME="x86_darwin_80"
566 powerpc-apple-darwin9.*)
567 AFS_SYSNAME="ppc_darwin_90"
569 i386-apple-darwin9.*)
570 AFS_SYSNAME="x86_darwin_90"
572 sparc-sun-solaris2.5*)
573 AFS_SYSNAME="sun4x_55"
576 sparc-sun-solaris2.6)
577 AFS_SYSNAME="sun4x_56"
579 sparc-sun-solaris2.7)
580 AFS_SYSNAME="sun4x_57"
582 sparc-sun-solaris2.8)
583 AFS_SYSNAME="sun4x_58"
585 sparc-sun-solaris2.9)
586 AFS_SYSNAME="sun4x_59"
588 sparc-sun-solaris2.10)
589 AFS_SYSNAME="sun4x_510"
591 sparc-sun-solaris2.11)
592 AFS_SYSNAME="sun4x_511"
595 AFS_SYSNAME="sun4_413"
599 AFS_SYSNAME="sunx86_57"
602 AFS_SYSNAME="sunx86_58"
605 AFS_SYSNAME="sunx86_59"
608 AFS_SYSNAME="sunx86_510"
611 AFS_SYSNAME="sunx86_511"
614 AFS_SYSNAME="alpha_dux40"
617 AFS_SYSNAME="alpha_dux50"
620 AFS_SYSNAME="alpha_dux51"
626 AFS_SYSNAME="ia64_linuxXX"
629 AFS_SYSNAME="`/bin/arch`_linuxXX"
632 AFS_SYSNAME="ppc64_linuxXX"
635 AFS_SYSNAME="alpha_linux_XX"
638 AFS_SYSNAME="s390_linuxXX"
641 AFS_SYSNAME="s390x_linuxXX"
644 AFS_SYSNAME="`/bin/arch`_linuxXX"
647 AFS_SYSNAME="sparc64_linuxXX"
650 AFS_SYSNAME="i386_linuxXX"
652 parisc-*-linux-gnu|hppa-*-linux-gnu)
653 AFS_SYSNAME="parisc_linuxXX"
657 AFS_SYSNAME="rs_aix42"
661 AFS_SYSNAME="rs_aix42"
665 AFS_SYSNAME="rs_aix51"
669 AFS_SYSNAME="rs_aix52"
673 AFS_SYSNAME="rs_aix53"
677 AFS_SYSNAME="rs_aix61"
681 AFS_SYSNAME="amd64_linuxXX"
685 AC_MSG_ERROR(An AFS sysname is required)
690 *_linux* | *_umlinux*)
691 if test "x${AFS_SYSKVERS}" = "x"; then
692 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
694 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
695 AFS_SYSNAME="$_AFS_SYSNAME"
696 save_CPPFLAGS="$CPPFLAGS"
697 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
699 [#include <linux/autoconf.h>],
700 [#ifndef CONFIG_USERMODE
703 ac_cv_linux_is_uml=yes,)
704 if test "${ac_cv_linux_is_uml}" = yes; then
705 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
707 CPPFLAGS="$save_CPPFLAGS"
708 AFS_SYSNAME="$_AFS_SYSNAME"
711 AC_MSG_RESULT($AFS_SYSNAME)
714 case $AFS_SYSNAME in *_linux* | *_umlinux*)
716 # Add (sub-) architecture-specific paths needed by conftests
719 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
720 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
721 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
722 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
725 if test "x$enable_kernel_module" = "xyes"; then
726 if test "x$enable_debug_kernel" = "xno"; then
727 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
729 OPENAFS_GCC_SUPPORTS_MARCH
730 AC_SUBST(P5PLUS_KOPTS)
731 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
732 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
733 OPENAFS_GCC_SUPPORTS_NO_COMMON
734 OPENAFS_GCC_SUPPORTS_PIPE
735 AC_SUBST(LINUX_GCC_KOPTS)
736 ifdef([OPENAFS_CONFIGURE_LIBAFS],
737 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
738 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
741 LINUX_KBUILD_USES_EXTRA_CFLAGS
742 LINUX_KERNEL_COMPILE_WORKS
743 LINUX_EXPORTS_FIND_TASK_BY_PID
744 LINUX_EXPORTS_PROC_ROOT_FS
745 LINUX_HAVE_CURRENT_KERNEL_TIME
746 LINUX_KMEM_CACHE_INIT
747 LINUX_HAVE_KMEM_CACHE_T
748 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
749 LINUX_D_PATH_TAKES_STRUCT_PATH
751 LINUX_CONFIG_H_EXISTS
752 LINUX_COMPLETION_H_EXISTS
753 LINUX_SEMAPHORE_H_EXISTS
754 LINUX_EXPORTFS_H_EXISTS
755 LINUX_DEFINES_FOR_EACH_PROCESS
756 LINUX_DEFINES_PREV_TASK
757 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
758 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
759 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
760 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
761 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
762 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
763 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
764 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
765 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
766 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
767 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
768 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
769 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
770 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
771 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
772 LINUX_INODE_SETATTR_RETURN_TYPE
773 LINUX_WRITE_INODE_RETURN_TYPE
774 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
775 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
776 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
777 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
778 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
779 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
780 LINUX_AOP_WRITEBACK_CONTROL
781 LINUX_FS_STRUCT_FOP_HAS_FLOCK
782 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
783 LINUX_FS_STRUCT_FOP_HAS_SPLICE
784 LINUX_KERNEL_LINUX_SYSCALL_H
785 LINUX_KERNEL_LINUX_SEQ_FILE_H
786 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
788 LINUX_KERNEL_SOCK_CREATE
789 LINUX_KERNEL_PAGE_FOLLOW_LINK
790 LINUX_KERNEL_HLIST_UNHASHED
791 LINUX_KEY_TYPE_H_EXISTS
793 LINUX_RECALC_SIGPENDING_ARG_TYPE
794 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
795 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
796 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
797 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
798 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
799 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
800 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
801 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
802 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
803 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
804 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
805 LINUX_EXPORTS_TASKLIST_LOCK
806 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
807 LINUX_STATFS_TAKES_DENTRY
808 LINUX_FREEZER_H_EXISTS
809 LINUX_HAVE_SVC_ADDR_IN
810 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
811 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
814 LINUX_LINUX_KEYRING_SUPPORT
815 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
817 LINUX_GENERIC_FILE_AIO_READ
818 LINUX_INIT_WORK_HAS_DATA
819 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
820 LINUX_SYSCTL_TABLE_CHECKING
822 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
823 LINUX_EXPORTS_INIT_MM
824 LINUX_EXPORTS_SYS_CHDIR
825 LINUX_EXPORTS_SYS_CLOSE
826 LINUX_EXPORTS_SYS_OPEN
827 LINUX_EXPORTS_SYS_WAIT4
828 LINUX_EXPORTS_RCU_READ_LOCK
829 if test "x$with_linux_kernel_packaging" = "xno" ; then
834 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
835 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
836 ac_cv_linux_exports_sys_call_table=no
837 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
838 ac_cv_linux_exports_ia32_sys_call_table=yes
841 LINUX_EXPORTS_KALLSYMS_ADDRESS
842 LINUX_EXPORTS_KALLSYMS_SYMBOL
843 LINUX_EXPORTS_SYS_CALL_TABLE
844 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
845 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
846 linux_syscall_method=none
847 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
848 linux_syscall_method=scan
849 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
850 linux_syscall_method=scan_with_kallsyms_address
853 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
854 linux_syscall_method=kallsyms_symbol
856 if test "x$linux_syscall_method" = "xnone"; then
857 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
858 linux_syscall_method=scan
862 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
863 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
865 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
866 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
868 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
869 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
871 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
872 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
874 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
875 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
877 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
878 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
880 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
881 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
883 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
884 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
886 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
887 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
889 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
890 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
892 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
893 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
895 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
896 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
898 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
899 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
901 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
902 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
904 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
905 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
907 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
908 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
910 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
911 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
913 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
914 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
916 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
917 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
919 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
920 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
922 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
923 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
925 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
926 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
928 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
929 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
931 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
932 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
934 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
935 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
937 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
938 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
940 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
941 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
943 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
944 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
946 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
947 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
949 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
950 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
952 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
953 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
955 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
956 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
958 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
959 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
961 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
962 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
964 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
965 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
967 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
968 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
970 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
971 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
973 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
974 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
976 if test "x$ac_linux_syscall" = "xyes" ; then
977 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
979 if test "x$ac_linux_seq_file" = "xyes" ; then
980 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
982 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
983 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
985 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
986 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
988 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
989 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
991 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
992 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
994 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
995 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
997 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
998 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
1000 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
1001 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
1003 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
1004 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
1006 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
1007 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
1009 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
1010 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
1012 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
1013 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
1015 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
1016 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
1018 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
1019 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
1021 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
1022 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
1024 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
1025 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
1027 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1028 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1030 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1031 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1033 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1034 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1036 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1037 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1039 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1040 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1042 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1043 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1045 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1046 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1048 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1049 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1051 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1052 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1054 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1055 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1057 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1058 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1060 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1061 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1063 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1064 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1066 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1067 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1069 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1070 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1072 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1073 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1075 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1076 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1078 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1079 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1081 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1082 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1084 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1085 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1087 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1089 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1090 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1096 case $AFS_SYSNAME in
1098 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1099 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1100 dnl the test below fails on darwin, even if the CPPFLAGS below
1101 dnl are added. the headers from Kernel.framework must be used
1102 dnl when KERNEL is defined.
1104 dnl really, such a thing isn't guaranteed to work on any
1105 dnl platform until the kernel cflags from MakefileProto are
1106 dnl known to configure
1107 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1110 AC_MSG_CHECKING(for definition of struct buf)
1111 dnl save_CPPFLAGS="$CPPFLAGS"
1112 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1113 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1114 ac_cv_have_struct_buf=no
1116 [#include <sys/buf.h>],
1118 printf("%d\n", sizeof(x));],
1119 ac_cv_have_struct_buf=yes,)
1122 dnl CPPFLAGS="$save_CPPFLAGS"
1123 AC_MSG_RESULT($ac_cv_have_struct_buf)
1124 if test "$ac_cv_have_struct_buf" = yes; then
1125 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1131 AC_CACHE_VAL(ac_cv_sockaddr_len,
1133 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1134 AC_TRY_COMPILE( [#include <sys/types.h>
1135 #include <sys/socket.h>],
1136 [struct sockaddr *a;
1137 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1138 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1139 if test "$ac_cv_sockaddr_len" = "yes"; then
1140 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1142 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1143 echo Skipping library tests because they confuse Irix.
1145 AC_CHECK_FUNCS(socket)
1147 if test "$ac_cv_func_socket" = no; then
1148 for lib in socket inet; do
1149 if test "$HAVE_SOCKET" != 1; then
1150 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1155 AC_CHECK_FUNCS(connect)
1157 if test "$ac_cv_func_connect" = no; then
1159 if test "$HAVE_CONNECT" != 1; then
1160 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1165 AC_CHECK_FUNCS(gethostbyname)
1166 if test "$ac_cv_func_gethostbyname" = no; then
1167 for lib in dns nsl resolv; do
1168 if test "$HAVE_GETHOSTBYNAME" != 1; then
1169 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1174 dnl darwin wants it, aix hates it
1175 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1179 #include <sys/types.h>
1180 #include <sys/socket.h>
1181 #include <netinet/in.h>
1182 #include <arpa/inet.h>
1183 #include <arpa/nameser.h>
1184 #include <arpa/nameser_compat.h>
1186 ], [static int i; i = 0;],
1188 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
1192 openafs_save_libs="$LIBS"
1193 AC_MSG_CHECKING([for res_search])
1196 if test "$ac_cv_func_res_search" = no; then
1197 for lib in dns nsl resolv; do
1198 if test "$ac_cv_func_res_search" != yes; then
1201 LIBS="$openafs_save_libs"
1204 if test "$ac_cv_func_res_search" = yes; then
1205 LIB_res_search="-l$lib"
1206 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1207 AC_MSG_RESULT([yes, in lib$lib])
1212 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1218 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1220 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1221 AC_TRY_COMPILE( [#include <sys/types.h>
1222 #include <sys/socket.h>
1223 #include <netinet/in.h>],
1225 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1226 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1227 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1228 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1232 if test "x$MKAFS_OSTYPE" = OBSD; then
1233 PTHREAD_LIBS="-pthread"
1235 if test "x$PTHREAD_LIBS" = xerror; then
1236 AC_CHECK_LIB(pthread, pthread_attr_init,
1237 PTHREAD_LIBS="-lpthread")
1239 if test "x$PTHREAD_LIBS" = xerror; then
1240 AC_CHECK_LIB(pthreads, pthread_attr_init,
1241 PTHREAD_LIBS="-lpthreads")
1243 if test "x$PTHREAD_LIBS" = xerror; then
1244 AC_CHECK_LIB(c_r, pthread_attr_init,
1245 PTHREAD_LIBS="-lc_r")
1247 if test "x$PTHREAD_LIBS" = xerror; then
1248 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1250 if test "x$PTHREAD_LIBS" = xerror; then
1251 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1252 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1253 PTHREAD_LIBS="-lpthread")
1255 if test "x$PTHREAD_LIBS" = xerror; then
1256 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1258 AC_SUBST(PTHREAD_LIBS)
1261 if test "$enable_obsolete" = "yes"; then
1265 HOST_CPU="$host_cpu"
1267 if test "x$with_bsd_kernel_headers" != "x"; then
1268 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1270 BSD_KERNEL_PATH="/usr/src/sys"
1273 if test "x$with_bsd_kernel_build" != "x"; then
1274 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1276 case $AFS_SYSNAME in
1278 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1281 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1287 if test "$enable_supergroups" = "yes"; then
1288 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1291 if test "$enable_fast_restart" = "yes"; then
1292 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1295 if test "$enable_bitmap_later" = "yes"; then
1296 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1299 if test "$enable_demand_attach_fs" = "yes"; then
1300 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1305 AC_SUBST(DEMAND_ATTACH)
1307 if test "$enable_disconnected" = "yes"; then
1308 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1311 if test "$enable_unix_sockets" = "yes"; then
1312 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1313 USE_UNIX_SOCKETS="yes"
1315 USE_UNIX_SOCKETS="no"
1317 AC_SUBST(USE_UNIX_SOCKETS)
1319 if test "$enable_fast_restart" = "yes" &&
1320 test "$enable_demand_attach_fs" = "yes" ; then
1321 AC_MSG_ERROR([The Demand Attach and Fast Restart extensions are mutually exclusive. Demand Attach fileservers automatically salvage volumes in the background, thereby making Fast Restart pointless.])
1325 if test "$enable_full_vos_listvol_switch" = "yes"; then
1326 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1329 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1330 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1331 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1335 if test "$enable_bos_restricted_mode" = "yes"; then
1336 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1339 if test "$enable_bos_new_config" = "yes"; then
1340 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1343 if test "$enable_largefile_fileserver" = "yes"; then
1344 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1347 if test "$enable_cache_bypass" = "yes"; then
1348 AC_DEFINE(AFS_CACHE_BYPASS, 1, [define to activate cache bypassing Unix client])
1351 if test "$enable_namei_fileserver" = "yes"; then
1352 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1354 if test "$enable_namei_fileserver" = "default"; then
1357 AC_MSG_WARN(Some Solaris 10 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1358 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1361 AC_MSG_WARN(Solaris 11 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1362 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1370 if test "$enable_afsdb" = "yes"; then
1371 LIB_AFSDB="$LIB_res_search"
1372 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1375 dnl check for tivoli
1376 AC_MSG_CHECKING(for tivoli tsm butc support)
1378 if test "$enable_tivoli_tsm" = "yes"; then
1379 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1380 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1381 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1382 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1384 if test -r "$XBSADIR1/xbsa.h"; then
1385 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1387 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1388 elif test -r "$XBSADIR2/xbsa.h"; then
1389 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1391 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1392 elif test -r "$XBSADIR3/dsmapifp.h"; then
1393 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1395 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1396 elif test -r "$XBSADIR4/dsmapifp.h"; then
1397 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1399 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1401 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1406 AC_SUBST(XBSA_CFLAGS)
1407 AC_SUBST(XBSA_XLIBS)
1409 dnl checks for header files.
1413 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1414 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1415 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1416 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1417 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1418 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1419 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1421 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1428 if test "$enable_login" = yes; then
1433 AC_SUBST(BUILD_LOGIN)
1435 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1436 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1437 AC_CHECK_FUNCS(setvbuf vsyslog)
1438 AC_FUNC_SETVBUF_REVERSED
1439 AC_CHECK_FUNCS(regcomp regexec regerror)
1440 AC_MSG_CHECKING([for POSIX regex library])
1441 if test "$ac_cv_header_regex_h" = "yes" && \
1442 test "$ac_cv_func_regcomp" = "yes" && \
1443 test "$ac_cv_func_regexec" = "yes" && \
1444 test "$ac_cv_func_regerror" = "yes"; then
1445 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1451 AC_CHECK_TYPE(ssize_t, int)
1452 AC_SIZEOF_TYPE(long)
1454 AC_CHECK_FUNCS(timegm)
1455 AC_CHECK_FUNCS(daemon)
1457 dnl Directory PATH handling
1458 if test "x$enable_transarc_paths" = "xyes" ; then
1459 afsconfdir=${afsconfdir=/usr/afs/etc}
1460 viceetcdir=${viceetcdir=/usr/vice/etc}
1461 afskerneldir=${afskerneldir=${viceetcdir}}
1462 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1463 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1464 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1465 afsdbdir=${afsdbdir=/usr/afs/db}
1466 afslogsdir=${afslogsdir=/usr/afs/logs}
1467 afslocaldir=${afslocaldir=/usr/afs/local}
1468 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1469 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1471 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1472 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1473 afskerneldir=${afskerneldir='${libdir}/openafs'}
1474 afssrvbindir=${afssrvbindir='${bindir}'}
1475 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1476 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1477 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1478 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1479 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1480 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1481 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1483 AC_SUBST(afsconfdir)
1484 AC_SUBST(viceetcdir)
1485 AC_SUBST(afskerneldir)
1486 AC_SUBST(afssrvbindir)
1487 AC_SUBST(afssrvsbindir)
1488 AC_SUBST(afssrvlibexecdir)
1490 AC_SUBST(afslogsdir)
1491 AC_SUBST(afslocaldir)
1492 AC_SUBST(afsbackupdir)
1493 AC_SUBST(afsbosconfigdir)
1495 if test "x$enable_kernel_module" = "xyes"; then
1496 ENABLE_KERNEL_MODULE=libafs
1499 if test "x$enable_pthreaded_ubik" = "xyes"; then
1500 ENABLE_PTHREADED_UBIK=yes
1503 AC_SUBST(AFS_SYSNAME)
1504 AC_SUBST(AFS_PARAM_COMMON)
1505 AC_SUBST(ENABLE_KERNEL_MODULE)
1506 AC_SUBST(ENABLE_PTHREADED_UBIK)
1508 AC_SUBST(LINUX_KERNEL_PATH)
1510 AC_SUBST(BSD_KERNEL_PATH)
1511 AC_SUBST(BSD_KERNEL_BUILD)
1512 AC_SUBST(LINUX_VERSION)
1513 AC_SUBST(MKAFS_OSTYPE)
1514 AC_SUBST(TOP_OBJDIR)
1515 AC_SUBST(TOP_SRCDIR)
1516 AC_SUBST(TOP_INCDIR)
1517 AC_SUBST(TOP_LIBDIR)
1519 AC_SUBST(WITH_OBSOLETE)
1520 AC_SUBST(DARWIN_INFOFILE)
1521 AC_SUBST(IRIX_BUILD_IP35)
1526 TOP_SRCDIR="${srcdir}/src"
1528 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1534 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1538 TOP_OBJDIR="${SRCDIR_PARENT}"
1539 TOP_INCDIR="${SRCDIR_PARENT}/include"
1540 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1541 if test "${DEST}x" = "x"; then
1542 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1545 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1546 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1547 AC_SUBST(HELPER_SPLINT)
1548 AC_SUBST(HELPER_SPLINTCFG)
1550 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs