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
912 LINUX_KEY_ALLOC_NEEDS_CRED
914 LINUX_GENERIC_FILE_AIO_READ
915 LINUX_INIT_WORK_HAS_DATA
916 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
917 LINUX_SYSCTL_TABLE_CHECKING
919 LINUX_HAVE_I_SIZE_READ
920 LINUX_HAVE_D_ALLOC_ANON
921 if test "x$ac_cv_linux_d_alloc_anon" = "xno"; then
922 AC_DEFINE([AFS_NONFSTRANS], 1, [define to disable the nfs translator])
924 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
925 LINUX_EXPORTS_INIT_MM
926 LINUX_EXPORTS_SYS_CHDIR
927 LINUX_EXPORTS_SYS_CLOSE
928 LINUX_EXPORTS_SYS_OPEN
929 LINUX_EXPORTS_SYS_WAIT4
930 LINUX_EXPORTS_RCU_READ_LOCK
931 if test "x$with_linux_kernel_packaging" = "xno" ; then
936 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
937 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
938 ac_cv_linux_exports_sys_call_table=no
939 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
940 ac_cv_linux_exports_ia32_sys_call_table=yes
943 LINUX_EXPORTS_KALLSYMS_ADDRESS
944 LINUX_EXPORTS_KALLSYMS_SYMBOL
945 LINUX_EXPORTS_SYS_CALL_TABLE
946 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
947 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
948 linux_syscall_method=none
949 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
950 linux_syscall_method=scan
951 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
952 linux_syscall_method=scan_with_kallsyms_address
955 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
956 linux_syscall_method=kallsyms_symbol
958 if test "x$linux_syscall_method" = "xnone"; then
959 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
960 linux_syscall_method=scan
964 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
965 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
967 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
968 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
970 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
971 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
973 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
974 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
976 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
977 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
979 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
980 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
982 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
983 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
985 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
986 AC_DEFINE(EXPORTED_SYS_CALL_TABLE, 1, [define if your linux kernel exports sys_call_table])
988 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
989 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE, 1, [define if your linux kernel exports ia32_sys_call_table])
991 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
992 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL, 1, [define if your linux kernel exports kallsyms])
994 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
995 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS, 1, [define if your linux kernel exports kallsyms address])
997 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
998 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
1000 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
1001 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
1003 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
1004 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
1006 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
1007 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
1009 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
1010 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
1012 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
1013 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
1015 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
1016 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
1018 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
1019 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
1021 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
1022 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
1024 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
1025 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
1027 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
1028 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
1030 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
1031 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
1033 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
1034 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
1036 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
1037 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
1039 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
1040 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
1042 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
1043 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
1045 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
1046 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
1048 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
1049 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
1051 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
1052 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
1054 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
1055 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
1057 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
1058 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
1060 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
1061 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
1063 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
1064 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
1066 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
1067 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
1069 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
1070 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
1072 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
1073 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
1075 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
1076 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
1078 if test "x$ac_linux_syscall" = "xyes" ; then
1079 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
1081 if test "x$ac_linux_seq_file" = "xyes" ; then
1082 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
1084 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
1085 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
1087 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
1088 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
1090 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
1091 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
1093 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
1094 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
1096 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
1097 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
1099 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
1100 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
1102 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
1103 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
1105 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
1106 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
1108 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
1109 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
1111 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
1112 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
1114 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
1115 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
1117 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
1118 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
1120 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
1121 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
1123 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
1124 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
1126 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
1127 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
1129 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1130 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1132 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1133 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1135 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1136 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1138 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1139 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1141 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1142 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1144 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1145 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1147 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1148 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1150 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1151 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1153 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1154 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1156 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1157 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1159 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1160 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1162 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1163 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1165 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1166 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1168 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1169 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1171 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1172 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1174 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1175 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1177 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1178 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1180 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1181 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1183 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1184 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1186 if test "$enable_linux_fh" = "yes"; then
1187 AC_DEFINE(LINUX_USE_FH, 1, [define if you want to open cache files by file handle instead of inode numbers])
1189 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1190 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1192 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1194 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1195 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1201 case $AFS_SYSNAME in
1203 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1204 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1205 dnl the test below fails on darwin, even if the CPPFLAGS below
1206 dnl are added. the headers from Kernel.framework must be used
1207 dnl when KERNEL is defined.
1209 dnl really, such a thing isn't guaranteed to work on any
1210 dnl platform until the kernel cflags from MakefileProto are
1211 dnl known to configure
1212 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1215 AC_MSG_CHECKING(for definition of struct buf)
1216 dnl save_CPPFLAGS="$CPPFLAGS"
1217 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1218 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1219 ac_cv_have_struct_buf=no
1221 [#include <sys/buf.h>],
1223 printf("%d\n", sizeof(x));],
1224 ac_cv_have_struct_buf=yes,)
1227 dnl CPPFLAGS="$save_CPPFLAGS"
1228 AC_MSG_RESULT($ac_cv_have_struct_buf)
1229 if test "$ac_cv_have_struct_buf" = yes; then
1230 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1236 AC_CACHE_VAL(ac_cv_sockaddr_len,
1238 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1239 AC_TRY_COMPILE( [#include <sys/types.h>
1240 #include <sys/socket.h>],
1241 [struct sockaddr *a;
1242 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1243 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1244 if test "$ac_cv_sockaddr_len" = "yes"; then
1245 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1247 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1248 echo Skipping library tests because they confuse Irix.
1250 AC_CHECK_FUNCS(socket)
1252 if test "$ac_cv_func_socket" = no; then
1253 for lib in socket inet; do
1254 if test "$HAVE_SOCKET" != 1; then
1255 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1260 AC_CHECK_FUNCS(connect)
1262 if test "$ac_cv_func_connect" = no; then
1264 if test "$HAVE_CONNECT" != 1; then
1265 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1270 AC_CHECK_FUNCS(gethostbyname)
1271 if test "$ac_cv_func_gethostbyname" = no; then
1272 for lib in dns nsl resolv; do
1273 if test "$HAVE_GETHOSTBYNAME" != 1; then
1274 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1279 dnl darwin wants it, aix hates it
1280 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1284 #include <sys/types.h>
1285 #include <sys/socket.h>
1286 #include <netinet/in.h>
1287 #include <arpa/inet.h>
1288 #include <arpa/nameser.h>
1289 #include <arpa/nameser_compat.h>
1291 ], [static int i; i = 0;],
1293 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H, 1, [define if arpa/nameser_compat.h exists])],
1297 openafs_save_libs="$LIBS"
1298 AC_MSG_CHECKING([for res_search])
1301 if test "$ac_cv_func_res_search" = no; then
1302 for lib in dns nsl resolv; do
1303 if test "$ac_cv_func_res_search" != yes; then
1306 LIBS="$openafs_save_libs"
1309 if test "$ac_cv_func_res_search" = yes; then
1310 LIB_res_search="-l$lib"
1311 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1312 AC_MSG_RESULT([yes, in lib$lib])
1317 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1323 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1325 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1326 AC_TRY_COMPILE( [#include <sys/types.h>
1327 #include <sys/socket.h>
1328 #include <netinet/in.h>],
1330 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1331 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1332 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1333 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1337 if test "x$MKAFS_OSTYPE" = OBSD; then
1338 PTHREAD_LIBS="-pthread"
1340 if test "x$PTHREAD_LIBS" = xerror; then
1341 AC_CHECK_LIB(pthread, pthread_attr_init,
1342 PTHREAD_LIBS="-lpthread")
1344 if test "x$PTHREAD_LIBS" = xerror; then
1345 AC_CHECK_LIB(pthreads, pthread_attr_init,
1346 PTHREAD_LIBS="-lpthreads")
1348 if test "x$PTHREAD_LIBS" = xerror; then
1349 AC_CHECK_LIB(c_r, pthread_attr_init,
1350 PTHREAD_LIBS="-lc_r")
1352 if test "x$PTHREAD_LIBS" = xerror; then
1353 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1355 if test "x$PTHREAD_LIBS" = xerror; then
1356 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1357 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1358 PTHREAD_LIBS="-lpthread")
1360 if test "x$PTHREAD_LIBS" = xerror; then
1361 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1363 AC_SUBST(PTHREAD_LIBS)
1365 HOST_CPU="$host_cpu"
1367 if test "x$with_bsd_kernel_headers" != "x"; then
1368 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1370 BSD_KERNEL_PATH="/usr/src/sys"
1373 if test "x$with_bsd_kernel_build" != "x"; then
1374 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1376 case $AFS_SYSNAME in
1378 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1381 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1387 if test "$enable_supergroups" = "yes"; then
1388 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1391 if test "$enable_fast_restart" = "yes"; then
1392 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1395 if test "$enable_bitmap_later" = "yes"; then
1396 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1399 if test "$enable_demand_attach_fs" = "yes"; then
1400 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1405 AC_SUBST(DEMAND_ATTACH)
1407 if test "$enable_disconnected" = "yes"; then
1408 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1411 if test "$enable_unix_sockets" = "yes"; then
1412 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1413 USE_UNIX_SOCKETS="yes"
1415 USE_UNIX_SOCKETS="no"
1417 AC_SUBST(USE_UNIX_SOCKETS)
1419 if test "$enable_fast_restart" = "yes" &&
1420 test "$enable_demand_attach_fs" = "yes" ; then
1421 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.])
1425 if test "$enable_full_vos_listvol_switch" = "yes"; then
1426 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1429 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1430 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1431 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1435 if test "$enable_bos_restricted_mode" = "yes"; then
1436 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1439 if test "$enable_bos_new_config" = "yes"; then
1440 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1443 if test "$enable_largefile_fileserver" = "yes"; then
1444 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1447 if test "$enable_cache_bypass" = "yes"; then
1448 AC_DEFINE(AFS_CACHE_BYPASS, 1, [define to activate cache bypassing Unix client])
1451 if test "$enable_namei_fileserver" = "yes"; then
1452 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1454 if test "$enable_namei_fileserver" = "default"; then
1457 AC_MSG_WARN(Some Solaris 10 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1458 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1461 AC_MSG_WARN(Solaris 11 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1462 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1470 if test "$enable_afsdb" = "yes"; then
1471 LIB_AFSDB="$LIB_res_search"
1472 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1475 dnl check for tivoli
1476 AC_MSG_CHECKING(for tivoli tsm butc support)
1478 if test "$enable_tivoli_tsm" = "yes"; then
1479 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1480 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1481 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1482 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1484 if test -r "$XBSADIR3/dsmapifp.h"; then
1485 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1487 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1488 elif test -r "$XBSADIR4/dsmapifp.h"; then
1489 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1491 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1492 elif test -r "$XBSADIR1/xbsa.h"; then
1493 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1495 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1496 elif test -r "$XBSADIR2/xbsa.h"; then
1497 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1499 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1501 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1506 AC_SUBST(XBSA_CFLAGS)
1507 AC_SUBST(XBSA_XLIBS)
1509 dnl checks for header files.
1513 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1514 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1515 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1516 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h sys/pag.h)
1517 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1518 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1519 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1521 dnl Don't build PAM on IRIX; the interface doesn't work for us.
1522 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1523 case $AFS_SYSNAME in
1536 if test "$enable_login" = yes; then
1541 AC_SUBST(BUILD_LOGIN)
1543 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1544 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1545 AC_CHECK_FUNCS(setvbuf vsyslog)
1546 AC_FUNC_SETVBUF_REVERSED
1547 AC_CHECK_FUNCS(regcomp regexec regerror)
1548 AC_MSG_CHECKING([for POSIX regex library])
1549 if test "$ac_cv_header_regex_h" = "yes" && \
1550 test "$ac_cv_func_regcomp" = "yes" && \
1551 test "$ac_cv_func_regexec" = "yes" && \
1552 test "$ac_cv_func_regerror" = "yes"; then
1553 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1561 AC_CHECK_TYPE(ssize_t, int)
1562 AC_CHECK_TYPES(sig_t, , ,
1563 [#include <sys/types.h>
1564 #include <signal.h> ])
1567 #ifndef SIG_T_DEFINED
1568 #define SIG_T_DEFINED
1569 typedef RETSIGTYPE (*sig_t) ();
1572 AC_CHECK_TYPE([sig_atomic_t], ,
1573 [AC_DEFINE([sig_atomic_t], [int],
1574 [Define to int if <signal.h> does not define.])],
1575 [#include <sys/types.h>
1576 #include <signal.h>])
1577 AC_SIZEOF_TYPE(long)
1579 AC_CHECK_FUNCS(timegm)
1580 AC_CHECK_FUNCS(daemon)
1582 dnl Directory PATH handling
1583 if test "x$enable_transarc_paths" = "xyes" ; then
1584 afsconfdir=${afsconfdir=/usr/afs/etc}
1585 viceetcdir=${viceetcdir=/usr/vice/etc}
1586 afskerneldir=${afskerneldir=${viceetcdir}}
1587 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1588 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1589 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1590 afsdbdir=${afsdbdir=/usr/afs/db}
1591 afslogsdir=${afslogsdir=/usr/afs/logs}
1592 afslocaldir=${afslocaldir=/usr/afs/local}
1593 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1594 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1596 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1597 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1598 afskerneldir=${afskerneldir='${libdir}/openafs'}
1599 afssrvbindir=${afssrvbindir='${bindir}'}
1600 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1601 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1602 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1603 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1604 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1605 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1606 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1608 AC_SUBST(afsconfdir)
1609 AC_SUBST(viceetcdir)
1610 AC_SUBST(afskerneldir)
1611 AC_SUBST(afssrvbindir)
1612 AC_SUBST(afssrvsbindir)
1613 AC_SUBST(afssrvlibexecdir)
1615 AC_SUBST(afslogsdir)
1616 AC_SUBST(afslocaldir)
1617 AC_SUBST(afsbackupdir)
1618 AC_SUBST(afsbosconfigdir)
1620 if test "x$enable_kernel_module" = "xyes"; then
1621 ENABLE_KERNEL_MODULE=libafs
1624 if test "x$enable_pthreaded_ubik" = "xyes"; then
1625 ENABLE_PTHREADED_UBIK=yes
1628 AC_SUBST(AFS_SYSNAME)
1629 AC_SUBST(AFS_PARAM_COMMON)
1630 AC_SUBST(ENABLE_KERNEL_MODULE)
1631 AC_SUBST(ENABLE_PTHREADED_UBIK)
1633 AC_SUBST(LINUX_KERNEL_PATH)
1634 AC_SUBST(LINUX_KERNEL_BUILD)
1636 AC_SUBST(BSD_KERNEL_PATH)
1637 AC_SUBST(BSD_KERNEL_BUILD)
1638 AC_SUBST(LINUX_VERSION)
1639 AC_SUBST(MKAFS_OSTYPE)
1640 AC_SUBST(TOP_OBJDIR)
1641 AC_SUBST(TOP_SRCDIR)
1642 AC_SUBST(TOP_INCDIR)
1643 AC_SUBST(TOP_LIBDIR)
1645 AC_SUBST(DARWIN_INFOFILE)
1646 AC_SUBST(IRIX_BUILD_IP35)
1651 TOP_SRCDIR="${srcdir}/src"
1653 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1659 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1663 TOP_OBJDIR="${SRCDIR_PARENT}"
1664 TOP_INCDIR="${SRCDIR_PARENT}/include"
1665 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1666 if test "${DEST}x" = "x"; then
1667 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1670 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1671 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1672 AC_SUBST(HELPER_SPLINT)
1673 AC_SUBST(HELPER_SPLINTCFG)
1675 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs