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="default"])
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="rs_aix61"
644 AFS_SYSNAME="amd64_linuxXX"
648 AC_MSG_ERROR(An AFS sysname is required)
653 *_linux* | *_umlinux*)
654 if test "x${AFS_SYSKVERS}" = "x"; then
655 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
657 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
658 AFS_SYSNAME="$_AFS_SYSNAME"
659 save_CPPFLAGS="$CPPFLAGS"
660 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
662 [#include <linux/autoconf.h>],
663 [#ifndef CONFIG_USERMODE
666 ac_cv_linux_is_uml=yes,)
667 if test "${ac_cv_linux_is_uml}" = yes; then
668 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
670 CPPFLAGS="$save_CPPFLAGS"
671 AFS_SYSNAME="$_AFS_SYSNAME"
674 AC_MSG_RESULT($AFS_SYSNAME)
677 dnl Some hosts have a separate common param file they should include. Figure
678 dnl out if we're on one of them now that we know the sysname.
680 *_nbsd15) AFS_PARAM_COMMON=param.nbsd15.h ;;
681 *_nbsd16) AFS_PARAM_COMMON=param.nbsd16.h ;;
682 *_nbsd20) AFS_PARAM_COMMON=param.nbsd20.h ;;
683 *_nbsd21) AFS_PARAM_COMMON=param.nbsd21.h ;;
684 *_nbsd30) AFS_PARAM_COMMON=param.nbsd30.h ;;
685 *_nbsd40) AFS_PARAM_COMMON=param.nbsd40.h ;;
686 *_linux22) AFS_PARAM_COMMON=param.linux22.h ;;
687 *_linux24) AFS_PARAM_COMMON=param.linux24.h ;;
688 *_linux26) AFS_PARAM_COMMON=param.linux26.h ;;
691 case $AFS_SYSNAME in *_linux* | *_umlinux*)
693 # Add (sub-) architecture-specific paths needed by conftests
696 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
697 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
698 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
699 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
702 if test "x$enable_kernel_module" = "xyes"; then
703 if test "x$enable_debug_kernel" = "xno"; then
704 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
706 OPENAFS_GCC_SUPPORTS_MARCH
707 AC_SUBST(P5PLUS_KOPTS)
708 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
709 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
710 OPENAFS_GCC_SUPPORTS_NO_COMMON
711 OPENAFS_GCC_SUPPORTS_PIPE
712 AC_SUBST(LINUX_GCC_KOPTS)
713 ifdef([OPENAFS_CONFIGURE_LIBAFS],
714 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
715 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
718 LINUX_KBUILD_USES_EXTRA_CFLAGS
719 LINUX_KERNEL_COMPILE_WORKS
720 LINUX_EXPORTS_FIND_TASK_BY_PID
721 LINUX_EXPORTS_PROC_ROOT_FS
722 LINUX_HAVE_CURRENT_KERNEL_TIME
723 LINUX_KMEM_CACHE_INIT
724 LINUX_HAVE_KMEM_CACHE_T
725 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
726 LINUX_D_PATH_TAKES_STRUCT_PATH
728 LINUX_CONFIG_H_EXISTS
729 LINUX_COMPLETION_H_EXISTS
730 LINUX_SEMAPHORE_H_EXISTS
731 LINUX_EXPORTFS_H_EXISTS
732 LINUX_DEFINES_FOR_EACH_PROCESS
733 LINUX_DEFINES_PREV_TASK
734 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
735 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
736 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
737 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
738 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
739 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
740 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
741 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
742 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
743 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
744 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
745 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
746 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
747 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
748 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
749 LINUX_INODE_SETATTR_RETURN_TYPE
750 LINUX_WRITE_INODE_RETURN_TYPE
751 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
752 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
753 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
754 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
755 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
756 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
757 LINUX_AOP_WRITEBACK_CONTROL
758 LINUX_FS_STRUCT_FOP_HAS_FLOCK
759 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
760 LINUX_FS_STRUCT_FOP_HAS_SPLICE
761 LINUX_KERNEL_LINUX_SYSCALL_H
762 LINUX_KERNEL_LINUX_SEQ_FILE_H
763 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
765 LINUX_KERNEL_SOCK_CREATE
766 LINUX_KERNEL_PAGE_FOLLOW_LINK
767 LINUX_KERNEL_HLIST_UNHASHED
768 LINUX_KEY_TYPE_H_EXISTS
770 LINUX_RECALC_SIGPENDING_ARG_TYPE
771 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
772 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
773 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
774 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
775 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
776 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
777 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
778 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
779 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
780 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
781 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
782 LINUX_EXPORTS_TASKLIST_LOCK
783 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
784 LINUX_STATFS_TAKES_DENTRY
785 LINUX_FREEZER_H_EXISTS
786 LINUX_HAVE_SVC_ADDR_IN
787 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
788 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
791 LINUX_LINUX_KEYRING_SUPPORT
792 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
794 LINUX_GENERIC_FILE_AIO_READ
795 LINUX_INIT_WORK_HAS_DATA
796 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
797 LINUX_SYSCTL_TABLE_CHECKING
799 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
800 LINUX_EXPORTS_INIT_MM
801 LINUX_EXPORTS_SYS_CHDIR
802 LINUX_EXPORTS_SYS_CLOSE
803 LINUX_EXPORTS_SYS_OPEN
804 LINUX_EXPORTS_SYS_WAIT4
805 LINUX_EXPORTS_RCU_READ_LOCK
806 if test "x$with_linux_kernel_packaging" = "xno" ; then
811 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
812 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
813 ac_cv_linux_exports_sys_call_table=no
814 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
815 ac_cv_linux_exports_ia32_sys_call_table=yes
818 LINUX_EXPORTS_KALLSYMS_ADDRESS
819 LINUX_EXPORTS_KALLSYMS_SYMBOL
820 LINUX_EXPORTS_SYS_CALL_TABLE
821 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
822 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
823 linux_syscall_method=none
824 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
825 linux_syscall_method=scan
826 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
827 linux_syscall_method=scan_with_kallsyms_address
830 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
831 linux_syscall_method=kallsyms_symbol
833 if test "x$linux_syscall_method" = "xnone"; then
834 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
835 linux_syscall_method=scan
839 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
840 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
842 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
843 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
845 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
846 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
848 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
849 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
851 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
852 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
854 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
855 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
857 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
858 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
860 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
861 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
863 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
864 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
866 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
867 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
869 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
870 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
872 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
873 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
875 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
876 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
878 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
879 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
881 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
882 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
884 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
885 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
887 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
888 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
890 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
891 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
893 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
894 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
896 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
897 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
899 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
900 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
902 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
903 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
905 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
906 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
908 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
909 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
911 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
912 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
914 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
915 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
917 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
918 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
920 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
921 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
923 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
924 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
926 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
927 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
929 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
930 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
932 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
933 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
935 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
936 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
938 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
939 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
941 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
942 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
944 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
945 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
947 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
948 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
950 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
951 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
953 if test "x$ac_linux_syscall" = "xyes" ; then
954 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
956 if test "x$ac_linux_seq_file" = "xyes" ; then
957 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
959 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
960 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
962 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
963 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
965 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
966 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
968 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
969 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
971 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
972 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
974 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
975 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
977 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
978 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
980 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
981 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
983 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
984 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
986 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
987 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
989 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
990 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
992 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
993 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
995 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
996 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
998 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
999 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
1001 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
1002 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
1004 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1005 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1007 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1008 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1010 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1011 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1013 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1014 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1016 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1017 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1019 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1020 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1022 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1023 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1025 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1026 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1028 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1029 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1031 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1032 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1034 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1035 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1037 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1038 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1040 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1041 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1043 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1044 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1046 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1047 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1049 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1050 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1052 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1053 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1055 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1056 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1058 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1059 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1061 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1062 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1064 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1066 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1067 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1073 case $AFS_SYSNAME in
1075 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1076 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1077 dnl the test below fails on darwin, even if the CPPFLAGS below
1078 dnl are added. the headers from Kernel.framework must be used
1079 dnl when KERNEL is defined.
1081 dnl really, such a thing isn't guaranteed to work on any
1082 dnl platform until the kernel cflags from MakefileProto are
1083 dnl known to configure
1084 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1087 AC_MSG_CHECKING(for definition of struct buf)
1088 dnl save_CPPFLAGS="$CPPFLAGS"
1089 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1090 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1091 ac_cv_have_struct_buf=no
1093 [#include <sys/buf.h>],
1095 printf("%d\n", sizeof(x));],
1096 ac_cv_have_struct_buf=yes,)
1099 dnl CPPFLAGS="$save_CPPFLAGS"
1100 AC_MSG_RESULT($ac_cv_have_struct_buf)
1101 if test "$ac_cv_have_struct_buf" = yes; then
1102 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1108 AC_CACHE_VAL(ac_cv_sockaddr_len,
1110 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1111 AC_TRY_COMPILE( [#include <sys/types.h>
1112 #include <sys/socket.h>],
1113 [struct sockaddr *a;
1114 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1115 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1116 if test "$ac_cv_sockaddr_len" = "yes"; then
1117 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1119 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1120 echo Skipping library tests because they confuse Irix.
1122 AC_CHECK_FUNCS(socket)
1124 if test "$ac_cv_func_socket" = no; then
1125 for lib in socket inet; do
1126 if test "$HAVE_SOCKET" != 1; then
1127 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1132 AC_CHECK_FUNCS(connect)
1134 if test "$ac_cv_func_connect" = no; then
1136 if test "$HAVE_CONNECT" != 1; then
1137 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1142 AC_CHECK_FUNCS(gethostbyname)
1143 if test "$ac_cv_func_gethostbyname" = no; then
1144 for lib in dns nsl resolv; do
1145 if test "$HAVE_GETHOSTBYNAME" != 1; then
1146 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1151 dnl darwin wants it, aix hates it
1152 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1156 #include <sys/types.h>
1157 #include <sys/socket.h>
1158 #include <netinet/in.h>
1159 #include <arpa/inet.h>
1160 #include <arpa/nameser.h>
1161 #include <arpa/nameser_compat.h>
1163 ], [static int i; i = 0;],
1165 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
1169 openafs_save_libs="$LIBS"
1170 AC_MSG_CHECKING([for res_search])
1173 if test "$ac_cv_func_res_search" = no; then
1174 for lib in dns nsl resolv; do
1175 if test "$ac_cv_func_res_search" != yes; then
1178 LIBS="$openafs_save_libs"
1181 if test "$ac_cv_func_res_search" = yes; then
1182 LIB_res_search="-l$lib"
1183 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1184 AC_MSG_RESULT([yes, in lib$lib])
1189 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1195 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1197 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1198 AC_TRY_COMPILE( [#include <sys/types.h>
1199 #include <sys/socket.h>
1200 #include <netinet/in.h>],
1202 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1203 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1204 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1205 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1209 if test "x$MKAFS_OSTYPE" = OBSD; then
1210 PTHREAD_LIBS="-pthread"
1212 if test "x$PTHREAD_LIBS" = xerror; then
1213 AC_CHECK_LIB(pthread, pthread_attr_init,
1214 PTHREAD_LIBS="-lpthread")
1216 if test "x$PTHREAD_LIBS" = xerror; then
1217 AC_CHECK_LIB(pthreads, pthread_attr_init,
1218 PTHREAD_LIBS="-lpthreads")
1220 if test "x$PTHREAD_LIBS" = xerror; then
1221 AC_CHECK_LIB(c_r, pthread_attr_init,
1222 PTHREAD_LIBS="-lc_r")
1224 if test "x$PTHREAD_LIBS" = xerror; then
1225 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1227 if test "x$PTHREAD_LIBS" = xerror; then
1228 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1229 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1230 PTHREAD_LIBS="-lpthread")
1232 if test "x$PTHREAD_LIBS" = xerror; then
1233 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1235 AC_SUBST(PTHREAD_LIBS)
1237 HOST_CPU="$host_cpu"
1239 if test "x$with_bsd_kernel_headers" != "x"; then
1240 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1242 BSD_KERNEL_PATH="/usr/src/sys"
1245 if test "x$with_bsd_kernel_build" != "x"; then
1246 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1248 case $AFS_SYSNAME in
1250 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1253 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1259 if test "$enable_supergroups" = "yes"; then
1260 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1263 if test "$enable_fast_restart" = "yes"; then
1264 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1267 if test "$enable_bitmap_later" = "yes"; then
1268 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1271 if test "$enable_demand_attach_fs" = "yes"; then
1272 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1277 AC_SUBST(DEMAND_ATTACH)
1279 if test "$enable_disconnected" = "yes"; then
1280 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1283 if test "$enable_unix_sockets" = "yes"; then
1284 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1285 USE_UNIX_SOCKETS="yes"
1287 USE_UNIX_SOCKETS="no"
1289 AC_SUBST(USE_UNIX_SOCKETS)
1291 if test "$enable_fast_restart" = "yes" &&
1292 test "$enable_demand_attach_fs" = "yes" ; then
1293 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.])
1297 if test "$enable_full_vos_listvol_switch" = "yes"; then
1298 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1301 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1302 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1303 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1307 if test "$enable_bos_restricted_mode" = "yes"; then
1308 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1311 if test "$enable_bos_new_config" = "yes"; then
1312 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1315 if test "$enable_largefile_fileserver" = "yes"; then
1316 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1319 if test "$enable_namei_fileserver" = "yes"; then
1320 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1322 if test "$enable_namei_fileserver" = "default"; then
1325 AC_MSG_WARN(Some Solaris 10 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1326 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1329 AC_MSG_WARN(Solaris 11 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1330 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1338 if test "$enable_afsdb" = "yes"; then
1339 LIB_AFSDB="$LIB_res_search"
1340 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1343 dnl check for tivoli
1344 AC_MSG_CHECKING(for tivoli tsm butc support)
1346 if test "$enable_tivoli_tsm" = "yes"; then
1347 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1348 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1349 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1350 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1352 if test -r "$XBSADIR1/xbsa.h"; then
1353 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1355 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1356 elif test -r "$XBSADIR2/xbsa.h"; then
1357 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1359 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1360 elif test -r "$XBSADIR3/dsmapifp.h"; then
1361 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1363 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1364 elif test -r "$XBSADIR4/dsmapifp.h"; then
1365 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1367 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1369 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1374 AC_SUBST(XBSA_CFLAGS)
1375 AC_SUBST(XBSA_XLIBS)
1377 dnl checks for header files.
1381 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1382 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1383 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1384 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1385 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1386 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1387 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1389 dnl Don't build PAM on IRIX; the interface doesn't work for us.
1390 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1391 case $AFS_SYSNAME in
1404 if test "$enable_login" = yes; then
1409 AC_SUBST(BUILD_LOGIN)
1411 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1412 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1413 AC_CHECK_FUNCS(setvbuf vsyslog)
1414 AC_FUNC_SETVBUF_REVERSED
1415 AC_CHECK_FUNCS(regcomp regexec regerror)
1416 AC_MSG_CHECKING([for POSIX regex library])
1417 if test "$ac_cv_header_regex_h" = "yes" && \
1418 test "$ac_cv_func_regcomp" = "yes" && \
1419 test "$ac_cv_func_regexec" = "yes" && \
1420 test "$ac_cv_func_regerror" = "yes"; then
1421 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1428 AC_CHECK_TYPE(ssize_t, int)
1429 AC_CHECK_TYPE([sig_atomic_t], ,
1430 [AC_DEFINE([sig_atomic_t], [int],
1431 [Define to int if <signal.h> does not define.])],
1432 [#include <sys/types.h>
1433 #include <signal.h>])
1434 AC_SIZEOF_TYPE(long)
1436 AC_CHECK_FUNCS(timegm)
1437 AC_CHECK_FUNCS(daemon)
1439 dnl Directory PATH handling
1440 if test "x$enable_transarc_paths" = "xyes" ; then
1441 afsconfdir=${afsconfdir=/usr/afs/etc}
1442 viceetcdir=${viceetcdir=/usr/vice/etc}
1443 afskerneldir=${afskerneldir=${viceetcdir}}
1444 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1445 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1446 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1447 afsdbdir=${afsdbdir=/usr/afs/db}
1448 afslogsdir=${afslogsdir=/usr/afs/logs}
1449 afslocaldir=${afslocaldir=/usr/afs/local}
1450 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1451 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1453 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1454 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1455 afskerneldir=${afskerneldir='${libdir}/openafs'}
1456 afssrvbindir=${afssrvbindir='${bindir}'}
1457 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1458 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1459 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1460 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1461 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1462 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1463 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1465 AC_SUBST(afsconfdir)
1466 AC_SUBST(viceetcdir)
1467 AC_SUBST(afskerneldir)
1468 AC_SUBST(afssrvbindir)
1469 AC_SUBST(afssrvsbindir)
1470 AC_SUBST(afssrvlibexecdir)
1472 AC_SUBST(afslogsdir)
1473 AC_SUBST(afslocaldir)
1474 AC_SUBST(afsbackupdir)
1475 AC_SUBST(afsbosconfigdir)
1477 if test "x$enable_kernel_module" = "xyes"; then
1478 ENABLE_KERNEL_MODULE=libafs
1481 if test "x$enable_pthreaded_ubik" = "xyes"; then
1482 ENABLE_PTHREADED_UBIK=yes
1485 AC_SUBST(AFS_SYSNAME)
1486 AC_SUBST(AFS_PARAM_COMMON)
1487 AC_SUBST(ENABLE_KERNEL_MODULE)
1488 AC_SUBST(ENABLE_PTHREADED_UBIK)
1490 AC_SUBST(LINUX_KERNEL_PATH)
1492 AC_SUBST(BSD_KERNEL_PATH)
1493 AC_SUBST(BSD_KERNEL_BUILD)
1494 AC_SUBST(LINUX_VERSION)
1495 AC_SUBST(MKAFS_OSTYPE)
1496 AC_SUBST(TOP_OBJDIR)
1497 AC_SUBST(TOP_SRCDIR)
1498 AC_SUBST(TOP_INCDIR)
1499 AC_SUBST(TOP_LIBDIR)
1501 AC_SUBST(DARWIN_INFOFILE)
1502 AC_SUBST(IRIX_BUILD_IP35)
1507 TOP_SRCDIR="${srcdir}/src"
1509 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1515 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1519 TOP_OBJDIR="${SRCDIR_PARENT}"
1520 TOP_INCDIR="${SRCDIR_PARENT}/include"
1521 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1522 if test "${DEST}x" = "x"; then
1523 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1526 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1527 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1528 AC_SUBST(HELPER_SPLINT)
1529 AC_SUBST(HELPER_SPLINTCFG)
1531 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs