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
814 LINUX_KMEM_CACHE_INIT
815 LINUX_HAVE_KMEM_CACHE_T
816 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
817 LINUX_D_PATH_TAKES_STRUCT_PATH
819 LINUX_CONFIG_H_EXISTS
820 LINUX_COMPLETION_H_EXISTS
821 LINUX_SEMAPHORE_H_EXISTS
822 LINUX_EXPORTFS_H_EXISTS
823 LINUX_DEFINES_FOR_EACH_PROCESS
824 LINUX_DEFINES_PREV_TASK
825 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
826 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
827 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
828 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
829 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
830 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
831 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
832 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
833 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
834 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
835 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
836 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
837 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
838 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
839 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
840 LINUX_INODE_SETATTR_RETURN_TYPE
841 LINUX_WRITE_INODE_RETURN_TYPE
842 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
843 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
844 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
845 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
846 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
847 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
848 LINUX_AOP_WRITEBACK_CONTROL
849 LINUX_FS_STRUCT_FOP_HAS_FLOCK
850 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
851 LINUX_FS_STRUCT_FOP_HAS_SPLICE
852 LINUX_KERNEL_LINUX_SYSCALL_H
853 LINUX_KERNEL_LINUX_SEQ_FILE_H
854 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
856 LINUX_KERNEL_SOCK_CREATE
857 LINUX_KERNEL_PAGE_FOLLOW_LINK
858 LINUX_KERNEL_HLIST_UNHASHED
859 LINUX_KEY_TYPE_H_EXISTS
861 LINUX_RECALC_SIGPENDING_ARG_TYPE
862 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
863 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
864 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
865 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
866 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
867 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
868 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
869 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
870 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
871 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
872 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
873 LINUX_EXPORTS_TASKLIST_LOCK
874 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
875 LINUX_STATFS_TAKES_DENTRY
876 LINUX_FREEZER_H_EXISTS
877 LINUX_HAVE_SVC_ADDR_IN
878 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
879 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
882 LINUX_LINUX_KEYRING_SUPPORT
883 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
885 LINUX_GENERIC_FILE_AIO_READ
886 LINUX_INIT_WORK_HAS_DATA
887 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
888 LINUX_SYSCTL_TABLE_CHECKING
890 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
891 LINUX_EXPORTS_INIT_MM
892 LINUX_EXPORTS_SYS_CHDIR
893 LINUX_EXPORTS_SYS_CLOSE
894 LINUX_EXPORTS_SYS_OPEN
895 LINUX_EXPORTS_SYS_WAIT4
896 LINUX_EXPORTS_RCU_READ_LOCK
897 if test "x$with_linux_kernel_packaging" = "xno" ; then
902 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
903 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
904 ac_cv_linux_exports_sys_call_table=no
905 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
906 ac_cv_linux_exports_ia32_sys_call_table=yes
909 LINUX_EXPORTS_KALLSYMS_ADDRESS
910 LINUX_EXPORTS_KALLSYMS_SYMBOL
911 LINUX_EXPORTS_SYS_CALL_TABLE
912 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
913 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
914 linux_syscall_method=none
915 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
916 linux_syscall_method=scan
917 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
918 linux_syscall_method=scan_with_kallsyms_address
921 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
922 linux_syscall_method=kallsyms_symbol
924 if test "x$linux_syscall_method" = "xnone"; then
925 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
926 linux_syscall_method=scan
930 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
931 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
933 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
934 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
936 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
937 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
939 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
940 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
942 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
943 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
945 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
946 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
948 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
949 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
951 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
952 AC_DEFINE(EXPORTED_SYS_CALL_TABLE, 1, [define if your linux kernel exports sys_call_table])
954 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
955 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE, 1, [define if your linux kernel exports ia32_sys_call_table])
957 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
958 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL, 1, [define if your linux kernel exports kallsyms])
960 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
961 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS, 1, [define if your linux kernel exports kallsyms address])
963 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
964 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
966 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
967 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
969 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
970 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
972 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
973 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
975 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
976 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
978 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
979 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
981 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
982 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
984 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
985 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
987 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
988 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
990 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
991 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
993 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
994 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
996 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
997 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
999 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
1000 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
1002 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
1003 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
1005 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
1006 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
1008 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
1009 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
1011 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
1012 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
1014 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
1015 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
1017 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
1018 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
1020 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
1021 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
1023 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
1024 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
1026 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
1027 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
1029 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
1030 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
1032 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
1033 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
1035 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
1036 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
1038 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
1039 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
1041 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
1042 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
1044 if test "x$ac_linux_syscall" = "xyes" ; then
1045 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
1047 if test "x$ac_linux_seq_file" = "xyes" ; then
1048 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
1050 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
1051 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
1053 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
1054 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
1056 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
1057 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
1059 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
1060 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
1062 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
1063 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
1065 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
1066 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
1068 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
1069 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
1071 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
1072 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
1074 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
1075 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
1077 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
1078 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
1080 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
1081 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
1083 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
1084 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
1086 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
1087 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
1089 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
1090 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
1092 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
1093 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
1095 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1096 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1098 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1099 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1101 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1102 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1104 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1105 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1107 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1108 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1110 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1111 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1113 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1114 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1116 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1117 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1119 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1120 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1122 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1123 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1125 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1126 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1128 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1129 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1131 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1132 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1134 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1135 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1137 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1138 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1140 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1141 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1143 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1144 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1146 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1147 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1149 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1150 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1152 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1153 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1155 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1157 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1158 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1164 case $AFS_SYSNAME in
1166 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1167 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1168 dnl the test below fails on darwin, even if the CPPFLAGS below
1169 dnl are added. the headers from Kernel.framework must be used
1170 dnl when KERNEL is defined.
1172 dnl really, such a thing isn't guaranteed to work on any
1173 dnl platform until the kernel cflags from MakefileProto are
1174 dnl known to configure
1175 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1178 AC_MSG_CHECKING(for definition of struct buf)
1179 dnl save_CPPFLAGS="$CPPFLAGS"
1180 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1181 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1182 ac_cv_have_struct_buf=no
1184 [#include <sys/buf.h>],
1186 printf("%d\n", sizeof(x));],
1187 ac_cv_have_struct_buf=yes,)
1190 dnl CPPFLAGS="$save_CPPFLAGS"
1191 AC_MSG_RESULT($ac_cv_have_struct_buf)
1192 if test "$ac_cv_have_struct_buf" = yes; then
1193 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1199 AC_CACHE_VAL(ac_cv_sockaddr_len,
1201 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1202 AC_TRY_COMPILE( [#include <sys/types.h>
1203 #include <sys/socket.h>],
1204 [struct sockaddr *a;
1205 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1206 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1207 if test "$ac_cv_sockaddr_len" = "yes"; then
1208 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1210 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1211 echo Skipping library tests because they confuse Irix.
1213 AC_CHECK_FUNCS(socket)
1215 if test "$ac_cv_func_socket" = no; then
1216 for lib in socket inet; do
1217 if test "$HAVE_SOCKET" != 1; then
1218 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1223 AC_CHECK_FUNCS(connect)
1225 if test "$ac_cv_func_connect" = no; then
1227 if test "$HAVE_CONNECT" != 1; then
1228 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1233 AC_CHECK_FUNCS(gethostbyname)
1234 if test "$ac_cv_func_gethostbyname" = no; then
1235 for lib in dns nsl resolv; do
1236 if test "$HAVE_GETHOSTBYNAME" != 1; then
1237 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1242 dnl darwin wants it, aix hates it
1243 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1247 #include <sys/types.h>
1248 #include <sys/socket.h>
1249 #include <netinet/in.h>
1250 #include <arpa/inet.h>
1251 #include <arpa/nameser.h>
1252 #include <arpa/nameser_compat.h>
1254 ], [static int i; i = 0;],
1256 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H, 1, [define if arpa/nameser_compat.h exists])],
1260 openafs_save_libs="$LIBS"
1261 AC_MSG_CHECKING([for res_search])
1264 if test "$ac_cv_func_res_search" = no; then
1265 for lib in dns nsl resolv; do
1266 if test "$ac_cv_func_res_search" != yes; then
1269 LIBS="$openafs_save_libs"
1272 if test "$ac_cv_func_res_search" = yes; then
1273 LIB_res_search="-l$lib"
1274 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1275 AC_MSG_RESULT([yes, in lib$lib])
1280 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1286 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1288 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1289 AC_TRY_COMPILE( [#include <sys/types.h>
1290 #include <sys/socket.h>
1291 #include <netinet/in.h>],
1293 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1294 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1295 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1296 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1300 if test "x$MKAFS_OSTYPE" = OBSD; then
1301 PTHREAD_LIBS="-pthread"
1303 if test "x$PTHREAD_LIBS" = xerror; then
1304 AC_CHECK_LIB(pthread, pthread_attr_init,
1305 PTHREAD_LIBS="-lpthread")
1307 if test "x$PTHREAD_LIBS" = xerror; then
1308 AC_CHECK_LIB(pthreads, pthread_attr_init,
1309 PTHREAD_LIBS="-lpthreads")
1311 if test "x$PTHREAD_LIBS" = xerror; then
1312 AC_CHECK_LIB(c_r, pthread_attr_init,
1313 PTHREAD_LIBS="-lc_r")
1315 if test "x$PTHREAD_LIBS" = xerror; then
1316 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1318 if test "x$PTHREAD_LIBS" = xerror; then
1319 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1320 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1321 PTHREAD_LIBS="-lpthread")
1323 if test "x$PTHREAD_LIBS" = xerror; then
1324 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1326 AC_SUBST(PTHREAD_LIBS)
1328 HOST_CPU="$host_cpu"
1330 if test "x$with_bsd_kernel_headers" != "x"; then
1331 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1333 BSD_KERNEL_PATH="/usr/src/sys"
1336 if test "x$with_bsd_kernel_build" != "x"; then
1337 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1339 case $AFS_SYSNAME in
1341 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1344 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1350 if test "$enable_supergroups" = "yes"; then
1351 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1354 if test "$enable_fast_restart" = "yes"; then
1355 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1358 if test "$enable_bitmap_later" = "yes"; then
1359 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1362 if test "$enable_demand_attach_fs" = "yes"; then
1363 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1368 AC_SUBST(DEMAND_ATTACH)
1370 if test "$enable_disconnected" = "yes"; then
1371 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1374 if test "$enable_unix_sockets" = "yes"; then
1375 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1376 USE_UNIX_SOCKETS="yes"
1378 USE_UNIX_SOCKETS="no"
1380 AC_SUBST(USE_UNIX_SOCKETS)
1382 if test "$enable_fast_restart" = "yes" &&
1383 test "$enable_demand_attach_fs" = "yes" ; then
1384 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.])
1388 if test "$enable_full_vos_listvol_switch" = "yes"; then
1389 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1392 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1393 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1394 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1398 if test "$enable_bos_restricted_mode" = "yes"; then
1399 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1402 if test "$enable_bos_new_config" = "yes"; then
1403 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1406 if test "$enable_largefile_fileserver" = "yes"; then
1407 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1410 if test "$enable_cache_bypass" = "yes"; then
1411 AC_DEFINE(AFS_CACHE_BYPASS, 1, [define to activate cache bypassing Unix client])
1414 if test "$enable_namei_fileserver" = "yes"; then
1415 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1417 if test "$enable_namei_fileserver" = "default"; then
1420 AC_MSG_WARN(Some Solaris 10 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1421 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1424 AC_MSG_WARN(Solaris 11 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1425 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1433 if test "$enable_afsdb" = "yes"; then
1434 LIB_AFSDB="$LIB_res_search"
1435 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1438 dnl check for tivoli
1439 AC_MSG_CHECKING(for tivoli tsm butc support)
1441 if test "$enable_tivoli_tsm" = "yes"; then
1442 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1443 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1444 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1445 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1447 if test -r "$XBSADIR3/dsmapifp.h"; then
1448 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1450 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1451 elif test -r "$XBSADIR4/dsmapifp.h"; then
1452 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1454 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1455 elif test -r "$XBSADIR1/xbsa.h"; then
1456 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1458 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1459 elif test -r "$XBSADIR2/xbsa.h"; then
1460 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1462 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1464 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1469 AC_SUBST(XBSA_CFLAGS)
1470 AC_SUBST(XBSA_XLIBS)
1472 dnl checks for header files.
1476 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1477 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1478 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1479 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1480 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1481 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1482 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1484 dnl Don't build PAM on IRIX; the interface doesn't work for us.
1485 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1486 case $AFS_SYSNAME in
1499 if test "$enable_login" = yes; then
1504 AC_SUBST(BUILD_LOGIN)
1506 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1507 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1508 AC_CHECK_FUNCS(setvbuf vsyslog)
1509 AC_FUNC_SETVBUF_REVERSED
1510 AC_CHECK_FUNCS(regcomp regexec regerror)
1511 AC_MSG_CHECKING([for POSIX regex library])
1512 if test "$ac_cv_header_regex_h" = "yes" && \
1513 test "$ac_cv_func_regcomp" = "yes" && \
1514 test "$ac_cv_func_regexec" = "yes" && \
1515 test "$ac_cv_func_regerror" = "yes"; then
1516 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1523 AC_CHECK_TYPE(ssize_t, int)
1524 AC_CHECK_TYPE([sig_atomic_t], ,
1525 [AC_DEFINE([sig_atomic_t], [int],
1526 [Define to int if <signal.h> does not define.])],
1527 [#include <sys/types.h>
1528 #include <signal.h>])
1529 AC_SIZEOF_TYPE(long)
1531 AC_CHECK_FUNCS(timegm)
1532 AC_CHECK_FUNCS(daemon)
1534 dnl Directory PATH handling
1535 if test "x$enable_transarc_paths" = "xyes" ; then
1536 afsconfdir=${afsconfdir=/usr/afs/etc}
1537 viceetcdir=${viceetcdir=/usr/vice/etc}
1538 afskerneldir=${afskerneldir=${viceetcdir}}
1539 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1540 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1541 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1542 afsdbdir=${afsdbdir=/usr/afs/db}
1543 afslogsdir=${afslogsdir=/usr/afs/logs}
1544 afslocaldir=${afslocaldir=/usr/afs/local}
1545 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1546 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1548 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1549 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1550 afskerneldir=${afskerneldir='${libdir}/openafs'}
1551 afssrvbindir=${afssrvbindir='${bindir}'}
1552 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1553 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1554 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1555 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1556 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1557 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1558 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1560 AC_SUBST(afsconfdir)
1561 AC_SUBST(viceetcdir)
1562 AC_SUBST(afskerneldir)
1563 AC_SUBST(afssrvbindir)
1564 AC_SUBST(afssrvsbindir)
1565 AC_SUBST(afssrvlibexecdir)
1567 AC_SUBST(afslogsdir)
1568 AC_SUBST(afslocaldir)
1569 AC_SUBST(afsbackupdir)
1570 AC_SUBST(afsbosconfigdir)
1572 if test "x$enable_kernel_module" = "xyes"; then
1573 ENABLE_KERNEL_MODULE=libafs
1576 if test "x$enable_pthreaded_ubik" = "xyes"; then
1577 ENABLE_PTHREADED_UBIK=yes
1580 AC_SUBST(AFS_SYSNAME)
1581 AC_SUBST(AFS_PARAM_COMMON)
1582 AC_SUBST(ENABLE_KERNEL_MODULE)
1583 AC_SUBST(ENABLE_PTHREADED_UBIK)
1585 AC_SUBST(LINUX_KERNEL_PATH)
1586 AC_SUBST(LINUX_KERNEL_BUILD)
1588 AC_SUBST(BSD_KERNEL_PATH)
1589 AC_SUBST(BSD_KERNEL_BUILD)
1590 AC_SUBST(LINUX_VERSION)
1591 AC_SUBST(MKAFS_OSTYPE)
1592 AC_SUBST(TOP_OBJDIR)
1593 AC_SUBST(TOP_SRCDIR)
1594 AC_SUBST(TOP_INCDIR)
1595 AC_SUBST(TOP_LIBDIR)
1597 AC_SUBST(DARWIN_INFOFILE)
1598 AC_SUBST(IRIX_BUILD_IP35)
1603 TOP_SRCDIR="${srcdir}/src"
1605 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1611 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1615 TOP_OBJDIR="${SRCDIR_PARENT}"
1616 TOP_INCDIR="${SRCDIR_PARENT}/include"
1617 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1618 if test "${DEST}x" = "x"; then
1619 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1622 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1623 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1624 AC_SUBST(HELPER_SPLINT)
1625 AC_SUBST(HELPER_SPLINTCFG)
1627 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs