1 dnl This file contains the common configuration code which would
2 dnl otherwise be duplicated between configure and configure-libafs.
4 dnl NB: Because this code is a macro, references to positional shell
5 dnl parameters must be done like $[]1 instead of $1
7 AC_DEFUN([OPENAFS_CONFIGURE_COMMON],[
12 static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
14 #undef HAVE_GETHOSTBYNAME
15 #undef HAVE_RES_SEARCH
17 #undef STRUCT_SOCKADDR_HAS_SA_LEN
18 #if !defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
19 # if ENDIANESS_IN_SYS_PARAM_H
21 # include <sys/types.h>
22 # include <sys/param.h>
23 # if BYTE_ORDER == BIG_ENDIAN
24 # define WORDS_BIGENDIAN 1
27 # if defined(AUTOCONF_FOUND_BIGENDIAN)
28 # define WORDS_BIGENDIAN 1
30 # undef WORDS_BIGENDIAN
34 # if defined(AUTOCONF_FOUND_BIGENDIAN)
35 # define WORDS_BIGENDIAN 1
37 # undef WORDS_BIGENDIAN
41 # if defined(__BIG_ENDIAN__)
42 # define WORDS_BIGENDIAN 1
44 # undef WORDS_BIGENDIAN
49 #undef AFS_LARGEFILE_ENV
52 #undef BOS_RESTRICTED_MODE
55 #undef FULL_LISTVOL_SWITCH
56 #undef COMPLETION_H_EXISTS
57 #undef DEFINED_FOR_EACH_PROCESS
58 #undef DEFINED_PREV_TASK
59 #undef EXPORTED_KALLSYMS_ADDRESS
60 #undef EXPORTED_KALLSYMS_SYMBOL
61 #undef EXPORTED_SYS_CALL_TABLE
62 #undef EXPORTED_IA32_SYS_CALL_TABLE
63 #undef EXPORTED_TASKLIST_LOCK
64 #undef INODE_SETATTR_NOT_VOID
65 #undef IRIX_HAS_MEM_FUNCS
66 #undef RECALC_SIGPENDING_TAKES_VOID
67 #undef STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
68 #undef STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
69 #undef STRUCT_FS_HAS_FS_ROLLED
70 #undef STRUCT_INODE_HAS_I_DEVICES
71 #undef STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
72 #undef STRUCT_INODE_HAS_I_ALLOC_SEM
73 #undef STRUCT_INODE_HAS_I_TRUNCATE_SEM
74 #undef STRUCT_TASK_STRUCT_HAS_PARENT
75 #undef STRUCT_TASK_STRUCT_HAS_REAL_PARENT
76 #undef STRUCT_TASK_STRUCT_HAS_SIG
77 #undef STRUCT_TASK_STRUCT_HAS_SIGHAND
78 #undef STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
80 #undef HAVE_STRUCT_BUF
81 #undef HAVE_ARPA_NAMESER_COMPAT_H
82 /* glue for RedHat kernel bug */
83 #undef ENABLE_REDHAT_BUILDSYS
84 #if defined(ENABLE_REDHAT_BUILDSYS) && defined(KERNEL) && defined(REDHAT_FIX)
85 #include "redhat-fix.h"
94 AC_ARG_WITH([afs-sysname],
95 [AS_HELP_STRING([--with-afs-sysname=sys], [use sys for the afs sysname])])
97 dnl General feature options.
98 AC_ARG_ENABLE([afsdb],
99 [AS_HELP_STRING([--disable-afsdb], [disable AFSDB DNS RR support])],
101 [enable_afsdb="yes"])
103 [AS_HELP_STRING([--disable-pam], [disable PAM support])],
106 AC_ARG_ENABLE([bos-restricted-mode],
107 [AS_HELP_STRING([--enable-bos-restricted-mode],
108 [enable bosserver restricted mode which disables certain bosserver
111 [enable_bos_restricted_mode="no"])
112 AC_ARG_ENABLE([bos-new-config],
113 [AS_HELP_STRING([--enable-bos-new-config],
114 [enable bosserver pickup of BosConfig.new on restarts])],
116 [enable_bos_new_config="no"])
117 AC_ARG_ENABLE([largefile-fileserver],
118 [AS_HELP_STRING([--disable-largefile-fileserver],
119 [disable large file support in fileserver])],
121 [enable_largefile_fileserver="yes"])
122 AC_ARG_ENABLE([namei-fileserver],
123 [AS_HELP_STRING([--enable-namei-fileserver],
124 [force compilation of namei fileserver in preference to inode
127 [enable_namei_fileserver="default"])
128 AC_ARG_ENABLE([cache-bypass],
129 [AS_HELP_STRING([--enable-cache-bypass],
130 [enable client support for cache bypass])],
132 [enable_cache_bypass="no"])
133 AC_ARG_ENABLE([supergroups],
134 [AS_HELP_STRING([--enable-supergroups],
135 [enable support for nested pts groups])],
137 [enable_supergroups="no"])
138 AC_ARG_ENABLE([fast-restart],
139 [AS_HELP_STRING([--enable-fast-restart],
140 [enable fast startup of file server without salvaging])],
142 [enable_fast_restart="no"])
143 AC_ARG_ENABLE([bitmap-later],
144 [AS_HELP_STRING([--enable-bitmap-later],
145 [enable fast startup of file server by not reading bitmap till
148 [enable_bitmap_later="no"])
149 AC_ARG_ENABLE([demand-attach-fs],
150 [AS_HELP_STRING([--enable-demand-attach-fs],
151 [enable Demand Attach Fileserver (please see documentation)])],
153 [enable_demand_attach_fs="no"])
154 AC_ARG_ENABLE([disconnected],
155 [AS_HELP_STRING([--enable-disconnected],
156 [enable disconnected support in cache manager (experimental)])],
158 [enable_disconnected="no"])
159 AC_ARG_ENABLE([unix-sockets],
160 [AS_HELP_STRING([--enable-unix-sockets],
161 [enable use of unix domain sockets for fssync])],
163 [enable_unix_sockets="yes"])
164 AC_ARG_ENABLE([full-vos-listvol-switch],
165 [AS_HELP_STRING([--disable-full-vos-listvol-switch],
166 [disable vos full listvol switch for formatted output])],
168 [enable_full_vos_listvol_switch="yes"])
169 AC_ARG_ENABLE([icmp-pmtu-discovery],
170 [AS_HELP_STRING([--enable-icmp-pmtu-discovery],
171 [enable path MTU discovery by decoding ICMP unreachable replies])],
173 [enable_icmp_pmtu_discovery="no"])
174 AC_ARG_ENABLE([tivoli-tsm],
175 [AS_HELP_STRING([--enable-tivoli-tsm],
176 [enable use of the Tivoli TSM API libraries for butc support])],
178 [enable_tivoli_tsm="no"])
179 AC_ARG_ENABLE([pthreaded-ubik],
180 [AS_HELP_STRING([--enable-pthreaded-ubik],
181 [enable installation of pthreaded ubik applications (defaults to
184 [enable_pthreaded_ubik="no"])
186 dnl Kernel module build options.
187 AC_ARG_WITH([dux-kernel-headers],
188 [AS_HELP_STRING([--with-dux-kernel-headers=path],
189 [use the kernel headers found at path (optional, defaults to first
190 match in /usr/sys)])])
191 AC_ARG_WITH([linux-kernel-headers],
192 [AS_HELP_STRING([--with-linux-kernel-headers=path],
193 [use the kernel headers found at path (optional, defaults to
194 /usr/src/linux-2.4, then /usr/src/linux)])])
195 AC_ARG_WITH([bsd-kernel-headers],
196 [AS_HELP_STRING([--with-bsd-kernel-headers=path],
197 [use the kernel headers found at path (optional, defaults to
199 AC_ARG_WITH([bsd-kernel-build],
200 [AS_HELP_STRING([--with-bsd-kernel-build=path],
201 [use the kernel build found at path (optional, defaults to
202 KSRC/i386/compile/GENERIC)])])
203 AC_ARG_WITH([linux-kernel-packaging],
204 [AS_HELP_STRING([--with-linux-kernel-packaging],
205 [use standard naming conventions to aid Linux kernel build packaging
206 (disables MPS, sets the kernel module name to openafs.ko, and
207 installs kernel modules into the standard Linux location)])],
208 [AC_SUBST(LINUX_KERNEL_PACKAGING, "yes")
209 AC_SUBST(LINUX_LIBAFS_NAME, "openafs")],
210 [AC_SUBST(LINUX_LIBAFS_NAME, "libafs")])
211 AC_ARG_ENABLE([kernel-module],
212 [AS_HELP_STRING([--disable-kernel-module],
213 [disable compilation of the kernel module (defaults to enabled)])],
215 [enable_kernel_module="yes"])
216 AC_ARG_ENABLE([redhat-buildsys],
217 [AS_HELP_STRING([--enable-redhat-buildsys],
218 [enable compilation of the redhat build system kernel (defaults to
221 [enable_redhat_buildsys="no"])
223 dnl Installation locations.
224 AC_ARG_ENABLE([transarc-paths],
225 [AS_HELP_STRING([--enable-transarc-paths],
226 [use Transarc style paths like /usr/afs and /usr/vice])],
228 [enable_transarc_paths="no"])
230 dnl Optimization and debugging flags.
231 AC_ARG_ENABLE([strip-binaries],
232 [AS_HELP_STRING([--disable-strip-binaries],
233 [disable stripping of symbol information from binaries (defaults to
236 [enable_strip_binaries="maybe"])
237 AC_ARG_ENABLE([debug],
238 [AS_HELP_STRING([--enable-debug],
239 [enable compilation of the user space code with debugging information
240 (defaults to disabled)])],
243 AC_ARG_ENABLE([optimize],
244 [AS_HELP_STRING([--disable-optimize],
245 [disable optimization for compilation of the user space code (defaults
248 [enable_optimize="yes"])
249 AC_ARG_ENABLE([warnings],
250 [AS_HELP_STRING([--enable-warnings],
251 [enable compilation warnings when building with gcc (defaults to
254 [enable_warnings="no"])
255 AC_ARG_ENABLE([debug-kernel],
256 [AS_HELP_STRING([--enable-debug-kernel],
257 [enable compilation of the kernel module with debugging information
258 (defaults to disabled)])],
260 [enable_debug_kernel="no"])
261 AC_ARG_ENABLE([optimize-kernel],
262 [AS_HELP_STRING([--disable-optimize-kernel],
263 [disable compilation of the kernel module with optimization (defaults
264 based on platform)])],
266 [enable_optimize_kernel="yes"])
267 AC_ARG_ENABLE([debug-lwp],
268 [AS_HELP_STRING([--enable-debug-lwp],
269 [enable compilation of the LWP code with debugging information
270 (defaults to disabled)])],
272 [enable_debug_lwp="no"])
273 AC_ARG_ENABLE([optimize-lwp],
274 [AS_HELP_STRING([--disable-optimize-lwp],
275 [disable optimization for compilation of the LWP code (defaults to
278 [enable_optimize_lwp="yes"])
279 AC_ARG_ENABLE([debug-pam],
280 [AS_HELP_STRING([--enable-debug-pam],
281 [enable compilation of the PAM code with debugging information
282 (defaults to disabled)])],
284 [enable_debug_pam="no"])
285 AC_ARG_ENABLE([optimize-pam],
286 [AS_HELP_STRING([--disable-optimize-pam],
287 [disable optimization for compilation of the PAM code (defaults to
290 [enable_optimize_pam="yes"])
295 dnl weird ass systems
300 dnl Various compiler setup.
304 COMPILER_HAS_FUNCTION_MACRO
306 dnl Checks for programs.
313 OPENAFS_CHECK_BIGENDIAN
315 AC_MSG_CHECKING(your OS)
321 if test "x$enable_redhat_buildsys" = "xyes"; then
322 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
324 if test "x$enable_kernel_module" = "xyes"; then
325 if test "x$with_linux_kernel_headers" != "x"; then
326 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
328 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/source"
329 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
330 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
332 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
333 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
335 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
336 LINUX_KERNEL_PATH="/usr/src/linux"
339 if test -f "$LINUX_KERNEL_PATH/include/linux/utsrelease.h"; then
340 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
341 LINUX_VERSION="$linux_kvers"
343 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
344 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
345 if test "x$linux_kvers" = "x"; then
346 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
347 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
348 if test "x$linux_kvers" = "x"; then
350 AC_MSG_ERROR(Linux headers lack version definition [2])
353 LINUX_VERSION="$linux_kvers"
356 AC_MSG_ERROR(Linux headers lack version definition)
360 LINUX_VERSION="$linux_kvers"
363 enable_kernel_module="no"
366 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
367 enable_kernel_module="no"
369 if test "x$enable_kernel_module" = "xno"; then
370 if test "x$with_linux_kernel_headers" != "x"; then
371 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
374 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
377 dnl do we need to determine SUBARCH from autoconf.h
381 if test "x$enable_kernel_module" = "xyes"; then
382 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
383 if test "x${AFS_SYSKVERS}" = "x"; then
384 AC_MSG_ERROR(Couldn't guess your Linux version [2])
391 SOLARIS_UFSVFS_HAS_DQRWLOCK
392 SOLARIS_PROC_HAS_P_COREFILE
393 SOLARIS_FS_HAS_FS_ROLLED
397 enable_kernel_module=no
403 if test -f "/usr/old/usr/include/ndir.h"; then
404 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
408 if test -d /usr/include/sys/SN/SN1; then
409 IRIX_BUILD_IP35="IP35"
416 AC_MSG_RESULT(rs_aix)
420 AC_MSG_RESULT(alpha_dux)
424 AC_MSG_RESULT(ppc_darwin)
428 AC_MSG_RESULT(x86_darwin)
432 AC_MSG_RESULT(i386_fbsd)
440 AC_MSG_RESULT(i386_obsd)
443 AC_MSG_RESULT($system)
447 if test "x$with_afs_sysname" != "x"; then
448 AFS_SYSNAME="$with_afs_sysname"
450 AC_MSG_CHECKING(your AFS sysname)
456 AFS_SYSNAME="i386_obsd${vM}${vm}"
458 sparc64-*-openbsd?.?)
462 AFS_SYSNAME="sparc64_obsd${vM}${vm}"
468 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
471 AFS_SYSNAME="i386_nbsd15"
474 AFS_SYSNAME="alpha_nbsd15"
476 i?86-*-netbsd*1.6[[M-Z]]*)
477 AFS_SYSNAME="i386_nbsd20"
479 powerpc-*-netbsd*1.6[[M-Z]]*)
480 AFS_SYSNAME="ppc_nbsd20"
483 AFS_SYSNAME="i386_nbsd20"
486 AFS_SYSNAME="amd64_nbsd20"
488 x86_64-*-netbsd*3.[0-8]*)
489 AFS_PARAM_COMMON=param.nbsd30.h
490 AFS_SYSNAME="amd64_nbsd30"
492 x86_64-*-netbsd*4.[0-8]*)
493 AFS_PARAM_COMMON=param.nbsd40.h
494 AFS_SYSNAME="amd64_nbsd40"
496 powerpc-*-netbsd*2.0*)
497 AFS_SYSNAME="ppc_nbsd20"
500 AFS_SYSNAME="i386_nbsd16"
503 AFS_SYSNAME="alpha_nbsd16"
505 powerpc-*-netbsd*1.6*)
506 AFS_SYSNAME="ppc_nbsd16"
509 AFS_SYSNAME="i386_nbsd21"
512 AFS_SYSNAME="i386_nbsd30"
514 i?86-*-netbsd*3.[[0-8]]*)
515 AFS_SYSNAME="i386_nbsd30"
518 AFS_SYSNAME="i386_nbsd30"
520 i?86-*-netbsd*4.[[0-8]]*)
521 AFS_SYSNAME="i386_nbsd40"
524 AFS_SYSNAME="i386_nbsd40"
527 AFS_SYSNAME="hp_ux110"
530 AFS_SYSNAME="hp_ux11i"
533 AFS_SYSNAME="hp_ux1123"
536 AFS_SYSNAME="ia64_hpux1122"
539 AFS_SYSNAME="ia64_hpux1123"
542 AFS_SYSNAME="hp_ux102"
544 powerpc-apple-darwin1.2*)
545 AFS_SYSNAME="ppc_darwin_12"
547 powerpc-apple-darwin1.3*)
548 AFS_SYSNAME="ppc_darwin_13"
550 powerpc-apple-darwin1.4*)
551 AFS_SYSNAME="ppc_darwin_14"
553 powerpc-apple-darwin5.1*)
554 AFS_SYSNAME="ppc_darwin_14"
556 powerpc-apple-darwin5.2*)
557 AFS_SYSNAME="ppc_darwin_14"
559 powerpc-apple-darwin5.3*)
560 AFS_SYSNAME="ppc_darwin_14"
562 powerpc-apple-darwin5.4*)
563 AFS_SYSNAME="ppc_darwin_14"
565 powerpc-apple-darwin5.5*)
566 AFS_SYSNAME="ppc_darwin_14"
568 powerpc-apple-darwin6.0*)
569 AFS_SYSNAME="ppc_darwin_60"
571 powerpc-apple-darwin6.1*)
572 AFS_SYSNAME="ppc_darwin_60"
574 powerpc-apple-darwin6.2*)
575 AFS_SYSNAME="ppc_darwin_60"
577 powerpc-apple-darwin6.3*)
578 AFS_SYSNAME="ppc_darwin_60"
580 powerpc-apple-darwin6.4*)
581 AFS_SYSNAME="ppc_darwin_60"
583 powerpc-apple-darwin6.5*)
584 AFS_SYSNAME="ppc_darwin_60"
586 powerpc-apple-darwin7.0*)
587 AFS_SYSNAME="ppc_darwin_70"
589 powerpc-apple-darwin7.1*)
590 AFS_SYSNAME="ppc_darwin_70"
592 powerpc-apple-darwin7.2*)
593 AFS_SYSNAME="ppc_darwin_70"
595 powerpc-apple-darwin7.3*)
596 AFS_SYSNAME="ppc_darwin_70"
598 powerpc-apple-darwin7.4*)
599 AFS_SYSNAME="ppc_darwin_70"
601 powerpc-apple-darwin7.5*)
602 AFS_SYSNAME="ppc_darwin_70"
604 powerpc-apple-darwin8.0*)
605 AFS_SYSNAME="ppc_darwin_80"
607 powerpc-apple-darwin8.*)
608 AFS_SYSNAME="ppc_darwin_80"
610 i386-apple-darwin8.*)
611 AFS_SYSNAME="x86_darwin_80"
613 powerpc-apple-darwin9.*)
614 AFS_SYSNAME="ppc_darwin_90"
616 i386-apple-darwin9.*)
617 AFS_SYSNAME="x86_darwin_90"
619 sparc-sun-solaris2.5*)
620 AFS_SYSNAME="sun4x_55"
623 sparc-sun-solaris2.6)
624 AFS_SYSNAME="sun4x_56"
626 sparc-sun-solaris2.7)
627 AFS_SYSNAME="sun4x_57"
629 sparc-sun-solaris2.8)
630 AFS_SYSNAME="sun4x_58"
632 sparc-sun-solaris2.9)
633 AFS_SYSNAME="sun4x_59"
635 sparc-sun-solaris2.10)
636 AFS_SYSNAME="sun4x_510"
638 sparc-sun-solaris2.11)
639 AFS_SYSNAME="sun4x_511"
642 AFS_SYSNAME="sun4_413"
646 AFS_SYSNAME="sunx86_57"
649 AFS_SYSNAME="sunx86_58"
652 AFS_SYSNAME="sunx86_59"
655 AFS_SYSNAME="sunx86_510"
658 AFS_SYSNAME="sunx86_511"
661 AFS_SYSNAME="alpha_dux40"
664 AFS_SYSNAME="alpha_dux50"
667 AFS_SYSNAME="alpha_dux51"
673 AFS_SYSNAME="ia64_linuxXX"
676 AFS_SYSNAME="`/bin/arch`_linuxXX"
679 AFS_SYSNAME="ppc64_linuxXX"
682 AFS_SYSNAME="alpha_linux_XX"
685 AFS_SYSNAME="s390_linuxXX"
688 AFS_SYSNAME="s390x_linuxXX"
691 AFS_SYSNAME="`/bin/arch`_linuxXX"
694 AFS_SYSNAME="sparc64_linuxXX"
697 AFS_SYSNAME="i386_linuxXX"
699 parisc-*-linux-gnu|hppa-*-linux-gnu)
700 AFS_SYSNAME="parisc_linuxXX"
704 AFS_SYSNAME="rs_aix42"
708 AFS_SYSNAME="rs_aix42"
712 AFS_SYSNAME="rs_aix51"
716 AFS_SYSNAME="rs_aix52"
720 AFS_SYSNAME="rs_aix53"
724 AFS_SYSNAME="rs_aix61"
728 AFS_SYSNAME="amd64_linuxXX"
732 AC_MSG_ERROR(An AFS sysname is required)
737 *_linux* | *_umlinux*)
738 if test "x${AFS_SYSKVERS}" = "x"; then
739 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
741 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
742 AFS_SYSNAME="$_AFS_SYSNAME"
743 save_CPPFLAGS="$CPPFLAGS"
744 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
746 [#include <linux/autoconf.h>],
747 [#ifndef CONFIG_USERMODE
750 ac_cv_linux_is_uml=yes,)
751 if test "${ac_cv_linux_is_uml}" = yes; then
752 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
754 CPPFLAGS="$save_CPPFLAGS"
755 AFS_SYSNAME="$_AFS_SYSNAME"
758 AC_MSG_RESULT($AFS_SYSNAME)
761 dnl Some hosts have a separate common param file they should include. Figure
762 dnl out if we're on one of them now that we know the sysname.
764 *_nbsd15) AFS_PARAM_COMMON=param.nbsd15.h ;;
765 *_nbsd16) AFS_PARAM_COMMON=param.nbsd16.h ;;
766 *_nbsd20) AFS_PARAM_COMMON=param.nbsd20.h ;;
767 *_nbsd21) AFS_PARAM_COMMON=param.nbsd21.h ;;
768 *_nbsd30) AFS_PARAM_COMMON=param.nbsd30.h ;;
769 *_nbsd40) AFS_PARAM_COMMON=param.nbsd40.h ;;
770 *_linux22) AFS_PARAM_COMMON=param.linux22.h ;;
771 *_linux24) AFS_PARAM_COMMON=param.linux24.h ;;
772 *_linux26) AFS_PARAM_COMMON=param.linux26.h ;;
775 case $AFS_SYSNAME in *_linux* | *_umlinux*)
777 # Add (sub-) architecture-specific paths needed by conftests
780 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
781 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
782 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
783 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
786 if test "x$enable_kernel_module" = "xyes"; then
787 if test "x$enable_debug_kernel" = "xno"; then
788 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
790 OPENAFS_GCC_SUPPORTS_MARCH
791 AC_SUBST(P5PLUS_KOPTS)
792 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
793 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
794 OPENAFS_GCC_SUPPORTS_NO_COMMON
795 OPENAFS_GCC_SUPPORTS_PIPE
796 AC_SUBST(LINUX_GCC_KOPTS)
797 ifdef([OPENAFS_CONFIGURE_LIBAFS],
798 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
799 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
802 LINUX_KBUILD_USES_EXTRA_CFLAGS
803 LINUX_KERNEL_COMPILE_WORKS
804 LINUX_EXPORTS_FIND_TASK_BY_PID
805 LINUX_EXPORTS_PROC_ROOT_FS
806 LINUX_HAVE_CURRENT_KERNEL_TIME
807 LINUX_KMEM_CACHE_INIT
808 LINUX_HAVE_KMEM_CACHE_T
809 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
810 LINUX_D_PATH_TAKES_STRUCT_PATH
812 LINUX_CONFIG_H_EXISTS
813 LINUX_COMPLETION_H_EXISTS
814 LINUX_SEMAPHORE_H_EXISTS
815 LINUX_EXPORTFS_H_EXISTS
816 LINUX_DEFINES_FOR_EACH_PROCESS
817 LINUX_DEFINES_PREV_TASK
818 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
819 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
820 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
821 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
822 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
823 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
824 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
825 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
826 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
827 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
828 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
829 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
830 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
831 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
832 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
833 LINUX_INODE_SETATTR_RETURN_TYPE
834 LINUX_WRITE_INODE_RETURN_TYPE
835 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
836 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
837 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
838 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
839 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
840 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
841 LINUX_AOP_WRITEBACK_CONTROL
842 LINUX_FS_STRUCT_FOP_HAS_FLOCK
843 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
844 LINUX_FS_STRUCT_FOP_HAS_SPLICE
845 LINUX_KERNEL_LINUX_SYSCALL_H
846 LINUX_KERNEL_LINUX_SEQ_FILE_H
847 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
849 LINUX_KERNEL_SOCK_CREATE
850 LINUX_KERNEL_PAGE_FOLLOW_LINK
851 LINUX_KERNEL_HLIST_UNHASHED
852 LINUX_KEY_TYPE_H_EXISTS
854 LINUX_RECALC_SIGPENDING_ARG_TYPE
855 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
856 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
857 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
858 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
859 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
860 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
861 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
862 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
863 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
864 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
865 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
866 LINUX_EXPORTS_TASKLIST_LOCK
867 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
868 LINUX_STATFS_TAKES_DENTRY
869 LINUX_FREEZER_H_EXISTS
870 LINUX_HAVE_SVC_ADDR_IN
871 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
872 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
875 LINUX_LINUX_KEYRING_SUPPORT
876 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
878 LINUX_GENERIC_FILE_AIO_READ
879 LINUX_INIT_WORK_HAS_DATA
880 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
881 LINUX_SYSCTL_TABLE_CHECKING
883 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
884 LINUX_EXPORTS_INIT_MM
885 LINUX_EXPORTS_SYS_CHDIR
886 LINUX_EXPORTS_SYS_CLOSE
887 LINUX_EXPORTS_SYS_OPEN
888 LINUX_EXPORTS_SYS_WAIT4
889 LINUX_EXPORTS_RCU_READ_LOCK
890 if test "x$with_linux_kernel_packaging" = "xno" ; then
895 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
896 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
897 ac_cv_linux_exports_sys_call_table=no
898 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
899 ac_cv_linux_exports_ia32_sys_call_table=yes
902 LINUX_EXPORTS_KALLSYMS_ADDRESS
903 LINUX_EXPORTS_KALLSYMS_SYMBOL
904 LINUX_EXPORTS_SYS_CALL_TABLE
905 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
906 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
907 linux_syscall_method=none
908 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
909 linux_syscall_method=scan
910 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
911 linux_syscall_method=scan_with_kallsyms_address
914 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
915 linux_syscall_method=kallsyms_symbol
917 if test "x$linux_syscall_method" = "xnone"; then
918 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
919 linux_syscall_method=scan
923 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
924 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
926 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
927 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
929 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
930 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
932 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
933 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
935 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
936 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
938 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
939 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
941 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
942 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
944 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
945 AC_DEFINE(EXPORTED_SYS_CALL_TABLE, 1, [define if your linux kernel exports sys_call_table])
947 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
948 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE, 1, [define if your linux kernel exports ia32_sys_call_table])
950 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
951 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL, 1, [define if your linux kernel exports kallsyms])
953 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
954 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS, 1, [define if your linux kernel exports kallsyms address])
956 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
957 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
959 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
960 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
962 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
963 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
965 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
966 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
968 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
969 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
971 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
972 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
974 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
975 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
977 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
978 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
980 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
981 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
983 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
984 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
986 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
987 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
989 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
990 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
992 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
993 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
995 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
996 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
998 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
999 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
1001 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
1002 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
1004 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
1005 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
1007 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
1008 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
1010 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
1011 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
1013 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
1014 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
1016 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
1017 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
1019 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
1020 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
1022 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
1023 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
1025 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
1026 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
1028 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
1029 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
1031 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
1032 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
1034 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
1035 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
1037 if test "x$ac_linux_syscall" = "xyes" ; then
1038 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
1040 if test "x$ac_linux_seq_file" = "xyes" ; then
1041 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
1043 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
1044 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
1046 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
1047 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
1049 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
1050 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
1052 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
1053 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
1055 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
1056 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
1058 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
1059 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
1061 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
1062 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
1064 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
1065 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
1067 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
1068 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
1070 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
1071 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
1073 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
1074 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
1076 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
1077 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
1079 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
1080 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
1082 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
1083 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
1085 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
1086 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
1088 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1089 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1091 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1092 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1094 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1095 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1097 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1098 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1100 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1101 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1103 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1104 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1106 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1107 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1109 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1110 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1112 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1113 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1115 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1116 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1118 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1119 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1121 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1122 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1124 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1125 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1127 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1128 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1130 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1131 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1133 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1134 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1136 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1137 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1139 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1140 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1142 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1143 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1145 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1146 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1148 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1150 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1151 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1157 case $AFS_SYSNAME in
1159 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1160 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1161 dnl the test below fails on darwin, even if the CPPFLAGS below
1162 dnl are added. the headers from Kernel.framework must be used
1163 dnl when KERNEL is defined.
1165 dnl really, such a thing isn't guaranteed to work on any
1166 dnl platform until the kernel cflags from MakefileProto are
1167 dnl known to configure
1168 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1171 AC_MSG_CHECKING(for definition of struct buf)
1172 dnl save_CPPFLAGS="$CPPFLAGS"
1173 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1174 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1175 ac_cv_have_struct_buf=no
1177 [#include <sys/buf.h>],
1179 printf("%d\n", sizeof(x));],
1180 ac_cv_have_struct_buf=yes,)
1183 dnl CPPFLAGS="$save_CPPFLAGS"
1184 AC_MSG_RESULT($ac_cv_have_struct_buf)
1185 if test "$ac_cv_have_struct_buf" = yes; then
1186 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1192 AC_CACHE_VAL(ac_cv_sockaddr_len,
1194 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1195 AC_TRY_COMPILE( [#include <sys/types.h>
1196 #include <sys/socket.h>],
1197 [struct sockaddr *a;
1198 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1199 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1200 if test "$ac_cv_sockaddr_len" = "yes"; then
1201 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1203 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1204 echo Skipping library tests because they confuse Irix.
1206 AC_CHECK_FUNCS(socket)
1208 if test "$ac_cv_func_socket" = no; then
1209 for lib in socket inet; do
1210 if test "$HAVE_SOCKET" != 1; then
1211 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1216 AC_CHECK_FUNCS(connect)
1218 if test "$ac_cv_func_connect" = no; then
1220 if test "$HAVE_CONNECT" != 1; then
1221 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1226 AC_CHECK_FUNCS(gethostbyname)
1227 if test "$ac_cv_func_gethostbyname" = no; then
1228 for lib in dns nsl resolv; do
1229 if test "$HAVE_GETHOSTBYNAME" != 1; then
1230 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1235 dnl darwin wants it, aix hates it
1236 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1240 #include <sys/types.h>
1241 #include <sys/socket.h>
1242 #include <netinet/in.h>
1243 #include <arpa/inet.h>
1244 #include <arpa/nameser.h>
1245 #include <arpa/nameser_compat.h>
1247 ], [static int i; i = 0;],
1249 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H, 1, [define if arpa/nameser_compat.h exists])],
1253 openafs_save_libs="$LIBS"
1254 AC_MSG_CHECKING([for res_search])
1257 if test "$ac_cv_func_res_search" = no; then
1258 for lib in dns nsl resolv; do
1259 if test "$ac_cv_func_res_search" != yes; then
1262 LIBS="$openafs_save_libs"
1265 if test "$ac_cv_func_res_search" = yes; then
1266 LIB_res_search="-l$lib"
1267 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1268 AC_MSG_RESULT([yes, in lib$lib])
1273 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1279 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1281 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1282 AC_TRY_COMPILE( [#include <sys/types.h>
1283 #include <sys/socket.h>
1284 #include <netinet/in.h>],
1286 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1287 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1288 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1289 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1293 if test "x$MKAFS_OSTYPE" = OBSD; then
1294 PTHREAD_LIBS="-pthread"
1296 if test "x$PTHREAD_LIBS" = xerror; then
1297 AC_CHECK_LIB(pthread, pthread_attr_init,
1298 PTHREAD_LIBS="-lpthread")
1300 if test "x$PTHREAD_LIBS" = xerror; then
1301 AC_CHECK_LIB(pthreads, pthread_attr_init,
1302 PTHREAD_LIBS="-lpthreads")
1304 if test "x$PTHREAD_LIBS" = xerror; then
1305 AC_CHECK_LIB(c_r, pthread_attr_init,
1306 PTHREAD_LIBS="-lc_r")
1308 if test "x$PTHREAD_LIBS" = xerror; then
1309 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1311 if test "x$PTHREAD_LIBS" = xerror; then
1312 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1313 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1314 PTHREAD_LIBS="-lpthread")
1316 if test "x$PTHREAD_LIBS" = xerror; then
1317 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1319 AC_SUBST(PTHREAD_LIBS)
1321 HOST_CPU="$host_cpu"
1323 if test "x$with_bsd_kernel_headers" != "x"; then
1324 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1326 BSD_KERNEL_PATH="/usr/src/sys"
1329 if test "x$with_bsd_kernel_build" != "x"; then
1330 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1332 case $AFS_SYSNAME in
1334 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1337 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1343 if test "$enable_supergroups" = "yes"; then
1344 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1347 if test "$enable_fast_restart" = "yes"; then
1348 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1351 if test "$enable_bitmap_later" = "yes"; then
1352 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1355 if test "$enable_demand_attach_fs" = "yes"; then
1356 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1361 AC_SUBST(DEMAND_ATTACH)
1363 if test "$enable_disconnected" = "yes"; then
1364 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1367 if test "$enable_unix_sockets" = "yes"; then
1368 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1369 USE_UNIX_SOCKETS="yes"
1371 USE_UNIX_SOCKETS="no"
1373 AC_SUBST(USE_UNIX_SOCKETS)
1375 if test "$enable_fast_restart" = "yes" &&
1376 test "$enable_demand_attach_fs" = "yes" ; then
1377 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.])
1381 if test "$enable_full_vos_listvol_switch" = "yes"; then
1382 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1385 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1386 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1387 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1391 if test "$enable_bos_restricted_mode" = "yes"; then
1392 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1395 if test "$enable_bos_new_config" = "yes"; then
1396 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1399 if test "$enable_largefile_fileserver" = "yes"; then
1400 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1403 if test "$enable_cache_bypass" = "yes"; then
1404 AC_DEFINE(AFS_CACHE_BYPASS, 1, [define to activate cache bypassing Unix client])
1407 if test "$enable_namei_fileserver" = "yes"; then
1408 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1410 if test "$enable_namei_fileserver" = "default"; then
1413 AC_MSG_WARN(Some Solaris 10 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1414 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1417 AC_MSG_WARN(Solaris 11 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1418 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1426 if test "$enable_afsdb" = "yes"; then
1427 LIB_AFSDB="$LIB_res_search"
1428 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1431 dnl check for tivoli
1432 AC_MSG_CHECKING(for tivoli tsm butc support)
1434 if test "$enable_tivoli_tsm" = "yes"; then
1435 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1436 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1437 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1438 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1440 if test -r "$XBSADIR1/xbsa.h"; then
1441 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1443 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1444 elif test -r "$XBSADIR2/xbsa.h"; then
1445 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1447 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1448 elif test -r "$XBSADIR3/dsmapifp.h"; then
1449 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1451 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1452 elif test -r "$XBSADIR4/dsmapifp.h"; then
1453 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1455 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1457 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1462 AC_SUBST(XBSA_CFLAGS)
1463 AC_SUBST(XBSA_XLIBS)
1465 dnl checks for header files.
1469 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1470 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1471 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1472 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1473 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1474 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1475 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1477 dnl Don't build PAM on IRIX; the interface doesn't work for us.
1478 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1479 case $AFS_SYSNAME in
1492 if test "$enable_login" = yes; then
1497 AC_SUBST(BUILD_LOGIN)
1499 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1500 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1501 AC_CHECK_FUNCS(setvbuf vsyslog)
1502 AC_FUNC_SETVBUF_REVERSED
1503 AC_CHECK_FUNCS(regcomp regexec regerror)
1504 AC_MSG_CHECKING([for POSIX regex library])
1505 if test "$ac_cv_header_regex_h" = "yes" && \
1506 test "$ac_cv_func_regcomp" = "yes" && \
1507 test "$ac_cv_func_regexec" = "yes" && \
1508 test "$ac_cv_func_regerror" = "yes"; then
1509 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1516 AC_CHECK_TYPE(ssize_t, int)
1517 AC_CHECK_TYPE([sig_atomic_t], ,
1518 [AC_DEFINE([sig_atomic_t], [int],
1519 [Define to int if <signal.h> does not define.])],
1520 [#include <sys/types.h>
1521 #include <signal.h>])
1522 AC_SIZEOF_TYPE(long)
1524 AC_CHECK_FUNCS(timegm)
1525 AC_CHECK_FUNCS(daemon)
1527 dnl Directory PATH handling
1528 if test "x$enable_transarc_paths" = "xyes" ; then
1529 afsconfdir=${afsconfdir=/usr/afs/etc}
1530 viceetcdir=${viceetcdir=/usr/vice/etc}
1531 afskerneldir=${afskerneldir=${viceetcdir}}
1532 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1533 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1534 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1535 afsdbdir=${afsdbdir=/usr/afs/db}
1536 afslogsdir=${afslogsdir=/usr/afs/logs}
1537 afslocaldir=${afslocaldir=/usr/afs/local}
1538 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1539 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1541 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1542 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1543 afskerneldir=${afskerneldir='${libdir}/openafs'}
1544 afssrvbindir=${afssrvbindir='${bindir}'}
1545 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1546 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1547 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1548 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1549 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1550 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1551 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1553 AC_SUBST(afsconfdir)
1554 AC_SUBST(viceetcdir)
1555 AC_SUBST(afskerneldir)
1556 AC_SUBST(afssrvbindir)
1557 AC_SUBST(afssrvsbindir)
1558 AC_SUBST(afssrvlibexecdir)
1560 AC_SUBST(afslogsdir)
1561 AC_SUBST(afslocaldir)
1562 AC_SUBST(afsbackupdir)
1563 AC_SUBST(afsbosconfigdir)
1565 if test "x$enable_kernel_module" = "xyes"; then
1566 ENABLE_KERNEL_MODULE=libafs
1569 if test "x$enable_pthreaded_ubik" = "xyes"; then
1570 ENABLE_PTHREADED_UBIK=yes
1573 AC_SUBST(AFS_SYSNAME)
1574 AC_SUBST(AFS_PARAM_COMMON)
1575 AC_SUBST(ENABLE_KERNEL_MODULE)
1576 AC_SUBST(ENABLE_PTHREADED_UBIK)
1578 AC_SUBST(LINUX_KERNEL_PATH)
1580 AC_SUBST(BSD_KERNEL_PATH)
1581 AC_SUBST(BSD_KERNEL_BUILD)
1582 AC_SUBST(LINUX_VERSION)
1583 AC_SUBST(MKAFS_OSTYPE)
1584 AC_SUBST(TOP_OBJDIR)
1585 AC_SUBST(TOP_SRCDIR)
1586 AC_SUBST(TOP_INCDIR)
1587 AC_SUBST(TOP_LIBDIR)
1589 AC_SUBST(DARWIN_INFOFILE)
1590 AC_SUBST(IRIX_BUILD_IP35)
1595 TOP_SRCDIR="${srcdir}/src"
1597 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1603 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1607 TOP_OBJDIR="${SRCDIR_PARENT}"
1608 TOP_INCDIR="${SRCDIR_PARENT}/include"
1609 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1610 if test "${DEST}x" = "x"; then
1611 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1614 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1615 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1616 AC_SUBST(HELPER_SPLINT)
1617 AC_SUBST(HELPER_SPLINTCFG)
1619 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs