1 dnl This file contains the common configuration code which would
2 dnl otherwise be duplicated between configure and configure-libafs.
4 dnl NB: Because this code is a macro, references to positional shell
5 dnl parameters must be done like $[]1 instead of $1
7 AC_DEFUN([OPENAFS_CONFIGURE_COMMON],[
10 static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
12 #undef HAVE_GETHOSTBYNAME
13 #undef HAVE_RES_SEARCH
15 #undef STRUCT_SOCKADDR_HAS_SA_LEN
16 #if !defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
17 # if ENDIANESS_IN_SYS_PARAM_H
19 # include <sys/types.h>
20 # include <sys/param.h>
21 # if BYTE_ORDER == BIG_ENDIAN
22 # define WORDS_BIGENDIAN 1
25 # if defined(AUTOCONF_FOUND_BIGENDIAN)
26 # define WORDS_BIGENDIAN 1
28 # undef WORDS_BIGENDIAN
32 # if defined(AUTOCONF_FOUND_BIGENDIAN)
33 # define WORDS_BIGENDIAN 1
35 # undef WORDS_BIGENDIAN
39 # if defined(__BIG_ENDIAN__)
40 # define WORDS_BIGENDIAN 1
42 # undef WORDS_BIGENDIAN
47 #undef AFS_LARGEFILE_ENV
50 #undef BOS_RESTRICTED_MODE
53 #undef FULL_LISTVOL_SWITCH
54 #undef COMPLETION_H_EXISTS
55 #undef DEFINED_FOR_EACH_PROCESS
56 #undef DEFINED_PREV_TASK
57 #undef EXPORTED_KALLSYMS_ADDRESS
58 #undef EXPORTED_KALLSYMS_SYMBOL
59 #undef EXPORTED_SYS_CALL_TABLE
60 #undef EXPORTED_IA32_SYS_CALL_TABLE
61 #undef EXPORTED_TASKLIST_LOCK
62 #undef INODE_SETATTR_NOT_VOID
63 #undef IRIX_HAS_MEM_FUNCS
64 #undef RECALC_SIGPENDING_TAKES_VOID
65 #undef STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
66 #undef STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
67 #undef STRUCT_FS_HAS_FS_ROLLED
68 #undef STRUCT_INODE_HAS_I_DEVICES
69 #undef STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
70 #undef STRUCT_INODE_HAS_I_ALLOC_SEM
71 #undef STRUCT_INODE_HAS_I_TRUNCATE_SEM
72 #undef STRUCT_TASK_STRUCT_HAS_PARENT
73 #undef STRUCT_TASK_STRUCT_HAS_REAL_PARENT
74 #undef STRUCT_TASK_STRUCT_HAS_SIG
75 #undef STRUCT_TASK_STRUCT_HAS_SIGHAND
76 #undef STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
78 #undef HAVE_STRUCT_BUF
79 #undef HAVE_ARPA_NAMESER_COMPAT_H
80 /* glue for RedHat kernel bug */
81 #undef ENABLE_REDHAT_BUILDSYS
82 #if defined(ENABLE_REDHAT_BUILDSYS) && defined(KERNEL) && defined(REDHAT_FIX)
83 #include "redhat-fix.h"
89 #BOZO_SAVE_CORES pam sia
92 AC_ARG_WITH([afs-sysname],
93 [AS_HELP_STRING([--with-afs-sysname=sys], [use sys for the afs sysname])])
95 dnl General feature options.
96 AC_ARG_ENABLE([afsdb],
97 [AS_HELP_STRING([--disable-afsdb], [disable AFSDB DNS RR support])],
100 AC_ARG_ENABLE([obsolete],
101 [AC_HELP_STRING([--enable-obsolete],
102 [enable obsolete portions of AFS (mpp and package)])],
104 [enable_obsolete="no"])
106 [AS_HELP_STRING([--disable-pam], [disable PAM support])],
109 AC_ARG_ENABLE([bos-restricted-mode],
110 [AS_HELP_STRING([--enable-bos-restricted-mode],
111 [enable bosserver restricted mode which disables certain bosserver
114 [enable_bos_restricted_mode="no"])
115 AC_ARG_ENABLE([bos-new-config],
116 [AS_HELP_STRING([--enable-bos-new-config],
117 [enable bosserver pickup of BosConfig.new on restarts])],
119 [enable_bos_new_config="no"])
120 AC_ARG_ENABLE([largefile-fileserver],
121 [AS_HELP_STRING([--disable-largefile-fileserver],
122 [disable large file support in fileserver])],
124 [enable_largefile_fileserver="yes"])
125 AC_ARG_ENABLE([namei-fileserver],
126 [AS_HELP_STRING([--enable-namei-fileserver],
127 [force compilation of namei fileserver in preference to inode
130 [enable_namei_fileserver="default"])
131 AC_ARG_ENABLE([cache-bypass],
132 [AS_HELP_STRING([--enable-cache-bypass],
133 [enable client support for cache bypass])],
135 [enable_cache_bypass="no"])
136 AC_ARG_ENABLE([supergroups],
137 [AS_HELP_STRING([--enable-supergroups],
138 [enable support for nested pts groups])],
140 [enable_supergroups="no"])
141 AC_ARG_ENABLE([fast-restart],
142 [AS_HELP_STRING([--enable-fast-restart],
143 [enable fast startup of file server without salvaging])],
145 [enable_fast_restart="no"])
146 AC_ARG_ENABLE([bitmap-later],
147 [AS_HELP_STRING([--enable-bitmap-later],
148 [enable fast startup of file server by not reading bitmap till
151 [enable_bitmap_later="no"])
152 AC_ARG_ENABLE([demand-attach-fs],
153 [AS_HELP_STRING([--enable-demand-attach-fs],
154 [enable Demand Attach Fileserver (please see documentation)])],
156 [enable_demand_attach_fs="no"])
157 AC_ARG_ENABLE([disconnected],
158 [AS_HELP_STRING([--enable-disconnected],
159 [enable disconnected support in cache manager (experimental)])],
161 [enable_disconnected="no"])
162 AC_ARG_ENABLE([unix-sockets],
163 [AS_HELP_STRING([--enable-unix-sockets],
164 [enable use of unix domain sockets for fssync])],
166 [enable_unix_sockets="yes"])
167 AC_ARG_ENABLE([full-vos-listvol-switch],
168 [AS_HELP_STRING([--disable-full-vos-listvol-switch],
169 [disable vos full listvol switch for formatted output])],
171 [enable_full_vos_listvol_switch="yes"])
172 AC_ARG_ENABLE([icmp-pmtu-discovery],
173 [AS_HELP_STRING([--enable-icmp-pmtu-discovery],
174 [enable path MTU discovery by decoding ICMP unreachable replies])],
176 [enable_icmp_pmtu_discovery="no"])
177 AC_ARG_ENABLE([tivoli-tsm],
178 [AS_HELP_STRING([--enable-tivoli-tsm],
179 [enable use of the Tivoli TSM API libraries for butc support])],
181 [enable_tivoli_tsm="no"])
182 AC_ARG_ENABLE([pthreaded-ubik],
183 [AS_HELP_STRING([--enable-pthreaded-ubik],
184 [enable installation of pthreaded ubik applications (defaults to
187 [enable_pthreaded_ubik="no"])
188 AC_ARG_ENABLE([linux-fh],
189 [AS_HELP_STRING([--enable-linux-fh],
190 [enable opening cache files by file hande instead of inode numbers
191 with linux (defaults to disabled)])],
193 [enable_linux_fh="no"])
195 dnl Kernel module build options.
196 AC_ARG_WITH([dux-kernel-headers],
197 [AS_HELP_STRING([--with-dux-kernel-headers=path],
198 [use the kernel headers found at path (optional, defaults to first
199 match in /usr/sys)])])
200 AC_ARG_WITH([linux-kernel-headers],
201 [AS_HELP_STRING([--with-linux-kernel-headers=path],
202 [use the kernel headers found at path (optional, defaults to
203 /usr/src/linux-2.4, then /usr/src/linux)])])
204 AC_ARG_WITH([linux-kernel-build],
205 [AS_HELP_STRING([--with-linux-kernel-build=path],
206 [use the kernel build found at path(optional, defaults to
207 /usr/src/linux-2.4, then /usr/src/linux)])])
208 AC_ARG_WITH([bsd-kernel-headers],
209 [AS_HELP_STRING([--with-bsd-kernel-headers=path],
210 [use the kernel headers found at path (optional, defaults to
212 AC_ARG_WITH([bsd-kernel-build],
213 [AS_HELP_STRING([--with-bsd-kernel-build=path],
214 [use the kernel build found at path (optional, defaults to
215 KSRC/i386/compile/GENERIC)])])
216 AC_ARG_WITH([linux-kernel-packaging],
217 [AS_HELP_STRING([--with-linux-kernel-packaging],
218 [use standard naming conventions to aid Linux kernel build packaging
219 (disables MPS, sets the kernel module name to openafs.ko, and
220 installs kernel modules into the standard Linux location)])],
221 [AC_SUBST(LINUX_KERNEL_PACKAGING, "yes")
222 AC_SUBST(LINUX_LIBAFS_NAME, "openafs")],
223 [AC_SUBST(LINUX_LIBAFS_NAME, "libafs")])
224 AC_ARG_ENABLE([kernel-module],
225 [AS_HELP_STRING([--disable-kernel-module],
226 [disable compilation of the kernel module (defaults to enabled)])],
228 [enable_kernel_module="yes"])
229 AC_ARG_ENABLE([redhat-buildsys],
230 [AS_HELP_STRING([--enable-redhat-buildsys],
231 [enable compilation of the redhat build system kernel (defaults to
234 [enable_redhat_buildsys="no"])
236 dnl Installation locations.
237 AC_ARG_ENABLE([transarc-paths],
238 [AS_HELP_STRING([--enable-transarc-paths],
239 [use Transarc style paths like /usr/afs and /usr/vice])],
241 [enable_transarc_paths="no"])
243 dnl Optimization and debugging flags.
244 AC_ARG_ENABLE([strip-binaries],
245 [AS_HELP_STRING([--disable-strip-binaries],
246 [disable stripping of symbol information from binaries (defaults to
249 [enable_strip_binaries="maybe"])
250 AC_ARG_ENABLE([debug],
251 [AS_HELP_STRING([--enable-debug],
252 [enable compilation of the user space code with debugging information
253 (defaults to disabled)])],
256 AC_ARG_ENABLE([optimize],
257 [AS_HELP_STRING([--disable-optimize],
258 [disable optimization for compilation of the user space code (defaults
261 [enable_optimize="yes"])
262 AC_ARG_ENABLE([warnings],
263 [AS_HELP_STRING([--enable-warnings],
264 [enable compilation warnings when building with gcc (defaults to
267 [enable_warnings="no"])
268 AC_ARG_ENABLE([debug-kernel],
269 [AS_HELP_STRING([--enable-debug-kernel],
270 [enable compilation of the kernel module with debugging information
271 (defaults to disabled)])],
273 [enable_debug_kernel="no"])
274 AC_ARG_ENABLE([optimize-kernel],
275 [AS_HELP_STRING([--disable-optimize-kernel],
276 [disable compilation of the kernel module with optimization (defaults
277 based on platform)])],
279 [enable_optimize_kernel="yes"])
280 AC_ARG_ENABLE([debug-lwp],
281 [AS_HELP_STRING([--enable-debug-lwp],
282 [enable compilation of the LWP code with debugging information
283 (defaults to disabled)])],
285 [enable_debug_lwp="no"])
286 AC_ARG_ENABLE([optimize-lwp],
287 [AS_HELP_STRING([--disable-optimize-lwp],
288 [disable optimization for compilation of the LWP code (defaults to
291 [enable_optimize_lwp="yes"])
292 AC_ARG_ENABLE([debug-pam],
293 [AS_HELP_STRING([--enable-debug-pam],
294 [enable compilation of the PAM code with debugging information
295 (defaults to disabled)])],
297 [enable_debug_pam="no"])
298 AC_ARG_ENABLE([optimize-pam],
299 [AS_HELP_STRING([--disable-optimize-pam],
300 [disable optimization for compilation of the PAM code (defaults to
303 [enable_optimize_pam="yes"])
308 dnl weird ass systems
313 dnl Various compiler setup.
317 COMPILER_HAS_FUNCTION_MACRO
319 dnl Checks for programs.
326 OPENAFS_CHECK_BIGENDIAN
328 AC_MSG_CHECKING(your OS)
334 if test "x$enable_redhat_buildsys" = "xyes"; then
335 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
337 if test "x$enable_kernel_module" = "xyes"; then
338 if test "x$with_linux_kernel_headers" != "x"; then
339 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
341 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/source"
342 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
343 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
345 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
346 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
348 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
349 LINUX_KERNEL_PATH="/usr/src/linux"
352 if test "x$with_linux_kernel_build" != "x"; then
353 LINUX_KERNEL_BUILD="$with_linux_kernel_build"
355 LINUX_KERNEL_BUILD=$LINUX_KERNEL_PATH
357 if test -f "$LINUX_KERNEL_BUILD/include/linux/utsrelease.h"; then
358 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
359 LINUX_VERSION="$linux_kvers"
361 if test -f "$LINUX_KERNEL_BUILD/include/linux/version.h"; then
362 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
363 if test "x$linux_kvers" = "x"; then
364 if test -f "$LINUX_KERNEL_BUILD/include/linux/version-up.h"; then
365 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
366 if test "x$linux_kvers" = "x"; then
368 AC_MSG_ERROR(Linux headers lack version definition [2])
371 LINUX_VERSION="$linux_kvers"
374 AC_MSG_ERROR(Linux headers lack version definition)
378 LINUX_VERSION="$linux_kvers"
381 enable_kernel_module="no"
384 if test ! -f "$LINUX_KERNEL_BUILD/include/linux/autoconf.h"; then
385 enable_kernel_module="no"
387 if test "x$enable_kernel_module" = "xno"; then
388 if test "x$with_linux_kernel_headers" != "x"; then
389 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
392 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
395 dnl do we need to determine SUBARCH from autoconf.h
399 if test "x$enable_kernel_module" = "xyes"; then
400 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
401 if test "x${AFS_SYSKVERS}" = "x"; then
402 AC_MSG_ERROR(Couldn't guess your Linux version [2])
409 SOLARIS_UFSVFS_HAS_DQRWLOCK
410 SOLARIS_PROC_HAS_P_COREFILE
411 SOLARIS_FS_HAS_FS_ROLLED
415 enable_kernel_module=no
421 if test -f "/usr/old/usr/include/ndir.h"; then
422 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
426 if test -d /usr/include/sys/SN/SN1; then
427 IRIX_BUILD_IP35="IP35"
434 AC_MSG_RESULT(rs_aix)
438 AC_MSG_RESULT(alpha_dux)
439 if test "x$enable_kernel_module" = "xyes"; then
440 if test "x$with_dux_kernel_headers" != "x"; then
441 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
443 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
446 if test "$HEADER_RT" = "*" ; then
447 AC_MSG_ERROR([Need a configured kernel directory])
449 AC_SUBST([HEADER_RT])
453 AC_MSG_RESULT(ppc_darwin)
457 AC_MSG_RESULT(x86_darwin)
461 AC_MSG_RESULT(i386_fbsd)
469 AC_MSG_RESULT(i386_obsd)
472 AC_MSG_RESULT($system)
476 if test "x$with_afs_sysname" != "x"; then
477 AFS_SYSNAME="$with_afs_sysname"
479 AC_MSG_CHECKING(your AFS sysname)
485 AFS_SYSNAME="i386_obsd${vM}${vm}"
487 sparc64-*-openbsd?.?)
491 AFS_SYSNAME="sparc64_obsd${vM}${vm}"
497 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
500 AFS_PARAM_COMMON=param.nbsd15.h
501 AFS_SYSNAME="i386_nbsd15"
504 AFS_PARAM_COMMON=param.nbsd15.h
505 AFS_SYSNAME="alpha_nbsd15"
507 i?86-*-netbsd*1.6[[M-Z]]*)
508 AFS_PARAM_COMMON=param.nbsd20.h
509 AFS_SYSNAME="i386_nbsd20"
511 powerpc-*-netbsd*1.6[[M-Z]]*)
512 AFS_PARAM_COMMON=param.nbsd20.h
513 AFS_SYSNAME="ppc_nbsd20"
516 AFS_PARAM_COMMON=param.nbsd20.h
517 AFS_SYSNAME="i386_nbsd20"
520 AFS_PARAM_COMMON=param.nbsd20.h
521 AFS_SYSNAME="amd64_nbsd20"
523 x86_64-*-netbsd*3.[0-8]*)
524 AFS_PARAM_COMMON=param.nbsd30.h
525 AFS_SYSNAME="amd64_nbsd30"
527 x86_64-*-netbsd*4.[0-8]*)
528 AFS_PARAM_COMMON=param.nbsd40.h
529 AFS_SYSNAME="amd64_nbsd40"
531 powerpc-*-netbsd*2.0*)
532 AFS_PARAM_COMMON=param.nbsd20.h
533 AFS_SYSNAME="ppc_nbsd20"
536 AFS_PARAM_COMMON=param.nbsd16.h
537 AFS_SYSNAME="i386_nbsd16"
540 AFS_PARAM_COMMON=param.nbsd16.h
541 AFS_SYSNAME="alpha_nbsd16"
543 powerpc-*-netbsd*1.6*)
544 AFS_PARAM_COMMON=param.nbsd16.h
545 AFS_SYSNAME="ppc_nbsd16"
548 AFS_PARAM_COMMON=param.nbsd21.h
549 AFS_SYSNAME="i386_nbsd21"
552 AFS_PARAM_COMMON=param.nbsd30.h
553 AFS_SYSNAME="i386_nbsd30"
555 i?86-*-netbsd*3.[[0-8]]*)
556 AFS_PARAM_COMMON=param.nbsd30.h
557 AFS_SYSNAME="i386_nbsd30"
560 AFS_PARAM_COMMON=param.nbsd30.h
561 AFS_SYSNAME="i386_nbsd30"
563 i?86-*-netbsd*4.[[0-8]]*)
564 AFS_PARAM_COMMON=param.nbsd40.h
565 AFS_SYSNAME="i386_nbsd40"
568 AFS_PARAM_COMMON=param.nbsd40.h
569 AFS_SYSNAME="i386_nbsd40"
572 AFS_SYSNAME="hp_ux110"
575 AFS_SYSNAME="hp_ux11i"
578 AFS_SYSNAME="hp_ux1123"
581 AFS_SYSNAME="ia64_hpux1122"
584 AFS_SYSNAME="ia64_hpux1123"
587 AFS_SYSNAME="hp_ux102"
589 powerpc-apple-darwin1.2*)
590 AFS_SYSNAME="ppc_darwin_12"
592 powerpc-apple-darwin1.3*)
593 AFS_SYSNAME="ppc_darwin_13"
595 powerpc-apple-darwin1.4*)
596 AFS_SYSNAME="ppc_darwin_14"
598 powerpc-apple-darwin5.1*)
599 AFS_SYSNAME="ppc_darwin_14"
601 powerpc-apple-darwin5.2*)
602 AFS_SYSNAME="ppc_darwin_14"
604 powerpc-apple-darwin5.3*)
605 AFS_SYSNAME="ppc_darwin_14"
607 powerpc-apple-darwin5.4*)
608 AFS_SYSNAME="ppc_darwin_14"
610 powerpc-apple-darwin5.5*)
611 AFS_SYSNAME="ppc_darwin_14"
613 powerpc-apple-darwin6.0*)
614 AFS_SYSNAME="ppc_darwin_60"
616 powerpc-apple-darwin6.1*)
617 AFS_SYSNAME="ppc_darwin_60"
619 powerpc-apple-darwin6.2*)
620 AFS_SYSNAME="ppc_darwin_60"
622 powerpc-apple-darwin6.3*)
623 AFS_SYSNAME="ppc_darwin_60"
625 powerpc-apple-darwin6.4*)
626 AFS_SYSNAME="ppc_darwin_60"
628 powerpc-apple-darwin6.5*)
629 AFS_SYSNAME="ppc_darwin_60"
631 powerpc-apple-darwin7.0*)
632 AFS_SYSNAME="ppc_darwin_70"
634 powerpc-apple-darwin7.1*)
635 AFS_SYSNAME="ppc_darwin_70"
637 powerpc-apple-darwin7.2*)
638 AFS_SYSNAME="ppc_darwin_70"
640 powerpc-apple-darwin7.3*)
641 AFS_SYSNAME="ppc_darwin_70"
643 powerpc-apple-darwin7.4*)
644 AFS_SYSNAME="ppc_darwin_70"
646 powerpc-apple-darwin7.5*)
647 AFS_SYSNAME="ppc_darwin_70"
649 powerpc-apple-darwin8.0*)
650 AFS_SYSNAME="ppc_darwin_80"
652 powerpc-apple-darwin8.*)
653 AFS_SYSNAME="ppc_darwin_80"
655 i386-apple-darwin8.*)
656 AFS_SYSNAME="x86_darwin_80"
658 powerpc-apple-darwin9.*)
659 AFS_SYSNAME="ppc_darwin_90"
661 i386-apple-darwin9.*)
662 AFS_SYSNAME="x86_darwin_90"
664 sparc-sun-solaris2.5*)
665 AFS_SYSNAME="sun4x_55"
668 sparc-sun-solaris2.6)
669 AFS_SYSNAME="sun4x_56"
671 sparc-sun-solaris2.7)
672 AFS_SYSNAME="sun4x_57"
674 sparc-sun-solaris2.8)
675 AFS_SYSNAME="sun4x_58"
677 sparc-sun-solaris2.9)
678 AFS_SYSNAME="sun4x_59"
680 sparc-sun-solaris2.10)
681 AFS_SYSNAME="sun4x_510"
683 sparc-sun-solaris2.11)
684 AFS_SYSNAME="sun4x_511"
687 AFS_SYSNAME="sun4_413"
691 AFS_SYSNAME="sunx86_57"
694 AFS_SYSNAME="sunx86_58"
697 AFS_SYSNAME="sunx86_59"
700 AFS_SYSNAME="sunx86_510"
703 AFS_SYSNAME="sunx86_511"
706 AFS_SYSNAME="alpha_dux40"
709 AFS_SYSNAME="alpha_dux50"
712 AFS_SYSNAME="alpha_dux51"
718 AFS_SYSNAME="ia64_linuxXX"
721 AFS_SYSNAME="`/bin/arch`_linuxXX"
724 AFS_SYSNAME="ppc64_linuxXX"
727 AFS_SYSNAME="alpha_linux_XX"
730 AFS_SYSNAME="s390_linuxXX"
733 AFS_SYSNAME="s390x_linuxXX"
736 AFS_SYSNAME="`/bin/arch`_linuxXX"
739 AFS_SYSNAME="sparc64_linuxXX"
742 AFS_SYSNAME="i386_linuxXX"
744 parisc-*-linux-gnu|hppa-*-linux-gnu)
745 AFS_SYSNAME="parisc_linuxXX"
749 AFS_SYSNAME="rs_aix42"
753 AFS_SYSNAME="rs_aix42"
757 AFS_SYSNAME="rs_aix51"
761 AFS_SYSNAME="rs_aix52"
765 AFS_SYSNAME="rs_aix53"
769 AFS_SYSNAME="rs_aix61"
773 AFS_SYSNAME="amd64_linuxXX"
777 AC_MSG_ERROR(An AFS sysname is required)
782 *_linux* | *_umlinux*)
783 if test "x${AFS_SYSKVERS}" = "x"; then
784 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
786 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
787 AFS_SYSNAME="$_AFS_SYSNAME"
788 save_CPPFLAGS="$CPPFLAGS"
789 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
791 [#include <linux/autoconf.h>],
792 [#ifndef CONFIG_USERMODE
795 ac_cv_linux_is_uml=yes,)
796 if test "${ac_cv_linux_is_uml}" = yes; then
797 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
799 CPPFLAGS="$save_CPPFLAGS"
800 AFS_SYSNAME="$_AFS_SYSNAME"
803 AC_MSG_RESULT($AFS_SYSNAME)
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_KMEM_CACHE_T
842 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
843 LINUX_D_PATH_TAKES_STRUCT_PATH
845 LINUX_CONFIG_H_EXISTS
846 LINUX_COMPLETION_H_EXISTS
847 LINUX_SEMAPHORE_H_EXISTS
848 LINUX_EXPORTFS_H_EXISTS
849 LINUX_DEFINES_FOR_EACH_PROCESS
850 LINUX_DEFINES_PREV_TASK
851 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
852 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
853 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
854 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
855 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
856 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
857 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
858 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
859 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
860 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
861 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
862 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
863 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
864 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
865 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
866 LINUX_INODE_SETATTR_RETURN_TYPE
867 LINUX_WRITE_INODE_RETURN_TYPE
868 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
869 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
870 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
871 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
872 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
873 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
874 LINUX_AOP_WRITEBACK_CONTROL
875 LINUX_FS_STRUCT_FOP_HAS_FLOCK
876 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
877 LINUX_FS_STRUCT_FOP_HAS_SPLICE
878 LINUX_KERNEL_LINUX_SYSCALL_H
879 LINUX_KERNEL_LINUX_SEQ_FILE_H
880 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
882 LINUX_KERNEL_SOCK_CREATE
883 LINUX_KERNEL_PAGE_FOLLOW_LINK
884 LINUX_KERNEL_HLIST_UNHASHED
885 LINUX_KEY_TYPE_H_EXISTS
887 LINUX_RECALC_SIGPENDING_ARG_TYPE
888 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
889 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
890 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
891 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
892 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
893 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
894 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
895 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
896 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
897 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
898 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
899 LINUX_EXPORTS_TASKLIST_LOCK
900 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
901 LINUX_STATFS_TAKES_DENTRY
902 LINUX_FREEZER_H_EXISTS
903 LINUX_HAVE_SVC_ADDR_IN
904 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
905 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
908 LINUX_LINUX_KEYRING_SUPPORT
909 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
911 LINUX_GENERIC_FILE_AIO_READ
912 LINUX_INIT_WORK_HAS_DATA
913 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
914 LINUX_SYSCTL_TABLE_CHECKING
916 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
917 LINUX_EXPORTS_INIT_MM
918 LINUX_EXPORTS_SYS_CHDIR
919 LINUX_EXPORTS_SYS_CLOSE
920 LINUX_EXPORTS_SYS_OPEN
921 LINUX_EXPORTS_SYS_WAIT4
922 LINUX_EXPORTS_RCU_READ_LOCK
923 if test "x$with_linux_kernel_packaging" = "xno" ; then
928 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
929 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
930 ac_cv_linux_exports_sys_call_table=no
931 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
932 ac_cv_linux_exports_ia32_sys_call_table=yes
935 LINUX_EXPORTS_KALLSYMS_ADDRESS
936 LINUX_EXPORTS_KALLSYMS_SYMBOL
937 LINUX_EXPORTS_SYS_CALL_TABLE
938 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
939 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
940 linux_syscall_method=none
941 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
942 linux_syscall_method=scan
943 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
944 linux_syscall_method=scan_with_kallsyms_address
947 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
948 linux_syscall_method=kallsyms_symbol
950 if test "x$linux_syscall_method" = "xnone"; then
951 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
952 linux_syscall_method=scan
956 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
957 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
959 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
960 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
962 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
963 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
965 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
966 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
968 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
969 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
971 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
972 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
974 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
975 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
977 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
978 AC_DEFINE(EXPORTED_SYS_CALL_TABLE, 1, [define if your linux kernel exports sys_call_table])
980 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
981 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE, 1, [define if your linux kernel exports ia32_sys_call_table])
983 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
984 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL, 1, [define if your linux kernel exports kallsyms])
986 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
987 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS, 1, [define if your linux kernel exports kallsyms address])
989 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
990 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
992 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
993 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
995 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
996 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
998 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
999 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
1001 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
1002 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
1004 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
1005 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
1007 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
1008 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
1010 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
1011 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
1013 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
1014 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
1016 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
1017 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
1019 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
1020 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
1022 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
1023 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
1025 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
1026 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
1028 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
1029 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
1031 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
1032 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
1034 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
1035 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
1037 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
1038 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
1040 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
1041 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
1043 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
1044 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
1046 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
1047 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
1049 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
1050 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
1052 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
1053 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
1055 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
1056 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
1058 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
1059 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
1061 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
1062 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
1064 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
1065 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
1067 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
1068 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
1070 if test "x$ac_linux_syscall" = "xyes" ; then
1071 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
1073 if test "x$ac_linux_seq_file" = "xyes" ; then
1074 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
1076 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
1077 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
1079 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
1080 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
1082 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
1083 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
1085 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
1086 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
1088 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
1089 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
1091 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
1092 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
1094 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
1095 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
1097 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
1098 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
1100 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
1101 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
1103 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
1104 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
1106 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
1107 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
1109 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
1110 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
1112 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
1113 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
1115 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
1116 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
1118 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
1119 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
1121 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1122 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1124 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1125 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1127 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1128 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1130 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1131 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1133 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1134 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1136 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1137 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1139 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1140 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1142 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1143 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1145 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1146 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1148 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1149 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1151 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1152 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1154 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1155 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1157 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1158 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1160 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1161 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1163 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1164 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1166 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1167 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1169 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1170 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1172 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1173 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1175 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1176 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1178 if test "$enable_linux_fh" = "yes"; then
1179 AC_DEFINE(LINUX_USE_FH, 1, [define if you want to open cache files by file handle instead of inode numbers])
1181 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1182 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1184 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1186 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1187 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1193 case $AFS_SYSNAME in
1195 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1196 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1197 dnl the test below fails on darwin, even if the CPPFLAGS below
1198 dnl are added. the headers from Kernel.framework must be used
1199 dnl when KERNEL is defined.
1201 dnl really, such a thing isn't guaranteed to work on any
1202 dnl platform until the kernel cflags from MakefileProto are
1203 dnl known to configure
1204 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1207 AC_MSG_CHECKING(for definition of struct buf)
1208 dnl save_CPPFLAGS="$CPPFLAGS"
1209 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1210 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1211 ac_cv_have_struct_buf=no
1213 [#include <sys/buf.h>],
1215 printf("%d\n", sizeof(x));],
1216 ac_cv_have_struct_buf=yes,)
1219 dnl CPPFLAGS="$save_CPPFLAGS"
1220 AC_MSG_RESULT($ac_cv_have_struct_buf)
1221 if test "$ac_cv_have_struct_buf" = yes; then
1222 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1228 AC_CACHE_VAL(ac_cv_sockaddr_len,
1230 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1231 AC_TRY_COMPILE( [#include <sys/types.h>
1232 #include <sys/socket.h>],
1233 [struct sockaddr *a;
1234 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1235 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1236 if test "$ac_cv_sockaddr_len" = "yes"; then
1237 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1239 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1240 echo Skipping library tests because they confuse Irix.
1242 AC_CHECK_FUNCS(socket)
1244 if test "$ac_cv_func_socket" = no; then
1245 for lib in socket inet; do
1246 if test "$HAVE_SOCKET" != 1; then
1247 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1252 AC_CHECK_FUNCS(connect)
1254 if test "$ac_cv_func_connect" = no; then
1256 if test "$HAVE_CONNECT" != 1; then
1257 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1262 AC_CHECK_FUNCS(gethostbyname)
1263 if test "$ac_cv_func_gethostbyname" = no; then
1264 for lib in dns nsl resolv; do
1265 if test "$HAVE_GETHOSTBYNAME" != 1; then
1266 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1271 dnl darwin wants it, aix hates it
1272 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1276 #include <sys/types.h>
1277 #include <sys/socket.h>
1278 #include <netinet/in.h>
1279 #include <arpa/inet.h>
1280 #include <arpa/nameser.h>
1281 #include <arpa/nameser_compat.h>
1283 ], [static int i; i = 0;],
1285 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H, 1, [define if arpa/nameser_compat.h exists])],
1289 openafs_save_libs="$LIBS"
1290 AC_MSG_CHECKING([for res_search])
1293 if test "$ac_cv_func_res_search" = no; then
1294 for lib in dns nsl resolv; do
1295 if test "$ac_cv_func_res_search" != yes; then
1298 LIBS="$openafs_save_libs"
1301 if test "$ac_cv_func_res_search" = yes; then
1302 LIB_res_search="-l$lib"
1303 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1304 AC_MSG_RESULT([yes, in lib$lib])
1309 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1315 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1317 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1318 AC_TRY_COMPILE( [#include <sys/types.h>
1319 #include <sys/socket.h>
1320 #include <netinet/in.h>],
1322 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1323 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1324 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1325 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1329 if test "x$MKAFS_OSTYPE" = OBSD; then
1330 PTHREAD_LIBS="-pthread"
1332 if test "x$PTHREAD_LIBS" = xerror; then
1333 AC_CHECK_LIB(pthread, pthread_attr_init,
1334 PTHREAD_LIBS="-lpthread")
1336 if test "x$PTHREAD_LIBS" = xerror; then
1337 AC_CHECK_LIB(pthreads, pthread_attr_init,
1338 PTHREAD_LIBS="-lpthreads")
1340 if test "x$PTHREAD_LIBS" = xerror; then
1341 AC_CHECK_LIB(c_r, pthread_attr_init,
1342 PTHREAD_LIBS="-lc_r")
1344 if test "x$PTHREAD_LIBS" = xerror; then
1345 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1347 if test "x$PTHREAD_LIBS" = xerror; then
1348 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1349 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1350 PTHREAD_LIBS="-lpthread")
1352 if test "x$PTHREAD_LIBS" = xerror; then
1353 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1355 AC_SUBST(PTHREAD_LIBS)
1358 if test "$enable_obsolete" = "yes"; then
1362 HOST_CPU="$host_cpu"
1364 if test "x$with_bsd_kernel_headers" != "x"; then
1365 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1367 BSD_KERNEL_PATH="/usr/src/sys"
1370 if test "x$with_bsd_kernel_build" != "x"; then
1371 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1373 case $AFS_SYSNAME in
1375 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1378 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1384 if test "$enable_supergroups" = "yes"; then
1385 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1388 if test "$enable_fast_restart" = "yes"; then
1389 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1392 if test "$enable_bitmap_later" = "yes"; then
1393 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1396 if test "$enable_demand_attach_fs" = "yes"; then
1397 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1402 AC_SUBST(DEMAND_ATTACH)
1404 if test "$enable_disconnected" = "yes"; then
1405 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1408 if test "$enable_unix_sockets" = "yes"; then
1409 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1410 USE_UNIX_SOCKETS="yes"
1412 USE_UNIX_SOCKETS="no"
1414 AC_SUBST(USE_UNIX_SOCKETS)
1416 if test "$enable_fast_restart" = "yes" &&
1417 test "$enable_demand_attach_fs" = "yes" ; then
1418 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.])
1422 if test "$enable_full_vos_listvol_switch" = "yes"; then
1423 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1426 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1427 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1428 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1432 if test "$enable_bos_restricted_mode" = "yes"; then
1433 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1436 if test "$enable_bos_new_config" = "yes"; then
1437 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1440 if test "$enable_largefile_fileserver" = "yes"; then
1441 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1444 if test "$enable_cache_bypass" = "yes"; then
1445 AC_DEFINE(AFS_CACHE_BYPASS, 1, [define to activate cache bypassing Unix client])
1448 if test "$enable_namei_fileserver" = "yes"; then
1449 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1451 if test "$enable_namei_fileserver" = "default"; then
1454 AC_MSG_WARN(Some Solaris 10 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1455 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1458 AC_MSG_WARN(Solaris 11 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1459 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1467 if test "$enable_afsdb" = "yes"; then
1468 LIB_AFSDB="$LIB_res_search"
1469 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1472 dnl check for tivoli
1473 AC_MSG_CHECKING(for tivoli tsm butc support)
1475 if test "$enable_tivoli_tsm" = "yes"; then
1476 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1477 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1478 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1479 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1481 if test -r "$XBSADIR3/dsmapifp.h"; then
1482 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1484 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1485 elif test -r "$XBSADIR4/dsmapifp.h"; then
1486 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1488 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1489 elif test -r "$XBSADIR1/xbsa.h"; then
1490 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1492 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1493 elif test -r "$XBSADIR2/xbsa.h"; then
1494 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1496 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1498 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1503 AC_SUBST(XBSA_CFLAGS)
1504 AC_SUBST(XBSA_XLIBS)
1506 dnl checks for header files.
1510 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1511 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1512 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1513 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1514 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1515 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1516 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1518 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1525 if test "$enable_login" = yes; then
1530 AC_SUBST(BUILD_LOGIN)
1532 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1533 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1534 AC_CHECK_FUNCS(setvbuf vsyslog)
1535 AC_FUNC_SETVBUF_REVERSED
1536 AC_CHECK_FUNCS(regcomp regexec regerror)
1537 AC_MSG_CHECKING([for POSIX regex library])
1538 if test "$ac_cv_header_regex_h" = "yes" && \
1539 test "$ac_cv_func_regcomp" = "yes" && \
1540 test "$ac_cv_func_regexec" = "yes" && \
1541 test "$ac_cv_func_regerror" = "yes"; then
1542 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1548 AC_CHECK_TYPE(ssize_t, int)
1549 AC_SIZEOF_TYPE(long)
1551 AC_CHECK_FUNCS(timegm)
1552 AC_CHECK_FUNCS(daemon)
1554 dnl Directory PATH handling
1555 if test "x$enable_transarc_paths" = "xyes" ; then
1556 afsconfdir=${afsconfdir=/usr/afs/etc}
1557 viceetcdir=${viceetcdir=/usr/vice/etc}
1558 afskerneldir=${afskerneldir=${viceetcdir}}
1559 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1560 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1561 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1562 afsdbdir=${afsdbdir=/usr/afs/db}
1563 afslogsdir=${afslogsdir=/usr/afs/logs}
1564 afslocaldir=${afslocaldir=/usr/afs/local}
1565 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1566 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1568 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1569 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1570 afskerneldir=${afskerneldir='${libdir}/openafs'}
1571 afssrvbindir=${afssrvbindir='${bindir}'}
1572 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1573 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1574 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1575 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1576 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1577 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1578 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1580 AC_SUBST(afsconfdir)
1581 AC_SUBST(viceetcdir)
1582 AC_SUBST(afskerneldir)
1583 AC_SUBST(afssrvbindir)
1584 AC_SUBST(afssrvsbindir)
1585 AC_SUBST(afssrvlibexecdir)
1587 AC_SUBST(afslogsdir)
1588 AC_SUBST(afslocaldir)
1589 AC_SUBST(afsbackupdir)
1590 AC_SUBST(afsbosconfigdir)
1592 if test "x$enable_kernel_module" = "xyes"; then
1593 ENABLE_KERNEL_MODULE=libafs
1596 if test "x$enable_pthreaded_ubik" = "xyes"; then
1597 ENABLE_PTHREADED_UBIK=yes
1600 AC_SUBST(AFS_SYSNAME)
1601 AC_SUBST(AFS_PARAM_COMMON)
1602 AC_SUBST(ENABLE_KERNEL_MODULE)
1603 AC_SUBST(ENABLE_PTHREADED_UBIK)
1605 AC_SUBST(LINUX_KERNEL_PATH)
1606 AC_SUBST(LINUX_KERNEL_BUILD)
1608 AC_SUBST(BSD_KERNEL_PATH)
1609 AC_SUBST(BSD_KERNEL_BUILD)
1610 AC_SUBST(LINUX_VERSION)
1611 AC_SUBST(MKAFS_OSTYPE)
1612 AC_SUBST(TOP_OBJDIR)
1613 AC_SUBST(TOP_SRCDIR)
1614 AC_SUBST(TOP_INCDIR)
1615 AC_SUBST(TOP_LIBDIR)
1617 AC_SUBST(WITH_OBSOLETE)
1618 AC_SUBST(DARWIN_INFOFILE)
1619 AC_SUBST(IRIX_BUILD_IP35)
1624 TOP_SRCDIR="${srcdir}/src"
1626 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1632 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1636 TOP_OBJDIR="${SRCDIR_PARENT}"
1637 TOP_INCDIR="${SRCDIR_PARENT}/include"
1638 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1639 if test "${DEST}x" = "x"; then
1640 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1643 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1644 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1645 AC_SUBST(HELPER_SPLINT)
1646 AC_SUBST(HELPER_SPLINTCFG)
1648 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs