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],[
10 static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
12 #undef HAVE_GETHOSTBYNAME
13 #undef HAVE_RES_SEARCH
15 #undef STRUCT_SOCKADDR_HAS_SA_LEN
16 #if !defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
17 # if ENDIANESS_IN_SYS_PARAM_H
19 # include <sys/types.h>
20 # include <sys/param.h>
21 # if BYTE_ORDER == BIG_ENDIAN
22 # define WORDS_BIGENDIAN 1
25 # if defined(AUTOCONF_FOUND_BIGENDIAN)
26 # define WORDS_BIGENDIAN 1
28 # undef WORDS_BIGENDIAN
32 # if defined(AUTOCONF_FOUND_BIGENDIAN)
33 # define WORDS_BIGENDIAN 1
35 # undef WORDS_BIGENDIAN
39 # if defined(__BIG_ENDIAN__)
40 # define WORDS_BIGENDIAN 1
42 # undef WORDS_BIGENDIAN
47 #undef AFS_LARGEFILE_ENV
50 #undef BOS_RESTRICTED_MODE
53 #undef FULL_LISTVOL_SWITCH
54 #undef COMPLETION_H_EXISTS
55 #undef DEFINED_FOR_EACH_PROCESS
56 #undef DEFINED_PREV_TASK
57 #undef EXPORTED_KALLSYMS_ADDRESS
58 #undef EXPORTED_KALLSYMS_SYMBOL
59 #undef EXPORTED_SYS_CALL_TABLE
60 #undef EXPORTED_IA32_SYS_CALL_TABLE
61 #undef EXPORTED_TASKLIST_LOCK
62 #undef INODE_SETATTR_NOT_VOID
63 #undef IRIX_HAS_MEM_FUNCS
64 #undef RECALC_SIGPENDING_TAKES_VOID
65 #undef STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
66 #undef STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
67 #undef STRUCT_FS_HAS_FS_ROLLED
68 #undef STRUCT_INODE_HAS_I_DEVICES
69 #undef STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
70 #undef STRUCT_INODE_HAS_I_ALLOC_SEM
71 #undef STRUCT_INODE_HAS_I_TRUNCATE_SEM
72 #undef STRUCT_TASK_STRUCT_HAS_PARENT
73 #undef STRUCT_TASK_STRUCT_HAS_REAL_PARENT
74 #undef STRUCT_TASK_STRUCT_HAS_SIG
75 #undef STRUCT_TASK_STRUCT_HAS_SIGHAND
76 #undef STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
78 #undef HAVE_STRUCT_BUF
79 #undef HAVE_ARPA_NAMESER_COMPAT_H
80 /* glue for RedHat kernel bug */
81 #undef ENABLE_REDHAT_BUILDSYS
82 #if defined(ENABLE_REDHAT_BUILDSYS) && defined(KERNEL) && defined(REDHAT_FIX)
83 #include "redhat-fix.h"
92 AC_ARG_WITH([afs-sysname],
93 [AS_HELP_STRING([--with-afs-sysname=sys], [use sys for the afs sysname])])
95 dnl General feature options.
96 AC_ARG_ENABLE([afsdb],
97 [AS_HELP_STRING([--disable-afsdb], [disable AFSDB DNS RR support])],
101 [AS_HELP_STRING([--disable-pam], [disable PAM support])],
104 AC_ARG_ENABLE([bos-restricted-mode],
105 [AS_HELP_STRING([--enable-bos-restricted-mode],
106 [enable bosserver restricted mode which disables certain bosserver
109 [enable_bos_restricted_mode="no"])
110 AC_ARG_ENABLE([bos-new-config],
111 [AS_HELP_STRING([--enable-bos-new-config],
112 [enable bosserver pickup of BosConfig.new on restarts])],
114 [enable_bos_new_config="no"])
115 AC_ARG_ENABLE([largefile-fileserver],
116 [AS_HELP_STRING([--disable-largefile-fileserver],
117 [disable large file support in fileserver])],
119 [enable_largefile_fileserver="yes"])
120 AC_ARG_ENABLE([namei-fileserver],
121 [AS_HELP_STRING([--enable-namei-fileserver],
122 [force compilation of namei fileserver in preference to inode
125 [enable_namei_fileserver="default"])
126 AC_ARG_ENABLE([cache-bypass],
127 [AS_HELP_STRING([--enable-cache-bypass],
128 [enable client support for cache bypass])],
130 [enable_cache_bypass="no"])
131 AC_ARG_ENABLE([supergroups],
132 [AS_HELP_STRING([--enable-supergroups],
133 [enable support for nested pts groups])],
135 [enable_supergroups="no"])
136 AC_ARG_ENABLE([fast-restart],
137 [AS_HELP_STRING([--enable-fast-restart],
138 [enable fast startup of file server without salvaging])],
140 [enable_fast_restart="no"])
141 AC_ARG_ENABLE([bitmap-later],
142 [AS_HELP_STRING([--enable-bitmap-later],
143 [enable fast startup of file server by not reading bitmap till
146 [enable_bitmap_later="no"])
147 AC_ARG_ENABLE([demand-attach-fs],
148 [AS_HELP_STRING([--enable-demand-attach-fs],
149 [enable Demand Attach Fileserver (please see documentation)])],
151 [enable_demand_attach_fs="no"])
152 AC_ARG_ENABLE([disconnected],
153 [AS_HELP_STRING([--enable-disconnected],
154 [enable disconnected support in cache manager (experimental)])],
156 [enable_disconnected="no"])
157 AC_ARG_ENABLE([unix-sockets],
158 [AS_HELP_STRING([--enable-unix-sockets],
159 [enable use of unix domain sockets for fssync])],
161 [enable_unix_sockets="yes"])
162 AC_ARG_ENABLE([full-vos-listvol-switch],
163 [AS_HELP_STRING([--disable-full-vos-listvol-switch],
164 [disable vos full listvol switch for formatted output])],
166 [enable_full_vos_listvol_switch="yes"])
167 AC_ARG_ENABLE([icmp-pmtu-discovery],
168 [AS_HELP_STRING([--enable-icmp-pmtu-discovery],
169 [enable path MTU discovery by decoding ICMP unreachable replies])],
171 [enable_icmp_pmtu_discovery="no"])
172 AC_ARG_ENABLE([tivoli-tsm],
173 [AS_HELP_STRING([--enable-tivoli-tsm],
174 [enable use of the Tivoli TSM API libraries for butc support])],
176 [enable_tivoli_tsm="no"])
177 AC_ARG_ENABLE([pthreaded-ubik],
178 [AS_HELP_STRING([--enable-pthreaded-ubik],
179 [enable installation of pthreaded ubik applications (defaults to
182 [enable_pthreaded_ubik="no"])
184 dnl Kernel module build options.
185 AC_ARG_WITH([dux-kernel-headers],
186 [AS_HELP_STRING([--with-dux-kernel-headers=path],
187 [use the kernel headers found at path (optional, defaults to first
188 match in /usr/sys)])])
189 AC_ARG_WITH([linux-kernel-headers],
190 [AS_HELP_STRING([--with-linux-kernel-headers=path],
191 [use the kernel headers found at path (optional, defaults to
192 /usr/src/linux-2.4, then /usr/src/linux)])])
193 AC_ARG_WITH([linux-kernel-build],
194 [AS_HELP_STRING([--with-linux-kernel-build=path],
195 [use the kernel build found at path(optional, defaults to
196 /usr/src/linux-2.4, then /usr/src/linux)])])
197 AC_ARG_WITH([bsd-kernel-headers],
198 [AS_HELP_STRING([--with-bsd-kernel-headers=path],
199 [use the kernel headers found at path (optional, defaults to
201 AC_ARG_WITH([bsd-kernel-build],
202 [AS_HELP_STRING([--with-bsd-kernel-build=path],
203 [use the kernel build found at path (optional, defaults to
204 KSRC/i386/compile/GENERIC)])])
205 AC_ARG_WITH([linux-kernel-packaging],
206 [AS_HELP_STRING([--with-linux-kernel-packaging],
207 [use standard naming conventions to aid Linux kernel build packaging
208 (disables MPS, sets the kernel module name to openafs.ko, and
209 installs kernel modules into the standard Linux location)])],
210 [AC_SUBST(LINUX_KERNEL_PACKAGING, "yes")
211 AC_SUBST(LINUX_LIBAFS_NAME, "openafs")],
212 [AC_SUBST(LINUX_LIBAFS_NAME, "libafs")])
213 AC_ARG_ENABLE([kernel-module],
214 [AS_HELP_STRING([--disable-kernel-module],
215 [disable compilation of the kernel module (defaults to enabled)])],
217 [enable_kernel_module="yes"])
218 AC_ARG_ENABLE([redhat-buildsys],
219 [AS_HELP_STRING([--enable-redhat-buildsys],
220 [enable compilation of the redhat build system kernel (defaults to
223 [enable_redhat_buildsys="no"])
225 dnl Installation locations.
226 AC_ARG_ENABLE([transarc-paths],
227 [AS_HELP_STRING([--enable-transarc-paths],
228 [use Transarc style paths like /usr/afs and /usr/vice])],
230 [enable_transarc_paths="no"])
232 dnl Optimization and debugging flags.
233 AC_ARG_ENABLE([strip-binaries],
234 [AS_HELP_STRING([--disable-strip-binaries],
235 [disable stripping of symbol information from binaries (defaults to
238 [enable_strip_binaries="maybe"])
239 AC_ARG_ENABLE([debug],
240 [AS_HELP_STRING([--enable-debug],
241 [enable compilation of the user space code with debugging information
242 (defaults to disabled)])],
245 AC_ARG_ENABLE([optimize],
246 [AS_HELP_STRING([--disable-optimize],
247 [disable optimization for compilation of the user space code (defaults
250 [enable_optimize="yes"])
251 AC_ARG_ENABLE([warnings],
252 [AS_HELP_STRING([--enable-warnings],
253 [enable compilation warnings when building with gcc (defaults to
256 [enable_warnings="no"])
257 AC_ARG_ENABLE([debug-kernel],
258 [AS_HELP_STRING([--enable-debug-kernel],
259 [enable compilation of the kernel module with debugging information
260 (defaults to disabled)])],
262 [enable_debug_kernel="no"])
263 AC_ARG_ENABLE([optimize-kernel],
264 [AS_HELP_STRING([--disable-optimize-kernel],
265 [disable compilation of the kernel module with optimization (defaults
266 based on platform)])],
268 [enable_optimize_kernel="yes"])
269 AC_ARG_ENABLE([debug-lwp],
270 [AS_HELP_STRING([--enable-debug-lwp],
271 [enable compilation of the LWP code with debugging information
272 (defaults to disabled)])],
274 [enable_debug_lwp="no"])
275 AC_ARG_ENABLE([optimize-lwp],
276 [AS_HELP_STRING([--disable-optimize-lwp],
277 [disable optimization for compilation of the LWP code (defaults to
280 [enable_optimize_lwp="yes"])
281 AC_ARG_ENABLE([debug-pam],
282 [AS_HELP_STRING([--enable-debug-pam],
283 [enable compilation of the PAM code with debugging information
284 (defaults to disabled)])],
286 [enable_debug_pam="no"])
287 AC_ARG_ENABLE([optimize-pam],
288 [AS_HELP_STRING([--disable-optimize-pam],
289 [disable optimization for compilation of the PAM code (defaults to
292 [enable_optimize_pam="yes"])
297 dnl weird ass systems
302 dnl Various compiler setup.
306 COMPILER_HAS_FUNCTION_MACRO
308 dnl Checks for programs.
315 OPENAFS_CHECK_BIGENDIAN
317 AC_MSG_CHECKING(your OS)
323 if test "x$enable_redhat_buildsys" = "xyes"; then
324 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
326 if test "x$enable_kernel_module" = "xyes"; then
327 if test "x$with_linux_kernel_headers" != "x"; then
328 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
330 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/source"
331 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
332 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
334 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
335 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
337 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
338 LINUX_KERNEL_PATH="/usr/src/linux"
341 if test "x$with_linux_kernel_build" != "x"; then
342 LINUX_KERNEL_BUILD="$with_linux_kernel_build"
344 LINUX_KERNEL_BUILD=$LINUX_KERNEL_PATH
346 if test -f "$LINUX_KERNEL_BUILD/include/linux/utsrelease.h"; then
347 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
348 LINUX_VERSION="$linux_kvers"
350 if test -f "$LINUX_KERNEL_BUILD/include/linux/version.h"; then
351 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
352 if test "x$linux_kvers" = "x"; then
353 if test -f "$LINUX_KERNEL_BUILD/include/linux/version-up.h"; then
354 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
355 if test "x$linux_kvers" = "x"; then
357 AC_MSG_ERROR(Linux headers lack version definition [2])
360 LINUX_VERSION="$linux_kvers"
363 AC_MSG_ERROR(Linux headers lack version definition)
367 LINUX_VERSION="$linux_kvers"
370 enable_kernel_module="no"
373 if test ! -f "$LINUX_KERNEL_BUILD/include/linux/autoconf.h"; then
374 enable_kernel_module="no"
376 if test "x$enable_kernel_module" = "xno"; then
377 if test "x$with_linux_kernel_headers" != "x"; then
378 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
381 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
384 dnl do we need to determine SUBARCH from autoconf.h
388 if test "x$enable_kernel_module" = "xyes"; then
389 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
390 if test "x${AFS_SYSKVERS}" = "x"; then
391 AC_MSG_ERROR(Couldn't guess your Linux version [2])
398 SOLARIS_UFSVFS_HAS_DQRWLOCK
399 SOLARIS_PROC_HAS_P_COREFILE
400 SOLARIS_FS_HAS_FS_ROLLED
404 enable_kernel_module=no
410 if test -f "/usr/old/usr/include/ndir.h"; then
411 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
415 if test -d /usr/include/sys/SN/SN1; then
416 IRIX_BUILD_IP35="IP35"
423 AC_MSG_RESULT(rs_aix)
427 AC_MSG_RESULT(alpha_dux)
431 AC_MSG_RESULT(ppc_darwin)
435 AC_MSG_RESULT(x86_darwin)
439 AC_MSG_RESULT(i386_fbsd)
447 AC_MSG_RESULT(i386_obsd)
450 AC_MSG_RESULT($system)
454 if test "x$with_afs_sysname" != "x"; then
455 AFS_SYSNAME="$with_afs_sysname"
457 AC_MSG_CHECKING(your AFS sysname)
463 AFS_SYSNAME="i386_obsd${vM}${vm}"
465 sparc64-*-openbsd?.?)
469 AFS_SYSNAME="sparc64_obsd${vM}${vm}"
475 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
478 AFS_SYSNAME="i386_nbsd15"
481 AFS_SYSNAME="alpha_nbsd15"
483 i?86-*-netbsd*1.6[[M-Z]]*)
484 AFS_SYSNAME="i386_nbsd20"
486 powerpc-*-netbsd*1.6[[M-Z]]*)
487 AFS_SYSNAME="ppc_nbsd20"
490 AFS_SYSNAME="i386_nbsd20"
493 AFS_SYSNAME="amd64_nbsd20"
495 x86_64-*-netbsd*3.[0-8]*)
496 AFS_PARAM_COMMON=param.nbsd30.h
497 AFS_SYSNAME="amd64_nbsd30"
499 x86_64-*-netbsd*4.[0-8]*)
500 AFS_PARAM_COMMON=param.nbsd40.h
501 AFS_SYSNAME="amd64_nbsd40"
503 powerpc-*-netbsd*2.0*)
504 AFS_SYSNAME="ppc_nbsd20"
507 AFS_SYSNAME="i386_nbsd16"
510 AFS_SYSNAME="alpha_nbsd16"
512 powerpc-*-netbsd*1.6*)
513 AFS_SYSNAME="ppc_nbsd16"
516 AFS_SYSNAME="i386_nbsd21"
519 AFS_SYSNAME="i386_nbsd30"
521 i?86-*-netbsd*3.[[0-8]]*)
522 AFS_SYSNAME="i386_nbsd30"
525 AFS_SYSNAME="i386_nbsd30"
527 i?86-*-netbsd*4.[[0-8]]*)
528 AFS_SYSNAME="i386_nbsd40"
531 AFS_SYSNAME="i386_nbsd40"
534 AFS_SYSNAME="hp_ux110"
537 AFS_SYSNAME="hp_ux11i"
540 AFS_SYSNAME="hp_ux1123"
543 AFS_SYSNAME="ia64_hpux1122"
546 AFS_SYSNAME="ia64_hpux1123"
549 AFS_SYSNAME="hp_ux102"
551 powerpc-apple-darwin1.2*)
552 AFS_SYSNAME="ppc_darwin_12"
554 powerpc-apple-darwin1.3*)
555 AFS_SYSNAME="ppc_darwin_13"
557 powerpc-apple-darwin1.4*)
558 AFS_SYSNAME="ppc_darwin_14"
560 powerpc-apple-darwin5.1*)
561 AFS_SYSNAME="ppc_darwin_14"
563 powerpc-apple-darwin5.2*)
564 AFS_SYSNAME="ppc_darwin_14"
566 powerpc-apple-darwin5.3*)
567 AFS_SYSNAME="ppc_darwin_14"
569 powerpc-apple-darwin5.4*)
570 AFS_SYSNAME="ppc_darwin_14"
572 powerpc-apple-darwin5.5*)
573 AFS_SYSNAME="ppc_darwin_14"
575 powerpc-apple-darwin6.0*)
576 AFS_SYSNAME="ppc_darwin_60"
578 powerpc-apple-darwin6.1*)
579 AFS_SYSNAME="ppc_darwin_60"
581 powerpc-apple-darwin6.2*)
582 AFS_SYSNAME="ppc_darwin_60"
584 powerpc-apple-darwin6.3*)
585 AFS_SYSNAME="ppc_darwin_60"
587 powerpc-apple-darwin6.4*)
588 AFS_SYSNAME="ppc_darwin_60"
590 powerpc-apple-darwin6.5*)
591 AFS_SYSNAME="ppc_darwin_60"
593 powerpc-apple-darwin7.0*)
594 AFS_SYSNAME="ppc_darwin_70"
596 powerpc-apple-darwin7.1*)
597 AFS_SYSNAME="ppc_darwin_70"
599 powerpc-apple-darwin7.2*)
600 AFS_SYSNAME="ppc_darwin_70"
602 powerpc-apple-darwin7.3*)
603 AFS_SYSNAME="ppc_darwin_70"
605 powerpc-apple-darwin7.4*)
606 AFS_SYSNAME="ppc_darwin_70"
608 powerpc-apple-darwin7.5*)
609 AFS_SYSNAME="ppc_darwin_70"
611 powerpc-apple-darwin8.0*)
612 AFS_SYSNAME="ppc_darwin_80"
614 powerpc-apple-darwin8.*)
615 AFS_SYSNAME="ppc_darwin_80"
617 i386-apple-darwin8.*)
618 AFS_SYSNAME="x86_darwin_80"
620 powerpc-apple-darwin9.*)
621 AFS_SYSNAME="ppc_darwin_90"
623 i386-apple-darwin9.*)
624 AFS_SYSNAME="x86_darwin_90"
626 sparc-sun-solaris2.5*)
627 AFS_SYSNAME="sun4x_55"
630 sparc-sun-solaris2.6)
631 AFS_SYSNAME="sun4x_56"
633 sparc-sun-solaris2.7)
634 AFS_SYSNAME="sun4x_57"
636 sparc-sun-solaris2.8)
637 AFS_SYSNAME="sun4x_58"
639 sparc-sun-solaris2.9)
640 AFS_SYSNAME="sun4x_59"
642 sparc-sun-solaris2.10)
643 AFS_SYSNAME="sun4x_510"
645 sparc-sun-solaris2.11)
646 AFS_SYSNAME="sun4x_511"
649 AFS_SYSNAME="sun4_413"
653 AFS_SYSNAME="sunx86_57"
656 AFS_SYSNAME="sunx86_58"
659 AFS_SYSNAME="sunx86_59"
662 AFS_SYSNAME="sunx86_510"
665 AFS_SYSNAME="sunx86_511"
668 AFS_SYSNAME="alpha_dux40"
671 AFS_SYSNAME="alpha_dux50"
674 AFS_SYSNAME="alpha_dux51"
680 AFS_SYSNAME="ia64_linuxXX"
683 AFS_SYSNAME="`/bin/arch`_linuxXX"
686 AFS_SYSNAME="ppc64_linuxXX"
689 AFS_SYSNAME="alpha_linux_XX"
692 AFS_SYSNAME="s390_linuxXX"
695 AFS_SYSNAME="s390x_linuxXX"
698 AFS_SYSNAME="`/bin/arch`_linuxXX"
701 AFS_SYSNAME="sparc64_linuxXX"
704 AFS_SYSNAME="i386_linuxXX"
706 parisc-*-linux-gnu|hppa-*-linux-gnu)
707 AFS_SYSNAME="parisc_linuxXX"
711 AFS_SYSNAME="rs_aix42"
715 AFS_SYSNAME="rs_aix42"
719 AFS_SYSNAME="rs_aix51"
723 AFS_SYSNAME="rs_aix52"
727 AFS_SYSNAME="rs_aix53"
731 AFS_SYSNAME="rs_aix61"
735 AFS_SYSNAME="amd64_linuxXX"
739 AC_MSG_ERROR(An AFS sysname is required)
744 *_linux* | *_umlinux*)
745 if test "x${AFS_SYSKVERS}" = "x"; then
746 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
748 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
749 AFS_SYSNAME="$_AFS_SYSNAME"
750 save_CPPFLAGS="$CPPFLAGS"
751 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
753 [#include <linux/autoconf.h>],
754 [#ifndef CONFIG_USERMODE
757 ac_cv_linux_is_uml=yes,)
758 if test "${ac_cv_linux_is_uml}" = yes; then
759 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
761 CPPFLAGS="$save_CPPFLAGS"
762 AFS_SYSNAME="$_AFS_SYSNAME"
765 AC_MSG_RESULT($AFS_SYSNAME)
768 dnl Some hosts have a separate common param file they should include. Figure
769 dnl out if we're on one of them now that we know the sysname.
771 *_nbsd15) AFS_PARAM_COMMON=param.nbsd15.h ;;
772 *_nbsd16) AFS_PARAM_COMMON=param.nbsd16.h ;;
773 *_nbsd20) AFS_PARAM_COMMON=param.nbsd20.h ;;
774 *_nbsd21) AFS_PARAM_COMMON=param.nbsd21.h ;;
775 *_nbsd30) AFS_PARAM_COMMON=param.nbsd30.h ;;
776 *_nbsd40) AFS_PARAM_COMMON=param.nbsd40.h ;;
777 *_linux22) AFS_PARAM_COMMON=param.linux22.h ;;
778 *_linux24) AFS_PARAM_COMMON=param.linux24.h ;;
779 *_linux26) AFS_PARAM_COMMON=param.linux26.h ;;
782 case $AFS_SYSNAME in *_linux* | *_umlinux*)
784 # Add (sub-) architecture-specific paths needed by conftests
787 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
788 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
789 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
790 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
793 if test "x$enable_kernel_module" = "xyes"; then
794 if test "x$enable_debug_kernel" = "xno"; then
795 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
797 OPENAFS_GCC_SUPPORTS_MARCH
798 AC_SUBST(P5PLUS_KOPTS)
799 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
800 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
801 OPENAFS_GCC_SUPPORTS_NO_COMMON
802 OPENAFS_GCC_SUPPORTS_PIPE
803 AC_SUBST(LINUX_GCC_KOPTS)
804 ifdef([OPENAFS_CONFIGURE_LIBAFS],
805 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
806 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
809 LINUX_KBUILD_USES_EXTRA_CFLAGS
810 LINUX_KERNEL_COMPILE_WORKS
811 LINUX_EXPORTS_FIND_TASK_BY_PID
812 LINUX_EXPORTS_PROC_ROOT_FS
813 LINUX_HAVE_CURRENT_KERNEL_TIME
815 LINUX_KMEM_CACHE_INIT
816 LINUX_HAVE_KMEM_CACHE_T
817 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
818 LINUX_D_PATH_TAKES_STRUCT_PATH
820 LINUX_CONFIG_H_EXISTS
821 LINUX_COMPLETION_H_EXISTS
822 LINUX_SEMAPHORE_H_EXISTS
823 LINUX_EXPORTFS_H_EXISTS
824 LINUX_DEFINES_FOR_EACH_PROCESS
825 LINUX_DEFINES_PREV_TASK
826 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
827 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
828 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
829 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
830 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
831 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
832 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
833 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
834 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
835 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
836 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
837 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
838 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
839 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
840 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
841 LINUX_INODE_SETATTR_RETURN_TYPE
842 LINUX_WRITE_INODE_RETURN_TYPE
843 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
844 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
845 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
846 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
847 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
848 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
849 LINUX_AOP_WRITEBACK_CONTROL
850 LINUX_FS_STRUCT_FOP_HAS_FLOCK
851 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
852 LINUX_FS_STRUCT_FOP_HAS_SPLICE
853 LINUX_KERNEL_LINUX_SYSCALL_H
854 LINUX_KERNEL_LINUX_SEQ_FILE_H
855 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
857 LINUX_KERNEL_SOCK_CREATE
858 LINUX_KERNEL_PAGE_FOLLOW_LINK
859 LINUX_KERNEL_HLIST_UNHASHED
860 LINUX_KEY_TYPE_H_EXISTS
862 LINUX_RECALC_SIGPENDING_ARG_TYPE
863 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
864 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
865 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
866 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
867 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
868 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
869 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
870 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
871 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
872 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
873 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
874 LINUX_EXPORTS_TASKLIST_LOCK
875 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
876 LINUX_STATFS_TAKES_DENTRY
877 LINUX_FREEZER_H_EXISTS
878 LINUX_HAVE_SVC_ADDR_IN
879 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
880 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
883 LINUX_LINUX_KEYRING_SUPPORT
884 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
886 LINUX_GENERIC_FILE_AIO_READ
887 LINUX_INIT_WORK_HAS_DATA
888 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
889 LINUX_SYSCTL_TABLE_CHECKING
891 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
892 LINUX_EXPORTS_INIT_MM
893 LINUX_EXPORTS_SYS_CHDIR
894 LINUX_EXPORTS_SYS_CLOSE
895 LINUX_EXPORTS_SYS_OPEN
896 LINUX_EXPORTS_SYS_WAIT4
897 LINUX_EXPORTS_RCU_READ_LOCK
898 if test "x$with_linux_kernel_packaging" = "xno" ; then
903 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
904 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
905 ac_cv_linux_exports_sys_call_table=no
906 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
907 ac_cv_linux_exports_ia32_sys_call_table=yes
910 LINUX_EXPORTS_KALLSYMS_ADDRESS
911 LINUX_EXPORTS_KALLSYMS_SYMBOL
912 LINUX_EXPORTS_SYS_CALL_TABLE
913 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
914 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
915 linux_syscall_method=none
916 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
917 linux_syscall_method=scan
918 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
919 linux_syscall_method=scan_with_kallsyms_address
922 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
923 linux_syscall_method=kallsyms_symbol
925 if test "x$linux_syscall_method" = "xnone"; then
926 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
927 linux_syscall_method=scan
931 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
932 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
934 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
935 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
937 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
938 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
940 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
941 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
943 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
944 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
946 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
947 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
949 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
950 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
952 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
953 AC_DEFINE(EXPORTED_SYS_CALL_TABLE, 1, [define if your linux kernel exports sys_call_table])
955 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
956 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE, 1, [define if your linux kernel exports ia32_sys_call_table])
958 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
959 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL, 1, [define if your linux kernel exports kallsyms])
961 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
962 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS, 1, [define if your linux kernel exports kallsyms address])
964 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
965 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
967 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
968 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
970 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
971 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
973 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
974 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
976 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
977 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
979 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
980 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
982 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
983 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
985 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
986 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
988 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
989 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
991 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
992 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
994 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
995 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
997 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
998 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
1000 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
1001 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
1003 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
1004 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
1006 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
1007 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
1009 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
1010 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
1012 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
1013 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
1015 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
1016 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
1018 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
1019 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
1021 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
1022 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
1024 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
1025 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
1027 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
1028 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
1030 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
1031 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
1033 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
1034 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
1036 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
1037 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
1039 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
1040 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
1042 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
1043 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
1045 if test "x$ac_linux_syscall" = "xyes" ; then
1046 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
1048 if test "x$ac_linux_seq_file" = "xyes" ; then
1049 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
1051 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
1052 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
1054 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
1055 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
1057 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
1058 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
1060 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
1061 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
1063 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
1064 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
1066 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
1067 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
1069 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
1070 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
1072 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
1073 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
1075 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
1076 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
1078 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
1079 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
1081 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
1082 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
1084 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
1085 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
1087 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
1088 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
1090 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
1091 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
1093 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
1094 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
1096 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1097 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1099 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1100 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1102 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1103 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1105 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1106 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1108 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1109 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1111 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1112 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1114 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1115 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1117 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1118 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1120 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1121 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1123 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1124 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1126 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1127 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1129 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1130 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1132 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1133 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1135 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1136 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1138 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1139 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1141 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1142 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1144 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1145 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1147 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1148 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1150 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1151 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1153 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1154 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1156 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1158 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1159 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1165 case $AFS_SYSNAME in
1167 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1168 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1169 dnl the test below fails on darwin, even if the CPPFLAGS below
1170 dnl are added. the headers from Kernel.framework must be used
1171 dnl when KERNEL is defined.
1173 dnl really, such a thing isn't guaranteed to work on any
1174 dnl platform until the kernel cflags from MakefileProto are
1175 dnl known to configure
1176 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1179 AC_MSG_CHECKING(for definition of struct buf)
1180 dnl save_CPPFLAGS="$CPPFLAGS"
1181 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1182 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1183 ac_cv_have_struct_buf=no
1185 [#include <sys/buf.h>],
1187 printf("%d\n", sizeof(x));],
1188 ac_cv_have_struct_buf=yes,)
1191 dnl CPPFLAGS="$save_CPPFLAGS"
1192 AC_MSG_RESULT($ac_cv_have_struct_buf)
1193 if test "$ac_cv_have_struct_buf" = yes; then
1194 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1200 AC_CACHE_VAL(ac_cv_sockaddr_len,
1202 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1203 AC_TRY_COMPILE( [#include <sys/types.h>
1204 #include <sys/socket.h>],
1205 [struct sockaddr *a;
1206 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1207 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1208 if test "$ac_cv_sockaddr_len" = "yes"; then
1209 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1211 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1212 echo Skipping library tests because they confuse Irix.
1214 AC_CHECK_FUNCS(socket)
1216 if test "$ac_cv_func_socket" = no; then
1217 for lib in socket inet; do
1218 if test "$HAVE_SOCKET" != 1; then
1219 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1224 AC_CHECK_FUNCS(connect)
1226 if test "$ac_cv_func_connect" = no; then
1228 if test "$HAVE_CONNECT" != 1; then
1229 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1234 AC_CHECK_FUNCS(gethostbyname)
1235 if test "$ac_cv_func_gethostbyname" = no; then
1236 for lib in dns nsl resolv; do
1237 if test "$HAVE_GETHOSTBYNAME" != 1; then
1238 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1243 dnl darwin wants it, aix hates it
1244 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1248 #include <sys/types.h>
1249 #include <sys/socket.h>
1250 #include <netinet/in.h>
1251 #include <arpa/inet.h>
1252 #include <arpa/nameser.h>
1253 #include <arpa/nameser_compat.h>
1255 ], [static int i; i = 0;],
1257 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H, 1, [define if arpa/nameser_compat.h exists])],
1261 openafs_save_libs="$LIBS"
1262 AC_MSG_CHECKING([for res_search])
1265 if test "$ac_cv_func_res_search" = no; then
1266 for lib in dns nsl resolv; do
1267 if test "$ac_cv_func_res_search" != yes; then
1270 LIBS="$openafs_save_libs"
1273 if test "$ac_cv_func_res_search" = yes; then
1274 LIB_res_search="-l$lib"
1275 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1276 AC_MSG_RESULT([yes, in lib$lib])
1281 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1287 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1289 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1290 AC_TRY_COMPILE( [#include <sys/types.h>
1291 #include <sys/socket.h>
1292 #include <netinet/in.h>],
1294 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1295 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1296 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1297 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1301 if test "x$MKAFS_OSTYPE" = OBSD; then
1302 PTHREAD_LIBS="-pthread"
1304 if test "x$PTHREAD_LIBS" = xerror; then
1305 AC_CHECK_LIB(pthread, pthread_attr_init,
1306 PTHREAD_LIBS="-lpthread")
1308 if test "x$PTHREAD_LIBS" = xerror; then
1309 AC_CHECK_LIB(pthreads, pthread_attr_init,
1310 PTHREAD_LIBS="-lpthreads")
1312 if test "x$PTHREAD_LIBS" = xerror; then
1313 AC_CHECK_LIB(c_r, pthread_attr_init,
1314 PTHREAD_LIBS="-lc_r")
1316 if test "x$PTHREAD_LIBS" = xerror; then
1317 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1319 if test "x$PTHREAD_LIBS" = xerror; then
1320 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1321 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1322 PTHREAD_LIBS="-lpthread")
1324 if test "x$PTHREAD_LIBS" = xerror; then
1325 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1327 AC_SUBST(PTHREAD_LIBS)
1329 HOST_CPU="$host_cpu"
1331 if test "x$with_bsd_kernel_headers" != "x"; then
1332 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1334 BSD_KERNEL_PATH="/usr/src/sys"
1337 if test "x$with_bsd_kernel_build" != "x"; then
1338 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1340 case $AFS_SYSNAME in
1342 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1345 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1351 if test "$enable_supergroups" = "yes"; then
1352 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1355 if test "$enable_fast_restart" = "yes"; then
1356 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1359 if test "$enable_bitmap_later" = "yes"; then
1360 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1363 if test "$enable_demand_attach_fs" = "yes"; then
1364 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1369 AC_SUBST(DEMAND_ATTACH)
1371 if test "$enable_disconnected" = "yes"; then
1372 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1375 if test "$enable_unix_sockets" = "yes"; then
1376 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1377 USE_UNIX_SOCKETS="yes"
1379 USE_UNIX_SOCKETS="no"
1381 AC_SUBST(USE_UNIX_SOCKETS)
1383 if test "$enable_fast_restart" = "yes" &&
1384 test "$enable_demand_attach_fs" = "yes" ; then
1385 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.])
1389 if test "$enable_full_vos_listvol_switch" = "yes"; then
1390 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1393 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1394 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1395 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1399 if test "$enable_bos_restricted_mode" = "yes"; then
1400 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1403 if test "$enable_bos_new_config" = "yes"; then
1404 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1407 if test "$enable_largefile_fileserver" = "yes"; then
1408 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1411 if test "$enable_cache_bypass" = "yes"; then
1412 AC_DEFINE(AFS_CACHE_BYPASS, 1, [define to activate cache bypassing Unix client])
1415 if test "$enable_namei_fileserver" = "yes"; then
1416 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1418 if test "$enable_namei_fileserver" = "default"; then
1421 AC_MSG_WARN(Some Solaris 10 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1422 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1425 AC_MSG_WARN(Solaris 11 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1426 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1434 if test "$enable_afsdb" = "yes"; then
1435 LIB_AFSDB="$LIB_res_search"
1436 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1439 dnl check for tivoli
1440 AC_MSG_CHECKING(for tivoli tsm butc support)
1442 if test "$enable_tivoli_tsm" = "yes"; then
1443 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1444 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1445 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1446 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1448 if 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])
1456 elif test -r "$XBSADIR1/xbsa.h"; then
1457 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1459 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1460 elif test -r "$XBSADIR2/xbsa.h"; then
1461 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1463 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1465 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1470 AC_SUBST(XBSA_CFLAGS)
1471 AC_SUBST(XBSA_XLIBS)
1473 dnl checks for header files.
1477 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1478 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1479 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1480 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1481 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1482 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1483 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1485 dnl Don't build PAM on IRIX; the interface doesn't work for us.
1486 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1487 case $AFS_SYSNAME in
1500 if test "$enable_login" = yes; then
1505 AC_SUBST(BUILD_LOGIN)
1507 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1508 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1509 AC_CHECK_FUNCS(setvbuf vsyslog)
1510 AC_FUNC_SETVBUF_REVERSED
1511 AC_CHECK_FUNCS(regcomp regexec regerror)
1512 AC_MSG_CHECKING([for POSIX regex library])
1513 if test "$ac_cv_header_regex_h" = "yes" && \
1514 test "$ac_cv_func_regcomp" = "yes" && \
1515 test "$ac_cv_func_regexec" = "yes" && \
1516 test "$ac_cv_func_regerror" = "yes"; then
1517 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1524 AC_CHECK_TYPE(ssize_t, int)
1525 AC_CHECK_TYPE([sig_atomic_t], ,
1526 [AC_DEFINE([sig_atomic_t], [int],
1527 [Define to int if <signal.h> does not define.])],
1528 [#include <sys/types.h>
1529 #include <signal.h>])
1530 AC_SIZEOF_TYPE(long)
1532 AC_CHECK_FUNCS(timegm)
1533 AC_CHECK_FUNCS(daemon)
1535 dnl Directory PATH handling
1536 if test "x$enable_transarc_paths" = "xyes" ; then
1537 afsconfdir=${afsconfdir=/usr/afs/etc}
1538 viceetcdir=${viceetcdir=/usr/vice/etc}
1539 afskerneldir=${afskerneldir=${viceetcdir}}
1540 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1541 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1542 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1543 afsdbdir=${afsdbdir=/usr/afs/db}
1544 afslogsdir=${afslogsdir=/usr/afs/logs}
1545 afslocaldir=${afslocaldir=/usr/afs/local}
1546 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1547 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1549 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1550 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1551 afskerneldir=${afskerneldir='${libdir}/openafs'}
1552 afssrvbindir=${afssrvbindir='${bindir}'}
1553 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1554 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1555 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1556 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1557 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1558 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1559 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1561 AC_SUBST(afsconfdir)
1562 AC_SUBST(viceetcdir)
1563 AC_SUBST(afskerneldir)
1564 AC_SUBST(afssrvbindir)
1565 AC_SUBST(afssrvsbindir)
1566 AC_SUBST(afssrvlibexecdir)
1568 AC_SUBST(afslogsdir)
1569 AC_SUBST(afslocaldir)
1570 AC_SUBST(afsbackupdir)
1571 AC_SUBST(afsbosconfigdir)
1573 if test "x$enable_kernel_module" = "xyes"; then
1574 ENABLE_KERNEL_MODULE=libafs
1577 if test "x$enable_pthreaded_ubik" = "xyes"; then
1578 ENABLE_PTHREADED_UBIK=yes
1581 AC_SUBST(AFS_SYSNAME)
1582 AC_SUBST(AFS_PARAM_COMMON)
1583 AC_SUBST(ENABLE_KERNEL_MODULE)
1584 AC_SUBST(ENABLE_PTHREADED_UBIK)
1586 AC_SUBST(LINUX_KERNEL_PATH)
1587 AC_SUBST(LINUX_KERNEL_BUILD)
1589 AC_SUBST(BSD_KERNEL_PATH)
1590 AC_SUBST(BSD_KERNEL_BUILD)
1591 AC_SUBST(LINUX_VERSION)
1592 AC_SUBST(MKAFS_OSTYPE)
1593 AC_SUBST(TOP_OBJDIR)
1594 AC_SUBST(TOP_SRCDIR)
1595 AC_SUBST(TOP_INCDIR)
1596 AC_SUBST(TOP_LIBDIR)
1598 AC_SUBST(DARWIN_INFOFILE)
1599 AC_SUBST(IRIX_BUILD_IP35)
1604 TOP_SRCDIR="${srcdir}/src"
1606 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1612 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1616 TOP_OBJDIR="${SRCDIR_PARENT}"
1617 TOP_INCDIR="${SRCDIR_PARENT}/include"
1618 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1619 if test "${DEST}x" = "x"; then
1620 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1623 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1624 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1625 AC_SUBST(HELPER_SPLINT)
1626 AC_SUBST(HELPER_SPLINTCFG)
1628 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs