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_HAVE_KMEM_CACHE_T
844 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
845 LINUX_D_PATH_TAKES_STRUCT_PATH
847 LINUX_CONFIG_H_EXISTS
848 LINUX_COMPLETION_H_EXISTS
849 LINUX_SEMAPHORE_H_EXISTS
850 LINUX_EXPORTFS_H_EXISTS
851 LINUX_DEFINES_FOR_EACH_PROCESS
852 LINUX_DEFINES_PREV_TASK
853 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
854 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
855 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
856 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
857 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
858 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
859 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
860 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
861 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
862 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
863 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
864 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
865 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
866 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
867 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
868 LINUX_INODE_SETATTR_RETURN_TYPE
869 LINUX_WRITE_INODE_RETURN_TYPE
870 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
871 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
872 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
873 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
874 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
875 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
876 LINUX_AOP_WRITEBACK_CONTROL
877 LINUX_FS_STRUCT_FOP_HAS_FLOCK
878 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
879 LINUX_FS_STRUCT_FOP_HAS_SPLICE
880 LINUX_KERNEL_LINUX_SYSCALL_H
881 LINUX_KERNEL_LINUX_SEQ_FILE_H
882 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
884 LINUX_KERNEL_SOCK_CREATE
885 LINUX_KERNEL_PAGE_FOLLOW_LINK
886 LINUX_KERNEL_HLIST_UNHASHED
887 LINUX_KEY_TYPE_H_EXISTS
889 LINUX_RECALC_SIGPENDING_ARG_TYPE
890 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
891 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
892 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
893 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
894 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
895 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
896 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
897 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
898 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
899 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
900 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
901 LINUX_EXPORTS_TASKLIST_LOCK
902 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
903 LINUX_STATFS_TAKES_DENTRY
904 LINUX_FREEZER_H_EXISTS
905 LINUX_HAVE_SVC_ADDR_IN
906 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
907 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
910 LINUX_LINUX_KEYRING_SUPPORT
911 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
913 LINUX_GENERIC_FILE_AIO_READ
914 LINUX_INIT_WORK_HAS_DATA
915 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
916 LINUX_SYSCTL_TABLE_CHECKING
918 LINUX_HAVE_I_SIZE_READ
919 LINUX_HAVE_D_ALLOC_ANON
920 if test "x$ac_cv_linux_d_alloc_anon" = "xno"; then
921 AC_DEFINE([AFS_NONFSTRANS], 1, [define to disable the nfs translator])
923 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
924 LINUX_EXPORTS_INIT_MM
925 LINUX_EXPORTS_SYS_CHDIR
926 LINUX_EXPORTS_SYS_CLOSE
927 LINUX_EXPORTS_SYS_OPEN
928 LINUX_EXPORTS_SYS_WAIT4
929 LINUX_EXPORTS_RCU_READ_LOCK
930 if test "x$with_linux_kernel_packaging" = "xno" ; then
935 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
936 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
937 ac_cv_linux_exports_sys_call_table=no
938 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
939 ac_cv_linux_exports_ia32_sys_call_table=yes
942 LINUX_EXPORTS_KALLSYMS_ADDRESS
943 LINUX_EXPORTS_KALLSYMS_SYMBOL
944 LINUX_EXPORTS_SYS_CALL_TABLE
945 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
946 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
947 linux_syscall_method=none
948 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
949 linux_syscall_method=scan
950 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
951 linux_syscall_method=scan_with_kallsyms_address
954 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
955 linux_syscall_method=kallsyms_symbol
957 if test "x$linux_syscall_method" = "xnone"; then
958 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
959 linux_syscall_method=scan
963 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
964 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
966 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
967 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
969 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
970 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
972 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
973 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
975 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
976 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
978 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
979 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
981 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
982 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
984 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
985 AC_DEFINE(EXPORTED_SYS_CALL_TABLE, 1, [define if your linux kernel exports sys_call_table])
987 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
988 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE, 1, [define if your linux kernel exports ia32_sys_call_table])
990 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
991 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL, 1, [define if your linux kernel exports kallsyms])
993 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
994 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS, 1, [define if your linux kernel exports kallsyms address])
996 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
997 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
999 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
1000 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
1002 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
1003 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
1005 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
1006 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
1008 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
1009 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
1011 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
1012 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
1014 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
1015 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
1017 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
1018 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
1020 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
1021 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
1023 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
1024 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
1026 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
1027 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
1029 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
1030 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
1032 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
1033 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
1035 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
1036 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
1038 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
1039 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
1041 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
1042 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
1044 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
1045 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
1047 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
1048 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
1050 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
1051 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
1053 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
1054 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
1056 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
1057 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
1059 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
1060 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
1062 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
1063 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
1065 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
1066 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
1068 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
1069 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
1071 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
1072 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
1074 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
1075 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
1077 if test "x$ac_linux_syscall" = "xyes" ; then
1078 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
1080 if test "x$ac_linux_seq_file" = "xyes" ; then
1081 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
1083 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
1084 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
1086 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
1087 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
1089 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
1090 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
1092 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
1093 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
1095 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
1096 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
1098 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
1099 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
1101 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
1102 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
1104 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
1105 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
1107 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
1108 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
1110 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
1111 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
1113 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
1114 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
1116 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
1117 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
1119 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
1120 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
1122 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
1123 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
1125 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
1126 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
1128 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1129 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1131 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1132 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1134 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1135 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1137 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1138 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1140 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1141 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1143 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1144 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1146 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1147 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1149 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1150 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1152 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1153 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1155 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1156 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1158 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1159 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1161 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1162 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1164 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1165 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1167 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1168 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1170 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1171 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1173 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1174 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1176 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1177 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1179 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1180 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1182 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1183 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1185 if test "$enable_linux_fh" = "yes"; then
1186 AC_DEFINE(LINUX_USE_FH, 1, [define if you want to open cache files by file handle instead of inode numbers])
1188 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1189 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1191 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1193 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1194 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1200 case $AFS_SYSNAME in
1202 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1203 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1204 dnl the test below fails on darwin, even if the CPPFLAGS below
1205 dnl are added. the headers from Kernel.framework must be used
1206 dnl when KERNEL is defined.
1208 dnl really, such a thing isn't guaranteed to work on any
1209 dnl platform until the kernel cflags from MakefileProto are
1210 dnl known to configure
1211 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1214 AC_MSG_CHECKING(for definition of struct buf)
1215 dnl save_CPPFLAGS="$CPPFLAGS"
1216 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1217 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1218 ac_cv_have_struct_buf=no
1220 [#include <sys/buf.h>],
1222 printf("%d\n", sizeof(x));],
1223 ac_cv_have_struct_buf=yes,)
1226 dnl CPPFLAGS="$save_CPPFLAGS"
1227 AC_MSG_RESULT($ac_cv_have_struct_buf)
1228 if test "$ac_cv_have_struct_buf" = yes; then
1229 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1235 AC_CACHE_VAL(ac_cv_sockaddr_len,
1237 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1238 AC_TRY_COMPILE( [#include <sys/types.h>
1239 #include <sys/socket.h>],
1240 [struct sockaddr *a;
1241 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1242 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1243 if test "$ac_cv_sockaddr_len" = "yes"; then
1244 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1246 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1247 echo Skipping library tests because they confuse Irix.
1249 AC_CHECK_FUNCS(socket)
1251 if test "$ac_cv_func_socket" = no; then
1252 for lib in socket inet; do
1253 if test "$HAVE_SOCKET" != 1; then
1254 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1259 AC_CHECK_FUNCS(connect)
1261 if test "$ac_cv_func_connect" = no; then
1263 if test "$HAVE_CONNECT" != 1; then
1264 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1269 AC_CHECK_FUNCS(gethostbyname)
1270 if test "$ac_cv_func_gethostbyname" = no; then
1271 for lib in dns nsl resolv; do
1272 if test "$HAVE_GETHOSTBYNAME" != 1; then
1273 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1278 dnl darwin wants it, aix hates it
1279 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1283 #include <sys/types.h>
1284 #include <sys/socket.h>
1285 #include <netinet/in.h>
1286 #include <arpa/inet.h>
1287 #include <arpa/nameser.h>
1288 #include <arpa/nameser_compat.h>
1290 ], [static int i; i = 0;],
1292 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H, 1, [define if arpa/nameser_compat.h exists])],
1296 openafs_save_libs="$LIBS"
1297 AC_MSG_CHECKING([for res_search])
1300 if test "$ac_cv_func_res_search" = no; then
1301 for lib in dns nsl resolv; do
1302 if test "$ac_cv_func_res_search" != yes; then
1305 LIBS="$openafs_save_libs"
1308 if test "$ac_cv_func_res_search" = yes; then
1309 LIB_res_search="-l$lib"
1310 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1311 AC_MSG_RESULT([yes, in lib$lib])
1316 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1322 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1324 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1325 AC_TRY_COMPILE( [#include <sys/types.h>
1326 #include <sys/socket.h>
1327 #include <netinet/in.h>],
1329 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1330 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1331 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1332 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1336 if test "x$MKAFS_OSTYPE" = OBSD; then
1337 PTHREAD_LIBS="-pthread"
1339 if test "x$PTHREAD_LIBS" = xerror; then
1340 AC_CHECK_LIB(pthread, pthread_attr_init,
1341 PTHREAD_LIBS="-lpthread")
1343 if test "x$PTHREAD_LIBS" = xerror; then
1344 AC_CHECK_LIB(pthreads, pthread_attr_init,
1345 PTHREAD_LIBS="-lpthreads")
1347 if test "x$PTHREAD_LIBS" = xerror; then
1348 AC_CHECK_LIB(c_r, pthread_attr_init,
1349 PTHREAD_LIBS="-lc_r")
1351 if test "x$PTHREAD_LIBS" = xerror; then
1352 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1354 if test "x$PTHREAD_LIBS" = xerror; then
1355 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1356 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1357 PTHREAD_LIBS="-lpthread")
1359 if test "x$PTHREAD_LIBS" = xerror; then
1360 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1362 AC_SUBST(PTHREAD_LIBS)
1364 HOST_CPU="$host_cpu"
1366 if test "x$with_bsd_kernel_headers" != "x"; then
1367 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1369 BSD_KERNEL_PATH="/usr/src/sys"
1372 if test "x$with_bsd_kernel_build" != "x"; then
1373 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1375 case $AFS_SYSNAME in
1377 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1380 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1386 if test "$enable_supergroups" = "yes"; then
1387 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1390 if test "$enable_fast_restart" = "yes"; then
1391 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1394 if test "$enable_bitmap_later" = "yes"; then
1395 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1398 if test "$enable_demand_attach_fs" = "yes"; then
1399 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1404 AC_SUBST(DEMAND_ATTACH)
1406 if test "$enable_disconnected" = "yes"; then
1407 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1410 if test "$enable_unix_sockets" = "yes"; then
1411 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1412 USE_UNIX_SOCKETS="yes"
1414 USE_UNIX_SOCKETS="no"
1416 AC_SUBST(USE_UNIX_SOCKETS)
1418 if test "$enable_fast_restart" = "yes" &&
1419 test "$enable_demand_attach_fs" = "yes" ; then
1420 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.])
1424 if test "$enable_full_vos_listvol_switch" = "yes"; then
1425 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1428 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1429 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1430 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1434 if test "$enable_bos_restricted_mode" = "yes"; then
1435 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1438 if test "$enable_bos_new_config" = "yes"; then
1439 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1442 if test "$enable_largefile_fileserver" = "yes"; then
1443 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1446 if test "$enable_cache_bypass" = "yes"; then
1447 AC_DEFINE(AFS_CACHE_BYPASS, 1, [define to activate cache bypassing Unix client])
1450 if test "$enable_namei_fileserver" = "yes"; then
1451 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1453 if test "$enable_namei_fileserver" = "default"; then
1456 AC_MSG_WARN(Some Solaris 10 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1457 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1460 AC_MSG_WARN(Solaris 11 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1461 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1469 if test "$enable_afsdb" = "yes"; then
1470 LIB_AFSDB="$LIB_res_search"
1471 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1474 dnl check for tivoli
1475 AC_MSG_CHECKING(for tivoli tsm butc support)
1477 if test "$enable_tivoli_tsm" = "yes"; then
1478 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1479 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1480 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1481 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1483 if test -r "$XBSADIR3/dsmapifp.h"; then
1484 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1486 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1487 elif test -r "$XBSADIR4/dsmapifp.h"; then
1488 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1490 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1491 elif test -r "$XBSADIR1/xbsa.h"; then
1492 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1494 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1495 elif test -r "$XBSADIR2/xbsa.h"; then
1496 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1498 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1500 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1505 AC_SUBST(XBSA_CFLAGS)
1506 AC_SUBST(XBSA_XLIBS)
1508 dnl checks for header files.
1512 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1513 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1514 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1515 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1516 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1517 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1518 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1520 dnl Don't build PAM on IRIX; the interface doesn't work for us.
1521 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1522 case $AFS_SYSNAME in
1535 if test "$enable_login" = yes; then
1540 AC_SUBST(BUILD_LOGIN)
1542 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1543 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1544 AC_CHECK_FUNCS(setvbuf vsyslog)
1545 AC_FUNC_SETVBUF_REVERSED
1546 AC_CHECK_FUNCS(regcomp regexec regerror)
1547 AC_MSG_CHECKING([for POSIX regex library])
1548 if test "$ac_cv_header_regex_h" = "yes" && \
1549 test "$ac_cv_func_regcomp" = "yes" && \
1550 test "$ac_cv_func_regexec" = "yes" && \
1551 test "$ac_cv_func_regerror" = "yes"; then
1552 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1560 AC_CHECK_TYPE(ssize_t, int)
1561 AC_CHECK_TYPES(sig_t, , ,
1562 [#include <sys/types.h>
1563 #include <signal.h> ])
1566 typedef RETSIGTYPE (*sig_t) ();
1568 AC_CHECK_TYPE([sig_atomic_t], ,
1569 [AC_DEFINE([sig_atomic_t], [int],
1570 [Define to int if <signal.h> does not define.])],
1571 [#include <sys/types.h>
1572 #include <signal.h>])
1573 AC_SIZEOF_TYPE(long)
1575 AC_CHECK_FUNCS(timegm)
1576 AC_CHECK_FUNCS(daemon)
1578 dnl Directory PATH handling
1579 if test "x$enable_transarc_paths" = "xyes" ; then
1580 afsconfdir=${afsconfdir=/usr/afs/etc}
1581 viceetcdir=${viceetcdir=/usr/vice/etc}
1582 afskerneldir=${afskerneldir=${viceetcdir}}
1583 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1584 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1585 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1586 afsdbdir=${afsdbdir=/usr/afs/db}
1587 afslogsdir=${afslogsdir=/usr/afs/logs}
1588 afslocaldir=${afslocaldir=/usr/afs/local}
1589 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1590 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1592 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1593 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1594 afskerneldir=${afskerneldir='${libdir}/openafs'}
1595 afssrvbindir=${afssrvbindir='${bindir}'}
1596 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1597 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1598 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1599 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1600 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1601 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1602 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1604 AC_SUBST(afsconfdir)
1605 AC_SUBST(viceetcdir)
1606 AC_SUBST(afskerneldir)
1607 AC_SUBST(afssrvbindir)
1608 AC_SUBST(afssrvsbindir)
1609 AC_SUBST(afssrvlibexecdir)
1611 AC_SUBST(afslogsdir)
1612 AC_SUBST(afslocaldir)
1613 AC_SUBST(afsbackupdir)
1614 AC_SUBST(afsbosconfigdir)
1616 if test "x$enable_kernel_module" = "xyes"; then
1617 ENABLE_KERNEL_MODULE=libafs
1620 if test "x$enable_pthreaded_ubik" = "xyes"; then
1621 ENABLE_PTHREADED_UBIK=yes
1624 AC_SUBST(AFS_SYSNAME)
1625 AC_SUBST(AFS_PARAM_COMMON)
1626 AC_SUBST(ENABLE_KERNEL_MODULE)
1627 AC_SUBST(ENABLE_PTHREADED_UBIK)
1629 AC_SUBST(LINUX_KERNEL_PATH)
1630 AC_SUBST(LINUX_KERNEL_BUILD)
1632 AC_SUBST(BSD_KERNEL_PATH)
1633 AC_SUBST(BSD_KERNEL_BUILD)
1634 AC_SUBST(LINUX_VERSION)
1635 AC_SUBST(MKAFS_OSTYPE)
1636 AC_SUBST(TOP_OBJDIR)
1637 AC_SUBST(TOP_SRCDIR)
1638 AC_SUBST(TOP_INCDIR)
1639 AC_SUBST(TOP_LIBDIR)
1641 AC_SUBST(DARWIN_INFOFILE)
1642 AC_SUBST(IRIX_BUILD_IP35)
1647 TOP_SRCDIR="${srcdir}/src"
1649 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1655 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1659 TOP_OBJDIR="${SRCDIR_PARENT}"
1660 TOP_INCDIR="${SRCDIR_PARENT}/include"
1661 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1662 if test "${DEST}x" = "x"; then
1663 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1666 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1667 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1668 AC_SUBST(HELPER_SPLINT)
1669 AC_SUBST(HELPER_SPLINTCFG)
1671 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs