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="no"])
54 AC_ARG_ENABLE([supergroups],
55 [AS_HELP_STRING([--enable-supergroups],
56 [enable support for nested pts groups])],
58 [enable_supergroups="no"])
59 AC_ARG_ENABLE([fast-restart],
60 [AS_HELP_STRING([--enable-fast-restart],
61 [enable fast startup of file server without salvaging])],
63 [enable_fast_restart="no"])
64 AC_ARG_ENABLE([bitmap-later],
65 [AS_HELP_STRING([--enable-bitmap-later],
66 [enable fast startup of file server by not reading bitmap till
69 [enable_bitmap_later="no"])
70 AC_ARG_ENABLE([demand-attach-fs],
71 [AS_HELP_STRING([--enable-demand-attach-fs],
72 [enable Demand Attach Fileserver (please see documentation)])],
74 [enable_demand_attach_fs="no"])
75 AC_ARG_ENABLE([disconnected],
76 [AS_HELP_STRING([--enable-disconnected],
77 [enable disconnected support in cache manager (experimental)])],
79 [enable_disconnected="no"])
80 AC_ARG_ENABLE([unix-sockets],
81 [AS_HELP_STRING([--enable-unix-sockets],
82 [enable use of unix domain sockets for fssync])],
84 [enable_unix_sockets="yes"])
85 AC_ARG_ENABLE([full-vos-listvol-switch],
86 [AS_HELP_STRING([--disable-full-vos-listvol-switch],
87 [disable vos full listvol switch for formatted output])],
89 [enable_full_vos_listvol_switch="yes"])
90 AC_ARG_ENABLE([icmp-pmtu-discovery],
91 [AS_HELP_STRING([--enable-icmp-pmtu-discovery],
92 [enable path MTU discovery by decoding ICMP unreachable replies])],
94 [enable_icmp_pmtu_discovery="no"])
95 AC_ARG_ENABLE([tivoli-tsm],
96 [AS_HELP_STRING([--enable-tivoli-tsm],
97 [enable use of the Tivoli TSM API libraries for butc support])],
99 [enable_tivoli_tsm="no"])
100 AC_ARG_ENABLE([pthreaded-ubik],
101 [AS_HELP_STRING([--enable-pthreaded-ubik],
102 [enable installation of pthreaded ubik applications (defaults to
105 [enable_pthreaded_ubik="no"])
107 dnl Kernel module build options.
108 AC_ARG_WITH([dux-kernel-headers],
109 [AS_HELP_STRING([--with-dux-kernel-headers=path],
110 [use the kernel headers found at path (optional, defaults to first
111 match in /usr/sys)])])
112 AC_ARG_WITH([linux-kernel-headers],
113 [AS_HELP_STRING([--with-linux-kernel-headers=path],
114 [use the kernel headers found at path (optional, defaults to
115 /usr/src/linux-2.4, then /usr/src/linux)])])
116 AC_ARG_WITH([bsd-kernel-headers],
117 [AS_HELP_STRING([--with-bsd-kernel-headers=path],
118 [use the kernel headers found at path (optional, defaults to
120 AC_ARG_WITH([bsd-kernel-build],
121 [AS_HELP_STRING([--with-bsd-kernel-build=path],
122 [use the kernel build found at path (optional, defaults to
123 KSRC/i386/compile/GENERIC)])])
124 AC_ARG_WITH([linux-kernel-packaging],
125 [AS_HELP_STRING([--with-linux-kernel-packaging],
126 [use standard naming conventions to aid Linux kernel build packaging
127 (disables MPS, sets the kernel module name to openafs.ko, and
128 installs kernel modules into the standard Linux location)])],
129 [AC_SUBST(LINUX_KERNEL_PACKAGING, "yes")
130 AC_SUBST(LINUX_LIBAFS_NAME, "openafs")],
131 [AC_SUBST(LINUX_LIBAFS_NAME, "libafs")])
132 AC_ARG_ENABLE([kernel-module],
133 [AS_HELP_STRING([--disable-kernel-module],
134 [disable compilation of the kernel module (defaults to enabled)])],
136 [enable_kernel_module="yes"])
137 AC_ARG_ENABLE([redhat-buildsys],
138 [AS_HELP_STRING([--enable-redhat-buildsys],
139 [enable compilation of the redhat build system kernel (defaults to
142 [enable_redhat_buildsys="no"])
144 dnl Installation locations.
145 AC_ARG_ENABLE([transarc-paths],
146 [AS_HELP_STRING([--enable-transarc-paths],
147 [use Transarc style paths like /usr/afs and /usr/vice])],
149 [enable_transarc_paths="no"])
151 dnl Optimization and debugging flags.
152 AC_ARG_ENABLE([strip-binaries],
153 [AS_HELP_STRING([--disable-strip-binaries],
154 [disable stripping of symbol information from binaries (defaults to
157 [enable_strip_binaries="maybe"])
158 AC_ARG_ENABLE([debug],
159 [AS_HELP_STRING([--enable-debug],
160 [enable compilation of the user space code with debugging information
161 (defaults to disabled)])],
164 AC_ARG_ENABLE([optimize],
165 [AS_HELP_STRING([--disable-optimize],
166 [disable optimization for compilation of the user space code (defaults
169 [enable_optimize="yes"])
170 AC_ARG_ENABLE([warnings],
171 [AS_HELP_STRING([--enable-warnings],
172 [enable compilation warnings when building with gcc (defaults to
175 [enable_warnings="no"])
176 AC_ARG_ENABLE([debug-kernel],
177 [AS_HELP_STRING([--enable-debug-kernel],
178 [enable compilation of the kernel module with debugging information
179 (defaults to disabled)])],
181 [enable_debug_kernel="no"])
182 AC_ARG_ENABLE([optimize-kernel],
183 [AS_HELP_STRING([--disable-optimize-kernel],
184 [disable compilation of the kernel module with optimization (defaults
185 based on platform)])],
187 [enable_optimize_kernel="yes"])
188 AC_ARG_ENABLE([debug-lwp],
189 [AS_HELP_STRING([--enable-debug-lwp],
190 [enable compilation of the LWP code with debugging information
191 (defaults to disabled)])],
193 [enable_debug_lwp="no"])
194 AC_ARG_ENABLE([optimize-lwp],
195 [AS_HELP_STRING([--disable-optimize-lwp],
196 [disable optimization for compilation of the LWP code (defaults to
199 [enable_optimize_lwp="yes"])
200 AC_ARG_ENABLE([debug-pam],
201 [AS_HELP_STRING([--enable-debug-pam],
202 [enable compilation of the PAM code with debugging information
203 (defaults to disabled)])],
205 [enable_debug_pam="no"])
206 AC_ARG_ENABLE([optimize-pam],
207 [AS_HELP_STRING([--disable-optimize-pam],
208 [disable optimization for compilation of the PAM code (defaults to
211 [enable_optimize_pam="yes"])
216 dnl weird ass systems
221 dnl Various compiler setup.
225 COMPILER_HAS_FUNCTION_MACRO
227 dnl Checks for programs.
234 OPENAFS_CHECK_BIGENDIAN
236 AC_MSG_CHECKING(your OS)
242 if test "x$enable_redhat_buildsys" = "xyes"; then
243 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
245 if test "x$enable_kernel_module" = "xyes"; then
246 if test "x$with_linux_kernel_headers" != "x"; then
247 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
249 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/source"
250 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
251 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
253 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
254 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
256 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
257 LINUX_KERNEL_PATH="/usr/src/linux"
260 if test -f "$LINUX_KERNEL_PATH/include/linux/utsrelease.h"; then
261 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
262 LINUX_VERSION="$linux_kvers"
264 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
265 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
266 if test "x$linux_kvers" = "x"; then
267 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
268 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
269 if test "x$linux_kvers" = "x"; then
271 AC_MSG_ERROR(Linux headers lack version definition [2])
274 LINUX_VERSION="$linux_kvers"
277 AC_MSG_ERROR(Linux headers lack version definition)
281 LINUX_VERSION="$linux_kvers"
284 enable_kernel_module="no"
287 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
288 enable_kernel_module="no"
290 if test "x$enable_kernel_module" = "xno"; then
291 if test "x$with_linux_kernel_headers" != "x"; then
292 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
295 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
298 dnl do we need to determine SUBARCH from autoconf.h
302 if test "x$enable_kernel_module" = "xyes"; then
303 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
304 if test "x${AFS_SYSKVERS}" = "x"; then
305 AC_MSG_ERROR(Couldn't guess your Linux version [2])
312 SOLARIS_UFSVFS_HAS_DQRWLOCK
313 SOLARIS_PROC_HAS_P_COREFILE
314 SOLARIS_FS_HAS_FS_ROLLED
318 enable_kernel_module=no
324 if test -f "/usr/old/usr/include/ndir.h"; then
325 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
329 if test -d /usr/include/sys/SN/SN1; then
330 IRIX_BUILD_IP35="IP35"
337 AC_MSG_RESULT(rs_aix)
341 AC_MSG_RESULT(alpha_dux)
342 if test "x$enable_kernel_module" = "xyes"; then
343 if test "x$with_dux_kernel_headers" != "x"; then
344 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
346 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
349 if test "$HEADER_RT" = "*" ; then
350 AC_MSG_ERROR([Need a configured kernel directory])
352 AC_SUBST([HEADER_RT])
356 AC_MSG_RESULT(ppc_darwin)
360 AC_MSG_RESULT(x86_darwin)
364 AC_MSG_RESULT(i386_fbsd)
372 AC_MSG_RESULT(i386_obsd)
375 AC_MSG_RESULT($system)
379 if test "x$with_afs_sysname" != "x"; then
380 AFS_SYSNAME="$with_afs_sysname"
382 AC_MSG_CHECKING(your AFS sysname)
388 AFS_SYSNAME="i386_obsd${vM}${vm}"
390 sparc64-*-openbsd?.?)
394 AFS_SYSNAME="sparc64_obsd${vM}${vm}"
400 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
403 AFS_PARAM_COMMON=param.nbsd15.h
404 AFS_SYSNAME="i386_nbsd15"
407 AFS_PARAM_COMMON=param.nbsd15.h
408 AFS_SYSNAME="alpha_nbsd15"
410 i?86-*-netbsd*1.6[[M-Z]]*)
411 AFS_PARAM_COMMON=param.nbsd20.h
412 AFS_SYSNAME="i386_nbsd20"
414 powerpc-*-netbsd*1.6[[M-Z]]*)
415 AFS_PARAM_COMMON=param.nbsd20.h
416 AFS_SYSNAME="ppc_nbsd20"
419 AFS_PARAM_COMMON=param.nbsd20.h
420 AFS_SYSNAME="i386_nbsd20"
423 AFS_PARAM_COMMON=param.nbsd20.h
424 AFS_SYSNAME="amd64_nbsd20"
426 x86_64-*-netbsd*3.[0-8]*)
427 AFS_PARAM_COMMON=param.nbsd30.h
428 AFS_SYSNAME="amd64_nbsd30"
430 x86_64-*-netbsd*4.[0-8]*)
431 AFS_PARAM_COMMON=param.nbsd40.h
432 AFS_SYSNAME="amd64_nbsd40"
434 powerpc-*-netbsd*2.0*)
435 AFS_PARAM_COMMON=param.nbsd20.h
436 AFS_SYSNAME="ppc_nbsd20"
439 AFS_PARAM_COMMON=param.nbsd16.h
440 AFS_SYSNAME="i386_nbsd16"
443 AFS_PARAM_COMMON=param.nbsd16.h
444 AFS_SYSNAME="alpha_nbsd16"
446 powerpc-*-netbsd*1.6*)
447 AFS_PARAM_COMMON=param.nbsd16.h
448 AFS_SYSNAME="ppc_nbsd16"
451 AFS_PARAM_COMMON=param.nbsd21.h
452 AFS_SYSNAME="i386_nbsd21"
455 AFS_PARAM_COMMON=param.nbsd30.h
456 AFS_SYSNAME="i386_nbsd30"
458 i?86-*-netbsd*3.[[0-8]]*)
459 AFS_PARAM_COMMON=param.nbsd30.h
460 AFS_SYSNAME="i386_nbsd30"
463 AFS_PARAM_COMMON=param.nbsd30.h
464 AFS_SYSNAME="i386_nbsd30"
466 i?86-*-netbsd*4.[[0-8]]*)
467 AFS_PARAM_COMMON=param.nbsd40.h
468 AFS_SYSNAME="i386_nbsd40"
471 AFS_PARAM_COMMON=param.nbsd40.h
472 AFS_SYSNAME="i386_nbsd40"
475 AFS_SYSNAME="hp_ux110"
478 AFS_SYSNAME="hp_ux11i"
481 AFS_SYSNAME="hp_ux1123"
484 AFS_SYSNAME="ia64_hpux1122"
487 AFS_SYSNAME="ia64_hpux1123"
490 AFS_SYSNAME="hp_ux102"
492 powerpc-apple-darwin1.2*)
493 AFS_SYSNAME="ppc_darwin_12"
495 powerpc-apple-darwin1.3*)
496 AFS_SYSNAME="ppc_darwin_13"
498 powerpc-apple-darwin1.4*)
499 AFS_SYSNAME="ppc_darwin_14"
501 powerpc-apple-darwin5.1*)
502 AFS_SYSNAME="ppc_darwin_14"
504 powerpc-apple-darwin5.2*)
505 AFS_SYSNAME="ppc_darwin_14"
507 powerpc-apple-darwin5.3*)
508 AFS_SYSNAME="ppc_darwin_14"
510 powerpc-apple-darwin5.4*)
511 AFS_SYSNAME="ppc_darwin_14"
513 powerpc-apple-darwin5.5*)
514 AFS_SYSNAME="ppc_darwin_14"
516 powerpc-apple-darwin6.0*)
517 AFS_SYSNAME="ppc_darwin_60"
519 powerpc-apple-darwin6.1*)
520 AFS_SYSNAME="ppc_darwin_60"
522 powerpc-apple-darwin6.2*)
523 AFS_SYSNAME="ppc_darwin_60"
525 powerpc-apple-darwin6.3*)
526 AFS_SYSNAME="ppc_darwin_60"
528 powerpc-apple-darwin6.4*)
529 AFS_SYSNAME="ppc_darwin_60"
531 powerpc-apple-darwin6.5*)
532 AFS_SYSNAME="ppc_darwin_60"
534 powerpc-apple-darwin7.0*)
535 AFS_SYSNAME="ppc_darwin_70"
537 powerpc-apple-darwin7.1*)
538 AFS_SYSNAME="ppc_darwin_70"
540 powerpc-apple-darwin7.2*)
541 AFS_SYSNAME="ppc_darwin_70"
543 powerpc-apple-darwin7.3*)
544 AFS_SYSNAME="ppc_darwin_70"
546 powerpc-apple-darwin7.4*)
547 AFS_SYSNAME="ppc_darwin_70"
549 powerpc-apple-darwin7.5*)
550 AFS_SYSNAME="ppc_darwin_70"
552 powerpc-apple-darwin8.0*)
553 AFS_SYSNAME="ppc_darwin_80"
555 powerpc-apple-darwin8.*)
556 AFS_SYSNAME="ppc_darwin_80"
558 i386-apple-darwin8.*)
559 AFS_SYSNAME="x86_darwin_80"
561 powerpc-apple-darwin9.*)
562 AFS_SYSNAME="ppc_darwin_90"
564 i386-apple-darwin9.*)
565 AFS_SYSNAME="x86_darwin_90"
567 sparc-sun-solaris2.5*)
568 AFS_SYSNAME="sun4x_55"
571 sparc-sun-solaris2.6)
572 AFS_SYSNAME="sun4x_56"
574 sparc-sun-solaris2.7)
575 AFS_SYSNAME="sun4x_57"
577 sparc-sun-solaris2.8)
578 AFS_SYSNAME="sun4x_58"
580 sparc-sun-solaris2.9)
581 AFS_SYSNAME="sun4x_59"
583 sparc-sun-solaris2.10)
584 AFS_SYSNAME="sun4x_510"
586 sparc-sun-solaris2.11)
587 AFS_SYSNAME="sun4x_511"
590 AFS_SYSNAME="sun4_413"
594 AFS_SYSNAME="sunx86_57"
597 AFS_SYSNAME="sunx86_58"
600 AFS_SYSNAME="sunx86_59"
603 AFS_SYSNAME="sunx86_510"
606 AFS_SYSNAME="sunx86_511"
609 AFS_SYSNAME="alpha_dux40"
612 AFS_SYSNAME="alpha_dux50"
615 AFS_SYSNAME="alpha_dux51"
621 AFS_SYSNAME="ia64_linuxXX"
624 AFS_SYSNAME="`/bin/arch`_linuxXX"
627 AFS_SYSNAME="ppc64_linuxXX"
630 AFS_SYSNAME="alpha_linux_XX"
633 AFS_SYSNAME="s390_linuxXX"
636 AFS_SYSNAME="s390x_linuxXX"
639 AFS_SYSNAME="`/bin/arch`_linuxXX"
642 AFS_SYSNAME="sparc64_linuxXX"
645 AFS_SYSNAME="i386_linuxXX"
647 parisc-*-linux-gnu|hppa-*-linux-gnu)
648 AFS_SYSNAME="parisc_linuxXX"
652 AFS_SYSNAME="rs_aix42"
656 AFS_SYSNAME="rs_aix42"
660 AFS_SYSNAME="rs_aix51"
664 AFS_SYSNAME="rs_aix52"
668 AFS_SYSNAME="rs_aix53"
672 AFS_SYSNAME="amd64_linuxXX"
676 AC_MSG_ERROR(An AFS sysname is required)
681 *_linux* | *_umlinux*)
682 if test "x${AFS_SYSKVERS}" = "x"; then
683 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
685 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
686 AFS_SYSNAME="$_AFS_SYSNAME"
687 save_CPPFLAGS="$CPPFLAGS"
688 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
690 [#include <linux/autoconf.h>],
691 [#ifndef CONFIG_USERMODE
694 ac_cv_linux_is_uml=yes,)
695 if test "${ac_cv_linux_is_uml}" = yes; then
696 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
698 CPPFLAGS="$save_CPPFLAGS"
699 AFS_SYSNAME="$_AFS_SYSNAME"
702 AC_MSG_RESULT($AFS_SYSNAME)
705 case $AFS_SYSNAME in *_linux* | *_umlinux*)
707 # Add (sub-) architecture-specific paths needed by conftests
710 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
711 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
712 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
713 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
716 if test "x$enable_kernel_module" = "xyes"; then
717 if test "x$enable_debug_kernel" = "xno"; then
718 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
720 OPENAFS_GCC_SUPPORTS_MARCH
721 AC_SUBST(P5PLUS_KOPTS)
722 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
723 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
724 OPENAFS_GCC_SUPPORTS_NO_COMMON
725 OPENAFS_GCC_SUPPORTS_PIPE
726 AC_SUBST(LINUX_GCC_KOPTS)
727 ifdef([OPENAFS_CONFIGURE_LIBAFS],
728 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
729 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
732 LINUX_KBUILD_USES_EXTRA_CFLAGS
733 LINUX_KERNEL_COMPILE_WORKS
734 LINUX_EXPORTS_FIND_TASK_BY_PID
735 LINUX_EXPORTS_PROC_ROOT_FS
736 LINUX_HAVE_CURRENT_KERNEL_TIME
737 LINUX_KMEM_CACHE_INIT
738 LINUX_HAVE_KMEM_CACHE_T
739 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
740 LINUX_D_PATH_TAKES_STRUCT_PATH
742 LINUX_CONFIG_H_EXISTS
743 LINUX_COMPLETION_H_EXISTS
744 LINUX_SEMAPHORE_H_EXISTS
745 LINUX_EXPORTFS_H_EXISTS
746 LINUX_DEFINES_FOR_EACH_PROCESS
747 LINUX_DEFINES_PREV_TASK
748 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
749 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
750 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
751 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
752 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
753 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
754 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
755 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
756 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
757 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
758 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
759 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
760 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
761 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
762 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
763 LINUX_INODE_SETATTR_RETURN_TYPE
764 LINUX_WRITE_INODE_RETURN_TYPE
765 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
766 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
767 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
768 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
769 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
770 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
771 LINUX_AOP_WRITEBACK_CONTROL
772 LINUX_FS_STRUCT_FOP_HAS_FLOCK
773 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
774 LINUX_FS_STRUCT_FOP_HAS_SPLICE
775 LINUX_KERNEL_LINUX_SYSCALL_H
776 LINUX_KERNEL_LINUX_SEQ_FILE_H
777 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
779 LINUX_KERNEL_SOCK_CREATE
780 LINUX_KERNEL_PAGE_FOLLOW_LINK
781 LINUX_KERNEL_HLIST_UNHASHED
782 LINUX_KEY_TYPE_H_EXISTS
784 LINUX_RECALC_SIGPENDING_ARG_TYPE
785 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
786 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
787 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
788 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
789 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
790 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
791 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
792 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
793 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
794 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
795 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
796 LINUX_EXPORTS_TASKLIST_LOCK
797 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
798 LINUX_STATFS_TAKES_DENTRY
799 LINUX_FREEZER_H_EXISTS
800 LINUX_HAVE_SVC_ADDR_IN
801 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
802 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
805 LINUX_LINUX_KEYRING_SUPPORT
806 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
808 LINUX_GENERIC_FILE_AIO_READ
809 LINUX_INIT_WORK_HAS_DATA
810 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
811 LINUX_SYSCTL_TABLE_CHECKING
813 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
814 LINUX_EXPORTS_INIT_MM
815 LINUX_EXPORTS_SYS_CHDIR
816 LINUX_EXPORTS_SYS_CLOSE
817 LINUX_EXPORTS_SYS_OPEN
818 LINUX_EXPORTS_SYS_WAIT4
819 LINUX_EXPORTS_RCU_READ_LOCK
820 if test "x$with_linux_kernel_packaging" = "xno" ; then
825 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
826 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
827 ac_cv_linux_exports_sys_call_table=no
828 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
829 ac_cv_linux_exports_ia32_sys_call_table=yes
832 LINUX_EXPORTS_KALLSYMS_ADDRESS
833 LINUX_EXPORTS_KALLSYMS_SYMBOL
834 LINUX_EXPORTS_SYS_CALL_TABLE
835 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
836 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
837 linux_syscall_method=none
838 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
839 linux_syscall_method=scan
840 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
841 linux_syscall_method=scan_with_kallsyms_address
844 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
845 linux_syscall_method=kallsyms_symbol
847 if test "x$linux_syscall_method" = "xnone"; then
848 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
849 linux_syscall_method=scan
853 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
854 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
856 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
857 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
859 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
860 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
862 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
863 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
865 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
866 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
868 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
869 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
871 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
872 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
874 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
875 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
877 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
878 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
880 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
881 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
883 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
884 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
886 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
887 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
889 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
890 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
892 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
893 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
895 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
896 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
898 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
899 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
901 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
902 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
904 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
905 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
907 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
908 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
910 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
911 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
913 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
914 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
916 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
917 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
919 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
920 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
922 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
923 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
925 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
926 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
928 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
929 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
931 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
932 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
934 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
935 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
937 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
938 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
940 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
941 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
943 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
944 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
946 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
947 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
949 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
950 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
952 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
953 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
955 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
956 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
958 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
959 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
961 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
962 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
964 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
965 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
967 if test "x$ac_linux_syscall" = "xyes" ; then
968 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
970 if test "x$ac_linux_seq_file" = "xyes" ; then
971 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
973 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
974 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
976 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
977 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
979 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
980 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
982 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
983 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
985 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
986 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
988 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
989 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
991 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
992 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
994 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
995 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
997 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
998 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
1000 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
1001 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
1003 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
1004 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
1006 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
1007 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
1009 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
1010 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
1012 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
1013 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
1015 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
1016 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
1018 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1019 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1021 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1022 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1024 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1025 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1027 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1028 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1030 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1031 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1033 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1034 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1036 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1037 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1039 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1040 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1042 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1043 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1045 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1046 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1048 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1049 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1051 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1052 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1054 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1055 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1057 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1058 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1060 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1061 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1063 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1064 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1066 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1067 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1069 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1070 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1072 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1073 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1075 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1076 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1078 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1080 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1081 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1087 case $AFS_SYSNAME in
1089 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1090 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1091 dnl the test below fails on darwin, even if the CPPFLAGS below
1092 dnl are added. the headers from Kernel.framework must be used
1093 dnl when KERNEL is defined.
1095 dnl really, such a thing isn't guaranteed to work on any
1096 dnl platform until the kernel cflags from MakefileProto are
1097 dnl known to configure
1098 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1101 AC_MSG_CHECKING(for definition of struct buf)
1102 dnl save_CPPFLAGS="$CPPFLAGS"
1103 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1104 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1105 ac_cv_have_struct_buf=no
1107 [#include <sys/buf.h>],
1109 printf("%d\n", sizeof(x));],
1110 ac_cv_have_struct_buf=yes,)
1113 dnl CPPFLAGS="$save_CPPFLAGS"
1114 AC_MSG_RESULT($ac_cv_have_struct_buf)
1115 if test "$ac_cv_have_struct_buf" = yes; then
1116 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1122 AC_CACHE_VAL(ac_cv_sockaddr_len,
1124 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1125 AC_TRY_COMPILE( [#include <sys/types.h>
1126 #include <sys/socket.h>],
1127 [struct sockaddr *a;
1128 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1129 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1130 if test "$ac_cv_sockaddr_len" = "yes"; then
1131 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1133 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1134 echo Skipping library tests because they confuse Irix.
1136 AC_CHECK_FUNCS(socket)
1138 if test "$ac_cv_func_socket" = no; then
1139 for lib in socket inet; do
1140 if test "$HAVE_SOCKET" != 1; then
1141 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1146 AC_CHECK_FUNCS(connect)
1148 if test "$ac_cv_func_connect" = no; then
1150 if test "$HAVE_CONNECT" != 1; then
1151 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1156 AC_CHECK_FUNCS(gethostbyname)
1157 if test "$ac_cv_func_gethostbyname" = no; then
1158 for lib in dns nsl resolv; do
1159 if test "$HAVE_GETHOSTBYNAME" != 1; then
1160 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1165 dnl darwin wants it, aix hates it
1166 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1170 #include <sys/types.h>
1171 #include <sys/socket.h>
1172 #include <netinet/in.h>
1173 #include <arpa/inet.h>
1174 #include <arpa/nameser.h>
1175 #include <arpa/nameser_compat.h>
1177 ], [static int i; i = 0;],
1179 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
1183 openafs_save_libs="$LIBS"
1184 AC_MSG_CHECKING([for res_search])
1187 if test "$ac_cv_func_res_search" = no; then
1188 for lib in dns nsl resolv; do
1189 if test "$ac_cv_func_res_search" != yes; then
1192 LIBS="$openafs_save_libs"
1195 if test "$ac_cv_func_res_search" = yes; then
1196 LIB_res_search="-l$lib"
1197 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1198 AC_MSG_RESULT([yes, in lib$lib])
1203 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1209 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1211 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1212 AC_TRY_COMPILE( [#include <sys/types.h>
1213 #include <sys/socket.h>
1214 #include <netinet/in.h>],
1216 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1217 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1218 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1219 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1223 if test "x$MKAFS_OSTYPE" = OBSD; then
1224 PTHREAD_LIBS="-pthread"
1226 if test "x$PTHREAD_LIBS" = xerror; then
1227 AC_CHECK_LIB(pthread, pthread_attr_init,
1228 PTHREAD_LIBS="-lpthread")
1230 if test "x$PTHREAD_LIBS" = xerror; then
1231 AC_CHECK_LIB(pthreads, pthread_attr_init,
1232 PTHREAD_LIBS="-lpthreads")
1234 if test "x$PTHREAD_LIBS" = xerror; then
1235 AC_CHECK_LIB(c_r, pthread_attr_init,
1236 PTHREAD_LIBS="-lc_r")
1238 if test "x$PTHREAD_LIBS" = xerror; then
1239 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1241 if test "x$PTHREAD_LIBS" = xerror; then
1242 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1243 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1244 PTHREAD_LIBS="-lpthread")
1246 if test "x$PTHREAD_LIBS" = xerror; then
1247 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1249 AC_SUBST(PTHREAD_LIBS)
1252 if test "$enable_obsolete" = "yes"; then
1256 HOST_CPU="$host_cpu"
1258 if test "x$with_bsd_kernel_headers" != "x"; then
1259 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1261 BSD_KERNEL_PATH="/usr/src/sys"
1264 if test "x$with_bsd_kernel_build" != "x"; then
1265 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1267 case $AFS_SYSNAME in
1269 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1272 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1278 if test "$enable_supergroups" = "yes"; then
1279 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1282 if test "$enable_fast_restart" = "yes"; then
1283 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1286 if test "$enable_bitmap_later" = "yes"; then
1287 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1290 if test "$enable_demand_attach_fs" = "yes"; then
1291 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1296 AC_SUBST(DEMAND_ATTACH)
1298 if test "$enable_disconnected" = "yes"; then
1299 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1302 if test "$enable_unix_sockets" = "yes"; then
1303 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1304 USE_UNIX_SOCKETS="yes"
1306 USE_UNIX_SOCKETS="no"
1308 AC_SUBST(USE_UNIX_SOCKETS)
1310 if test "$enable_fast_restart" = "yes" &&
1311 test "$enable_demand_attach_fs" = "yes" ; then
1312 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.])
1316 if test "$enable_full_vos_listvol_switch" = "yes"; then
1317 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1320 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1321 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1322 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1326 if test "$enable_bos_restricted_mode" = "yes"; then
1327 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1330 if test "$enable_bos_new_config" = "yes"; then
1331 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1334 if test "$enable_largefile_fileserver" = "yes"; then
1335 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1338 if test "$enable_namei_fileserver" = "yes"; then
1339 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1342 if test "$enable_afsdb" = "yes"; then
1343 LIB_AFSDB="$LIB_res_search"
1344 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1347 dnl check for tivoli
1348 AC_MSG_CHECKING(for tivoli tsm butc support)
1350 if test "$enable_tivoli_tsm" = "yes"; then
1351 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1352 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1353 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1354 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1356 if test -r "$XBSADIR1/xbsa.h"; then
1357 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1359 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1360 elif test -r "$XBSADIR2/xbsa.h"; then
1361 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1363 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1364 elif test -r "$XBSADIR3/dsmapifp.h"; then
1365 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1367 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1368 elif test -r "$XBSADIR4/dsmapifp.h"; then
1369 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1371 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1373 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1378 AC_SUBST(XBSA_CFLAGS)
1379 AC_SUBST(XBSA_XLIBS)
1381 dnl checks for header files.
1385 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1386 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1387 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1388 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1389 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1390 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1391 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1393 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1400 if test "$enable_login" = yes; then
1405 AC_SUBST(BUILD_LOGIN)
1407 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1408 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1409 AC_CHECK_FUNCS(setvbuf vsyslog)
1410 AC_FUNC_SETVBUF_REVERSED
1411 AC_CHECK_FUNCS(regcomp regexec regerror)
1412 AC_MSG_CHECKING([for POSIX regex library])
1413 if test "$ac_cv_header_regex_h" = "yes" && \
1414 test "$ac_cv_func_regcomp" = "yes" && \
1415 test "$ac_cv_func_regexec" = "yes" && \
1416 test "$ac_cv_func_regerror" = "yes"; then
1417 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1423 AC_CHECK_TYPE(ssize_t, int)
1424 AC_SIZEOF_TYPE(long)
1426 AC_CHECK_FUNCS(timegm)
1427 AC_CHECK_FUNCS(daemon)
1429 dnl Directory PATH handling
1430 if test "x$enable_transarc_paths" = "xyes" ; then
1431 afsconfdir=${afsconfdir=/usr/afs/etc}
1432 viceetcdir=${viceetcdir=/usr/vice/etc}
1433 afskerneldir=${afskerneldir=${viceetcdir}}
1434 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1435 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1436 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1437 afsdbdir=${afsdbdir=/usr/afs/db}
1438 afslogsdir=${afslogsdir=/usr/afs/logs}
1439 afslocaldir=${afslocaldir=/usr/afs/local}
1440 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1441 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1443 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1444 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1445 afskerneldir=${afskerneldir='${libdir}/openafs'}
1446 afssrvbindir=${afssrvbindir='${bindir}'}
1447 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1448 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1449 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1450 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1451 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1452 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1453 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1455 AC_SUBST(afsconfdir)
1456 AC_SUBST(viceetcdir)
1457 AC_SUBST(afskerneldir)
1458 AC_SUBST(afssrvbindir)
1459 AC_SUBST(afssrvsbindir)
1460 AC_SUBST(afssrvlibexecdir)
1462 AC_SUBST(afslogsdir)
1463 AC_SUBST(afslocaldir)
1464 AC_SUBST(afsbackupdir)
1465 AC_SUBST(afsbosconfigdir)
1467 if test "x$enable_kernel_module" = "xyes"; then
1468 ENABLE_KERNEL_MODULE=libafs
1471 if test "x$enable_pthreaded_ubik" = "xyes"; then
1472 ENABLE_PTHREADED_UBIK=yes
1475 AC_SUBST(AFS_SYSNAME)
1476 AC_SUBST(AFS_PARAM_COMMON)
1477 AC_SUBST(ENABLE_KERNEL_MODULE)
1478 AC_SUBST(ENABLE_PTHREADED_UBIK)
1480 AC_SUBST(LINUX_KERNEL_PATH)
1482 AC_SUBST(BSD_KERNEL_PATH)
1483 AC_SUBST(BSD_KERNEL_BUILD)
1484 AC_SUBST(LINUX_VERSION)
1485 AC_SUBST(MKAFS_OSTYPE)
1486 AC_SUBST(TOP_OBJDIR)
1487 AC_SUBST(TOP_SRCDIR)
1488 AC_SUBST(TOP_INCDIR)
1489 AC_SUBST(TOP_LIBDIR)
1491 AC_SUBST(WITH_OBSOLETE)
1492 AC_SUBST(DARWIN_INFOFILE)
1493 AC_SUBST(IRIX_BUILD_IP35)
1498 TOP_SRCDIR="${srcdir}/src"
1500 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1506 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1510 TOP_OBJDIR="${SRCDIR_PARENT}"
1511 TOP_INCDIR="${SRCDIR_PARENT}/include"
1512 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1513 if test "${DEST}x" = "x"; then
1514 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1517 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1518 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1519 AC_SUBST(HELPER_SPLINT)
1520 AC_SUBST(HELPER_SPLINTCFG)
1522 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs