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],[
12 static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
14 #undef HAVE_GETHOSTBYNAME
15 #undef HAVE_RES_SEARCH
17 #undef STRUCT_SOCKADDR_HAS_SA_LEN
18 #if !defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
19 # if ENDIANESS_IN_SYS_PARAM_H
21 # include <sys/types.h>
22 # include <sys/param.h>
23 # if BYTE_ORDER == BIG_ENDIAN
24 # define WORDS_BIGENDIAN 1
27 # if defined(AUTOCONF_FOUND_BIGENDIAN)
28 # define WORDS_BIGENDIAN 1
30 # undef WORDS_BIGENDIAN
34 # if defined(AUTOCONF_FOUND_BIGENDIAN)
35 # define WORDS_BIGENDIAN 1
37 # undef WORDS_BIGENDIAN
41 # if defined(__BIG_ENDIAN__)
42 # define WORDS_BIGENDIAN 1
44 # undef WORDS_BIGENDIAN
49 #undef AFS_LARGEFILE_ENV
52 #undef BOS_RESTRICTED_MODE
55 #undef FULL_LISTVOL_SWITCH
56 #undef COMPLETION_H_EXISTS
57 #undef DEFINED_FOR_EACH_PROCESS
58 #undef DEFINED_PREV_TASK
59 #undef EXPORTED_KALLSYMS_ADDRESS
60 #undef EXPORTED_KALLSYMS_SYMBOL
61 #undef EXPORTED_SYS_CALL_TABLE
62 #undef EXPORTED_IA32_SYS_CALL_TABLE
63 #undef EXPORTED_TASKLIST_LOCK
64 #undef INODE_SETATTR_NOT_VOID
65 #undef IRIX_HAS_MEM_FUNCS
66 #undef RECALC_SIGPENDING_TAKES_VOID
67 #undef STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
68 #undef STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
69 #undef STRUCT_FS_HAS_FS_ROLLED
70 #undef STRUCT_INODE_HAS_I_DEVICES
71 #undef STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
72 #undef STRUCT_INODE_HAS_I_ALLOC_SEM
73 #undef STRUCT_INODE_HAS_I_TRUNCATE_SEM
74 #undef STRUCT_TASK_STRUCT_HAS_PARENT
75 #undef STRUCT_TASK_STRUCT_HAS_REAL_PARENT
76 #undef STRUCT_TASK_STRUCT_HAS_SIG
77 #undef STRUCT_TASK_STRUCT_HAS_SIGHAND
78 #undef STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
80 #undef HAVE_STRUCT_BUF
81 #undef HAVE_ARPA_NAMESER_COMPAT_H
82 /* glue for RedHat kernel bug */
83 #undef ENABLE_REDHAT_BUILDSYS
84 #if defined(ENABLE_REDHAT_BUILDSYS) && defined(KERNEL) && defined(REDHAT_FIX)
85 #include "redhat-fix.h"
91 #BOZO_SAVE_CORES pam sia
94 AC_ARG_WITH([afs-sysname],
95 [AS_HELP_STRING([--with-afs-sysname=sys], [use sys for the afs sysname])])
97 dnl General feature options.
98 AC_ARG_ENABLE([afsdb],
99 [AS_HELP_STRING([--disable-afsdb], [disable AFSDB DNS RR support])],
101 [enable_afsdb="yes"])
102 AC_ARG_ENABLE([obsolete],
103 [AC_HELP_STRING([--enable-obsolete],
104 [enable obsolete portions of AFS (mpp and package)])],
106 [enable_obsolete="no"])
108 [AS_HELP_STRING([--disable-pam], [disable PAM support])],
111 AC_ARG_ENABLE([bos-restricted-mode],
112 [AS_HELP_STRING([--enable-bos-restricted-mode],
113 [enable bosserver restricted mode which disables certain bosserver
116 [enable_bos_restricted_mode="no"])
117 AC_ARG_ENABLE([bos-new-config],
118 [AS_HELP_STRING([--enable-bos-new-config],
119 [enable bosserver pickup of BosConfig.new on restarts])],
121 [enable_bos_new_config="no"])
122 AC_ARG_ENABLE([largefile-fileserver],
123 [AS_HELP_STRING([--disable-largefile-fileserver],
124 [disable large file support in fileserver])],
126 [enable_largefile_fileserver="yes"])
127 AC_ARG_ENABLE([namei-fileserver],
128 [AS_HELP_STRING([--enable-namei-fileserver],
129 [force compilation of namei fileserver in preference to inode
132 [enable_namei_fileserver="default"])
133 AC_ARG_ENABLE([cache-bypass],
134 [AS_HELP_STRING([--enable-cache-bypass],
135 [enable client support for cache bypass])],
137 [enable_cache_bypass="no"])
138 AC_ARG_ENABLE([supergroups],
139 [AS_HELP_STRING([--enable-supergroups],
140 [enable support for nested pts groups])],
142 [enable_supergroups="no"])
143 AC_ARG_ENABLE([fast-restart],
144 [AS_HELP_STRING([--enable-fast-restart],
145 [enable fast startup of file server without salvaging])],
147 [enable_fast_restart="no"])
148 AC_ARG_ENABLE([bitmap-later],
149 [AS_HELP_STRING([--enable-bitmap-later],
150 [enable fast startup of file server by not reading bitmap till
153 [enable_bitmap_later="no"])
154 AC_ARG_ENABLE([demand-attach-fs],
155 [AS_HELP_STRING([--enable-demand-attach-fs],
156 [enable Demand Attach Fileserver (please see documentation)])],
158 [enable_demand_attach_fs="no"])
159 AC_ARG_ENABLE([disconnected],
160 [AS_HELP_STRING([--enable-disconnected],
161 [enable disconnected support in cache manager (experimental)])],
163 [enable_disconnected="no"])
164 AC_ARG_ENABLE([unix-sockets],
165 [AS_HELP_STRING([--enable-unix-sockets],
166 [enable use of unix domain sockets for fssync])],
168 [enable_unix_sockets="yes"])
169 AC_ARG_ENABLE([full-vos-listvol-switch],
170 [AS_HELP_STRING([--disable-full-vos-listvol-switch],
171 [disable vos full listvol switch for formatted output])],
173 [enable_full_vos_listvol_switch="yes"])
174 AC_ARG_ENABLE([icmp-pmtu-discovery],
175 [AS_HELP_STRING([--enable-icmp-pmtu-discovery],
176 [enable path MTU discovery by decoding ICMP unreachable replies])],
178 [enable_icmp_pmtu_discovery="no"])
179 AC_ARG_ENABLE([tivoli-tsm],
180 [AS_HELP_STRING([--enable-tivoli-tsm],
181 [enable use of the Tivoli TSM API libraries for butc support])],
183 [enable_tivoli_tsm="no"])
184 AC_ARG_ENABLE([pthreaded-ubik],
185 [AS_HELP_STRING([--enable-pthreaded-ubik],
186 [enable installation of pthreaded ubik applications (defaults to
189 [enable_pthreaded_ubik="no"])
191 dnl Kernel module build options.
192 AC_ARG_WITH([dux-kernel-headers],
193 [AS_HELP_STRING([--with-dux-kernel-headers=path],
194 [use the kernel headers found at path (optional, defaults to first
195 match in /usr/sys)])])
196 AC_ARG_WITH([linux-kernel-headers],
197 [AS_HELP_STRING([--with-linux-kernel-headers=path],
198 [use the kernel headers found at path (optional, defaults to
199 /usr/src/linux-2.4, then /usr/src/linux)])])
200 AC_ARG_WITH([bsd-kernel-headers],
201 [AS_HELP_STRING([--with-bsd-kernel-headers=path],
202 [use the kernel headers found at path (optional, defaults to
204 AC_ARG_WITH([bsd-kernel-build],
205 [AS_HELP_STRING([--with-bsd-kernel-build=path],
206 [use the kernel build found at path (optional, defaults to
207 KSRC/i386/compile/GENERIC)])])
208 AC_ARG_WITH([linux-kernel-packaging],
209 [AS_HELP_STRING([--with-linux-kernel-packaging],
210 [use standard naming conventions to aid Linux kernel build packaging
211 (disables MPS, sets the kernel module name to openafs.ko, and
212 installs kernel modules into the standard Linux location)])],
213 [AC_SUBST(LINUX_KERNEL_PACKAGING, "yes")
214 AC_SUBST(LINUX_LIBAFS_NAME, "openafs")],
215 [AC_SUBST(LINUX_LIBAFS_NAME, "libafs")])
216 AC_ARG_ENABLE([kernel-module],
217 [AS_HELP_STRING([--disable-kernel-module],
218 [disable compilation of the kernel module (defaults to enabled)])],
220 [enable_kernel_module="yes"])
221 AC_ARG_ENABLE([redhat-buildsys],
222 [AS_HELP_STRING([--enable-redhat-buildsys],
223 [enable compilation of the redhat build system kernel (defaults to
226 [enable_redhat_buildsys="no"])
228 dnl Installation locations.
229 AC_ARG_ENABLE([transarc-paths],
230 [AS_HELP_STRING([--enable-transarc-paths],
231 [use Transarc style paths like /usr/afs and /usr/vice])],
233 [enable_transarc_paths="no"])
235 dnl Optimization and debugging flags.
236 AC_ARG_ENABLE([strip-binaries],
237 [AS_HELP_STRING([--disable-strip-binaries],
238 [disable stripping of symbol information from binaries (defaults to
241 [enable_strip_binaries="maybe"])
242 AC_ARG_ENABLE([debug],
243 [AS_HELP_STRING([--enable-debug],
244 [enable compilation of the user space code with debugging information
245 (defaults to disabled)])],
248 AC_ARG_ENABLE([optimize],
249 [AS_HELP_STRING([--disable-optimize],
250 [disable optimization for compilation of the user space code (defaults
253 [enable_optimize="yes"])
254 AC_ARG_ENABLE([warnings],
255 [AS_HELP_STRING([--enable-warnings],
256 [enable compilation warnings when building with gcc (defaults to
259 [enable_warnings="no"])
260 AC_ARG_ENABLE([debug-kernel],
261 [AS_HELP_STRING([--enable-debug-kernel],
262 [enable compilation of the kernel module with debugging information
263 (defaults to disabled)])],
265 [enable_debug_kernel="no"])
266 AC_ARG_ENABLE([optimize-kernel],
267 [AS_HELP_STRING([--disable-optimize-kernel],
268 [disable compilation of the kernel module with optimization (defaults
269 based on platform)])],
271 [enable_optimize_kernel="yes"])
272 AC_ARG_ENABLE([debug-lwp],
273 [AS_HELP_STRING([--enable-debug-lwp],
274 [enable compilation of the LWP code with debugging information
275 (defaults to disabled)])],
277 [enable_debug_lwp="no"])
278 AC_ARG_ENABLE([optimize-lwp],
279 [AS_HELP_STRING([--disable-optimize-lwp],
280 [disable optimization for compilation of the LWP code (defaults to
283 [enable_optimize_lwp="yes"])
284 AC_ARG_ENABLE([debug-pam],
285 [AS_HELP_STRING([--enable-debug-pam],
286 [enable compilation of the PAM code with debugging information
287 (defaults to disabled)])],
289 [enable_debug_pam="no"])
290 AC_ARG_ENABLE([optimize-pam],
291 [AS_HELP_STRING([--disable-optimize-pam],
292 [disable optimization for compilation of the PAM code (defaults to
295 [enable_optimize_pam="yes"])
300 dnl weird ass systems
305 dnl Various compiler setup.
309 COMPILER_HAS_FUNCTION_MACRO
311 dnl Checks for programs.
318 OPENAFS_CHECK_BIGENDIAN
320 AC_MSG_CHECKING(your OS)
326 if test "x$enable_redhat_buildsys" = "xyes"; then
327 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
329 if test "x$enable_kernel_module" = "xyes"; then
330 if test "x$with_linux_kernel_headers" != "x"; then
331 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
333 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/source"
334 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
335 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
337 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
338 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
340 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
341 LINUX_KERNEL_PATH="/usr/src/linux"
344 if test -f "$LINUX_KERNEL_PATH/include/linux/utsrelease.h"; then
345 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
346 LINUX_VERSION="$linux_kvers"
348 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
349 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
350 if test "x$linux_kvers" = "x"; then
351 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
352 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
353 if test "x$linux_kvers" = "x"; then
355 AC_MSG_ERROR(Linux headers lack version definition [2])
358 LINUX_VERSION="$linux_kvers"
361 AC_MSG_ERROR(Linux headers lack version definition)
365 LINUX_VERSION="$linux_kvers"
368 enable_kernel_module="no"
371 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
372 enable_kernel_module="no"
374 if test "x$enable_kernel_module" = "xno"; then
375 if test "x$with_linux_kernel_headers" != "x"; then
376 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
379 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
382 dnl do we need to determine SUBARCH from autoconf.h
386 if test "x$enable_kernel_module" = "xyes"; then
387 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
388 if test "x${AFS_SYSKVERS}" = "x"; then
389 AC_MSG_ERROR(Couldn't guess your Linux version [2])
396 SOLARIS_UFSVFS_HAS_DQRWLOCK
397 SOLARIS_PROC_HAS_P_COREFILE
398 SOLARIS_FS_HAS_FS_ROLLED
402 enable_kernel_module=no
408 if test -f "/usr/old/usr/include/ndir.h"; then
409 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
413 if test -d /usr/include/sys/SN/SN1; then
414 IRIX_BUILD_IP35="IP35"
421 AC_MSG_RESULT(rs_aix)
425 AC_MSG_RESULT(alpha_dux)
426 if test "x$enable_kernel_module" = "xyes"; then
427 if test "x$with_dux_kernel_headers" != "x"; then
428 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
430 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
433 if test "$HEADER_RT" = "*" ; then
434 AC_MSG_ERROR([Need a configured kernel directory])
436 AC_SUBST([HEADER_RT])
440 AC_MSG_RESULT(ppc_darwin)
444 AC_MSG_RESULT(x86_darwin)
448 AC_MSG_RESULT(i386_fbsd)
456 AC_MSG_RESULT(i386_obsd)
459 AC_MSG_RESULT($system)
463 if test "x$with_afs_sysname" != "x"; then
464 AFS_SYSNAME="$with_afs_sysname"
466 AC_MSG_CHECKING(your AFS sysname)
472 AFS_SYSNAME="i386_obsd${vM}${vm}"
474 sparc64-*-openbsd?.?)
478 AFS_SYSNAME="sparc64_obsd${vM}${vm}"
484 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
487 AFS_PARAM_COMMON=param.nbsd15.h
488 AFS_SYSNAME="i386_nbsd15"
491 AFS_PARAM_COMMON=param.nbsd15.h
492 AFS_SYSNAME="alpha_nbsd15"
494 i?86-*-netbsd*1.6[[M-Z]]*)
495 AFS_PARAM_COMMON=param.nbsd20.h
496 AFS_SYSNAME="i386_nbsd20"
498 powerpc-*-netbsd*1.6[[M-Z]]*)
499 AFS_PARAM_COMMON=param.nbsd20.h
500 AFS_SYSNAME="ppc_nbsd20"
503 AFS_PARAM_COMMON=param.nbsd20.h
504 AFS_SYSNAME="i386_nbsd20"
507 AFS_PARAM_COMMON=param.nbsd20.h
508 AFS_SYSNAME="amd64_nbsd20"
510 x86_64-*-netbsd*3.[0-8]*)
511 AFS_PARAM_COMMON=param.nbsd30.h
512 AFS_SYSNAME="amd64_nbsd30"
514 x86_64-*-netbsd*4.[0-8]*)
515 AFS_PARAM_COMMON=param.nbsd40.h
516 AFS_SYSNAME="amd64_nbsd40"
518 powerpc-*-netbsd*2.0*)
519 AFS_PARAM_COMMON=param.nbsd20.h
520 AFS_SYSNAME="ppc_nbsd20"
523 AFS_PARAM_COMMON=param.nbsd16.h
524 AFS_SYSNAME="i386_nbsd16"
527 AFS_PARAM_COMMON=param.nbsd16.h
528 AFS_SYSNAME="alpha_nbsd16"
530 powerpc-*-netbsd*1.6*)
531 AFS_PARAM_COMMON=param.nbsd16.h
532 AFS_SYSNAME="ppc_nbsd16"
535 AFS_PARAM_COMMON=param.nbsd21.h
536 AFS_SYSNAME="i386_nbsd21"
539 AFS_PARAM_COMMON=param.nbsd30.h
540 AFS_SYSNAME="i386_nbsd30"
542 i?86-*-netbsd*3.[[0-8]]*)
543 AFS_PARAM_COMMON=param.nbsd30.h
544 AFS_SYSNAME="i386_nbsd30"
547 AFS_PARAM_COMMON=param.nbsd30.h
548 AFS_SYSNAME="i386_nbsd30"
550 i?86-*-netbsd*4.[[0-8]]*)
551 AFS_PARAM_COMMON=param.nbsd40.h
552 AFS_SYSNAME="i386_nbsd40"
555 AFS_PARAM_COMMON=param.nbsd40.h
556 AFS_SYSNAME="i386_nbsd40"
559 AFS_SYSNAME="hp_ux110"
562 AFS_SYSNAME="hp_ux11i"
565 AFS_SYSNAME="hp_ux1123"
568 AFS_SYSNAME="ia64_hpux1122"
571 AFS_SYSNAME="ia64_hpux1123"
574 AFS_SYSNAME="hp_ux102"
576 powerpc-apple-darwin1.2*)
577 AFS_SYSNAME="ppc_darwin_12"
579 powerpc-apple-darwin1.3*)
580 AFS_SYSNAME="ppc_darwin_13"
582 powerpc-apple-darwin1.4*)
583 AFS_SYSNAME="ppc_darwin_14"
585 powerpc-apple-darwin5.1*)
586 AFS_SYSNAME="ppc_darwin_14"
588 powerpc-apple-darwin5.2*)
589 AFS_SYSNAME="ppc_darwin_14"
591 powerpc-apple-darwin5.3*)
592 AFS_SYSNAME="ppc_darwin_14"
594 powerpc-apple-darwin5.4*)
595 AFS_SYSNAME="ppc_darwin_14"
597 powerpc-apple-darwin5.5*)
598 AFS_SYSNAME="ppc_darwin_14"
600 powerpc-apple-darwin6.0*)
601 AFS_SYSNAME="ppc_darwin_60"
603 powerpc-apple-darwin6.1*)
604 AFS_SYSNAME="ppc_darwin_60"
606 powerpc-apple-darwin6.2*)
607 AFS_SYSNAME="ppc_darwin_60"
609 powerpc-apple-darwin6.3*)
610 AFS_SYSNAME="ppc_darwin_60"
612 powerpc-apple-darwin6.4*)
613 AFS_SYSNAME="ppc_darwin_60"
615 powerpc-apple-darwin6.5*)
616 AFS_SYSNAME="ppc_darwin_60"
618 powerpc-apple-darwin7.0*)
619 AFS_SYSNAME="ppc_darwin_70"
621 powerpc-apple-darwin7.1*)
622 AFS_SYSNAME="ppc_darwin_70"
624 powerpc-apple-darwin7.2*)
625 AFS_SYSNAME="ppc_darwin_70"
627 powerpc-apple-darwin7.3*)
628 AFS_SYSNAME="ppc_darwin_70"
630 powerpc-apple-darwin7.4*)
631 AFS_SYSNAME="ppc_darwin_70"
633 powerpc-apple-darwin7.5*)
634 AFS_SYSNAME="ppc_darwin_70"
636 powerpc-apple-darwin8.0*)
637 AFS_SYSNAME="ppc_darwin_80"
639 powerpc-apple-darwin8.*)
640 AFS_SYSNAME="ppc_darwin_80"
642 i386-apple-darwin8.*)
643 AFS_SYSNAME="x86_darwin_80"
645 powerpc-apple-darwin9.*)
646 AFS_SYSNAME="ppc_darwin_90"
648 i386-apple-darwin9.*)
649 AFS_SYSNAME="x86_darwin_90"
651 sparc-sun-solaris2.5*)
652 AFS_SYSNAME="sun4x_55"
655 sparc-sun-solaris2.6)
656 AFS_SYSNAME="sun4x_56"
658 sparc-sun-solaris2.7)
659 AFS_SYSNAME="sun4x_57"
661 sparc-sun-solaris2.8)
662 AFS_SYSNAME="sun4x_58"
664 sparc-sun-solaris2.9)
665 AFS_SYSNAME="sun4x_59"
667 sparc-sun-solaris2.10)
668 AFS_SYSNAME="sun4x_510"
670 sparc-sun-solaris2.11)
671 AFS_SYSNAME="sun4x_511"
674 AFS_SYSNAME="sun4_413"
678 AFS_SYSNAME="sunx86_57"
681 AFS_SYSNAME="sunx86_58"
684 AFS_SYSNAME="sunx86_59"
687 AFS_SYSNAME="sunx86_510"
690 AFS_SYSNAME="sunx86_511"
693 AFS_SYSNAME="alpha_dux40"
696 AFS_SYSNAME="alpha_dux50"
699 AFS_SYSNAME="alpha_dux51"
705 AFS_SYSNAME="ia64_linuxXX"
708 AFS_SYSNAME="`/bin/arch`_linuxXX"
711 AFS_SYSNAME="ppc64_linuxXX"
714 AFS_SYSNAME="alpha_linux_XX"
717 AFS_SYSNAME="s390_linuxXX"
720 AFS_SYSNAME="s390x_linuxXX"
723 AFS_SYSNAME="`/bin/arch`_linuxXX"
726 AFS_SYSNAME="sparc64_linuxXX"
729 AFS_SYSNAME="i386_linuxXX"
731 parisc-*-linux-gnu|hppa-*-linux-gnu)
732 AFS_SYSNAME="parisc_linuxXX"
736 AFS_SYSNAME="rs_aix42"
740 AFS_SYSNAME="rs_aix42"
744 AFS_SYSNAME="rs_aix51"
748 AFS_SYSNAME="rs_aix52"
752 AFS_SYSNAME="rs_aix53"
756 AFS_SYSNAME="rs_aix61"
760 AFS_SYSNAME="amd64_linuxXX"
764 AC_MSG_ERROR(An AFS sysname is required)
769 *_linux* | *_umlinux*)
770 if test "x${AFS_SYSKVERS}" = "x"; then
771 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
773 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
774 AFS_SYSNAME="$_AFS_SYSNAME"
775 save_CPPFLAGS="$CPPFLAGS"
776 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
778 [#include <linux/autoconf.h>],
779 [#ifndef CONFIG_USERMODE
782 ac_cv_linux_is_uml=yes,)
783 if test "${ac_cv_linux_is_uml}" = yes; then
784 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
786 CPPFLAGS="$save_CPPFLAGS"
787 AFS_SYSNAME="$_AFS_SYSNAME"
790 AC_MSG_RESULT($AFS_SYSNAME)
793 case $AFS_SYSNAME in *_linux* | *_umlinux*)
795 # Add (sub-) architecture-specific paths needed by conftests
798 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
799 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
800 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
801 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
804 if test "x$enable_kernel_module" = "xyes"; then
805 if test "x$enable_debug_kernel" = "xno"; then
806 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
808 OPENAFS_GCC_SUPPORTS_MARCH
809 AC_SUBST(P5PLUS_KOPTS)
810 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
811 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
812 OPENAFS_GCC_SUPPORTS_NO_COMMON
813 OPENAFS_GCC_SUPPORTS_PIPE
814 AC_SUBST(LINUX_GCC_KOPTS)
815 ifdef([OPENAFS_CONFIGURE_LIBAFS],
816 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
817 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
820 LINUX_KBUILD_USES_EXTRA_CFLAGS
821 LINUX_KERNEL_COMPILE_WORKS
822 LINUX_EXPORTS_FIND_TASK_BY_PID
823 LINUX_EXPORTS_PROC_ROOT_FS
824 LINUX_HAVE_CURRENT_KERNEL_TIME
825 LINUX_KMEM_CACHE_INIT
826 LINUX_HAVE_KMEM_CACHE_T
827 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
828 LINUX_D_PATH_TAKES_STRUCT_PATH
830 LINUX_CONFIG_H_EXISTS
831 LINUX_COMPLETION_H_EXISTS
832 LINUX_SEMAPHORE_H_EXISTS
833 LINUX_EXPORTFS_H_EXISTS
834 LINUX_DEFINES_FOR_EACH_PROCESS
835 LINUX_DEFINES_PREV_TASK
836 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
837 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
838 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
839 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
840 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
841 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
842 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
843 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
844 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
845 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
846 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
847 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
848 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
849 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
850 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
851 LINUX_INODE_SETATTR_RETURN_TYPE
852 LINUX_WRITE_INODE_RETURN_TYPE
853 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
854 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
855 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
856 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
857 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
858 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
859 LINUX_AOP_WRITEBACK_CONTROL
860 LINUX_FS_STRUCT_FOP_HAS_FLOCK
861 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
862 LINUX_FS_STRUCT_FOP_HAS_SPLICE
863 LINUX_KERNEL_LINUX_SYSCALL_H
864 LINUX_KERNEL_LINUX_SEQ_FILE_H
865 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
867 LINUX_KERNEL_SOCK_CREATE
868 LINUX_KERNEL_PAGE_FOLLOW_LINK
869 LINUX_KERNEL_HLIST_UNHASHED
870 LINUX_KEY_TYPE_H_EXISTS
872 LINUX_RECALC_SIGPENDING_ARG_TYPE
873 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
874 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
875 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
876 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
877 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
878 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
879 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
880 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
881 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
882 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
883 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
884 LINUX_EXPORTS_TASKLIST_LOCK
885 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
886 LINUX_STATFS_TAKES_DENTRY
887 LINUX_FREEZER_H_EXISTS
888 LINUX_HAVE_SVC_ADDR_IN
889 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
890 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
893 LINUX_LINUX_KEYRING_SUPPORT
894 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
896 LINUX_GENERIC_FILE_AIO_READ
897 LINUX_INIT_WORK_HAS_DATA
898 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
899 LINUX_SYSCTL_TABLE_CHECKING
901 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
902 LINUX_EXPORTS_INIT_MM
903 LINUX_EXPORTS_SYS_CHDIR
904 LINUX_EXPORTS_SYS_CLOSE
905 LINUX_EXPORTS_SYS_OPEN
906 LINUX_EXPORTS_SYS_WAIT4
907 LINUX_EXPORTS_RCU_READ_LOCK
908 if test "x$with_linux_kernel_packaging" = "xno" ; then
913 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
914 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
915 ac_cv_linux_exports_sys_call_table=no
916 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
917 ac_cv_linux_exports_ia32_sys_call_table=yes
920 LINUX_EXPORTS_KALLSYMS_ADDRESS
921 LINUX_EXPORTS_KALLSYMS_SYMBOL
922 LINUX_EXPORTS_SYS_CALL_TABLE
923 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
924 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
925 linux_syscall_method=none
926 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
927 linux_syscall_method=scan
928 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
929 linux_syscall_method=scan_with_kallsyms_address
932 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
933 linux_syscall_method=kallsyms_symbol
935 if test "x$linux_syscall_method" = "xnone"; then
936 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
937 linux_syscall_method=scan
941 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
942 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
944 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
945 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
947 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
948 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
950 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
951 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
953 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
954 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
956 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
957 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
959 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
960 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
962 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
963 AC_DEFINE(EXPORTED_SYS_CALL_TABLE, 1, [define if your linux kernel exports sys_call_table])
965 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
966 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE, 1, [define if your linux kernel exports ia32_sys_call_table])
968 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
969 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL, 1, [define if your linux kernel exports kallsyms])
971 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
972 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS, 1, [define if your linux kernel exports kallsyms address])
974 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
975 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
977 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
978 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
980 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
981 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
983 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
984 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
986 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
987 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
989 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
990 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
992 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
993 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
995 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
996 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
998 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
999 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
1001 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
1002 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
1004 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
1005 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
1007 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
1008 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
1010 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
1011 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
1013 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
1014 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
1016 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
1017 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
1019 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
1020 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
1022 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
1023 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
1025 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
1026 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
1028 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
1029 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
1031 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
1032 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
1034 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
1035 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
1037 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
1038 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
1040 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
1041 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
1043 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
1044 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
1046 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
1047 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
1049 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
1050 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
1052 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
1053 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
1055 if test "x$ac_linux_syscall" = "xyes" ; then
1056 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
1058 if test "x$ac_linux_seq_file" = "xyes" ; then
1059 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
1061 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
1062 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
1064 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
1065 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
1067 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
1068 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
1070 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
1071 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
1073 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
1074 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
1076 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
1077 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
1079 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
1080 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
1082 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
1083 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
1085 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
1086 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
1088 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
1089 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
1091 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
1092 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
1094 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
1095 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
1097 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
1098 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
1100 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
1101 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
1103 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
1104 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
1106 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1107 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1109 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1110 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1112 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1113 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1115 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1116 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1118 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1119 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1121 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1122 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1124 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1125 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1127 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1128 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1130 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1131 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1133 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1134 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1136 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1137 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1139 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1140 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1142 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1143 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1145 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1146 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1148 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1149 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1151 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1152 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1154 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1155 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1157 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1158 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1160 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1161 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1163 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1164 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1166 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1168 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1169 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1175 case $AFS_SYSNAME in
1177 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1178 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1179 dnl the test below fails on darwin, even if the CPPFLAGS below
1180 dnl are added. the headers from Kernel.framework must be used
1181 dnl when KERNEL is defined.
1183 dnl really, such a thing isn't guaranteed to work on any
1184 dnl platform until the kernel cflags from MakefileProto are
1185 dnl known to configure
1186 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1189 AC_MSG_CHECKING(for definition of struct buf)
1190 dnl save_CPPFLAGS="$CPPFLAGS"
1191 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1192 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1193 ac_cv_have_struct_buf=no
1195 [#include <sys/buf.h>],
1197 printf("%d\n", sizeof(x));],
1198 ac_cv_have_struct_buf=yes,)
1201 dnl CPPFLAGS="$save_CPPFLAGS"
1202 AC_MSG_RESULT($ac_cv_have_struct_buf)
1203 if test "$ac_cv_have_struct_buf" = yes; then
1204 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1210 AC_CACHE_VAL(ac_cv_sockaddr_len,
1212 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1213 AC_TRY_COMPILE( [#include <sys/types.h>
1214 #include <sys/socket.h>],
1215 [struct sockaddr *a;
1216 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1217 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1218 if test "$ac_cv_sockaddr_len" = "yes"; then
1219 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1221 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1222 echo Skipping library tests because they confuse Irix.
1224 AC_CHECK_FUNCS(socket)
1226 if test "$ac_cv_func_socket" = no; then
1227 for lib in socket inet; do
1228 if test "$HAVE_SOCKET" != 1; then
1229 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1234 AC_CHECK_FUNCS(connect)
1236 if test "$ac_cv_func_connect" = no; then
1238 if test "$HAVE_CONNECT" != 1; then
1239 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1244 AC_CHECK_FUNCS(gethostbyname)
1245 if test "$ac_cv_func_gethostbyname" = no; then
1246 for lib in dns nsl resolv; do
1247 if test "$HAVE_GETHOSTBYNAME" != 1; then
1248 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1253 dnl darwin wants it, aix hates it
1254 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1258 #include <sys/types.h>
1259 #include <sys/socket.h>
1260 #include <netinet/in.h>
1261 #include <arpa/inet.h>
1262 #include <arpa/nameser.h>
1263 #include <arpa/nameser_compat.h>
1265 ], [static int i; i = 0;],
1267 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H, 1, [define if arpa/nameser_compat.h exists])],
1271 openafs_save_libs="$LIBS"
1272 AC_MSG_CHECKING([for res_search])
1275 if test "$ac_cv_func_res_search" = no; then
1276 for lib in dns nsl resolv; do
1277 if test "$ac_cv_func_res_search" != yes; then
1280 LIBS="$openafs_save_libs"
1283 if test "$ac_cv_func_res_search" = yes; then
1284 LIB_res_search="-l$lib"
1285 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1286 AC_MSG_RESULT([yes, in lib$lib])
1291 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1297 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1299 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1300 AC_TRY_COMPILE( [#include <sys/types.h>
1301 #include <sys/socket.h>
1302 #include <netinet/in.h>],
1304 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1305 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1306 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1307 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1311 if test "x$MKAFS_OSTYPE" = OBSD; then
1312 PTHREAD_LIBS="-pthread"
1314 if test "x$PTHREAD_LIBS" = xerror; then
1315 AC_CHECK_LIB(pthread, pthread_attr_init,
1316 PTHREAD_LIBS="-lpthread")
1318 if test "x$PTHREAD_LIBS" = xerror; then
1319 AC_CHECK_LIB(pthreads, pthread_attr_init,
1320 PTHREAD_LIBS="-lpthreads")
1322 if test "x$PTHREAD_LIBS" = xerror; then
1323 AC_CHECK_LIB(c_r, pthread_attr_init,
1324 PTHREAD_LIBS="-lc_r")
1326 if test "x$PTHREAD_LIBS" = xerror; then
1327 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1329 if test "x$PTHREAD_LIBS" = xerror; then
1330 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1331 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1332 PTHREAD_LIBS="-lpthread")
1334 if test "x$PTHREAD_LIBS" = xerror; then
1335 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1337 AC_SUBST(PTHREAD_LIBS)
1340 if test "$enable_obsolete" = "yes"; then
1344 HOST_CPU="$host_cpu"
1346 if test "x$with_bsd_kernel_headers" != "x"; then
1347 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1349 BSD_KERNEL_PATH="/usr/src/sys"
1352 if test "x$with_bsd_kernel_build" != "x"; then
1353 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1355 case $AFS_SYSNAME in
1357 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1360 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1366 if test "$enable_supergroups" = "yes"; then
1367 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1370 if test "$enable_fast_restart" = "yes"; then
1371 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1374 if test "$enable_bitmap_later" = "yes"; then
1375 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1378 if test "$enable_demand_attach_fs" = "yes"; then
1379 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1384 AC_SUBST(DEMAND_ATTACH)
1386 if test "$enable_disconnected" = "yes"; then
1387 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1390 if test "$enable_unix_sockets" = "yes"; then
1391 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1392 USE_UNIX_SOCKETS="yes"
1394 USE_UNIX_SOCKETS="no"
1396 AC_SUBST(USE_UNIX_SOCKETS)
1398 if test "$enable_fast_restart" = "yes" &&
1399 test "$enable_demand_attach_fs" = "yes" ; then
1400 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.])
1404 if test "$enable_full_vos_listvol_switch" = "yes"; then
1405 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1408 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1409 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1410 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1414 if test "$enable_bos_restricted_mode" = "yes"; then
1415 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1418 if test "$enable_bos_new_config" = "yes"; then
1419 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1422 if test "$enable_largefile_fileserver" = "yes"; then
1423 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1426 if test "$enable_cache_bypass" = "yes"; then
1427 AC_DEFINE(AFS_CACHE_BYPASS, 1, [define to activate cache bypassing Unix client])
1430 if test "$enable_namei_fileserver" = "yes"; then
1431 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1433 if test "$enable_namei_fileserver" = "default"; then
1436 AC_MSG_WARN(Some Solaris 10 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1437 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1440 AC_MSG_WARN(Solaris 11 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1441 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1449 if test "$enable_afsdb" = "yes"; then
1450 LIB_AFSDB="$LIB_res_search"
1451 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1454 dnl check for tivoli
1455 AC_MSG_CHECKING(for tivoli tsm butc support)
1457 if test "$enable_tivoli_tsm" = "yes"; then
1458 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1459 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1460 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1461 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1463 if test -r "$XBSADIR1/xbsa.h"; then
1464 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1466 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1467 elif test -r "$XBSADIR2/xbsa.h"; then
1468 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1470 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1471 elif test -r "$XBSADIR3/dsmapifp.h"; then
1472 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1474 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1475 elif test -r "$XBSADIR4/dsmapifp.h"; then
1476 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1478 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1480 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1485 AC_SUBST(XBSA_CFLAGS)
1486 AC_SUBST(XBSA_XLIBS)
1488 dnl checks for header files.
1492 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1493 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1494 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1495 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1496 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1497 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1498 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1500 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1507 if test "$enable_login" = yes; then
1512 AC_SUBST(BUILD_LOGIN)
1514 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1515 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1516 AC_CHECK_FUNCS(setvbuf vsyslog)
1517 AC_FUNC_SETVBUF_REVERSED
1518 AC_CHECK_FUNCS(regcomp regexec regerror)
1519 AC_MSG_CHECKING([for POSIX regex library])
1520 if test "$ac_cv_header_regex_h" = "yes" && \
1521 test "$ac_cv_func_regcomp" = "yes" && \
1522 test "$ac_cv_func_regexec" = "yes" && \
1523 test "$ac_cv_func_regerror" = "yes"; then
1524 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1530 AC_CHECK_TYPE(ssize_t, int)
1531 AC_SIZEOF_TYPE(long)
1533 AC_CHECK_FUNCS(timegm)
1534 AC_CHECK_FUNCS(daemon)
1536 dnl Directory PATH handling
1537 if test "x$enable_transarc_paths" = "xyes" ; then
1538 afsconfdir=${afsconfdir=/usr/afs/etc}
1539 viceetcdir=${viceetcdir=/usr/vice/etc}
1540 afskerneldir=${afskerneldir=${viceetcdir}}
1541 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1542 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1543 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1544 afsdbdir=${afsdbdir=/usr/afs/db}
1545 afslogsdir=${afslogsdir=/usr/afs/logs}
1546 afslocaldir=${afslocaldir=/usr/afs/local}
1547 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1548 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1550 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1551 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1552 afskerneldir=${afskerneldir='${libdir}/openafs'}
1553 afssrvbindir=${afssrvbindir='${bindir}'}
1554 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1555 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1556 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1557 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1558 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1559 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1560 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1562 AC_SUBST(afsconfdir)
1563 AC_SUBST(viceetcdir)
1564 AC_SUBST(afskerneldir)
1565 AC_SUBST(afssrvbindir)
1566 AC_SUBST(afssrvsbindir)
1567 AC_SUBST(afssrvlibexecdir)
1569 AC_SUBST(afslogsdir)
1570 AC_SUBST(afslocaldir)
1571 AC_SUBST(afsbackupdir)
1572 AC_SUBST(afsbosconfigdir)
1574 if test "x$enable_kernel_module" = "xyes"; then
1575 ENABLE_KERNEL_MODULE=libafs
1578 if test "x$enable_pthreaded_ubik" = "xyes"; then
1579 ENABLE_PTHREADED_UBIK=yes
1582 AC_SUBST(AFS_SYSNAME)
1583 AC_SUBST(AFS_PARAM_COMMON)
1584 AC_SUBST(ENABLE_KERNEL_MODULE)
1585 AC_SUBST(ENABLE_PTHREADED_UBIK)
1587 AC_SUBST(LINUX_KERNEL_PATH)
1589 AC_SUBST(BSD_KERNEL_PATH)
1590 AC_SUBST(BSD_KERNEL_BUILD)
1591 AC_SUBST(LINUX_VERSION)
1592 AC_SUBST(MKAFS_OSTYPE)
1593 AC_SUBST(TOP_OBJDIR)
1594 AC_SUBST(TOP_SRCDIR)
1595 AC_SUBST(TOP_INCDIR)
1596 AC_SUBST(TOP_LIBDIR)
1598 AC_SUBST(WITH_OBSOLETE)
1599 AC_SUBST(DARWIN_INFOFILE)
1600 AC_SUBST(IRIX_BUILD_IP35)
1605 TOP_SRCDIR="${srcdir}/src"
1607 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1613 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1617 TOP_OBJDIR="${SRCDIR_PARENT}"
1618 TOP_INCDIR="${SRCDIR_PARENT}/include"
1619 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1620 if test "${DEST}x" = "x"; then
1621 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1624 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1625 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1626 AC_SUBST(HELPER_SPLINT)
1627 AC_SUBST(HELPER_SPLINTCFG)
1629 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs