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 * Always use 64-bit file offsets for UKERNEL code. Needed for UKERNEL stuff to
48 * play nice with some other interfaces like FUSE. We technically only would
49 * need to define this when building for such interfaces, but set it always to
50 * try and reduce potential confusion.
52 #define _FILE_OFFSET_BITS 64
56 #undef AFS_LARGEFILE_ENV
59 #undef BOS_RESTRICTED_MODE
62 #undef FULL_LISTVOL_SWITCH
63 #undef COMPLETION_H_EXISTS
64 #undef DEFINED_FOR_EACH_PROCESS
65 #undef DEFINED_PREV_TASK
66 #undef EXPORTED_KALLSYMS_ADDRESS
67 #undef EXPORTED_KALLSYMS_SYMBOL
68 #undef EXPORTED_SYS_CALL_TABLE
69 #undef EXPORTED_IA32_SYS_CALL_TABLE
70 #undef EXPORTED_TASKLIST_LOCK
71 #undef INODE_SETATTR_NOT_VOID
72 #undef IRIX_HAS_MEM_FUNCS
73 #undef RECALC_SIGPENDING_TAKES_VOID
74 #undef STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
75 #undef STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
76 #undef STRUCT_FS_HAS_FS_ROLLED
77 #undef STRUCT_INODE_HAS_I_DEVICES
78 #undef STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
79 #undef STRUCT_INODE_HAS_I_ALLOC_SEM
80 #undef STRUCT_INODE_HAS_I_TRUNCATE_SEM
81 #undef STRUCT_TASK_STRUCT_HAS_PARENT
82 #undef STRUCT_TASK_STRUCT_HAS_REAL_PARENT
83 #undef STRUCT_TASK_STRUCT_HAS_SIG
84 #undef STRUCT_TASK_STRUCT_HAS_SIGHAND
85 #undef STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
87 #undef HAVE_STRUCT_BUF
88 #undef HAVE_ARPA_NAMESER_COMPAT_H
89 /* glue for RedHat kernel bug */
90 #undef ENABLE_REDHAT_BUILDSYS
91 #if defined(ENABLE_REDHAT_BUILDSYS) && defined(KERNEL) && defined(REDHAT_FIX)
92 #include "redhat-fix.h"
101 AC_ARG_WITH([afs-sysname],
102 [AS_HELP_STRING([--with-afs-sysname=sys], [use sys for the afs sysname])])
104 dnl General feature options.
105 AC_ARG_ENABLE([afsdb],
106 [AS_HELP_STRING([--disable-afsdb], [disable AFSDB DNS RR support])],
108 [enable_afsdb="yes"])
110 [AS_HELP_STRING([--disable-pam], [disable PAM support])],
113 AC_ARG_ENABLE([bos-restricted-mode],
114 [AS_HELP_STRING([--enable-bos-restricted-mode],
115 [enable bosserver restricted mode which disables certain bosserver
118 [enable_bos_restricted_mode="no"])
119 AC_ARG_ENABLE([bos-new-config],
120 [AS_HELP_STRING([--enable-bos-new-config],
121 [enable bosserver pickup of BosConfig.new on restarts])],
123 [enable_bos_new_config="no"])
124 AC_ARG_ENABLE([largefile-fileserver],
125 [AS_HELP_STRING([--disable-largefile-fileserver],
126 [disable large file support in fileserver])],
128 [enable_largefile_fileserver="yes"])
129 AC_ARG_ENABLE([namei-fileserver],
130 [AS_HELP_STRING([--enable-namei-fileserver],
131 [force compilation of namei fileserver in preference to inode
134 [enable_namei_fileserver="default"])
135 AC_ARG_ENABLE([cache-bypass],
136 [AS_HELP_STRING([--enable-cache-bypass],
137 [enable client support for cache bypass])],
139 [enable_cache_bypass="no"])
140 AC_ARG_ENABLE([supergroups],
141 [AS_HELP_STRING([--enable-supergroups],
142 [enable support for nested pts groups])],
144 [enable_supergroups="no"])
145 AC_ARG_ENABLE([fast-restart],
146 [AS_HELP_STRING([--enable-fast-restart],
147 [enable fast startup of file server without salvaging])],
149 [enable_fast_restart="no"])
150 AC_ARG_ENABLE([bitmap-later],
151 [AS_HELP_STRING([--enable-bitmap-later],
152 [enable fast startup of file server by not reading bitmap till
155 [enable_bitmap_later="no"])
156 AC_ARG_ENABLE([demand-attach-fs],
157 [AS_HELP_STRING([--enable-demand-attach-fs],
158 [enable Demand Attach Fileserver (please see documentation)])],
160 [enable_demand_attach_fs="no"])
161 AC_ARG_ENABLE([disconnected],
162 [AS_HELP_STRING([--enable-disconnected],
163 [enable disconnected support in cache manager (experimental)])],
165 [enable_disconnected="no"])
166 AC_ARG_ENABLE([unix-sockets],
167 [AS_HELP_STRING([--enable-unix-sockets],
168 [enable use of unix domain sockets for fssync])],
170 [enable_unix_sockets="yes"])
171 AC_ARG_ENABLE([full-vos-listvol-switch],
172 [AS_HELP_STRING([--disable-full-vos-listvol-switch],
173 [disable vos full listvol switch for formatted output])],
175 [enable_full_vos_listvol_switch="yes"])
176 AC_ARG_ENABLE([icmp-pmtu-discovery],
177 [AS_HELP_STRING([--enable-icmp-pmtu-discovery],
178 [enable path MTU discovery by decoding ICMP unreachable replies])],
180 [enable_icmp_pmtu_discovery="no"])
181 AC_ARG_ENABLE([tivoli-tsm],
182 [AS_HELP_STRING([--enable-tivoli-tsm],
183 [enable use of the Tivoli TSM API libraries for butc support])],
185 [enable_tivoli_tsm="no"])
186 AC_ARG_ENABLE([pthreaded-ubik],
187 [AS_HELP_STRING([--enable-pthreaded-ubik],
188 [enable installation of pthreaded ubik applications (defaults to
191 [enable_pthreaded_ubik="no"])
192 AC_ARG_ENABLE([linux-fh],
193 [AS_HELP_STRING([--enable-linux-fh],
194 [enable opening cache files by file hande instead of inode numbers
195 with linux (defaults to disabled)])],
197 [enable_linux_fh="no"])
199 dnl Kernel module build options.
200 AC_ARG_WITH([dux-kernel-headers],
201 [AS_HELP_STRING([--with-dux-kernel-headers=path],
202 [use the kernel headers found at path (optional, defaults to first
203 match in /usr/sys)])])
204 AC_ARG_WITH([linux-kernel-headers],
205 [AS_HELP_STRING([--with-linux-kernel-headers=path],
206 [use the kernel headers found at path (optional, defaults to
207 /usr/src/linux-2.4, then /usr/src/linux)])])
208 AC_ARG_WITH([linux-kernel-build],
209 [AS_HELP_STRING([--with-linux-kernel-build=path],
210 [use the kernel build found at path(optional, defaults to
211 /usr/src/linux-2.4, then /usr/src/linux)])])
212 AC_ARG_WITH([bsd-kernel-headers],
213 [AS_HELP_STRING([--with-bsd-kernel-headers=path],
214 [use the kernel headers found at path (optional, defaults to
216 AC_ARG_WITH([bsd-kernel-build],
217 [AS_HELP_STRING([--with-bsd-kernel-build=path],
218 [use the kernel build found at path (optional, defaults to
219 KSRC/i386/compile/GENERIC)])])
220 AC_ARG_WITH([linux-kernel-packaging],
221 [AS_HELP_STRING([--with-linux-kernel-packaging],
222 [use standard naming conventions to aid Linux kernel build packaging
223 (disables MPS, sets the kernel module name to openafs.ko, and
224 installs kernel modules into the standard Linux location)])],
225 [AC_SUBST(LINUX_KERNEL_PACKAGING, "yes")
226 AC_SUBST(LINUX_LIBAFS_NAME, "openafs")],
227 [AC_SUBST(LINUX_LIBAFS_NAME, "libafs")])
228 AC_ARG_ENABLE([kernel-module],
229 [AS_HELP_STRING([--disable-kernel-module],
230 [disable compilation of the kernel module (defaults to enabled)])],
232 [enable_kernel_module="yes"])
233 AC_ARG_ENABLE([redhat-buildsys],
234 [AS_HELP_STRING([--enable-redhat-buildsys],
235 [enable compilation of the redhat build system kernel (defaults to
238 [enable_redhat_buildsys="no"])
240 dnl Installation locations.
241 AC_ARG_ENABLE([transarc-paths],
242 [AS_HELP_STRING([--enable-transarc-paths],
243 [use Transarc style paths like /usr/afs and /usr/vice])],
245 [enable_transarc_paths="no"])
247 dnl Optimization and debugging flags.
248 AC_ARG_ENABLE([strip-binaries],
249 [AS_HELP_STRING([--disable-strip-binaries],
250 [disable stripping of symbol information from binaries (defaults to
253 [enable_strip_binaries="maybe"])
254 AC_ARG_ENABLE([debug],
255 [AS_HELP_STRING([--enable-debug],
256 [enable compilation of the user space code with debugging information
257 (defaults to disabled)])],
260 AC_ARG_ENABLE([optimize],
261 [AS_HELP_STRING([--disable-optimize],
262 [disable optimization for compilation of the user space code (defaults
265 [enable_optimize="yes"])
266 AC_ARG_ENABLE([warnings],
267 [AS_HELP_STRING([--enable-warnings],
268 [enable compilation warnings when building with gcc (defaults to
271 [enable_warnings="no"])
272 AC_ARG_ENABLE([debug-kernel],
273 [AS_HELP_STRING([--enable-debug-kernel],
274 [enable compilation of the kernel module with debugging information
275 (defaults to disabled)])],
277 [enable_debug_kernel="no"])
278 AC_ARG_ENABLE([optimize-kernel],
279 [AS_HELP_STRING([--disable-optimize-kernel],
280 [disable compilation of the kernel module with optimization (defaults
281 based on platform)])],
283 [enable_optimize_kernel="yes"])
284 AC_ARG_ENABLE([debug-lwp],
285 [AS_HELP_STRING([--enable-debug-lwp],
286 [enable compilation of the LWP code with debugging information
287 (defaults to disabled)])],
289 [enable_debug_lwp="no"])
290 AC_ARG_ENABLE([optimize-lwp],
291 [AS_HELP_STRING([--disable-optimize-lwp],
292 [disable optimization for compilation of the LWP code (defaults to
295 [enable_optimize_lwp="yes"])
296 AC_ARG_ENABLE([debug-pam],
297 [AS_HELP_STRING([--enable-debug-pam],
298 [enable compilation of the PAM code with debugging information
299 (defaults to disabled)])],
301 [enable_debug_pam="no"])
302 AC_ARG_ENABLE([optimize-pam],
303 [AS_HELP_STRING([--disable-optimize-pam],
304 [disable optimization for compilation of the PAM code (defaults to
307 [enable_optimize_pam="yes"])
312 dnl weird ass systems
317 dnl Various compiler setup.
320 COMPILER_HAS_FUNCTION_MACRO
322 dnl Checks for programs.
329 OPENAFS_CHECK_BIGENDIAN
331 AC_MSG_CHECKING(your OS)
337 if test "x$enable_redhat_buildsys" = "xyes"; then
338 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
340 if test "x$enable_kernel_module" = "xyes"; then
341 if test "x$with_linux_kernel_headers" != "x"; then
342 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
344 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/source"
345 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
346 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
348 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
349 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
351 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
352 LINUX_KERNEL_PATH="/usr/src/linux"
355 if test "x$with_linux_kernel_build" != "x"; then
356 LINUX_KERNEL_BUILD="$with_linux_kernel_build"
358 LINUX_KERNEL_BUILD=$LINUX_KERNEL_PATH
360 if test -f "$LINUX_KERNEL_BUILD/include/linux/utsrelease.h"; then
361 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
362 LINUX_VERSION="$linux_kvers"
364 if test -f "$LINUX_KERNEL_BUILD/include/linux/version.h"; then
365 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
366 if test "x$linux_kvers" = "x"; then
367 if test -f "$LINUX_KERNEL_BUILD/include/linux/version-up.h"; then
368 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
369 if test "x$linux_kvers" = "x"; then
371 AC_MSG_ERROR(Linux headers lack version definition [2])
374 LINUX_VERSION="$linux_kvers"
377 AC_MSG_ERROR(Linux headers lack version definition)
381 LINUX_VERSION="$linux_kvers"
384 enable_kernel_module="no"
387 if test ! -f "$LINUX_KERNEL_BUILD/include/linux/autoconf.h"; then
388 enable_kernel_module="no"
390 if test "x$enable_kernel_module" = "xno"; then
391 if test "x$with_linux_kernel_headers" != "x"; then
392 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
395 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
398 dnl do we need to determine SUBARCH from autoconf.h
402 if test "x$enable_kernel_module" = "xyes"; then
403 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
404 if test "x${AFS_SYSKVERS}" = "x"; then
405 AC_MSG_ERROR(Couldn't guess your Linux version [2])
412 SOLARIS_UFSVFS_HAS_DQRWLOCK
413 SOLARIS_PROC_HAS_P_COREFILE
414 SOLARIS_FS_HAS_FS_ROLLED
418 enable_kernel_module=no
424 if test -f "/usr/old/usr/include/ndir.h"; then
425 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
429 if test -d /usr/include/sys/SN/SN1; then
430 IRIX_BUILD_IP35="IP35"
437 AC_MSG_RESULT(rs_aix)
441 AC_MSG_RESULT(alpha_dux)
445 AC_MSG_RESULT(ppc_darwin)
449 AC_MSG_RESULT(x86_darwin)
453 AC_MSG_RESULT(i386_fbsd)
457 AC_MSG_RESULT(amd64_fbsd)
465 AC_MSG_RESULT(i386_obsd)
468 AC_MSG_RESULT($system)
472 if test "x$with_afs_sysname" != "x"; then
473 AFS_SYSNAME="$with_afs_sysname"
475 AC_MSG_CHECKING(your AFS sysname)
481 AFS_SYSNAME="i386_obsd${vM}${vm}"
483 sparc64-*-openbsd?.?)
487 AFS_SYSNAME="sparc64_obsd${vM}${vm}"
493 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
499 AFS_SYSNAME="amd64_fbsd_${vM}${vm}"
502 AFS_SYSNAME="i386_nbsd15"
505 AFS_SYSNAME="alpha_nbsd15"
507 i?86-*-netbsd*1.6[[M-Z]]*)
508 AFS_SYSNAME="i386_nbsd20"
510 powerpc-*-netbsd*1.6[[M-Z]]*)
511 AFS_SYSNAME="ppc_nbsd20"
514 AFS_SYSNAME="i386_nbsd20"
517 AFS_SYSNAME="amd64_nbsd20"
519 x86_64-*-netbsd*3.[[0-8]]*)
520 AFS_PARAM_COMMON=param.nbsd30.h
521 AFS_SYSNAME="amd64_nbsd30"
523 x86_64-*-netbsd*4.[[0-8]]*)
524 AFS_PARAM_COMMON=param.nbsd40.h
525 AFS_SYSNAME="amd64_nbsd40"
527 powerpc-*-netbsd*2.0*)
528 AFS_SYSNAME="ppc_nbsd20"
531 AFS_SYSNAME="i386_nbsd16"
534 AFS_SYSNAME="alpha_nbsd16"
536 powerpc-*-netbsd*1.6*)
537 AFS_SYSNAME="ppc_nbsd16"
540 AFS_SYSNAME="i386_nbsd21"
543 AFS_SYSNAME="i386_nbsd30"
545 i?86-*-netbsd*3.[[0-8]]*)
546 AFS_SYSNAME="i386_nbsd30"
549 AFS_SYSNAME="i386_nbsd30"
551 i?86-*-netbsd*4.[[0-8]]*)
552 AFS_SYSNAME="i386_nbsd40"
555 AFS_SYSNAME="i386_nbsd40"
558 AFS_SYSNAME="hp_ux110"
561 AFS_SYSNAME="hp_ux11i"
564 AFS_SYSNAME="hp_ux1123"
567 AFS_SYSNAME="ia64_hpux1122"
570 AFS_SYSNAME="ia64_hpux1123"
573 AFS_SYSNAME="hp_ux102"
575 powerpc-apple-darwin1.2*)
576 AFS_SYSNAME="ppc_darwin_12"
578 powerpc-apple-darwin1.3*)
579 AFS_SYSNAME="ppc_darwin_13"
581 powerpc-apple-darwin1.4*)
582 AFS_SYSNAME="ppc_darwin_14"
584 powerpc-apple-darwin5.1*)
585 AFS_SYSNAME="ppc_darwin_14"
587 powerpc-apple-darwin5.2*)
588 AFS_SYSNAME="ppc_darwin_14"
590 powerpc-apple-darwin5.3*)
591 AFS_SYSNAME="ppc_darwin_14"
593 powerpc-apple-darwin5.4*)
594 AFS_SYSNAME="ppc_darwin_14"
596 powerpc-apple-darwin5.5*)
597 AFS_SYSNAME="ppc_darwin_14"
599 powerpc-apple-darwin6.0*)
600 AFS_SYSNAME="ppc_darwin_60"
602 powerpc-apple-darwin6.1*)
603 AFS_SYSNAME="ppc_darwin_60"
605 powerpc-apple-darwin6.2*)
606 AFS_SYSNAME="ppc_darwin_60"
608 powerpc-apple-darwin6.3*)
609 AFS_SYSNAME="ppc_darwin_60"
611 powerpc-apple-darwin6.4*)
612 AFS_SYSNAME="ppc_darwin_60"
614 powerpc-apple-darwin6.5*)
615 AFS_SYSNAME="ppc_darwin_60"
617 powerpc-apple-darwin7.0*)
618 AFS_SYSNAME="ppc_darwin_70"
620 powerpc-apple-darwin7.1*)
621 AFS_SYSNAME="ppc_darwin_70"
623 powerpc-apple-darwin7.2*)
624 AFS_SYSNAME="ppc_darwin_70"
626 powerpc-apple-darwin7.3*)
627 AFS_SYSNAME="ppc_darwin_70"
629 powerpc-apple-darwin7.4*)
630 AFS_SYSNAME="ppc_darwin_70"
632 powerpc-apple-darwin7.5*)
633 AFS_SYSNAME="ppc_darwin_70"
635 powerpc-apple-darwin8.0*)
636 AFS_SYSNAME="ppc_darwin_80"
638 powerpc-apple-darwin8.*)
639 AFS_SYSNAME="ppc_darwin_80"
641 i386-apple-darwin8.*)
642 AFS_SYSNAME="x86_darwin_80"
644 powerpc-apple-darwin9.*)
645 AFS_SYSNAME="ppc_darwin_90"
647 i386-apple-darwin9.*)
648 AFS_SYSNAME="x86_darwin_90"
650 sparc-sun-solaris2.5*)
651 AFS_SYSNAME="sun4x_55"
654 sparc-sun-solaris2.6)
655 AFS_SYSNAME="sun4x_56"
657 sparc-sun-solaris2.7)
658 AFS_SYSNAME="sun4x_57"
660 sparc-sun-solaris2.8)
661 AFS_SYSNAME="sun4x_58"
663 sparc-sun-solaris2.9)
664 AFS_SYSNAME="sun4x_59"
666 sparc-sun-solaris2.10)
667 AFS_SYSNAME="sun4x_510"
669 sparc-sun-solaris2.11)
670 AFS_SYSNAME="sun4x_511"
673 AFS_SYSNAME="sun4_413"
677 AFS_SYSNAME="sunx86_57"
680 AFS_SYSNAME="sunx86_58"
683 AFS_SYSNAME="sunx86_59"
686 AFS_SYSNAME="sunx86_510"
689 AFS_SYSNAME="sunx86_511"
692 AFS_SYSNAME="alpha_dux40"
695 AFS_SYSNAME="alpha_dux50"
698 AFS_SYSNAME="alpha_dux51"
704 AFS_SYSNAME="ia64_linuxXX"
707 AFS_SYSNAME="`/bin/arch`_linuxXX"
710 AFS_SYSNAME="ppc64_linuxXX"
713 AFS_SYSNAME="alpha_linux_XX"
716 AFS_SYSNAME="s390_linuxXX"
719 AFS_SYSNAME="s390x_linuxXX"
722 AFS_SYSNAME="`/bin/arch`_linuxXX"
725 AFS_SYSNAME="sparc64_linuxXX"
728 AFS_SYSNAME="i386_linuxXX"
730 parisc-*-linux-gnu|hppa-*-linux-gnu)
731 AFS_SYSNAME="parisc_linuxXX"
735 AFS_SYSNAME="rs_aix42"
739 AFS_SYSNAME="rs_aix42"
743 AFS_SYSNAME="rs_aix51"
747 AFS_SYSNAME="rs_aix52"
751 AFS_SYSNAME="rs_aix53"
755 AFS_SYSNAME="rs_aix61"
759 AFS_SYSNAME="amd64_linuxXX"
763 AC_MSG_ERROR(An AFS sysname is required)
768 *_linux* | *_umlinux*)
769 if test "x${AFS_SYSKVERS}" = "x"; then
770 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
772 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
773 AFS_SYSNAME="$_AFS_SYSNAME"
774 save_CPPFLAGS="$CPPFLAGS"
775 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
777 [#include <linux/autoconf.h>],
778 [#ifndef CONFIG_USERMODE
781 ac_cv_linux_is_uml=yes,)
782 if test "${ac_cv_linux_is_uml}" = yes; then
783 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
785 CPPFLAGS="$save_CPPFLAGS"
786 AFS_SYSNAME="$_AFS_SYSNAME"
789 AC_MSG_RESULT($AFS_SYSNAME)
792 dnl Some hosts have a separate common param file they should include. Figure
793 dnl out if we're on one of them now that we know the sysname.
795 *_nbsd15) AFS_PARAM_COMMON=param.nbsd15.h ;;
796 *_nbsd16) AFS_PARAM_COMMON=param.nbsd16.h ;;
797 *_nbsd20) AFS_PARAM_COMMON=param.nbsd20.h ;;
798 *_nbsd21) AFS_PARAM_COMMON=param.nbsd21.h ;;
799 *_nbsd30) AFS_PARAM_COMMON=param.nbsd30.h ;;
800 *_nbsd40) AFS_PARAM_COMMON=param.nbsd40.h ;;
801 *_linux22) AFS_PARAM_COMMON=param.linux22.h ;;
802 *_linux24) AFS_PARAM_COMMON=param.linux24.h ;;
803 *_linux26) AFS_PARAM_COMMON=param.linux26.h ;;
806 case $AFS_SYSNAME in *_linux* | *_umlinux*)
808 # Add (sub-) architecture-specific paths needed by conftests
811 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
812 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
813 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
814 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
817 if test "x$enable_kernel_module" = "xyes"; then
818 if test "x$enable_debug_kernel" = "xno"; then
819 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
821 OPENAFS_GCC_SUPPORTS_MARCH
822 AC_SUBST(P5PLUS_KOPTS)
823 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
824 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
825 OPENAFS_GCC_SUPPORTS_NO_COMMON
826 OPENAFS_GCC_SUPPORTS_PIPE
827 AC_SUBST(LINUX_GCC_KOPTS)
828 ifdef([OPENAFS_CONFIGURE_LIBAFS],
829 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
830 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
833 LINUX_KBUILD_USES_EXTRA_CFLAGS
834 LINUX_KERNEL_COMPILE_WORKS
835 LINUX_EXPORTS_FIND_TASK_BY_PID
836 LINUX_EXPORTS_PROC_ROOT_FS
837 LINUX_HAVE_CURRENT_KERNEL_TIME
838 LINUX_HAVE_WRITE_BEGIN_AOP
840 LINUX_KMEM_CACHE_INIT
841 LINUX_HAVE_GRAB_CACHE_PAGE_WRITE_BEGIN
842 LINUX_STRUCT_TASK_HAS_CRED
843 LINUX_STRUCT_PROC_DIR_ENTRY_HAS_OWNER
844 LINUX_HAVE_KMEM_CACHE_T
845 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
846 LINUX_D_PATH_TAKES_STRUCT_PATH
848 LINUX_CONFIG_H_EXISTS
849 LINUX_COMPLETION_H_EXISTS
850 LINUX_SEMAPHORE_H_EXISTS
851 LINUX_EXPORTFS_H_EXISTS
852 LINUX_DEFINES_FOR_EACH_PROCESS
853 LINUX_DEFINES_PREV_TASK
854 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
855 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
856 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
857 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
858 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
859 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
860 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
861 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
862 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
863 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
864 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
865 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
866 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
867 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
868 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
869 LINUX_INODE_SETATTR_RETURN_TYPE
870 LINUX_WRITE_INODE_RETURN_TYPE
871 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
872 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
873 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
874 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
875 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
876 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
877 LINUX_AOP_WRITEBACK_CONTROL
878 LINUX_FS_STRUCT_FOP_HAS_FLOCK
879 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
880 LINUX_FS_STRUCT_FOP_HAS_SPLICE
881 LINUX_KERNEL_LINUX_SYSCALL_H
882 LINUX_KERNEL_LINUX_SEQ_FILE_H
883 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
885 LINUX_KERNEL_SOCK_CREATE
886 LINUX_KERNEL_PAGE_FOLLOW_LINK
887 LINUX_KERNEL_HLIST_UNHASHED
888 LINUX_KEY_TYPE_H_EXISTS
890 LINUX_RECALC_SIGPENDING_ARG_TYPE
891 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
892 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
893 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
894 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
895 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
896 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
897 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
898 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
899 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
900 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
901 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
902 LINUX_EXPORTS_TASKLIST_LOCK
903 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
904 LINUX_STATFS_TAKES_DENTRY
905 LINUX_FREEZER_H_EXISTS
906 LINUX_HAVE_SVC_ADDR_IN
907 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
908 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
911 LINUX_LINUX_KEYRING_SUPPORT
912 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
913 LINUX_KEY_ALLOC_NEEDS_CRED
915 LINUX_GENERIC_FILE_AIO_READ
916 LINUX_INIT_WORK_HAS_DATA
917 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
918 LINUX_SYSCTL_TABLE_CHECKING
920 LINUX_HAVE_I_SIZE_READ
921 LINUX_HAVE_D_ALLOC_ANON
922 if test "x$ac_cv_linux_d_alloc_anon" = "xno"; then
923 AC_DEFINE([AFS_NONFSTRANS], 1, [define to disable the nfs translator])
925 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
926 LINUX_EXPORTS_INIT_MM
927 LINUX_EXPORTS_SYS_CHDIR
928 LINUX_EXPORTS_SYS_CLOSE
929 LINUX_EXPORTS_SYS_OPEN
930 LINUX_EXPORTS_SYS_WAIT4
931 LINUX_EXPORTS_RCU_READ_LOCK
932 if test "x$with_linux_kernel_packaging" = "xno" ; then
937 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
938 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
939 ac_cv_linux_exports_sys_call_table=no
940 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
941 ac_cv_linux_exports_ia32_sys_call_table=yes
944 LINUX_EXPORTS_KALLSYMS_ADDRESS
945 LINUX_EXPORTS_KALLSYMS_SYMBOL
946 LINUX_EXPORTS_SYS_CALL_TABLE
947 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
948 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
949 linux_syscall_method=none
950 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
951 linux_syscall_method=scan
952 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
953 linux_syscall_method=scan_with_kallsyms_address
956 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
957 linux_syscall_method=kallsyms_symbol
959 if test "x$linux_syscall_method" = "xnone"; then
960 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
961 linux_syscall_method=scan
965 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
966 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
968 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
969 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
971 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
972 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
974 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
975 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
977 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
978 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
980 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
981 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
983 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
984 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
986 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
987 AC_DEFINE(EXPORTED_SYS_CALL_TABLE, 1, [define if your linux kernel exports sys_call_table])
989 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
990 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE, 1, [define if your linux kernel exports ia32_sys_call_table])
992 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
993 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL, 1, [define if your linux kernel exports kallsyms])
995 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
996 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS, 1, [define if your linux kernel exports kallsyms address])
998 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
999 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
1001 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
1002 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
1004 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
1005 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
1007 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
1008 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
1010 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
1011 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
1013 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
1014 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
1016 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
1017 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
1019 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
1020 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
1022 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
1023 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
1025 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
1026 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
1028 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
1029 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
1031 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
1032 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
1034 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
1035 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
1037 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
1038 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
1040 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
1041 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
1043 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
1044 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
1046 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
1047 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
1049 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
1050 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
1052 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
1053 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
1055 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
1056 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
1058 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
1059 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
1061 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
1062 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
1064 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
1065 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
1067 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
1068 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
1070 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
1071 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
1073 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
1074 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
1076 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
1077 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
1079 if test "x$ac_linux_syscall" = "xyes" ; then
1080 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
1082 if test "x$ac_linux_seq_file" = "xyes" ; then
1083 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
1085 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
1086 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
1088 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
1089 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
1091 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
1092 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
1094 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
1095 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
1097 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
1098 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
1100 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
1101 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
1103 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
1104 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
1106 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
1107 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
1109 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
1110 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
1112 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
1113 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
1115 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
1116 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
1118 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
1119 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
1121 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
1122 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
1124 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
1125 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
1127 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
1128 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
1130 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1131 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1133 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1134 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1136 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1137 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1139 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1140 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1142 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1143 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1145 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1146 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1148 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1149 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1151 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1152 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1154 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1155 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1157 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1158 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1160 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1161 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1163 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1164 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1166 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1167 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1169 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1170 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1172 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1173 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1175 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1176 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1178 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1179 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1181 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1182 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1184 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1185 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1187 if test "$enable_linux_fh" = "yes"; then
1188 AC_DEFINE(LINUX_USE_FH, 1, [define if you want to open cache files by file handle instead of inode numbers])
1190 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1191 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1193 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1195 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1196 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1202 case $AFS_SYSNAME in
1204 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1205 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1206 dnl the test below fails on darwin, even if the CPPFLAGS below
1207 dnl are added. the headers from Kernel.framework must be used
1208 dnl when KERNEL is defined.
1210 dnl really, such a thing isn't guaranteed to work on any
1211 dnl platform until the kernel cflags from MakefileProto are
1212 dnl known to configure
1213 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1216 AC_MSG_CHECKING(for definition of struct buf)
1217 dnl save_CPPFLAGS="$CPPFLAGS"
1218 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1219 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1220 ac_cv_have_struct_buf=no
1222 [#include <sys/buf.h>],
1224 printf("%d\n", sizeof(x));],
1225 ac_cv_have_struct_buf=yes,)
1228 dnl CPPFLAGS="$save_CPPFLAGS"
1229 AC_MSG_RESULT($ac_cv_have_struct_buf)
1230 if test "$ac_cv_have_struct_buf" = yes; then
1231 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1237 AC_CACHE_VAL(ac_cv_sockaddr_len,
1239 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1240 AC_TRY_COMPILE( [#include <sys/types.h>
1241 #include <sys/socket.h>],
1242 [struct sockaddr *a;
1243 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1244 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1245 if test "$ac_cv_sockaddr_len" = "yes"; then
1246 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1248 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1249 echo Skipping library tests because they confuse Irix.
1251 AC_CHECK_FUNCS(socket)
1253 if test "$ac_cv_func_socket" = no; then
1254 for lib in socket inet; do
1255 if test "$HAVE_SOCKET" != 1; then
1256 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1261 AC_CHECK_FUNCS(connect)
1263 if test "$ac_cv_func_connect" = no; then
1265 if test "$HAVE_CONNECT" != 1; then
1266 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1271 AC_CHECK_FUNCS(gethostbyname)
1272 if test "$ac_cv_func_gethostbyname" = no; then
1273 for lib in dns nsl resolv; do
1274 if test "$HAVE_GETHOSTBYNAME" != 1; then
1275 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1280 dnl darwin wants it, aix hates it
1281 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1285 #include <sys/types.h>
1286 #include <sys/socket.h>
1287 #include <netinet/in.h>
1288 #include <arpa/inet.h>
1289 #include <arpa/nameser.h>
1290 #include <arpa/nameser_compat.h>
1292 ], [static int i; i = 0;],
1294 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H, 1, [define if arpa/nameser_compat.h exists])],
1298 openafs_save_libs="$LIBS"
1299 AC_MSG_CHECKING([for res_search])
1302 if test "$ac_cv_func_res_search" = no; then
1303 for lib in dns nsl resolv; do
1304 if test "$ac_cv_func_res_search" != yes; then
1307 LIBS="$openafs_save_libs"
1310 if test "$ac_cv_func_res_search" = yes; then
1311 LIB_res_search="-l$lib"
1312 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1313 AC_MSG_RESULT([yes, in lib$lib])
1318 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1324 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1326 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1327 AC_TRY_COMPILE( [#include <sys/types.h>
1328 #include <sys/socket.h>
1329 #include <netinet/in.h>],
1331 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1332 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1333 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1334 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1338 if test "x$MKAFS_OSTYPE" = OBSD; then
1339 PTHREAD_LIBS="-pthread"
1341 if test "x$PTHREAD_LIBS" = xerror; then
1342 AC_CHECK_LIB(pthread, pthread_attr_init,
1343 PTHREAD_LIBS="-lpthread")
1345 if test "x$PTHREAD_LIBS" = xerror; then
1346 AC_CHECK_LIB(pthreads, pthread_attr_init,
1347 PTHREAD_LIBS="-lpthreads")
1349 if test "x$PTHREAD_LIBS" = xerror; then
1350 AC_CHECK_LIB(c_r, pthread_attr_init,
1351 PTHREAD_LIBS="-lc_r")
1353 if test "x$PTHREAD_LIBS" = xerror; then
1354 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1356 if test "x$PTHREAD_LIBS" = xerror; then
1357 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1358 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1359 PTHREAD_LIBS="-lpthread")
1361 if test "x$PTHREAD_LIBS" = xerror; then
1362 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1364 AC_SUBST(PTHREAD_LIBS)
1366 HOST_CPU="$host_cpu"
1368 if test "x$with_bsd_kernel_headers" != "x"; then
1369 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1371 BSD_KERNEL_PATH="/usr/src/sys"
1374 if test "x$with_bsd_kernel_build" != "x"; then
1375 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1377 case $AFS_SYSNAME in
1379 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1382 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1388 if test "$enable_supergroups" = "yes"; then
1389 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1392 if test "$enable_fast_restart" = "yes"; then
1393 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1396 if test "$enable_bitmap_later" = "yes"; then
1397 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1400 if test "$enable_demand_attach_fs" = "yes"; then
1401 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1406 AC_SUBST(DEMAND_ATTACH)
1408 if test "$enable_disconnected" = "yes"; then
1409 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1412 if test "$enable_unix_sockets" = "yes"; then
1413 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1414 USE_UNIX_SOCKETS="yes"
1416 USE_UNIX_SOCKETS="no"
1418 AC_SUBST(USE_UNIX_SOCKETS)
1420 if test "$enable_fast_restart" = "yes" &&
1421 test "$enable_demand_attach_fs" = "yes" ; then
1422 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.])
1426 if test "$enable_full_vos_listvol_switch" = "yes"; then
1427 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1430 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1431 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1432 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1436 if test "$enable_bos_restricted_mode" = "yes"; then
1437 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1440 if test "$enable_bos_new_config" = "yes"; then
1441 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1444 if test "$enable_largefile_fileserver" = "yes"; then
1445 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1448 if test "$enable_cache_bypass" = "yes"; then
1449 AC_DEFINE(AFS_CACHE_BYPASS, 1, [define to activate cache bypassing Unix client])
1452 if test "$enable_namei_fileserver" = "yes"; then
1453 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1455 if test "$enable_namei_fileserver" = "default"; then
1458 AC_MSG_WARN(Some Solaris 10 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1459 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1462 AC_MSG_WARN(Solaris 11 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1463 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1471 if test "$enable_afsdb" = "yes"; then
1472 LIB_AFSDB="$LIB_res_search"
1473 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1476 dnl check for tivoli
1477 AC_MSG_CHECKING(for tivoli tsm butc support)
1479 if test "$enable_tivoli_tsm" = "yes"; then
1480 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1481 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1482 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1483 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1485 if test -r "$XBSADIR3/dsmapifp.h"; then
1486 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1488 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1489 elif test -r "$XBSADIR4/dsmapifp.h"; then
1490 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1492 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1493 elif test -r "$XBSADIR1/xbsa.h"; then
1494 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1496 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1497 elif test -r "$XBSADIR2/xbsa.h"; then
1498 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1500 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1502 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1507 AC_SUBST(XBSA_CFLAGS)
1508 AC_SUBST(XBSA_XLIBS)
1510 dnl checks for header files.
1514 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1515 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1516 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1517 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h sys/pag.h)
1518 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1519 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1520 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1522 dnl Don't build PAM on IRIX; the interface doesn't work for us.
1523 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1524 case $AFS_SYSNAME in
1537 if test "$enable_login" = yes; then
1542 AC_SUBST(BUILD_LOGIN)
1544 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1545 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1546 AC_CHECK_FUNCS(setvbuf vsyslog)
1547 AC_FUNC_SETVBUF_REVERSED
1548 AC_CHECK_FUNCS(regcomp regexec regerror)
1549 AC_MSG_CHECKING([for POSIX regex library])
1550 if test "$ac_cv_header_regex_h" = "yes" && \
1551 test "$ac_cv_func_regcomp" = "yes" && \
1552 test "$ac_cv_func_regexec" = "yes" && \
1553 test "$ac_cv_func_regerror" = "yes"; then
1554 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1562 AC_CHECK_TYPE(ssize_t, int)
1563 AC_CHECK_TYPES(sig_t, , ,
1564 [#include <sys/types.h>
1565 #include <signal.h> ])
1568 #ifndef SIG_T_DEFINED
1569 #define SIG_T_DEFINED
1570 typedef RETSIGTYPE (*sig_t) ();
1573 AC_CHECK_TYPE([sig_atomic_t], ,
1574 [AC_DEFINE([sig_atomic_t], [int],
1575 [Define to int if <signal.h> does not define.])],
1576 [#include <sys/types.h>
1577 #include <signal.h>])
1578 AC_SIZEOF_TYPE(long)
1580 AC_CHECK_FUNCS(timegm)
1581 AC_CHECK_FUNCS(daemon)
1583 dnl Directory PATH handling
1584 if test "x$enable_transarc_paths" = "xyes" ; then
1585 afsconfdir=${afsconfdir=/usr/afs/etc}
1586 viceetcdir=${viceetcdir=/usr/vice/etc}
1587 afskerneldir=${afskerneldir=${viceetcdir}}
1588 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1589 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1590 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1591 afsdbdir=${afsdbdir=/usr/afs/db}
1592 afslogsdir=${afslogsdir=/usr/afs/logs}
1593 afslocaldir=${afslocaldir=/usr/afs/local}
1594 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1595 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1597 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1598 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1599 afskerneldir=${afskerneldir='${libdir}/openafs'}
1600 afssrvbindir=${afssrvbindir='${bindir}'}
1601 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1602 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1603 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1604 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1605 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1606 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1607 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1609 AC_SUBST(afsconfdir)
1610 AC_SUBST(viceetcdir)
1611 AC_SUBST(afskerneldir)
1612 AC_SUBST(afssrvbindir)
1613 AC_SUBST(afssrvsbindir)
1614 AC_SUBST(afssrvlibexecdir)
1616 AC_SUBST(afslogsdir)
1617 AC_SUBST(afslocaldir)
1618 AC_SUBST(afsbackupdir)
1619 AC_SUBST(afsbosconfigdir)
1621 if test "x$enable_kernel_module" = "xyes"; then
1622 ENABLE_KERNEL_MODULE=libafs
1625 if test "x$enable_pthreaded_ubik" = "xyes"; then
1626 ENABLE_PTHREADED_UBIK=yes
1629 AC_SUBST(AFS_SYSNAME)
1630 AC_SUBST(AFS_PARAM_COMMON)
1631 AC_SUBST(ENABLE_KERNEL_MODULE)
1632 AC_SUBST(ENABLE_PTHREADED_UBIK)
1634 AC_SUBST(LINUX_KERNEL_PATH)
1635 AC_SUBST(LINUX_KERNEL_BUILD)
1637 AC_SUBST(BSD_KERNEL_PATH)
1638 AC_SUBST(BSD_KERNEL_BUILD)
1639 AC_SUBST(LINUX_VERSION)
1640 AC_SUBST(MKAFS_OSTYPE)
1641 AC_SUBST(TOP_OBJDIR)
1642 AC_SUBST(TOP_SRCDIR)
1643 AC_SUBST(TOP_INCDIR)
1644 AC_SUBST(TOP_LIBDIR)
1646 AC_SUBST(DARWIN_INFOFILE)
1647 AC_SUBST(IRIX_BUILD_IP35)
1652 TOP_SRCDIR="${srcdir}/src"
1654 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1660 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1664 TOP_OBJDIR="${SRCDIR_PARENT}"
1665 TOP_INCDIR="${SRCDIR_PARENT}/include"
1666 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1667 if test "${DEST}x" = "x"; then
1668 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1671 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1672 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1673 AC_SUBST(HELPER_SPLINT)
1674 AC_SUBST(HELPER_SPLINTCFG)
1676 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs