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],[
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])],
24 [AS_HELP_STRING([--disable-pam], [disable PAM support])],
27 AC_ARG_ENABLE([bos-restricted-mode],
28 [AS_HELP_STRING([--enable-bos-restricted-mode],
29 [enable bosserver restricted mode which disables certain bosserver
32 [enable_bos_restricted_mode="no"])
33 AC_ARG_ENABLE([bos-new-config],
34 [AS_HELP_STRING([--enable-bos-new-config],
35 [enable bosserver pickup of BosConfig.new on restarts])],
37 [enable_bos_new_config="no"])
38 AC_ARG_ENABLE([largefile-fileserver],
39 [AS_HELP_STRING([--disable-largefile-fileserver],
40 [disable large file support in fileserver])],
42 [enable_largefile_fileserver="yes"])
43 AC_ARG_ENABLE([namei-fileserver],
44 [AS_HELP_STRING([--enable-namei-fileserver],
45 [force compilation of namei fileserver in preference to inode
48 [enable_namei_fileserver="no"])
49 AC_ARG_ENABLE([supergroups],
50 [AS_HELP_STRING([--enable-supergroups],
51 [enable support for nested pts groups])],
53 [enable_supergroups="no"])
54 AC_ARG_ENABLE([fast-restart],
55 [AS_HELP_STRING([--enable-fast-restart],
56 [enable fast startup of file server without salvaging])],
58 [enable_fast_restart="no"])
59 AC_ARG_ENABLE([bitmap-later],
60 [AS_HELP_STRING([--enable-bitmap-later],
61 [enable fast startup of file server by not reading bitmap till
64 [enable_bitmap_later="no"])
65 AC_ARG_ENABLE([demand-attach-fs],
66 [AS_HELP_STRING([--enable-demand-attach-fs],
67 [enable Demand Attach Fileserver (please see documentation)])],
69 [enable_demand_attach_fs="no"])
70 AC_ARG_ENABLE([disconnected],
71 [AS_HELP_STRING([--enable-disconnected],
72 [enable disconnected support in cache manager (experimental)])],
74 [enable_disconnected="no"])
75 AC_ARG_ENABLE([unix-sockets],
76 [AS_HELP_STRING([--enable-unix-sockets],
77 [enable use of unix domain sockets for fssync])],
79 [enable_unix_sockets="yes"])
80 AC_ARG_ENABLE([full-vos-listvol-switch],
81 [AS_HELP_STRING([--disable-full-vos-listvol-switch],
82 [disable vos full listvol switch for formatted output])],
84 [enable_full_vos_listvol_switch="yes"])
85 AC_ARG_ENABLE([icmp-pmtu-discovery],
86 [AS_HELP_STRING([--enable-icmp-pmtu-discovery],
87 [enable path MTU discovery by decoding ICMP unreachable replies])],
89 [enable_icmp_pmtu_discovery="no"])
90 AC_ARG_ENABLE([tivoli-tsm],
91 [AS_HELP_STRING([--enable-tivoli-tsm],
92 [enable use of the Tivoli TSM API libraries for butc support])],
94 [enable_tivoli_tsm="no"])
95 AC_ARG_ENABLE([pthreaded-ubik],
96 [AS_HELP_STRING([--enable-pthreaded-ubik],
97 [enable installation of pthreaded ubik applications (defaults to
100 [enable_pthreaded_ubik="no"])
102 dnl Kernel module build options.
103 AC_ARG_WITH([dux-kernel-headers],
104 [AS_HELP_STRING([--with-dux-kernel-headers=path],
105 [use the kernel headers found at path (optional, defaults to first
106 match in /usr/sys)])])
107 AC_ARG_WITH([linux-kernel-headers],
108 [AS_HELP_STRING([--with-linux-kernel-headers=path],
109 [use the kernel headers found at path (optional, defaults to
110 /usr/src/linux-2.4, then /usr/src/linux)])])
111 AC_ARG_WITH([bsd-kernel-headers],
112 [AS_HELP_STRING([--with-bsd-kernel-headers=path],
113 [use the kernel headers found at path (optional, defaults to
115 AC_ARG_WITH([bsd-kernel-build],
116 [AS_HELP_STRING([--with-bsd-kernel-build=path],
117 [use the kernel build found at path (optional, defaults to
118 KSRC/i386/compile/GENERIC)])])
119 AC_ARG_WITH([linux-kernel-packaging],
120 [AS_HELP_STRING([--with-linux-kernel-packaging],
121 [use standard naming conventions to aid Linux kernel build packaging
122 (disables MPS, sets the kernel module name to openafs.ko, and
123 installs kernel modules into the standard Linux location)])],
124 [AC_SUBST(LINUX_KERNEL_PACKAGING, "yes")
125 AC_SUBST(LINUX_LIBAFS_NAME, "openafs")],
126 [AC_SUBST(LINUX_LIBAFS_NAME, "libafs")])
127 AC_ARG_ENABLE([kernel-module],
128 [AS_HELP_STRING([--disable-kernel-module],
129 [disable compilation of the kernel module (defaults to enabled)])],
131 [enable_kernel_module="yes"])
132 AC_ARG_ENABLE([redhat-buildsys],
133 [AS_HELP_STRING([--enable-redhat-buildsys],
134 [enable compilation of the redhat build system kernel (defaults to
137 [enable_redhat_buildsys="no"])
139 dnl Installation locations.
140 AC_ARG_ENABLE([transarc-paths],
141 [AS_HELP_STRING([--enable-transarc-paths],
142 [use Transarc style paths like /usr/afs and /usr/vice])],
144 [enable_transarc_paths="no"])
146 dnl Optimization and debugging flags.
147 AC_ARG_ENABLE([strip-binaries],
148 [AS_HELP_STRING([--disable-strip-binaries],
149 [disable stripping of symbol information from binaries (defaults to
152 [enable_strip_binaries="maybe"])
153 AC_ARG_ENABLE([debug],
154 [AS_HELP_STRING([--enable-debug],
155 [enable compilation of the user space code with debugging information
156 (defaults to disabled)])],
159 AC_ARG_ENABLE([optimize],
160 [AS_HELP_STRING([--disable-optimize],
161 [disable optimization for compilation of the user space code (defaults
164 [enable_optimize="yes"])
165 AC_ARG_ENABLE([warnings],
166 [AS_HELP_STRING([--enable-warnings],
167 [enable compilation warnings when building with gcc (defaults to
170 [enable_warnings="no"])
171 AC_ARG_ENABLE([debug-kernel],
172 [AS_HELP_STRING([--enable-debug-kernel],
173 [enable compilation of the kernel module with debugging information
174 (defaults to disabled)])],
176 [enable_debug_kernel="no"])
177 AC_ARG_ENABLE([optimize-kernel],
178 [AS_HELP_STRING([--disable-optimize-kernel],
179 [disable compilation of the kernel module with optimization (defaults
180 based on platform)])],
182 [enable_optimize_kernel="yes"])
183 AC_ARG_ENABLE([debug-lwp],
184 [AS_HELP_STRING([--enable-debug-lwp],
185 [enable compilation of the LWP code with debugging information
186 (defaults to disabled)])],
188 [enable_debug_lwp="no"])
189 AC_ARG_ENABLE([optimize-lwp],
190 [AS_HELP_STRING([--disable-optimize-lwp],
191 [disable optimization for compilation of the LWP code (defaults to
194 [enable_optimize_lwp="yes"])
195 AC_ARG_ENABLE([debug-pam],
196 [AS_HELP_STRING([--enable-debug-pam],
197 [enable compilation of the PAM code with debugging information
198 (defaults to disabled)])],
200 [enable_debug_pam="no"])
201 AC_ARG_ENABLE([optimize-pam],
202 [AS_HELP_STRING([--disable-optimize-pam],
203 [disable optimization for compilation of the PAM code (defaults to
206 [enable_optimize_pam="yes"])
211 dnl weird ass systems
216 dnl Various compiler setup.
220 COMPILER_HAS_FUNCTION_MACRO
222 dnl Checks for programs.
229 OPENAFS_CHECK_BIGENDIAN
231 AC_MSG_CHECKING(your OS)
237 if test "x$enable_redhat_buildsys" = "xyes"; then
238 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
240 if test "x$enable_kernel_module" = "xyes"; then
241 if test "x$with_linux_kernel_headers" != "x"; then
242 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
244 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/source"
245 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
246 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
248 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
249 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
251 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
252 LINUX_KERNEL_PATH="/usr/src/linux"
255 if test -f "$LINUX_KERNEL_PATH/include/linux/utsrelease.h"; then
256 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
257 LINUX_VERSION="$linux_kvers"
259 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
260 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
261 if test "x$linux_kvers" = "x"; then
262 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
263 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
264 if test "x$linux_kvers" = "x"; then
266 AC_MSG_ERROR(Linux headers lack version definition [2])
269 LINUX_VERSION="$linux_kvers"
272 AC_MSG_ERROR(Linux headers lack version definition)
276 LINUX_VERSION="$linux_kvers"
279 enable_kernel_module="no"
282 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
283 enable_kernel_module="no"
285 if test "x$enable_kernel_module" = "xno"; then
286 if test "x$with_linux_kernel_headers" != "x"; then
287 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
290 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
293 dnl do we need to determine SUBARCH from autoconf.h
297 if test "x$enable_kernel_module" = "xyes"; then
298 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
299 if test "x${AFS_SYSKVERS}" = "x"; then
300 AC_MSG_ERROR(Couldn't guess your Linux version [2])
307 SOLARIS_UFSVFS_HAS_DQRWLOCK
308 SOLARIS_PROC_HAS_P_COREFILE
309 SOLARIS_FS_HAS_FS_ROLLED
313 enable_kernel_module=no
319 if test -f "/usr/old/usr/include/ndir.h"; then
320 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
324 if test -d /usr/include/sys/SN/SN1; then
325 IRIX_BUILD_IP35="IP35"
332 AC_MSG_RESULT(rs_aix)
336 AC_MSG_RESULT(alpha_dux)
340 AC_MSG_RESULT(ppc_darwin)
344 AC_MSG_RESULT(x86_darwin)
348 AC_MSG_RESULT(i386_fbsd)
356 AC_MSG_RESULT(i386_obsd)
359 AC_MSG_RESULT($system)
363 if test "x$with_afs_sysname" != "x"; then
364 AFS_SYSNAME="$with_afs_sysname"
366 AC_MSG_CHECKING(your AFS sysname)
372 AFS_SYSNAME="i386_obsd${vM}${vm}"
374 sparc64-*-openbsd?.?)
378 AFS_SYSNAME="sparc64_obsd${vM}${vm}"
384 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
387 AFS_SYSNAME="i386_nbsd15"
390 AFS_SYSNAME="alpha_nbsd15"
392 i?86-*-netbsd*1.6[[M-Z]]*)
393 AFS_SYSNAME="i386_nbsd20"
395 powerpc-*-netbsd*1.6[[M-Z]]*)
396 AFS_SYSNAME="ppc_nbsd20"
399 AFS_SYSNAME="i386_nbsd20"
402 AFS_SYSNAME="amd64_nbsd20"
404 x86_64-*-netbsd*3.[0-8]*)
405 AFS_PARAM_COMMON=param.nbsd30.h
406 AFS_SYSNAME="amd64_nbsd30"
408 x86_64-*-netbsd*4.[0-8]*)
409 AFS_PARAM_COMMON=param.nbsd40.h
410 AFS_SYSNAME="amd64_nbsd40"
412 powerpc-*-netbsd*2.0*)
413 AFS_SYSNAME="ppc_nbsd20"
416 AFS_SYSNAME="i386_nbsd16"
419 AFS_SYSNAME="alpha_nbsd16"
421 powerpc-*-netbsd*1.6*)
422 AFS_SYSNAME="ppc_nbsd16"
425 AFS_SYSNAME="i386_nbsd21"
428 AFS_SYSNAME="i386_nbsd30"
430 i?86-*-netbsd*3.[[0-8]]*)
431 AFS_SYSNAME="i386_nbsd30"
434 AFS_SYSNAME="i386_nbsd30"
436 i?86-*-netbsd*4.[[0-8]]*)
437 AFS_SYSNAME="i386_nbsd40"
440 AFS_SYSNAME="i386_nbsd40"
443 AFS_SYSNAME="hp_ux110"
446 AFS_SYSNAME="hp_ux11i"
449 AFS_SYSNAME="hp_ux1123"
452 AFS_SYSNAME="ia64_hpux1122"
455 AFS_SYSNAME="ia64_hpux1123"
458 AFS_SYSNAME="hp_ux102"
460 powerpc-apple-darwin1.2*)
461 AFS_SYSNAME="ppc_darwin_12"
463 powerpc-apple-darwin1.3*)
464 AFS_SYSNAME="ppc_darwin_13"
466 powerpc-apple-darwin1.4*)
467 AFS_SYSNAME="ppc_darwin_14"
469 powerpc-apple-darwin5.1*)
470 AFS_SYSNAME="ppc_darwin_14"
472 powerpc-apple-darwin5.2*)
473 AFS_SYSNAME="ppc_darwin_14"
475 powerpc-apple-darwin5.3*)
476 AFS_SYSNAME="ppc_darwin_14"
478 powerpc-apple-darwin5.4*)
479 AFS_SYSNAME="ppc_darwin_14"
481 powerpc-apple-darwin5.5*)
482 AFS_SYSNAME="ppc_darwin_14"
484 powerpc-apple-darwin6.0*)
485 AFS_SYSNAME="ppc_darwin_60"
487 powerpc-apple-darwin6.1*)
488 AFS_SYSNAME="ppc_darwin_60"
490 powerpc-apple-darwin6.2*)
491 AFS_SYSNAME="ppc_darwin_60"
493 powerpc-apple-darwin6.3*)
494 AFS_SYSNAME="ppc_darwin_60"
496 powerpc-apple-darwin6.4*)
497 AFS_SYSNAME="ppc_darwin_60"
499 powerpc-apple-darwin6.5*)
500 AFS_SYSNAME="ppc_darwin_60"
502 powerpc-apple-darwin7.0*)
503 AFS_SYSNAME="ppc_darwin_70"
505 powerpc-apple-darwin7.1*)
506 AFS_SYSNAME="ppc_darwin_70"
508 powerpc-apple-darwin7.2*)
509 AFS_SYSNAME="ppc_darwin_70"
511 powerpc-apple-darwin7.3*)
512 AFS_SYSNAME="ppc_darwin_70"
514 powerpc-apple-darwin7.4*)
515 AFS_SYSNAME="ppc_darwin_70"
517 powerpc-apple-darwin7.5*)
518 AFS_SYSNAME="ppc_darwin_70"
520 powerpc-apple-darwin8.0*)
521 AFS_SYSNAME="ppc_darwin_80"
523 powerpc-apple-darwin8.*)
524 AFS_SYSNAME="ppc_darwin_80"
526 i386-apple-darwin8.*)
527 AFS_SYSNAME="x86_darwin_80"
529 powerpc-apple-darwin9.*)
530 AFS_SYSNAME="ppc_darwin_90"
532 i386-apple-darwin9.*)
533 AFS_SYSNAME="x86_darwin_90"
535 sparc-sun-solaris2.5*)
536 AFS_SYSNAME="sun4x_55"
539 sparc-sun-solaris2.6)
540 AFS_SYSNAME="sun4x_56"
542 sparc-sun-solaris2.7)
543 AFS_SYSNAME="sun4x_57"
545 sparc-sun-solaris2.8)
546 AFS_SYSNAME="sun4x_58"
548 sparc-sun-solaris2.9)
549 AFS_SYSNAME="sun4x_59"
551 sparc-sun-solaris2.10)
552 AFS_SYSNAME="sun4x_510"
554 sparc-sun-solaris2.11)
555 AFS_SYSNAME="sun4x_511"
558 AFS_SYSNAME="sun4_413"
562 AFS_SYSNAME="sunx86_57"
565 AFS_SYSNAME="sunx86_58"
568 AFS_SYSNAME="sunx86_59"
571 AFS_SYSNAME="sunx86_510"
574 AFS_SYSNAME="sunx86_511"
577 AFS_SYSNAME="alpha_dux40"
580 AFS_SYSNAME="alpha_dux50"
583 AFS_SYSNAME="alpha_dux51"
589 AFS_SYSNAME="ia64_linuxXX"
592 AFS_SYSNAME="`/bin/arch`_linuxXX"
595 AFS_SYSNAME="ppc64_linuxXX"
598 AFS_SYSNAME="alpha_linux_XX"
601 AFS_SYSNAME="s390_linuxXX"
604 AFS_SYSNAME="s390x_linuxXX"
607 AFS_SYSNAME="`/bin/arch`_linuxXX"
610 AFS_SYSNAME="sparc64_linuxXX"
613 AFS_SYSNAME="i386_linuxXX"
615 parisc-*-linux-gnu|hppa-*-linux-gnu)
616 AFS_SYSNAME="parisc_linuxXX"
620 AFS_SYSNAME="rs_aix42"
624 AFS_SYSNAME="rs_aix42"
628 AFS_SYSNAME="rs_aix51"
632 AFS_SYSNAME="rs_aix52"
636 AFS_SYSNAME="rs_aix53"
640 AFS_SYSNAME="amd64_linuxXX"
644 AC_MSG_ERROR(An AFS sysname is required)
649 *_linux* | *_umlinux*)
650 if test "x${AFS_SYSKVERS}" = "x"; then
651 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
653 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
654 AFS_SYSNAME="$_AFS_SYSNAME"
655 save_CPPFLAGS="$CPPFLAGS"
656 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
658 [#include <linux/autoconf.h>],
659 [#ifndef CONFIG_USERMODE
662 ac_cv_linux_is_uml=yes,)
663 if test "${ac_cv_linux_is_uml}" = yes; then
664 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
666 CPPFLAGS="$save_CPPFLAGS"
667 AFS_SYSNAME="$_AFS_SYSNAME"
670 AC_MSG_RESULT($AFS_SYSNAME)
673 dnl Some hosts have a separate common param file they should include. Figure
674 dnl out if we're on one of them now that we know the sysname.
676 *_nbsd15) AFS_PARAM_COMMON=param.nbsd15.h ;;
677 *_nbsd16) AFS_PARAM_COMMON=param.nbsd16.h ;;
678 *_nbsd20) AFS_PARAM_COMMON=param.nbsd20.h ;;
679 *_nbsd21) AFS_PARAM_COMMON=param.nbsd21.h ;;
680 *_nbsd30) AFS_PARAM_COMMON=param.nbsd30.h ;;
681 *_nbsd40) AFS_PARAM_COMMON=param.nbsd40.h ;;
682 *_linux22) AFS_PARAM_COMMON=param.linux22.h ;;
683 *_linux24) AFS_PARAM_COMMON=param.linux24.h ;;
684 *_linux26) AFS_PARAM_COMMON=param.linux26.h ;;
687 case $AFS_SYSNAME in *_linux* | *_umlinux*)
689 # Add (sub-) architecture-specific paths needed by conftests
692 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
693 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
694 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
695 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
698 if test "x$enable_kernel_module" = "xyes"; then
699 if test "x$enable_debug_kernel" = "xno"; then
700 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
702 OPENAFS_GCC_SUPPORTS_MARCH
703 AC_SUBST(P5PLUS_KOPTS)
704 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
705 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
706 OPENAFS_GCC_SUPPORTS_NO_COMMON
707 OPENAFS_GCC_SUPPORTS_PIPE
708 AC_SUBST(LINUX_GCC_KOPTS)
709 ifdef([OPENAFS_CONFIGURE_LIBAFS],
710 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
711 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
714 LINUX_KBUILD_USES_EXTRA_CFLAGS
715 LINUX_KERNEL_COMPILE_WORKS
716 LINUX_EXPORTS_FIND_TASK_BY_PID
717 LINUX_EXPORTS_PROC_ROOT_FS
718 LINUX_HAVE_CURRENT_KERNEL_TIME
719 LINUX_KMEM_CACHE_INIT
720 LINUX_HAVE_KMEM_CACHE_T
721 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
722 LINUX_D_PATH_TAKES_STRUCT_PATH
724 LINUX_CONFIG_H_EXISTS
725 LINUX_COMPLETION_H_EXISTS
726 LINUX_EXPORTFS_H_EXISTS
727 LINUX_DEFINES_FOR_EACH_PROCESS
728 LINUX_DEFINES_PREV_TASK
729 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
730 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
731 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
732 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
733 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
734 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
735 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
736 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
737 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
738 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
739 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
740 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
741 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
742 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
743 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
744 LINUX_INODE_SETATTR_RETURN_TYPE
745 LINUX_WRITE_INODE_RETURN_TYPE
746 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
747 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
748 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
749 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
750 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
751 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
752 LINUX_AOP_WRITEBACK_CONTROL
753 LINUX_FS_STRUCT_FOP_HAS_FLOCK
754 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
755 LINUX_FS_STRUCT_FOP_HAS_SPLICE
756 LINUX_KERNEL_LINUX_SYSCALL_H
757 LINUX_KERNEL_LINUX_SEQ_FILE_H
758 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
760 LINUX_KERNEL_SOCK_CREATE
761 LINUX_KERNEL_PAGE_FOLLOW_LINK
762 LINUX_KERNEL_HLIST_UNHASHED
763 LINUX_KEY_TYPE_H_EXISTS
765 LINUX_RECALC_SIGPENDING_ARG_TYPE
766 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
767 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
768 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
769 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
770 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
771 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
772 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
773 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
774 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
775 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
776 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
777 LINUX_EXPORTS_TASKLIST_LOCK
778 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
779 LINUX_STATFS_TAKES_DENTRY
780 LINUX_FREEZER_H_EXISTS
781 LINUX_HAVE_SVC_ADDR_IN
782 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
783 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
786 LINUX_LINUX_KEYRING_SUPPORT
787 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
789 LINUX_GENERIC_FILE_AIO_READ
790 LINUX_INIT_WORK_HAS_DATA
791 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
792 LINUX_SYSCTL_TABLE_CHECKING
794 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
795 LINUX_EXPORTS_INIT_MM
796 LINUX_EXPORTS_SYS_CHDIR
797 LINUX_EXPORTS_SYS_CLOSE
798 LINUX_EXPORTS_SYS_OPEN
799 LINUX_EXPORTS_SYS_WAIT4
800 LINUX_EXPORTS_RCU_READ_LOCK
801 if test "x$with_linux_kernel_packaging" = "xno" ; then
806 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
807 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
808 ac_cv_linux_exports_sys_call_table=no
809 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
810 ac_cv_linux_exports_ia32_sys_call_table=yes
813 LINUX_EXPORTS_KALLSYMS_ADDRESS
814 LINUX_EXPORTS_KALLSYMS_SYMBOL
815 LINUX_EXPORTS_SYS_CALL_TABLE
816 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
817 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
818 linux_syscall_method=none
819 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
820 linux_syscall_method=scan
821 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
822 linux_syscall_method=scan_with_kallsyms_address
825 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
826 linux_syscall_method=kallsyms_symbol
828 if test "x$linux_syscall_method" = "xnone"; then
829 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
830 linux_syscall_method=scan
834 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
835 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
837 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
838 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
840 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
841 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
843 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
844 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
846 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
847 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
849 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
850 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
852 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
853 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
855 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
856 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
858 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
859 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
861 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
862 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
864 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
865 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
867 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
868 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
870 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
871 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
873 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
874 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
876 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
877 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
879 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
880 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
882 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
883 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
885 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
886 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
888 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
889 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
891 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
892 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
894 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
895 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
897 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
898 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
900 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
901 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
903 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
904 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
906 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
907 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
909 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
910 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
912 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
913 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
915 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
916 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
918 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
919 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
921 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
922 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
924 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
925 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
927 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
928 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
930 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
931 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
933 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
934 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
936 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
937 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
939 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
940 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
942 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
943 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
945 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
946 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
948 if test "x$ac_linux_syscall" = "xyes" ; then
949 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
951 if test "x$ac_linux_seq_file" = "xyes" ; then
952 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
954 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
955 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
957 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
958 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
960 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
961 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
963 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
964 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
966 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
967 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
969 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
970 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
972 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
973 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
975 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
976 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
978 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
979 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
981 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
982 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
984 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
985 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
987 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
988 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
990 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
991 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
993 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
994 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
996 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
997 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
999 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1000 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1002 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1003 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1005 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1006 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1008 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1009 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1011 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1012 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1014 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1015 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1017 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1018 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1020 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1021 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1023 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1024 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1026 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1027 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1029 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1030 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1032 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1033 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1035 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1036 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1038 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1039 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1041 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1042 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1044 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1045 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1047 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1048 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1050 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1051 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1053 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1054 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1056 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1057 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1059 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1061 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1062 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1068 case $AFS_SYSNAME in
1070 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1071 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1072 dnl the test below fails on darwin, even if the CPPFLAGS below
1073 dnl are added. the headers from Kernel.framework must be used
1074 dnl when KERNEL is defined.
1076 dnl really, such a thing isn't guaranteed to work on any
1077 dnl platform until the kernel cflags from MakefileProto are
1078 dnl known to configure
1079 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1082 AC_MSG_CHECKING(for definition of struct buf)
1083 dnl save_CPPFLAGS="$CPPFLAGS"
1084 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1085 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1086 ac_cv_have_struct_buf=no
1088 [#include <sys/buf.h>],
1090 printf("%d\n", sizeof(x));],
1091 ac_cv_have_struct_buf=yes,)
1094 dnl CPPFLAGS="$save_CPPFLAGS"
1095 AC_MSG_RESULT($ac_cv_have_struct_buf)
1096 if test "$ac_cv_have_struct_buf" = yes; then
1097 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1103 AC_CACHE_VAL(ac_cv_sockaddr_len,
1105 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1106 AC_TRY_COMPILE( [#include <sys/types.h>
1107 #include <sys/socket.h>],
1108 [struct sockaddr *a;
1109 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1110 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1111 if test "$ac_cv_sockaddr_len" = "yes"; then
1112 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1114 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1115 echo Skipping library tests because they confuse Irix.
1117 AC_CHECK_FUNCS(socket)
1119 if test "$ac_cv_func_socket" = no; then
1120 for lib in socket inet; do
1121 if test "$HAVE_SOCKET" != 1; then
1122 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1127 AC_CHECK_FUNCS(connect)
1129 if test "$ac_cv_func_connect" = no; then
1131 if test "$HAVE_CONNECT" != 1; then
1132 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1137 AC_CHECK_FUNCS(gethostbyname)
1138 if test "$ac_cv_func_gethostbyname" = no; then
1139 for lib in dns nsl resolv; do
1140 if test "$HAVE_GETHOSTBYNAME" != 1; then
1141 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1146 dnl darwin wants it, aix hates it
1147 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1151 #include <sys/types.h>
1152 #include <sys/socket.h>
1153 #include <netinet/in.h>
1154 #include <arpa/inet.h>
1155 #include <arpa/nameser.h>
1156 #include <arpa/nameser_compat.h>
1158 ], [static int i; i = 0;],
1160 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
1164 openafs_save_libs="$LIBS"
1165 AC_MSG_CHECKING([for res_search])
1168 if test "$ac_cv_func_res_search" = no; then
1169 for lib in dns nsl resolv; do
1170 if test "$ac_cv_func_res_search" != yes; then
1173 LIBS="$openafs_save_libs"
1176 if test "$ac_cv_func_res_search" = yes; then
1177 LIB_res_search="-l$lib"
1178 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1179 AC_MSG_RESULT([yes, in lib$lib])
1184 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1190 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1192 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1193 AC_TRY_COMPILE( [#include <sys/types.h>
1194 #include <sys/socket.h>
1195 #include <netinet/in.h>],
1197 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1198 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1199 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1200 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1204 if test "x$MKAFS_OSTYPE" = OBSD; then
1205 PTHREAD_LIBS="-pthread"
1207 if test "x$PTHREAD_LIBS" = xerror; then
1208 AC_CHECK_LIB(pthread, pthread_attr_init,
1209 PTHREAD_LIBS="-lpthread")
1211 if test "x$PTHREAD_LIBS" = xerror; then
1212 AC_CHECK_LIB(pthreads, pthread_attr_init,
1213 PTHREAD_LIBS="-lpthreads")
1215 if test "x$PTHREAD_LIBS" = xerror; then
1216 AC_CHECK_LIB(c_r, pthread_attr_init,
1217 PTHREAD_LIBS="-lc_r")
1219 if test "x$PTHREAD_LIBS" = xerror; then
1220 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1222 if test "x$PTHREAD_LIBS" = xerror; then
1223 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1224 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1225 PTHREAD_LIBS="-lpthread")
1227 if test "x$PTHREAD_LIBS" = xerror; then
1228 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1230 AC_SUBST(PTHREAD_LIBS)
1232 HOST_CPU="$host_cpu"
1234 if test "x$with_bsd_kernel_headers" != "x"; then
1235 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1237 BSD_KERNEL_PATH="/usr/src/sys"
1240 if test "x$with_bsd_kernel_build" != "x"; then
1241 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1243 case $AFS_SYSNAME in
1245 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1248 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1254 if test "$enable_supergroups" = "yes"; then
1255 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1258 if test "$enable_fast_restart" = "yes"; then
1259 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1262 if test "$enable_bitmap_later" = "yes"; then
1263 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1266 if test "$enable_demand_attach_fs" = "yes"; then
1267 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1272 AC_SUBST(DEMAND_ATTACH)
1274 if test "$enable_disconnected" = "yes"; then
1275 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1278 if test "$enable_unix_sockets" = "yes"; then
1279 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1280 USE_UNIX_SOCKETS="yes"
1282 USE_UNIX_SOCKETS="no"
1284 AC_SUBST(USE_UNIX_SOCKETS)
1286 if test "$enable_fast_restart" = "yes" &&
1287 test "$enable_demand_attach_fs" = "yes" ; then
1288 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.])
1292 if test "$enable_full_vos_listvol_switch" = "yes"; then
1293 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1296 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1297 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1298 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1302 if test "$enable_bos_restricted_mode" = "yes"; then
1303 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1306 if test "$enable_bos_new_config" = "yes"; then
1307 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1310 if test "$enable_largefile_fileserver" = "yes"; then
1311 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1314 if test "$enable_namei_fileserver" = "yes"; then
1315 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1318 if test "$enable_afsdb" = "yes"; then
1319 LIB_AFSDB="$LIB_res_search"
1320 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1323 dnl check for tivoli
1324 AC_MSG_CHECKING(for tivoli tsm butc support)
1326 if test "$enable_tivoli_tsm" = "yes"; then
1327 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1328 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1329 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1330 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1332 if test -r "$XBSADIR1/xbsa.h"; then
1333 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1335 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1336 elif test -r "$XBSADIR2/xbsa.h"; then
1337 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1339 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1340 elif test -r "$XBSADIR3/dsmapifp.h"; then
1341 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1343 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1344 elif test -r "$XBSADIR4/dsmapifp.h"; then
1345 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1347 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1349 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1354 AC_SUBST(XBSA_CFLAGS)
1355 AC_SUBST(XBSA_XLIBS)
1357 dnl checks for header files.
1361 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1362 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1363 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1364 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1365 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1366 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1367 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1369 dnl Don't build PAM on IRIX; the interface doesn't work for us.
1370 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1371 case $AFS_SYSNAME in
1384 if test "$enable_login" = yes; then
1389 AC_SUBST(BUILD_LOGIN)
1391 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1392 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1393 AC_CHECK_FUNCS(setvbuf vsyslog)
1394 AC_FUNC_SETVBUF_REVERSED
1395 AC_CHECK_FUNCS(regcomp regexec regerror)
1396 AC_MSG_CHECKING([for POSIX regex library])
1397 if test "$ac_cv_header_regex_h" = "yes" && \
1398 test "$ac_cv_func_regcomp" = "yes" && \
1399 test "$ac_cv_func_regexec" = "yes" && \
1400 test "$ac_cv_func_regerror" = "yes"; then
1401 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1408 AC_CHECK_TYPE(ssize_t, int)
1409 AC_CHECK_TYPE([sig_atomic_t], ,
1410 [AC_DEFINE([sig_atomic_t], [int],
1411 [Define to int if <signal.h> does not define.])],
1412 [#include <sys/types.h>
1413 #include <signal.h>])
1414 AC_SIZEOF_TYPE(long)
1416 AC_MSG_CHECKING(size of time_t)
1417 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1418 [AC_TRY_RUN([#include <stdio.h>
1422 FILE *f=fopen("conftestval", "w");
1424 fprintf(f, "%d\n", sizeof(time_t));
1426 }], ac_cv_sizeof_time_t=`cat conftestval`, ac_cv_sizeof_time_t=0)
1428 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1429 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t)
1431 AC_CHECK_FUNCS(timegm)
1432 AC_CHECK_FUNCS(daemon)
1434 dnl Directory PATH handling
1435 if test "x$enable_transarc_paths" = "xyes" ; then
1436 afsconfdir=${afsconfdir=/usr/afs/etc}
1437 viceetcdir=${viceetcdir=/usr/vice/etc}
1438 afskerneldir=${afskerneldir=${viceetcdir}}
1439 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1440 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1441 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1442 afsdbdir=${afsdbdir=/usr/afs/db}
1443 afslogsdir=${afslogsdir=/usr/afs/logs}
1444 afslocaldir=${afslocaldir=/usr/afs/local}
1445 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1446 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1448 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1449 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1450 afskerneldir=${afskerneldir='${libdir}/openafs'}
1451 afssrvbindir=${afssrvbindir='${bindir}'}
1452 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1453 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1454 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1455 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1456 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1457 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1458 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1460 AC_SUBST(afsconfdir)
1461 AC_SUBST(viceetcdir)
1462 AC_SUBST(afskerneldir)
1463 AC_SUBST(afssrvbindir)
1464 AC_SUBST(afssrvsbindir)
1465 AC_SUBST(afssrvlibexecdir)
1467 AC_SUBST(afslogsdir)
1468 AC_SUBST(afslocaldir)
1469 AC_SUBST(afsbackupdir)
1470 AC_SUBST(afsbosconfigdir)
1472 if test "x$enable_kernel_module" = "xyes"; then
1473 ENABLE_KERNEL_MODULE=libafs
1476 if test "x$enable_pthreaded_ubik" = "xyes"; then
1477 ENABLE_PTHREADED_UBIK=yes
1480 AC_SUBST(AFS_SYSNAME)
1481 AC_SUBST(AFS_PARAM_COMMON)
1482 AC_SUBST(ENABLE_KERNEL_MODULE)
1483 AC_SUBST(ENABLE_PTHREADED_UBIK)
1485 AC_SUBST(LINUX_KERNEL_PATH)
1487 AC_SUBST(BSD_KERNEL_PATH)
1488 AC_SUBST(BSD_KERNEL_BUILD)
1489 AC_SUBST(LINUX_VERSION)
1490 AC_SUBST(MKAFS_OSTYPE)
1491 AC_SUBST(TOP_OBJDIR)
1492 AC_SUBST(TOP_SRCDIR)
1493 AC_SUBST(TOP_INCDIR)
1494 AC_SUBST(TOP_LIBDIR)
1496 AC_SUBST(DARWIN_INFOFILE)
1497 AC_SUBST(IRIX_BUILD_IP35)
1502 TOP_SRCDIR="${srcdir}/src"
1504 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1510 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1514 TOP_OBJDIR="${SRCDIR_PARENT}"
1515 TOP_INCDIR="${SRCDIR_PARENT}/include"
1516 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1517 if test "${DEST}x" = "x"; then
1518 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1521 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1522 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1523 AC_SUBST(HELPER_SPLINT)
1524 AC_SUBST(HELPER_SPLINTCFG)
1526 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs