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 #undef STRUCT_SOCKADDR_HAS_SA_LEN
11 #if !defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
12 # if ENDIANESS_IN_SYS_PARAM_H
14 # include <sys/types.h>
15 # include <sys/param.h>
16 # if BYTE_ORDER == BIG_ENDIAN
17 # define WORDS_BIGENDIAN 1
20 # if defined(AUTOCONF_FOUND_BIGENDIAN)
21 # define WORDS_BIGENDIAN 1
23 # undef WORDS_BIGENDIAN
27 # if defined(AUTOCONF_FOUND_BIGENDIAN)
28 # define WORDS_BIGENDIAN 1
30 # undef WORDS_BIGENDIAN
34 # if defined(__BIG_ENDIAN__)
35 # define WORDS_BIGENDIAN 1
37 # undef WORDS_BIGENDIAN
42 * Always use 64-bit file offsets for UKERNEL code. Needed for UKERNEL stuff to
43 * play nice with some other interfaces like FUSE. We technically only would
44 * need to define this when building for such interfaces, but set it always to
45 * try and reduce potential confusion.
47 #define _FILE_OFFSET_BITS 64
48 #define AFS_CACHE_VNODE_PATH
54 #undef DEFINED_FOR_EACH_PROCESS
55 #undef DEFINED_PREV_TASK
56 #undef EXPORTED_KALLSYMS_SYMBOL
57 #undef EXPORTED_SYS_CALL_TABLE
58 #undef EXPORTED_IA32_SYS_CALL_TABLE
59 #undef EXPORTED_TASKLIST_LOCK
60 #undef INODE_SETATTR_NOT_VOID
61 #undef IRIX_HAS_MEM_FUNCS
62 #undef RECALC_SIGPENDING_TAKES_VOID
63 #undef STRUCT_FS_HAS_FS_ROLLED
65 #undef HAVE_ARPA_NAMESER_COMPAT_H
66 /* glue for RedHat kernel bug */
67 #undef ENABLE_REDHAT_BUILDSYS
68 #if defined(ENABLE_REDHAT_BUILDSYS) && defined(KERNEL) && defined(REDHAT_FIX)
69 #include "redhat-fix.h"
78 AC_ARG_WITH([afs-sysname],
79 [AS_HELP_STRING([--with-afs-sysname=sys], [use sys for the afs sysname])])
81 dnl General feature options.
83 [AS_HELP_STRING([--disable-pam], [disable PAM support])],
86 AC_ARG_ENABLE([namei-fileserver],
87 [AS_HELP_STRING([--enable-namei-fileserver],
88 [force compilation of namei fileserver in preference to inode
91 [enable_namei_fileserver="default"])
92 AC_ARG_ENABLE([cache-bypass],
93 [AS_HELP_STRING([--enable-cache-bypass],
94 [enable client support for cache bypass])],
96 [enable_cache_bypass="no"])
97 AC_ARG_ENABLE([supergroups],
98 [AS_HELP_STRING([--enable-supergroups],
99 [enable support for nested pts groups])],
101 [enable_supergroups="no"])
102 AC_ARG_ENABLE([fast-restart],
103 [AS_HELP_STRING([--enable-fast-restart],
104 [enable fast startup of file server without salvaging])],
106 [enable_fast_restart="no"])
107 AC_ARG_ENABLE([bitmap-later],
108 [AS_HELP_STRING([--enable-bitmap-later],
109 [enable fast startup of file server by not reading bitmap till
112 [enable_bitmap_later="no"])
113 AC_ARG_ENABLE([demand-attach-fs],
114 [AS_HELP_STRING([--enable-demand-attach-fs],
115 [enable Demand Attach Fileserver (please see documentation)])],
117 [enable_demand_attach_fs="no"])
118 AC_ARG_ENABLE([disconnected],
119 [AS_HELP_STRING([--enable-disconnected],
120 [enable disconnected support in cache manager (experimental)])],
122 [enable_disconnected="no"])
123 AC_ARG_ENABLE([unix-sockets],
124 [AS_HELP_STRING([--enable-unix-sockets],
125 [enable use of unix domain sockets for fssync])],
127 [enable_unix_sockets="yes"])
128 AC_ARG_ENABLE([icmp-pmtu-discovery],
129 [AS_HELP_STRING([--enable-icmp-pmtu-discovery],
130 [enable path MTU discovery by decoding ICMP unreachable replies])],
132 [enable_icmp_pmtu_discovery="no"])
133 AC_ARG_ENABLE([tivoli-tsm],
134 [AS_HELP_STRING([--enable-tivoli-tsm],
135 [enable use of the Tivoli TSM API libraries for butc support])],
137 [enable_tivoli_tsm="no"])
138 AC_ARG_ENABLE([pthreaded-ubik],
139 [AS_HELP_STRING([--enable-pthreaded-ubik],
140 [enable installation of pthreaded ubik applications (defaults to
143 [enable_pthreaded_ubik="no"])
145 dnl Kernel module build options.
146 AC_ARG_WITH([dux-kernel-headers],
147 [AS_HELP_STRING([--with-dux-kernel-headers=path],
148 [use the kernel headers found at path (optional, defaults to first
149 match in /usr/sys)])])
150 AC_ARG_WITH([linux-kernel-headers],
151 [AS_HELP_STRING([--with-linux-kernel-headers=path],
152 [use the kernel headers found at path (optional, defaults to
153 /usr/src/linux-2.4, then /usr/src/linux)])])
154 AC_ARG_WITH([linux-kernel-build],
155 [AS_HELP_STRING([--with-linux-kernel-build=path],
156 [use the kernel build found at path(optional, defaults to
157 /usr/src/linux-2.4, then /usr/src/linux)])])
158 AC_ARG_WITH([bsd-kernel-headers],
159 [AS_HELP_STRING([--with-bsd-kernel-headers=path],
160 [use the kernel headers found at path (optional, defaults to
162 AC_ARG_WITH([bsd-kernel-build],
163 [AS_HELP_STRING([--with-bsd-kernel-build=path],
164 [use the kernel build found at path (optional, defaults to
165 KSRC/i386/compile/GENERIC)])])
166 AC_ARG_WITH([linux-kernel-packaging],
167 [AS_HELP_STRING([--with-linux-kernel-packaging],
168 [use standard naming conventions to aid Linux kernel build packaging
169 (disables MPS, sets the kernel module name to openafs.ko, and
170 installs kernel modules into the standard Linux location)])],
171 [AC_SUBST(LINUX_KERNEL_PACKAGING, "yes")
172 AC_SUBST(LINUX_LIBAFS_NAME, "openafs")],
173 [AC_SUBST(LINUX_LIBAFS_NAME, "libafs")])
174 AC_ARG_ENABLE([kernel-module],
175 [AS_HELP_STRING([--disable-kernel-module],
176 [disable compilation of the kernel module (defaults to enabled)])],
178 [enable_kernel_module="yes"])
179 AC_ARG_ENABLE([redhat-buildsys],
180 [AS_HELP_STRING([--enable-redhat-buildsys],
181 [enable compilation of the redhat build system kernel (defaults to
184 [enable_redhat_buildsys="no"])
186 dnl Installation locations.
187 AC_ARG_ENABLE([transarc-paths],
188 [AS_HELP_STRING([--enable-transarc-paths],
189 [use Transarc style paths like /usr/afs and /usr/vice])],
191 [enable_transarc_paths="no"])
193 dnl Optimization and debugging flags.
194 AC_ARG_ENABLE([strip-binaries],
195 [AS_HELP_STRING([--disable-strip-binaries],
196 [disable stripping of symbol information from binaries (defaults to
199 [enable_strip_binaries="maybe"])
200 AC_ARG_ENABLE([debug],
201 [AS_HELP_STRING([--enable-debug],
202 [enable compilation of the user space code with debugging information
203 (defaults to disabled)])],
206 AC_ARG_ENABLE([optimize],
207 [AS_HELP_STRING([--disable-optimize],
208 [disable optimization for compilation of the user space code (defaults
211 [enable_optimize="yes"])
212 AC_ARG_ENABLE([warnings],
213 [AS_HELP_STRING([--enable-warnings],
214 [enable compilation warnings when building with gcc (defaults to
217 [enable_warnings="no"])
218 AC_ARG_ENABLE([checking],
219 [AS_HELP_STRING([--enable-checking],
220 [turn compilation warnings into errors when building with gcc (defaults
222 [enable_checking="$enableval"],
223 [enable_checking="no"])
224 AC_ARG_ENABLE([debug-kernel],
225 [AS_HELP_STRING([--enable-debug-kernel],
226 [enable compilation of the kernel module with debugging information
227 (defaults to disabled)])],
229 [enable_debug_kernel="no"])
230 AC_ARG_ENABLE([optimize-kernel],
231 [AS_HELP_STRING([--disable-optimize-kernel],
232 [disable compilation of the kernel module with optimization (defaults
233 based on platform)])],
235 [enable_optimize_kernel="yes"])
236 AC_ARG_ENABLE([debug-lwp],
237 [AS_HELP_STRING([--enable-debug-lwp],
238 [enable compilation of the LWP code with debugging information
239 (defaults to disabled)])],
241 [enable_debug_lwp="no"])
242 AC_ARG_ENABLE([optimize-lwp],
243 [AS_HELP_STRING([--disable-optimize-lwp],
244 [disable optimization for compilation of the LWP code (defaults to
247 [enable_optimize_lwp="yes"])
248 AC_ARG_ENABLE([debug-pam],
249 [AS_HELP_STRING([--enable-debug-pam],
250 [enable compilation of the PAM code with debugging information
251 (defaults to disabled)])],
253 [enable_debug_pam="no"])
254 AC_ARG_ENABLE([optimize-pam],
255 [AS_HELP_STRING([--disable-optimize-pam],
256 [disable optimization for compilation of the PAM code (defaults to
259 [enable_optimize_pam="yes"])
260 AC_ARG_ENABLE([linux-syscall-probing],
261 [AS_HELP_STRING([--disable-linux-syscall-probing],
262 [disabling Linux syscall probing (defaults to enabled)])],
264 [AC_DEFINE(ENABLE_LINUX_SYSCALL_PROBING, 1,
265 [define to enable syscall table probes])])
268 AC_ARG_WITH([xslt-processor],
269 AS_HELP_STRING([--with-xslt-processor=ARG],
270 [which XSLT processor to use (possible choices are: libxslt, saxon, xalan-j, xsltproc)]),
274 AC_ARG_WITH([html-xsl],
275 AS_HELP_STRING([--with-html-xsl],
276 [build HTML documentation using Norman Walsh's DocBook XSL stylesheets (default is no; specify a path to chunk.xsl or docbook.xsl)]),
282 dnl weird ass systems
287 dnl Various compiler setup.
291 dnl Checks for programs.
298 OPENAFS_CHECK_BIGENDIAN
299 OPENAFS_PRINTF_TAKES_Z_LEN
301 AC_MSG_CHECKING(your OS)
307 if test "x$enable_redhat_buildsys" = "xyes"; then
308 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
310 if test "x$enable_kernel_module" = "xyes"; then
311 if test "x$with_linux_kernel_headers" != "x"; then
312 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
314 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/source"
315 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
316 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
318 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
319 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
321 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
322 LINUX_KERNEL_PATH="/usr/src/linux"
325 if test "x$with_linux_kernel_build" != "x"; then
326 LINUX_KERNEL_BUILD="$with_linux_kernel_build"
328 LINUX_KERNEL_BUILD=$LINUX_KERNEL_PATH
330 if test -f "$LINUX_KERNEL_BUILD/include/generated/utsrelease.h"; then
331 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/generated/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
332 LINUX_VERSION="$linux_kvers"
334 if test -f "$LINUX_KERNEL_BUILD/include/linux/utsrelease.h"; then
335 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
336 LINUX_VERSION="$linux_kvers"
338 if test -f "$LINUX_KERNEL_BUILD/include/linux/version.h"; then
339 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
340 if test "x$linux_kvers" = "x"; then
341 if test -f "$LINUX_KERNEL_BUILD/include/linux/version-up.h"; then
342 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
343 if test "x$linux_kvers" = "x"; then
344 AC_MSG_ERROR(Linux headers lack version definition [2])
347 LINUX_VERSION="$linux_kvers"
350 AC_MSG_ERROR(Linux headers lack version definition)
354 LINUX_VERSION="$linux_kvers"
357 enable_kernel_module="no"
361 if test ! -f "$LINUX_KERNEL_BUILD/include/generated/autoconf.h" &&
362 test ! -f "$LINUX_KERNEL_BUILD/include/linux/autoconf.h"; then
363 enable_kernel_module="no"
365 if test "x$enable_kernel_module" = "xno"; then
366 if test "x$with_linux_kernel_headers" != "x"; then
367 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
370 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
373 dnl do we need to determine SUBARCH from autoconf.h
377 if test "x$enable_kernel_module" = "xyes"; then
378 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
379 if test "x${AFS_SYSKVERS}" = "x"; then
380 AC_MSG_ERROR(Couldn't guess your Linux version [2])
387 AC_PATH_PROG(SOLARISCC, [cc], ,
388 [/opt/SUNWspro/bin:/opt/SunStudioExpress/bin])
389 SOLARIS_UFSVFS_HAS_DQRWLOCK
390 SOLARIS_FS_HAS_FS_ROLLED
391 SOLARIS_SOLOOKUP_TAKES_SOCKPARAMS
395 enable_kernel_module=no
401 if test -f "/usr/old/usr/include/ndir.h"; then
402 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
406 if test -d /usr/include/sys/SN/SN1; then
407 IRIX_BUILD_IP35="IP35"
414 AC_MSG_RESULT(rs_aix)
418 AC_MSG_RESULT(alpha_dux)
422 AC_MSG_RESULT(ppc_darwin)
426 AC_MSG_RESULT(x86_darwin)
430 AC_MSG_RESULT(i386_fbsd)
434 AC_MSG_RESULT(amd64_fbsd)
442 AC_MSG_RESULT(amd64_obsd)
446 AC_MSG_RESULT(i386_obsd)
450 AC_MSG_RESULT(i386_dfbsd)
453 AC_MSG_RESULT($system)
457 if test "x$with_afs_sysname" != "x"; then
458 AFS_SYSNAME="$with_afs_sysname"
460 AC_MSG_CHECKING(your AFS sysname)
466 AFS_SYSNAME="i386_obsd${vM}${vm}"
468 sparc64-*-openbsd?.?)
472 AFS_SYSNAME="sparc64_obsd${vM}${vm}"
478 AFS_SYSNAME="amd64_obsd${vM}${vm}"
484 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
490 AFS_SYSNAME="amd64_fbsd_${vM}${vm}"
492 i386-*-dragonfly2.2*)
493 AFS_SYSNAME="i386_dfbsd_23"
495 i386-*-dragonfly2.3*)
496 AFS_SYSNAME="i386_dfbsd_23"
499 AFS_SYSNAME="i386_nbsd15"
502 AFS_SYSNAME="alpha_nbsd15"
504 i?86-*-netbsd*1.6[[M-Z]]*)
505 AFS_SYSNAME="i386_nbsd20"
507 powerpc-*-netbsd*1.6[[M-Z]]*)
508 AFS_SYSNAME="ppc_nbsd20"
511 AFS_SYSNAME="i386_nbsd20"
514 AFS_SYSNAME="amd64_nbsd20"
516 x86_64-*-netbsd*3.[[0-8]]*)
517 # XXX AFS_PARAM_COMMON handled separately, redundant?
518 AFS_PARAM_COMMON=param.nbsd30.h
519 AFS_SYSNAME="amd64_nbsd30"
521 x86_64-*-netbsd*4.[[0-8]]*)
522 # XXX AFS_PARAM_COMMON handled separately, redundant?
523 AFS_PARAM_COMMON=param.nbsd40.h
524 AFS_SYSNAME="amd64_nbsd40"
526 powerpc-*-netbsd*2.0*)
527 AFS_SYSNAME="ppc_nbsd20"
530 AFS_SYSNAME="i386_nbsd16"
533 AFS_SYSNAME="alpha_nbsd16"
535 powerpc-*-netbsd*1.6*)
536 AFS_SYSNAME="ppc_nbsd16"
539 AFS_SYSNAME="i386_nbsd21"
542 AFS_SYSNAME="i386_nbsd30"
544 i?86-*-netbsd*3.[[0-8]]*)
545 AFS_SYSNAME="i386_nbsd30"
548 AFS_SYSNAME="i386_nbsd30"
550 i?86-*-netbsd*4.[[0-8]]*)
551 AFS_SYSNAME="i386_nbsd40"
554 AFS_SYSNAME="i386_nbsd40"
557 AFS_SYSNAME="hp_ux110"
560 AFS_SYSNAME="hp_ux11i"
563 AFS_SYSNAME="hp_ux1123"
566 AFS_SYSNAME="ia64_hpux1122"
569 AFS_SYSNAME="ia64_hpux1123"
572 AFS_SYSNAME="hp_ux102"
574 powerpc-apple-darwin7*)
575 AFS_SYSNAME="ppc_darwin_70"
577 powerpc-apple-darwin8.*)
578 AFS_SYSNAME="ppc_darwin_80"
580 i386-apple-darwin8.*)
581 AFS_SYSNAME="x86_darwin_80"
583 powerpc-apple-darwin9.*)
584 AFS_SYSNAME="ppc_darwin_90"
586 i386-apple-darwin9.*)
587 AFS_SYSNAME="x86_darwin_90"
589 i?86-apple-darwin10.*)
590 AFS_SYSNAME="x86_darwin_100"
592 sparc-sun-solaris2.5*)
593 AFS_SYSNAME="sun4x_55"
596 sparc-sun-solaris2.6)
597 AFS_SYSNAME="sun4x_56"
599 sparc-sun-solaris2.7)
600 AFS_SYSNAME="sun4x_57"
602 sparc-sun-solaris2.8)
603 AFS_SYSNAME="sun4x_58"
605 sparc-sun-solaris2.9)
606 AFS_SYSNAME="sun4x_59"
608 sparc-sun-solaris2.10)
609 AFS_SYSNAME="sun4x_510"
611 sparc-sun-solaris2.11)
612 AFS_SYSNAME="sun4x_511"
615 AFS_SYSNAME="sun4_413"
619 AFS_SYSNAME="sunx86_57"
622 AFS_SYSNAME="sunx86_58"
625 AFS_SYSNAME="sunx86_59"
628 AFS_SYSNAME="sunx86_510"
631 AFS_SYSNAME="sunx86_511"
634 AFS_SYSNAME="alpha_dux40"
637 AFS_SYSNAME="alpha_dux50"
640 AFS_SYSNAME="alpha_dux51"
646 AFS_SYSNAME="ia64_linuxXX"
649 AFS_SYSNAME="`/bin/arch`_linuxXX"
652 AFS_SYSNAME="ppc64_linuxXX"
655 AFS_SYSNAME="alpha_linux_XX"
658 AFS_SYSNAME="s390_linuxXX"
661 AFS_SYSNAME="s390x_linuxXX"
664 AFS_SYSNAME="`/bin/arch`_linuxXX"
667 AFS_SYSNAME="sparc64_linuxXX"
670 AFS_SYSNAME="i386_linuxXX"
673 AFS_SYSNAME="arm_linuxXX"
675 parisc-*-linux-gnu|hppa-*-linux-gnu)
676 AFS_SYSNAME="parisc_linuxXX"
680 AFS_SYSNAME="rs_aix42"
684 AFS_SYSNAME="rs_aix42"
688 AFS_SYSNAME="rs_aix51"
692 AFS_SYSNAME="rs_aix52"
696 AFS_SYSNAME="rs_aix53"
700 AFS_SYSNAME="rs_aix61"
704 AFS_SYSNAME="amd64_linuxXX"
708 AC_MSG_ERROR(An AFS sysname is required)
713 *_linux* | *_umlinux*)
714 if test "x${AFS_SYSKVERS}" = "x"; then
715 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
717 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
718 AFS_SYSNAME="$_AFS_SYSNAME"
721 [#ifndef CONFIG_USERMODE
724 ac_cv_linux_is_uml=yes,)
725 if test "${ac_cv_linux_is_uml}" = yes; then
726 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
728 AFS_SYSNAME="$_AFS_SYSNAME"
731 AC_MSG_RESULT($AFS_SYSNAME)
736 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
737 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
741 dnl Some hosts have a separate common param file they should include. Figure
742 dnl out if we're on one of them now that we know the sysname.
744 *_nbsd15) AFS_PARAM_COMMON=param.nbsd15.h ;;
745 *_nbsd16) AFS_PARAM_COMMON=param.nbsd16.h ;;
746 *_nbsd20) AFS_PARAM_COMMON=param.nbsd20.h ;;
747 *_nbsd21) AFS_PARAM_COMMON=param.nbsd21.h ;;
748 *_nbsd30) AFS_PARAM_COMMON=param.nbsd30.h ;;
749 *_nbsd40) AFS_PARAM_COMMON=param.nbsd40.h ;;
750 *_obsd31) AFS_PARAM_COMMON=param.obsd31.h ;;
751 *_obsd32) AFS_PARAM_COMMON=param.obsd32.h ;;
752 *_obsd33) AFS_PARAM_COMMON=param.obsd33.h ;;
753 *_obsd34) AFS_PARAM_COMMON=param.obsd34.h ;;
754 *_obsd35) AFS_PARAM_COMMON=param.obsd35.h ;;
755 *_obsd36) AFS_PARAM_COMMON=param.obsd36.h ;;
756 *_obsd37) AFS_PARAM_COMMON=param.obsd37.h ;;
757 *_obsd38) AFS_PARAM_COMMON=param.obsd38.h ;;
758 *_obsd39) AFS_PARAM_COMMON=param.obsd39.h ;;
759 *_obsd40) AFS_PARAM_COMMON=param.obsd40.h ;;
760 *_obsd41) AFS_PARAM_COMMON=param.obsd41.h ;;
761 *_obsd42) AFS_PARAM_COMMON=param.obsd42.h ;;
762 *_obsd43) AFS_PARAM_COMMON=param.obsd43.h ;;
763 *_obsd44) AFS_PARAM_COMMON=param.obsd44.h ;;
764 *_obsd45) AFS_PARAM_COMMON=param.obsd45.h ;;
765 *_obsd46) AFS_PARAM_COMMON=param.obsd46.h ;;
766 *_linux22) AFS_PARAM_COMMON=param.linux22.h ;;
767 *_linux24) AFS_PARAM_COMMON=param.linux24.h ;;
768 *_linux26) AFS_PARAM_COMMON=param.linux26.h ;;
771 case $AFS_SYSNAME in *_linux* | *_umlinux*)
773 # Add (sub-) architecture-specific paths needed by conftests
776 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
777 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
778 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
779 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
782 if test "x$enable_kernel_module" = "xyes"; then
783 if test "x$enable_debug_kernel" = "xno"; then
784 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
786 OPENAFS_GCC_SUPPORTS_MARCH
787 AC_SUBST(P5PLUS_KOPTS)
788 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
789 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
790 OPENAFS_GCC_SUPPORTS_NO_COMMON
791 OPENAFS_GCC_SUPPORTS_PIPE
792 AC_SUBST(LINUX_GCC_KOPTS)
793 ifdef([OPENAFS_CONFIGURE_LIBAFS],
794 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
795 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
798 LINUX_KBUILD_USES_EXTRA_CFLAGS
799 LINUX_KERNEL_COMPILE_WORKS
800 AC_CHECK_LINUX_FUNC([find_task_by_pid],
801 [#include <linux/sched.h>],
802 [pid_t p; find_task_by_pid(p);])
803 LINUX_EXPORTS_PROC_ROOT_FS
804 AC_CHECK_LINUX_FUNC([current_kernel_time],
805 [#include <linux/time.h>],
806 [struct timespec s = current_kernel_time();])
807 AC_CHECK_LINUX_STRUCT([address_space_operations],
808 [write_begin], [fs.h])
809 AC_CHECK_LINUX_FUNC([bdi_init],
810 [#include <linux/backing-dev.h>],
812 LINUX_KMEM_CACHE_INIT
813 LINUX_HAVE_GRAB_CACHE_PAGE_WRITE_BEGIN
814 LINUX_HAVE_PAGEVEC_LRU_ADD_FILE
815 LINUX_HAVE_SPLICE_DIRECT_TO_ACTOR
816 LINUX_HAVE_PAGE_OFFSET
817 LINUX_HAVE_ZERO_USER_SEGMENTS
818 LINUX_HAVE_VFS_LLSEEK
819 LINUX_HAVE_KERNEL_SETSOCKOPT
820 AC_CHECK_LINUX_FUNC([grap_cache_page_write_begin],
821 [#include <linux/pagemap.h>],
822 [grab_cache_page_write_begin(NULL, 0, 0);])
823 AC_CHECK_LINUX_FUNC([pagevec_lru_add_file],
824 [#include <linux/pagevec.h>],
825 [__pagevec_lru_add_file(NULL);])
826 AC_CHECK_LINUX_FUNC([splice_direct_to_actor],
827 [#include <linux/splice.h>],
828 [splice_direct_to_actor(NULL, NULL, NULL);])
829 AC_CHECK_LINUX_FUNC([page_offset],
830 [#include <linux/pagemap.h>],
831 [page_offset(NULL);])
832 AC_CHECK_LINUX_FUNC([zero_user_segments],
833 [#include <linux/highmem.h>],
834 [zero_user_segments(NULL, 0, 0, 0, 0);])
835 AC_CHECK_LINUX_FUNC([vfs_llseek],
836 [#include <linux/fs.h>],
837 [vfs_llseek(NULL, 0, 0);])
838 AC_CHECK_LINUX_FUNC([kernel_setsockopt],
839 [#include <linux/net.h>],
840 [kernel_setsockopt(NULL, 0, 0, NULL, 0);])
841 AC_CHECK_LINUX_STRUCT([task_struct], [cred], [sched.h])
842 AC_CHECK_LINUX_STRUCT([proc_dir_entry], [owner], [proc_fs.h])
843 LINUX_HAVE_KMEM_CACHE_T
844 LINUX_KMEM_CACHE_CREATE_CTOR_TAKES_VOID
845 LINUX_D_PATH_TAKES_STRUCT_PATH
847 AC_CHECK_LINUX_HEADER([config.h])
848 AC_CHECK_LINUX_HEADER([completion.h])
849 AC_CHECK_LINUX_HEADER([semaphore.h])
850 AC_CHECK_LINUX_HEADER([exportfs.h])
851 LINUX_DEFINES_FOR_EACH_PROCESS
852 LINUX_DEFINES_PREV_TASK
853 AC_CHECK_LINUX_STRUCT([super_operations], [alloc_inode],
855 AC_CHECK_LINUX_STRUCT([super_block], [s_bdi], [fs.h])
856 AC_CHECK_LINUX_STRUCT([backing_dev_info], [name],
858 AC_CHECK_LINUX_STRUCT([inode], [i_blksize], [fs.h])
859 AC_CHECK_LINUX_STRUCT([inode], [i_alloc_sem], [fs.h])
860 AC_CHECK_LINUX_STRUCT([inode], [i_blkbits], [fs.h])
861 AC_CHECK_LINUX_STRUCT([inode], [i_mutex], [fs.h])
862 AC_CHECK_LINUX_STRUCT([inode], [i_security], [fs.h])
863 LINUX_INODE_SETATTR_RETURN_TYPE
864 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
865 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
866 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
867 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
868 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
869 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
870 LINUX_AOP_WRITEBACK_CONTROL
871 AC_CHECK_LINUX_STRUCT([file_operations], [flock], [fs.h])
872 AC_CHECK_LINUX_STRUCT([file_operations], [sendfile], [fs.h])
873 LINUX_FS_STRUCT_FOP_HAS_SPLICE
874 AC_CHECK_LINUX_HEADER([seq_file.h])
875 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
876 LINUX_POSIX_TEST_LOCK_RETURNS_CONFLICT
877 LINUX_POSIX_TEST_LOCK_CONFLICT_ARG
878 LINUX_KERNEL_SOCK_CREATE
879 AC_CHECK_LINUX_FUNC([page_follow_link],
880 [#include <linux/fs.h>],
881 [page_follow_link(0,0);])
882 AC_CHECK_LINUX_FUNC([hlist_unhashed],
883 [#include <linux/list.h>],
884 [hlist_unhashed(0);])
885 AC_CHECK_LINUX_HEADER([key-type.h])
886 LINUX_EXPORTS_KEY_TYPE_KEYRING
887 LINUX_KEYS_HAVE_SESSION_TO_PARENT
889 LINUX_RECALC_SIGPENDING_ARG_TYPE
890 AC_CHECK_LINUX_STRUCT([task_struct], [parent], [sched.h])
891 AC_CHECK_LINUX_STRUCT([task_struct], [real_parent], [sched.h])
892 AC_CHECK_LINUX_STRUCT([task_struct], [sig], [sched.h])
893 AC_CHECK_LINUX_STRUCT([task_struct], [sighand], [sched.h])
894 AC_CHECK_LINUX_STRUCT([task_struct], [sigmask_lock], [sched.h])
895 AC_CHECK_LINUX_STRUCT([task_struct], [rlim], [sched.h])
896 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
897 AC_CHECK_LINUX_STRUCT([task_struct], [exit_state], [sched.h])
898 AC_CHECK_LINUX_STRUCT([task_struct], [tgid], [sched.h])
899 AC_CHECK_LINUX_STRUCT([task_struct], [thread_info], [sched.h])
900 LINUX_EXPORTS_TASKLIST_LOCK
901 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
902 LINUX_STATFS_TAKES_DENTRY
903 AC_CHECK_LINUX_HEADER([freezer.h])
904 LINUX_HAVE_SVC_ADDR_IN
906 LINUX_HAVE_TRY_TO_FREEZE
907 LINUX_LINUX_KEYRING_SUPPORT
908 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
909 LINUX_KEY_ALLOC_NEEDS_CRED
910 AC_CHECK_LINUX_FUNC([do_sync_read],
911 [#include <linux/fs.h>],
912 [do_sync_read(NULL, NULL, 0, NULL);])
913 AC_CHECK_LINUX_FUNC([generic_file_aio_read],
914 [#include <linux/fs.h>],
915 [generic_file_aio_read(NULL, NULL, 0, 0);])
916 LINUX_INIT_WORK_HAS_DATA
917 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
918 LINUX_SYSCTL_TABLE_CHECKING
919 AC_CHECK_LINUX_FUNC([ctl_table], [ctl_name], [sysctl.h])
920 AC_CHECK_LINUX_FUNC([iget],
921 [#include <linux/fs.h>],
923 AS_IF([test "x$ac_cv_linux_func_iget" = "xno"],
924 [AC_DEFINE([LINUX_USE_FH], 1,
925 [define to use linux file handles for cache files])])
926 AC_CHECK_LINUX_FUNC([i_size_read],
927 [#include <linux/fs.h>],
928 [i_size_read(NULL);])
929 AC_CHECK_LINUX_FUNC([d_alloc_anon],
930 [#include <linux/dcache.h>],
931 [d_alloc_anon(NULL);])
932 AS_IF([test "x$ac_cv_linux_func_d_alloc_anon" = "xno"],
933 [AC_DEFINE([AFS_NONFSTRANS], 1,
934 [define to disable the nfs translator])])
935 AC_CHECK_LINUX_STRUCT([nameidata], [path], [namei.h])
936 LINUX_EXPORTS_INIT_MM
937 LINUX_EXPORTS_SYS_CHDIR
938 LINUX_EXPORTS_SYS_OPEN
939 AC_CHECK_LINUX_FUNC([rcu_read_lock],
940 [#include <linux/rcupdate.h>],
942 if test "x$with_linux_kernel_packaging" = "xno" ; then
947 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
948 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
949 ac_cv_linux_exports_sys_call_table=no
950 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
951 ac_cv_linux_exports_ia32_sys_call_table=yes
954 LINUX_EXPORTS_KALLSYMS_ADDRESS
955 LINUX_EXPORTS_KALLSYMS_SYMBOL
956 LINUX_EXPORTS_SYS_CALL_TABLE
957 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
958 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
959 linux_syscall_method=none
960 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
961 linux_syscall_method=scan
962 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
963 linux_syscall_method=scan_with_kallsyms_address
966 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
967 linux_syscall_method=kallsyms_symbol
969 if test "x$linux_syscall_method" = "xnone"; then
970 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
971 linux_syscall_method=scan
975 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
976 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
978 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
979 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
981 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
982 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
984 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
985 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
987 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
988 AC_DEFINE(EXPORTED_SYS_CALL_TABLE, 1, [define if your linux kernel exports sys_call_table])
990 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
991 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE, 1, [define if your linux kernel exports ia32_sys_call_table])
993 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
994 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL, 1, [define if your linux kernel exports kallsyms])
996 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
997 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS, 1, [define if your linux kernel exports kallsyms address])
999 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
1000 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
1002 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
1003 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
1005 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
1006 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
1008 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
1009 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
1011 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
1012 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
1014 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
1015 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
1017 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
1018 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
1020 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
1021 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
1023 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
1024 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
1026 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1027 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1029 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1030 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1032 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1033 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1035 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1036 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1038 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1039 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1041 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1042 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1044 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1045 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1047 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1048 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1050 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1051 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1053 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1054 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1056 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1057 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1059 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1060 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1062 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1063 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1065 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1066 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1068 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1070 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1071 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1077 AC_CACHE_VAL(ac_cv_sockaddr_len,
1079 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1080 AC_TRY_COMPILE( [#include <sys/types.h>
1081 #include <sys/socket.h>],
1082 [struct sockaddr *a;
1083 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1084 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1085 if test "$ac_cv_sockaddr_len" = "yes"; then
1086 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1088 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1089 echo Skipping library tests because they confuse Irix.
1091 AC_SEARCH_LIBS([socket], [socket inet])
1092 AC_SEARCH_LIBS([connect], [nsl])
1093 AC_SEARCH_LIBS([gethostbyname], [dns nsl resolv])
1095 dnl darwin wants it, aix hates it
1096 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1100 #include <sys/types.h>
1101 #include <sys/socket.h>
1102 #include <netinet/in.h>
1103 #include <arpa/inet.h>
1104 #include <arpa/nameser.h>
1105 #include <arpa/nameser_compat.h>
1107 ], [static int i; i = 0;],
1109 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H, 1, [define if arpa/nameser_compat.h exists])],
1113 openafs_save_libs="$LIBS"
1114 AC_MSG_CHECKING([for res_search])
1117 if test "$ac_cv_func_res_search" = no; then
1118 for lib in dns nsl resolv; do
1119 if test "$ac_cv_func_res_search" != yes; then
1122 LIBS="$openafs_save_libs"
1125 if test "$ac_cv_func_res_search" = yes; then
1127 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1128 AC_MSG_RESULT([yes, in lib$lib])
1133 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1139 AC_CHECK_RESOLV_RETRANS
1141 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1143 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1144 AC_TRY_COMPILE( [#include <sys/types.h>
1145 #include <sys/socket.h>
1146 #include <netinet/in.h>],
1148 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1149 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1150 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1151 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1155 if test "x$MKAFS_OSTYPE" = OBSD; then
1156 PTHREAD_LIBS="-pthread"
1158 if test "x$MKAFS_OSTYPE" = xDFBSD; then
1159 PTHREAD_LIBS="-pthread"
1161 if test "x$PTHREAD_LIBS" = xerror; then
1162 AC_CHECK_LIB(pthread, pthread_attr_init,
1163 PTHREAD_LIBS="-lpthread")
1165 if test "x$PTHREAD_LIBS" = xerror; then
1166 AC_CHECK_LIB(pthreads, pthread_attr_init,
1167 PTHREAD_LIBS="-lpthreads")
1169 if test "x$PTHREAD_LIBS" = xerror; then
1170 AC_CHECK_LIB(c_r, pthread_attr_init,
1171 PTHREAD_LIBS="-lc_r")
1173 if test "x$PTHREAD_LIBS" = xerror; then
1174 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1176 if test "x$PTHREAD_LIBS" = xerror; then
1177 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1178 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1179 PTHREAD_LIBS="-lpthread")
1181 if test "x$PTHREAD_LIBS" = xerror; then
1182 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1184 AC_SUBST(PTHREAD_LIBS)
1186 HOST_CPU="$host_cpu"
1188 if test "x$with_bsd_kernel_headers" != "x"; then
1189 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1191 BSD_KERNEL_PATH="/usr/src/sys"
1194 if test "x$with_bsd_kernel_build" != "x"; then
1195 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1197 case $AFS_SYSNAME in
1199 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1202 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1208 if test "$enable_supergroups" = "yes"; then
1209 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1212 if test "$enable_fast_restart" = "yes"; then
1213 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1216 if test "$enable_bitmap_later" = "yes"; then
1217 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1220 if test "$enable_demand_attach_fs" = "yes"; then
1221 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1226 AC_SUBST(DEMAND_ATTACH)
1228 if test "$enable_disconnected" = "yes"; then
1229 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1232 if test "$enable_unix_sockets" = "yes"; then
1233 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1234 USE_UNIX_SOCKETS="yes"
1236 USE_UNIX_SOCKETS="no"
1238 AC_SUBST(USE_UNIX_SOCKETS)
1240 if test "$enable_fast_restart" = "yes" &&
1241 test "$enable_demand_attach_fs" = "yes" ; then
1242 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.])
1246 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1247 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1248 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1252 if test "$enable_cache_bypass" = "yes"; then
1253 AC_DEFINE(AFS_CACHE_BYPASS, 1, [define to activate cache bypassing Unix client])
1256 if test "$enable_namei_fileserver" = "yes"; then
1257 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1260 if test "$enable_namei_fileserver" = "default"; then
1263 AC_MSG_WARN(Some Solaris 10 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1264 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1268 AC_MSG_WARN(Solaris 11 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1269 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1281 dnl check for tivoli
1282 AC_MSG_CHECKING(for tivoli tsm butc support)
1284 if test "$enable_tivoli_tsm" = "yes"; then
1285 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1286 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1287 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1288 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1290 if test -r "$XBSADIR3/dsmapifp.h"; then
1291 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1293 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1294 elif test -r "$XBSADIR4/dsmapifp.h"; then
1295 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1297 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1298 elif test -r "$XBSADIR1/xbsa.h"; then
1299 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1301 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1302 elif test -r "$XBSADIR2/xbsa.h"; then
1303 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1305 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1307 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1312 AC_SUBST(XBSA_CFLAGS)
1313 AC_SUBST(XBSA_XLIBS)
1315 dnl checks for header files.
1319 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h grp.h)
1320 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1321 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1322 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h sys/pag.h)
1323 AC_CHECK_HEADERS(windows.h direct.h sys/ipc.h)
1324 AC_CHECK_HEADERS(security/pam_modules.h ucontext.h regex.h sys/statvfs.h sys/statfs.h sys/bitypes.h)
1325 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1326 AC_CHECK_HEADERS(et/com_err.h)
1328 AC_CHECK_TYPES([fsblkcnt_t],,,[
1329 #include <sys/types.h>
1330 #ifdef HAVE_SYS_BITYPES_H
1331 #include <sys/bitypes.h>
1333 #ifdef HAVE_SYS_STATFS_H
1334 #include <sys/statfs.h>
1336 #ifdef HAVE_SYS_STATVFS_H
1337 #include <sys/statvfs.h>
1341 OPENAFS_TEST_PACKAGE(libintl,[#include <libintl.h>],[-lintl],,,INTL)
1343 dnl Don't build PAM on IRIX; the interface doesn't work for us.
1344 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1345 case $AFS_SYSNAME in
1358 if test "$enable_login" = yes; then
1363 AC_SUBST(BUILD_LOGIN)
1365 AC_CHECK_FUNCS(snprintf strlcat strlcpy flock)
1366 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1367 AC_CHECK_FUNCS(setvbuf vsyslog getcwd)
1368 AC_CHECK_FUNCS(regcomp regexec regerror)
1369 AC_MSG_CHECKING([for POSIX regex library])
1370 if test "$ac_cv_header_regex_h" = "yes" && \
1371 test "$ac_cv_func_regcomp" = "yes" && \
1372 test "$ac_cv_func_regexec" = "yes" && \
1373 test "$ac_cv_func_regerror" = "yes"; then
1374 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1382 AC_CHECK_SIZEOF(void *)
1383 AC_CHECK_SIZEOF(unsigned long long)
1384 AC_CHECK_SIZEOF(unsigned long)
1385 AC_CHECK_SIZEOF(unsigned int)
1388 AC_CHECK_TYPE(ssize_t, int)
1389 AC_CHECK_TYPE([sig_atomic_t], ,
1390 [AC_DEFINE([sig_atomic_t], [int],
1391 [Define to int if <signal.h> does not define.])],
1392 [#include <sys/types.h>
1393 #include <signal.h>])
1394 AC_SIZEOF_TYPE(long)
1398 AC_CHECK_FUNCS(timegm)
1399 AC_CHECK_FUNCS(daemon)
1401 dnl Directory PATH handling
1402 if test "x$enable_transarc_paths" = "xyes" ; then
1403 afsconfdir=${afsconfdir=/usr/afs/etc}
1404 viceetcdir=${viceetcdir=/usr/vice/etc}
1405 afskerneldir=${afskerneldir=${viceetcdir}}
1406 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1407 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1408 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1409 afsdbdir=${afsdbdir=/usr/afs/db}
1410 afslogsdir=${afslogsdir=/usr/afs/logs}
1411 afslocaldir=${afslocaldir=/usr/afs/local}
1412 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1413 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1414 afsdatadir=${afsdatadir=/usr/vice/etc}
1416 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1417 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1418 afskerneldir=${afskerneldir='${libdir}/openafs'}
1419 afssrvbindir=${afssrvbindir='${bindir}'}
1420 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1421 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1422 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1423 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1424 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1425 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1426 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1427 afsdatadir=${afsdatadir='${datadir}/openafs'}
1429 AC_SUBST(afsconfdir)
1430 AC_SUBST(viceetcdir)
1431 AC_SUBST(afskerneldir)
1432 AC_SUBST(afssrvbindir)
1433 AC_SUBST(afssrvsbindir)
1434 AC_SUBST(afssrvlibexecdir)
1436 AC_SUBST(afslogsdir)
1437 AC_SUBST(afslocaldir)
1438 AC_SUBST(afsbackupdir)
1439 AC_SUBST(afsbosconfigdir)
1440 AC_SUBST(afsdatadir)
1442 if test "x$enable_kernel_module" = "xyes"; then
1443 ENABLE_KERNEL_MODULE=libafs
1446 if test "x$enable_pthreaded_ubik" = "xyes"; then
1447 ENABLE_PTHREADED_UBIK=yes
1451 AC_SUBST(AFS_SYSNAME)
1452 AC_SUBST(AFS_PARAM_COMMON)
1453 AC_SUBST(ENABLE_KERNEL_MODULE)
1454 AC_SUBST(ENABLE_PTHREADED_UBIK)
1456 AC_SUBST(LINUX_KERNEL_PATH)
1457 AC_SUBST(LINUX_KERNEL_BUILD)
1459 AC_SUBST(BSD_KERNEL_PATH)
1460 AC_SUBST(BSD_KERNEL_BUILD)
1461 AC_SUBST(LINUX_VERSION)
1462 AC_SUBST(MKAFS_OSTYPE)
1463 AC_SUBST(TOP_OBJDIR)
1464 AC_SUBST(TOP_SRCDIR)
1465 AC_SUBST(TOP_INCDIR)
1466 AC_SUBST(TOP_LIBDIR)
1468 AC_SUBST(DARWIN_INFOFILE)
1469 AC_SUBST(IRIX_BUILD_IP35)
1477 TOP_SRCDIR="${srcdir}/src"
1479 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1485 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1489 TOP_OBJDIR="${SRCDIR_PARENT}"
1490 TOP_INCDIR="${SRCDIR_PARENT}/include"
1491 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1492 if test "${DEST}x" = "x"; then
1493 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1496 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1497 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1498 AC_SUBST(HELPER_SPLINT)
1499 AC_SUBST(HELPER_SPLINTCFG)
1501 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs