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_SEMAPHORE_H_EXISTS
727 LINUX_EXPORTFS_H_EXISTS
728 LINUX_DEFINES_FOR_EACH_PROCESS
729 LINUX_DEFINES_PREV_TASK
730 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
731 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
732 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
733 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
734 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
735 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
736 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
737 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
738 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
739 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
740 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
741 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
742 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
743 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
744 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
745 LINUX_INODE_SETATTR_RETURN_TYPE
746 LINUX_WRITE_INODE_RETURN_TYPE
747 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
748 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
749 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
750 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
751 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
752 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
753 LINUX_AOP_WRITEBACK_CONTROL
754 LINUX_FS_STRUCT_FOP_HAS_FLOCK
755 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
756 LINUX_FS_STRUCT_FOP_HAS_SPLICE
757 LINUX_KERNEL_LINUX_SYSCALL_H
758 LINUX_KERNEL_LINUX_SEQ_FILE_H
759 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
761 LINUX_KERNEL_SOCK_CREATE
762 LINUX_KERNEL_PAGE_FOLLOW_LINK
763 LINUX_KERNEL_HLIST_UNHASHED
764 LINUX_KEY_TYPE_H_EXISTS
766 LINUX_RECALC_SIGPENDING_ARG_TYPE
767 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
768 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
769 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
770 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
771 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
772 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
773 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
774 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
775 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
776 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
777 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
778 LINUX_EXPORTS_TASKLIST_LOCK
779 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
780 LINUX_STATFS_TAKES_DENTRY
781 LINUX_FREEZER_H_EXISTS
782 LINUX_HAVE_SVC_ADDR_IN
783 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
784 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
787 LINUX_LINUX_KEYRING_SUPPORT
788 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
790 LINUX_GENERIC_FILE_AIO_READ
791 LINUX_INIT_WORK_HAS_DATA
792 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
793 LINUX_SYSCTL_TABLE_CHECKING
795 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
796 LINUX_EXPORTS_INIT_MM
797 LINUX_EXPORTS_SYS_CHDIR
798 LINUX_EXPORTS_SYS_CLOSE
799 LINUX_EXPORTS_SYS_OPEN
800 LINUX_EXPORTS_SYS_WAIT4
801 LINUX_EXPORTS_RCU_READ_LOCK
802 if test "x$with_linux_kernel_packaging" = "xno" ; then
807 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
808 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
809 ac_cv_linux_exports_sys_call_table=no
810 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
811 ac_cv_linux_exports_ia32_sys_call_table=yes
814 LINUX_EXPORTS_KALLSYMS_ADDRESS
815 LINUX_EXPORTS_KALLSYMS_SYMBOL
816 LINUX_EXPORTS_SYS_CALL_TABLE
817 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
818 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
819 linux_syscall_method=none
820 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
821 linux_syscall_method=scan
822 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
823 linux_syscall_method=scan_with_kallsyms_address
826 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
827 linux_syscall_method=kallsyms_symbol
829 if test "x$linux_syscall_method" = "xnone"; then
830 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
831 linux_syscall_method=scan
835 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
836 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
838 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
839 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
841 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
842 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
844 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
845 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
847 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
848 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
850 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
851 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
853 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
854 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
856 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
857 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
859 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
860 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
862 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
863 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
865 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
866 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
868 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
869 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
871 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
872 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
874 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
875 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
877 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
878 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
880 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
881 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
883 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
884 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
886 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
887 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
889 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
890 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
892 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
893 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
895 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
896 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
898 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
899 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
901 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
902 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
904 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
905 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
907 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
908 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
910 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
911 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
913 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
914 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
916 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
917 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
919 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
920 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
922 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
923 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
925 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
926 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
928 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
929 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
931 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
932 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
934 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
935 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
937 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
938 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
940 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
941 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
943 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
944 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
946 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
947 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
949 if test "x$ac_linux_syscall" = "xyes" ; then
950 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
952 if test "x$ac_linux_seq_file" = "xyes" ; then
953 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
955 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
956 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
958 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
959 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
961 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
962 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
964 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
965 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
967 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
968 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
970 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
971 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
973 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
974 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
976 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
977 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
979 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
980 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
982 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
983 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
985 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
986 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
988 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
989 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
991 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
992 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
994 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
995 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
997 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
998 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
1000 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1001 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1003 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1004 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1006 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1007 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1009 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1010 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1012 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1013 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1015 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1016 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1018 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1019 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1021 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1022 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1024 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1025 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1027 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1028 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1030 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1031 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1033 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1034 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1036 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1037 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1039 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1040 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1042 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1043 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1045 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1046 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1048 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1049 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1051 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1052 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1054 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1055 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1057 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1058 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1060 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1062 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1063 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1069 case $AFS_SYSNAME in
1071 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1072 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1073 dnl the test below fails on darwin, even if the CPPFLAGS below
1074 dnl are added. the headers from Kernel.framework must be used
1075 dnl when KERNEL is defined.
1077 dnl really, such a thing isn't guaranteed to work on any
1078 dnl platform until the kernel cflags from MakefileProto are
1079 dnl known to configure
1080 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1083 AC_MSG_CHECKING(for definition of struct buf)
1084 dnl save_CPPFLAGS="$CPPFLAGS"
1085 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1086 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1087 ac_cv_have_struct_buf=no
1089 [#include <sys/buf.h>],
1091 printf("%d\n", sizeof(x));],
1092 ac_cv_have_struct_buf=yes,)
1095 dnl CPPFLAGS="$save_CPPFLAGS"
1096 AC_MSG_RESULT($ac_cv_have_struct_buf)
1097 if test "$ac_cv_have_struct_buf" = yes; then
1098 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1104 AC_CACHE_VAL(ac_cv_sockaddr_len,
1106 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1107 AC_TRY_COMPILE( [#include <sys/types.h>
1108 #include <sys/socket.h>],
1109 [struct sockaddr *a;
1110 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1111 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1112 if test "$ac_cv_sockaddr_len" = "yes"; then
1113 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1115 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1116 echo Skipping library tests because they confuse Irix.
1118 AC_CHECK_FUNCS(socket)
1120 if test "$ac_cv_func_socket" = no; then
1121 for lib in socket inet; do
1122 if test "$HAVE_SOCKET" != 1; then
1123 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1128 AC_CHECK_FUNCS(connect)
1130 if test "$ac_cv_func_connect" = no; then
1132 if test "$HAVE_CONNECT" != 1; then
1133 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1138 AC_CHECK_FUNCS(gethostbyname)
1139 if test "$ac_cv_func_gethostbyname" = no; then
1140 for lib in dns nsl resolv; do
1141 if test "$HAVE_GETHOSTBYNAME" != 1; then
1142 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1147 dnl darwin wants it, aix hates it
1148 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1152 #include <sys/types.h>
1153 #include <sys/socket.h>
1154 #include <netinet/in.h>
1155 #include <arpa/inet.h>
1156 #include <arpa/nameser.h>
1157 #include <arpa/nameser_compat.h>
1159 ], [static int i; i = 0;],
1161 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
1165 openafs_save_libs="$LIBS"
1166 AC_MSG_CHECKING([for res_search])
1169 if test "$ac_cv_func_res_search" = no; then
1170 for lib in dns nsl resolv; do
1171 if test "$ac_cv_func_res_search" != yes; then
1174 LIBS="$openafs_save_libs"
1177 if test "$ac_cv_func_res_search" = yes; then
1178 LIB_res_search="-l$lib"
1179 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1180 AC_MSG_RESULT([yes, in lib$lib])
1185 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1191 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1193 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1194 AC_TRY_COMPILE( [#include <sys/types.h>
1195 #include <sys/socket.h>
1196 #include <netinet/in.h>],
1198 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1199 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1200 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1201 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1205 if test "x$MKAFS_OSTYPE" = OBSD; then
1206 PTHREAD_LIBS="-pthread"
1208 if test "x$PTHREAD_LIBS" = xerror; then
1209 AC_CHECK_LIB(pthread, pthread_attr_init,
1210 PTHREAD_LIBS="-lpthread")
1212 if test "x$PTHREAD_LIBS" = xerror; then
1213 AC_CHECK_LIB(pthreads, pthread_attr_init,
1214 PTHREAD_LIBS="-lpthreads")
1216 if test "x$PTHREAD_LIBS" = xerror; then
1217 AC_CHECK_LIB(c_r, pthread_attr_init,
1218 PTHREAD_LIBS="-lc_r")
1220 if test "x$PTHREAD_LIBS" = xerror; then
1221 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1223 if test "x$PTHREAD_LIBS" = xerror; then
1224 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1225 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1226 PTHREAD_LIBS="-lpthread")
1228 if test "x$PTHREAD_LIBS" = xerror; then
1229 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1231 AC_SUBST(PTHREAD_LIBS)
1233 HOST_CPU="$host_cpu"
1235 if test "x$with_bsd_kernel_headers" != "x"; then
1236 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1238 BSD_KERNEL_PATH="/usr/src/sys"
1241 if test "x$with_bsd_kernel_build" != "x"; then
1242 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1244 case $AFS_SYSNAME in
1246 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1249 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1255 if test "$enable_supergroups" = "yes"; then
1256 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1259 if test "$enable_fast_restart" = "yes"; then
1260 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1263 if test "$enable_bitmap_later" = "yes"; then
1264 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1267 if test "$enable_demand_attach_fs" = "yes"; then
1268 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1273 AC_SUBST(DEMAND_ATTACH)
1275 if test "$enable_disconnected" = "yes"; then
1276 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1279 if test "$enable_unix_sockets" = "yes"; then
1280 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1281 USE_UNIX_SOCKETS="yes"
1283 USE_UNIX_SOCKETS="no"
1285 AC_SUBST(USE_UNIX_SOCKETS)
1287 if test "$enable_fast_restart" = "yes" &&
1288 test "$enable_demand_attach_fs" = "yes" ; then
1289 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.])
1293 if test "$enable_full_vos_listvol_switch" = "yes"; then
1294 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1297 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1298 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1299 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1303 if test "$enable_bos_restricted_mode" = "yes"; then
1304 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1307 if test "$enable_bos_new_config" = "yes"; then
1308 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1311 if test "$enable_largefile_fileserver" = "yes"; then
1312 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1315 if test "$enable_namei_fileserver" = "yes"; then
1316 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1319 if test "$enable_afsdb" = "yes"; then
1320 LIB_AFSDB="$LIB_res_search"
1321 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1324 dnl check for tivoli
1325 AC_MSG_CHECKING(for tivoli tsm butc support)
1327 if test "$enable_tivoli_tsm" = "yes"; then
1328 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1329 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1330 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1331 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1333 if test -r "$XBSADIR1/xbsa.h"; then
1334 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1336 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1337 elif test -r "$XBSADIR2/xbsa.h"; then
1338 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1340 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1341 elif test -r "$XBSADIR3/dsmapifp.h"; then
1342 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1344 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1345 elif test -r "$XBSADIR4/dsmapifp.h"; then
1346 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1348 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1350 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1355 AC_SUBST(XBSA_CFLAGS)
1356 AC_SUBST(XBSA_XLIBS)
1358 dnl checks for header files.
1362 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1363 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1364 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1365 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1366 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1367 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1368 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1370 dnl Don't build PAM on IRIX; the interface doesn't work for us.
1371 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1372 case $AFS_SYSNAME in
1385 if test "$enable_login" = yes; then
1390 AC_SUBST(BUILD_LOGIN)
1392 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1393 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1394 AC_CHECK_FUNCS(setvbuf vsyslog)
1395 AC_FUNC_SETVBUF_REVERSED
1396 AC_CHECK_FUNCS(regcomp regexec regerror)
1397 AC_MSG_CHECKING([for POSIX regex library])
1398 if test "$ac_cv_header_regex_h" = "yes" && \
1399 test "$ac_cv_func_regcomp" = "yes" && \
1400 test "$ac_cv_func_regexec" = "yes" && \
1401 test "$ac_cv_func_regerror" = "yes"; then
1402 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1409 AC_CHECK_TYPE(ssize_t, int)
1410 AC_CHECK_TYPE([sig_atomic_t], ,
1411 [AC_DEFINE([sig_atomic_t], [int],
1412 [Define to int if <signal.h> does not define.])],
1413 [#include <sys/types.h>
1414 #include <signal.h>])
1415 AC_SIZEOF_TYPE(long)
1417 AC_CHECK_FUNCS(timegm)
1418 AC_CHECK_FUNCS(daemon)
1420 dnl Directory PATH handling
1421 if test "x$enable_transarc_paths" = "xyes" ; then
1422 afsconfdir=${afsconfdir=/usr/afs/etc}
1423 viceetcdir=${viceetcdir=/usr/vice/etc}
1424 afskerneldir=${afskerneldir=${viceetcdir}}
1425 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1426 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1427 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1428 afsdbdir=${afsdbdir=/usr/afs/db}
1429 afslogsdir=${afslogsdir=/usr/afs/logs}
1430 afslocaldir=${afslocaldir=/usr/afs/local}
1431 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1432 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1434 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1435 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1436 afskerneldir=${afskerneldir='${libdir}/openafs'}
1437 afssrvbindir=${afssrvbindir='${bindir}'}
1438 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1439 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1440 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1441 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1442 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1443 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1444 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1446 AC_SUBST(afsconfdir)
1447 AC_SUBST(viceetcdir)
1448 AC_SUBST(afskerneldir)
1449 AC_SUBST(afssrvbindir)
1450 AC_SUBST(afssrvsbindir)
1451 AC_SUBST(afssrvlibexecdir)
1453 AC_SUBST(afslogsdir)
1454 AC_SUBST(afslocaldir)
1455 AC_SUBST(afsbackupdir)
1456 AC_SUBST(afsbosconfigdir)
1458 if test "x$enable_kernel_module" = "xyes"; then
1459 ENABLE_KERNEL_MODULE=libafs
1462 if test "x$enable_pthreaded_ubik" = "xyes"; then
1463 ENABLE_PTHREADED_UBIK=yes
1466 AC_SUBST(AFS_SYSNAME)
1467 AC_SUBST(AFS_PARAM_COMMON)
1468 AC_SUBST(ENABLE_KERNEL_MODULE)
1469 AC_SUBST(ENABLE_PTHREADED_UBIK)
1471 AC_SUBST(LINUX_KERNEL_PATH)
1473 AC_SUBST(BSD_KERNEL_PATH)
1474 AC_SUBST(BSD_KERNEL_BUILD)
1475 AC_SUBST(LINUX_VERSION)
1476 AC_SUBST(MKAFS_OSTYPE)
1477 AC_SUBST(TOP_OBJDIR)
1478 AC_SUBST(TOP_SRCDIR)
1479 AC_SUBST(TOP_INCDIR)
1480 AC_SUBST(TOP_LIBDIR)
1482 AC_SUBST(DARWIN_INFOFILE)
1483 AC_SUBST(IRIX_BUILD_IP35)
1488 TOP_SRCDIR="${srcdir}/src"
1490 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1496 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1500 TOP_OBJDIR="${SRCDIR_PARENT}"
1501 TOP_INCDIR="${SRCDIR_PARENT}/include"
1502 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1503 if test "${DEST}x" = "x"; then
1504 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1507 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1508 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1509 AC_SUBST(HELPER_SPLINT)
1510 AC_SUBST(HELPER_SPLINTCFG)
1512 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs