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_EXPORTFS_H_EXISTS
745 LINUX_DEFINES_FOR_EACH_PROCESS
746 LINUX_DEFINES_PREV_TASK
747 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
748 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
749 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
750 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
751 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
752 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
753 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
754 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
755 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
756 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
757 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
758 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
759 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
760 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
761 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
762 LINUX_INODE_SETATTR_RETURN_TYPE
763 LINUX_WRITE_INODE_RETURN_TYPE
764 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
765 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
766 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
767 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
768 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
769 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
770 LINUX_AOP_WRITEBACK_CONTROL
771 LINUX_FS_STRUCT_FOP_HAS_FLOCK
772 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
773 LINUX_FS_STRUCT_FOP_HAS_SPLICE
774 LINUX_KERNEL_LINUX_SYSCALL_H
775 LINUX_KERNEL_LINUX_SEQ_FILE_H
776 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
778 LINUX_KERNEL_SOCK_CREATE
779 LINUX_KERNEL_PAGE_FOLLOW_LINK
780 LINUX_KERNEL_HLIST_UNHASHED
781 LINUX_KEY_TYPE_H_EXISTS
783 LINUX_RECALC_SIGPENDING_ARG_TYPE
784 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
785 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
786 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
787 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
788 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
789 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
790 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
791 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
792 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
793 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
794 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
795 LINUX_EXPORTS_TASKLIST_LOCK
796 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
797 LINUX_STATFS_TAKES_DENTRY
798 LINUX_FREEZER_H_EXISTS
799 LINUX_HAVE_SVC_ADDR_IN
800 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
801 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
804 LINUX_LINUX_KEYRING_SUPPORT
805 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
807 LINUX_GENERIC_FILE_AIO_READ
808 LINUX_INIT_WORK_HAS_DATA
809 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
810 LINUX_SYSCTL_TABLE_CHECKING
812 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
813 LINUX_EXPORTS_INIT_MM
814 LINUX_EXPORTS_SYS_CHDIR
815 LINUX_EXPORTS_SYS_CLOSE
816 LINUX_EXPORTS_SYS_OPEN
817 LINUX_EXPORTS_SYS_WAIT4
818 LINUX_EXPORTS_RCU_READ_LOCK
819 if test "x$with_linux_kernel_packaging" = "xno" ; then
824 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
825 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
826 ac_cv_linux_exports_sys_call_table=no
827 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
828 ac_cv_linux_exports_ia32_sys_call_table=yes
831 LINUX_EXPORTS_KALLSYMS_ADDRESS
832 LINUX_EXPORTS_KALLSYMS_SYMBOL
833 LINUX_EXPORTS_SYS_CALL_TABLE
834 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
835 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
836 linux_syscall_method=none
837 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
838 linux_syscall_method=scan
839 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
840 linux_syscall_method=scan_with_kallsyms_address
843 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
844 linux_syscall_method=kallsyms_symbol
846 if test "x$linux_syscall_method" = "xnone"; then
847 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
848 linux_syscall_method=scan
852 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
853 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
855 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
856 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
858 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
859 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
861 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
862 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
864 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
865 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
867 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
868 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
870 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
871 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
873 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
874 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
876 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
877 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
879 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
880 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
882 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
883 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
885 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
886 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
888 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
889 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
891 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
892 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
894 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
895 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
897 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
898 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
900 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
901 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
903 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
904 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
906 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
907 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
909 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
910 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
912 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
913 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
915 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
916 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
918 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
919 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
921 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
922 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
924 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
925 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
927 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
928 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
930 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
931 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
933 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
934 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
936 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
937 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
939 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
940 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
942 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
943 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
945 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
946 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
948 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
949 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
951 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
952 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
954 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
955 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
957 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
958 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
960 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
961 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
963 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
964 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
966 if test "x$ac_linux_syscall" = "xyes" ; then
967 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
969 if test "x$ac_linux_seq_file" = "xyes" ; then
970 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
972 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
973 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
975 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
976 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
978 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
979 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
981 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
982 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
984 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
985 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
987 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
988 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
990 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
991 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
993 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
994 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
996 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
997 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
999 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
1000 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
1002 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
1003 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
1005 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
1006 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
1008 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
1009 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
1011 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
1012 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
1014 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
1015 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
1017 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1018 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1020 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1021 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1023 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1024 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1026 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1027 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1029 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1030 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1032 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1033 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1035 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1036 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1038 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1039 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1041 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1042 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1044 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1045 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1047 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1048 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1050 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1051 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1053 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1054 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1056 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1057 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1059 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1060 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1062 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1063 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1065 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1066 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1068 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1069 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1071 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1072 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1074 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1075 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1077 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1079 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1080 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1086 case $AFS_SYSNAME in
1088 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1089 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1090 dnl the test below fails on darwin, even if the CPPFLAGS below
1091 dnl are added. the headers from Kernel.framework must be used
1092 dnl when KERNEL is defined.
1094 dnl really, such a thing isn't guaranteed to work on any
1095 dnl platform until the kernel cflags from MakefileProto are
1096 dnl known to configure
1097 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1100 AC_MSG_CHECKING(for definition of struct buf)
1101 dnl save_CPPFLAGS="$CPPFLAGS"
1102 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1103 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1104 ac_cv_have_struct_buf=no
1106 [#include <sys/buf.h>],
1108 printf("%d\n", sizeof(x));],
1109 ac_cv_have_struct_buf=yes,)
1112 dnl CPPFLAGS="$save_CPPFLAGS"
1113 AC_MSG_RESULT($ac_cv_have_struct_buf)
1114 if test "$ac_cv_have_struct_buf" = yes; then
1115 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1121 AC_CACHE_VAL(ac_cv_sockaddr_len,
1123 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1124 AC_TRY_COMPILE( [#include <sys/types.h>
1125 #include <sys/socket.h>],
1126 [struct sockaddr *a;
1127 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1128 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1129 if test "$ac_cv_sockaddr_len" = "yes"; then
1130 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1132 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1133 echo Skipping library tests because they confuse Irix.
1135 AC_CHECK_FUNCS(socket)
1137 if test "$ac_cv_func_socket" = no; then
1138 for lib in socket inet; do
1139 if test "$HAVE_SOCKET" != 1; then
1140 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1145 AC_CHECK_FUNCS(connect)
1147 if test "$ac_cv_func_connect" = no; then
1149 if test "$HAVE_CONNECT" != 1; then
1150 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1155 AC_CHECK_FUNCS(gethostbyname)
1156 if test "$ac_cv_func_gethostbyname" = no; then
1157 for lib in dns nsl resolv; do
1158 if test "$HAVE_GETHOSTBYNAME" != 1; then
1159 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1164 dnl darwin wants it, aix hates it
1165 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1169 #include <sys/types.h>
1170 #include <sys/socket.h>
1171 #include <netinet/in.h>
1172 #include <arpa/inet.h>
1173 #include <arpa/nameser.h>
1174 #include <arpa/nameser_compat.h>
1176 ], [static int i; i = 0;],
1178 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
1182 openafs_save_libs="$LIBS"
1183 AC_MSG_CHECKING([for res_search])
1186 if test "$ac_cv_func_res_search" = no; then
1187 for lib in dns nsl resolv; do
1188 if test "$ac_cv_func_res_search" != yes; then
1191 LIBS="$openafs_save_libs"
1194 if test "$ac_cv_func_res_search" = yes; then
1195 LIB_res_search="-l$lib"
1196 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1197 AC_MSG_RESULT([yes, in lib$lib])
1202 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1208 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1210 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1211 AC_TRY_COMPILE( [#include <sys/types.h>
1212 #include <sys/socket.h>
1213 #include <netinet/in.h>],
1215 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1216 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1217 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1218 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1222 if test "x$MKAFS_OSTYPE" = OBSD; then
1223 PTHREAD_LIBS="-pthread"
1225 if test "x$PTHREAD_LIBS" = xerror; then
1226 AC_CHECK_LIB(pthread, pthread_attr_init,
1227 PTHREAD_LIBS="-lpthread")
1229 if test "x$PTHREAD_LIBS" = xerror; then
1230 AC_CHECK_LIB(pthreads, pthread_attr_init,
1231 PTHREAD_LIBS="-lpthreads")
1233 if test "x$PTHREAD_LIBS" = xerror; then
1234 AC_CHECK_LIB(c_r, pthread_attr_init,
1235 PTHREAD_LIBS="-lc_r")
1237 if test "x$PTHREAD_LIBS" = xerror; then
1238 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1240 if test "x$PTHREAD_LIBS" = xerror; then
1241 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1242 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1243 PTHREAD_LIBS="-lpthread")
1245 if test "x$PTHREAD_LIBS" = xerror; then
1246 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1248 AC_SUBST(PTHREAD_LIBS)
1251 if test "$enable_obsolete" = "yes"; then
1255 HOST_CPU="$host_cpu"
1257 if test "x$with_bsd_kernel_headers" != "x"; then
1258 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1260 BSD_KERNEL_PATH="/usr/src/sys"
1263 if test "x$with_bsd_kernel_build" != "x"; then
1264 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1266 case $AFS_SYSNAME in
1268 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1271 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1277 if test "$enable_supergroups" = "yes"; then
1278 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1281 if test "$enable_fast_restart" = "yes"; then
1282 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1285 if test "$enable_bitmap_later" = "yes"; then
1286 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1289 if test "$enable_demand_attach_fs" = "yes"; then
1290 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1295 AC_SUBST(DEMAND_ATTACH)
1297 if test "$enable_disconnected" = "yes"; then
1298 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1301 if test "$enable_unix_sockets" = "yes"; then
1302 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1303 USE_UNIX_SOCKETS="yes"
1305 USE_UNIX_SOCKETS="no"
1307 AC_SUBST(USE_UNIX_SOCKETS)
1309 if test "$enable_fast_restart" = "yes" &&
1310 test "$enable_demand_attach_fs" = "yes" ; then
1311 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.])
1315 if test "$enable_full_vos_listvol_switch" = "yes"; then
1316 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1319 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1320 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1321 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1325 if test "$enable_bos_restricted_mode" = "yes"; then
1326 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1329 if test "$enable_bos_new_config" = "yes"; then
1330 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1333 if test "$enable_largefile_fileserver" = "yes"; then
1334 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1337 if test "$enable_namei_fileserver" = "yes"; then
1338 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1341 if test "$enable_afsdb" = "yes"; then
1342 LIB_AFSDB="$LIB_res_search"
1343 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1346 dnl check for tivoli
1347 AC_MSG_CHECKING(for tivoli tsm butc support)
1349 if test "$enable_tivoli_tsm" = "yes"; then
1350 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1351 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1352 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1353 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1355 if test -r "$XBSADIR1/xbsa.h"; then
1356 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1358 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1359 elif test -r "$XBSADIR2/xbsa.h"; then
1360 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1362 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1363 elif test -r "$XBSADIR3/dsmapifp.h"; then
1364 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1366 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1367 elif test -r "$XBSADIR4/dsmapifp.h"; then
1368 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1370 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1372 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1377 AC_SUBST(XBSA_CFLAGS)
1378 AC_SUBST(XBSA_XLIBS)
1380 dnl checks for header files.
1384 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1385 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1386 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1387 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1388 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1389 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1390 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1392 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1399 if test "$enable_login" = yes; then
1404 AC_SUBST(BUILD_LOGIN)
1406 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1407 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1408 AC_CHECK_FUNCS(setvbuf vsyslog)
1409 AC_FUNC_SETVBUF_REVERSED
1410 AC_CHECK_FUNCS(regcomp regexec regerror)
1411 AC_MSG_CHECKING([for POSIX regex library])
1412 if test "$ac_cv_header_regex_h" = "yes" && \
1413 test "$ac_cv_func_regcomp" = "yes" && \
1414 test "$ac_cv_func_regexec" = "yes" && \
1415 test "$ac_cv_func_regerror" = "yes"; then
1416 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1422 AC_CHECK_TYPE(ssize_t, int)
1423 AC_SIZEOF_TYPE(long)
1425 AC_MSG_CHECKING(size of time_t)
1426 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1427 [AC_TRY_RUN([#include <stdio.h>
1431 FILE *f=fopen("conftestval", "w");
1433 fprintf(f, "%d\n", sizeof(time_t));
1435 }], ac_cv_sizeof_time_t=`cat conftestval`, ac_cv_sizeof_time_t=0)
1437 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1438 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t)
1440 AC_CHECK_FUNCS(timegm)
1441 AC_CHECK_FUNCS(daemon)
1443 dnl Directory PATH handling
1444 if test "x$enable_transarc_paths" = "xyes" ; then
1445 afsconfdir=${afsconfdir=/usr/afs/etc}
1446 viceetcdir=${viceetcdir=/usr/vice/etc}
1447 afskerneldir=${afskerneldir=${viceetcdir}}
1448 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1449 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1450 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1451 afsdbdir=${afsdbdir=/usr/afs/db}
1452 afslogsdir=${afslogsdir=/usr/afs/logs}
1453 afslocaldir=${afslocaldir=/usr/afs/local}
1454 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1455 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1457 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1458 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1459 afskerneldir=${afskerneldir='${libdir}/openafs'}
1460 afssrvbindir=${afssrvbindir='${bindir}'}
1461 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1462 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1463 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1464 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1465 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1466 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1467 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1469 AC_SUBST(afsconfdir)
1470 AC_SUBST(viceetcdir)
1471 AC_SUBST(afskerneldir)
1472 AC_SUBST(afssrvbindir)
1473 AC_SUBST(afssrvsbindir)
1474 AC_SUBST(afssrvlibexecdir)
1476 AC_SUBST(afslogsdir)
1477 AC_SUBST(afslocaldir)
1478 AC_SUBST(afsbackupdir)
1479 AC_SUBST(afsbosconfigdir)
1481 if test "x$enable_kernel_module" = "xyes"; then
1482 ENABLE_KERNEL_MODULE=libafs
1485 if test "x$enable_pthreaded_ubik" = "xyes"; then
1486 ENABLE_PTHREADED_UBIK=yes
1489 AC_SUBST(AFS_SYSNAME)
1490 AC_SUBST(AFS_PARAM_COMMON)
1491 AC_SUBST(ENABLE_KERNEL_MODULE)
1492 AC_SUBST(ENABLE_PTHREADED_UBIK)
1494 AC_SUBST(LINUX_KERNEL_PATH)
1496 AC_SUBST(BSD_KERNEL_PATH)
1497 AC_SUBST(BSD_KERNEL_BUILD)
1498 AC_SUBST(LINUX_VERSION)
1499 AC_SUBST(MKAFS_OSTYPE)
1500 AC_SUBST(TOP_OBJDIR)
1501 AC_SUBST(TOP_SRCDIR)
1502 AC_SUBST(TOP_INCDIR)
1503 AC_SUBST(TOP_LIBDIR)
1505 AC_SUBST(WITH_OBSOLETE)
1506 AC_SUBST(DARWIN_INFOFILE)
1507 AC_SUBST(IRIX_BUILD_IP35)
1512 TOP_SRCDIR="${srcdir}/src"
1514 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1520 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1524 TOP_OBJDIR="${SRCDIR_PARENT}"
1525 TOP_INCDIR="${SRCDIR_PARENT}/include"
1526 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1527 if test "${DEST}x" = "x"; then
1528 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1531 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1532 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1533 AC_SUBST(HELPER_SPLINT)
1534 AC_SUBST(HELPER_SPLINTCFG)
1536 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs