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],[
13 AC_ARG_WITH(afs-sysname,
14 [ --with-afs-sysname=sys use sys for the afs sysname]
17 [ --disable-afsdb disable AFSDB DNS RR support],, enable_afsdb="yes")
19 [ --disable-pam disable PAM support],, enable_pam="yes")
20 AC_ARG_ENABLE( bos-restricted-mode,
21 [ --enable-bos-restricted-mode enable bosserver restricted mode which disables certain bosserver functionality],, enable_bos_restricted_mode="no")
22 AC_ARG_ENABLE( bos-new-config,
23 [ --enable-bos-new-config enable bosserver pickup of BosConfig.new on restarts],, enable_bos_new_config="no")
24 AC_ARG_ENABLE( largefile-fileserver,
25 [ --disable-largefile-fileserver disable large file support in fileserver],, enable_largefile_fileserver="yes")
26 AC_ARG_ENABLE( namei-fileserver,
27 [ --enable-namei-fileserver force compilation of namei fileserver in preference to inode fileserver],, enable_namei_fileserver="no")
28 AC_ARG_ENABLE( supergroups,
29 [ --enable-supergroups enable support for nested pts groups],, enable_supergroups="no")
30 AC_ARG_ENABLE( fast-restart,
31 [ --enable-fast-restart enable fast startup of file server without salvaging],, enable_fast_restart="no")
32 AC_ARG_ENABLE( bitmap-later,
33 [ --enable-bitmap-later enable fast startup of file server by not reading bitmap till needed],, enable_bitmap_later="no")
34 AC_ARG_ENABLE( demand-attach-fs,
35 [ --enable-demand-attach-fs enable Demand Attach Fileserver (please see documentation)],, enable_demand_attach_fs="no")
36 AC_ARG_ENABLE( unix-sockets,
37 [ --enable-unix-sockets enable use of unix domain sockets for fssync],, enable_unix_sockets="yes")
38 AC_ARG_ENABLE( full-vos-listvol-switch,
39 [ --disable-full-vos-listvol-switch disable vos full listvol switch for formatted output],, enable_full_vos_listvol_switch="yes")
40 AC_ARG_WITH(dux-kernel-headers,
41 [ --with-dux-kernel-headers=path use the kernel headers found at path(optional, defaults to first match in /usr/sys)]
43 AC_ARG_WITH(linux-kernel-headers,
44 [ --with-linux-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/linux-2.4, then /usr/src/linux)]
46 AC_ARG_WITH(bsd-kernel-headers,
47 [ --with-bsd-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/sys)]
49 AC_ARG_WITH(bsd-kernel-build,
50 [ --with-bsd-kernel-build=path use the kernel build found at path(optional, defaults to KSRC/i386/compile/GENERIC)]
52 AC_ARG_ENABLE(kernel-module,
53 [ --disable-kernel-module disable compilation of the kernel module (defaults to enabled)],, enable_kernel_module="yes"
55 AC_ARG_ENABLE(redhat-buildsys,
56 [ --enable-redhat-buildsys enable compilation of the redhat build system kernel (defaults to disabled)],, enable_redhat_buildsys="no"
58 AC_ARG_ENABLE(transarc-paths,
59 [ --enable-transarc-paths Use Transarc style paths like /usr/afs and /usr/vice],, enable_transarc_paths="no"
61 AC_ARG_ENABLE(tivoli-tsm,
62 [ --enable-tivoli-tsm Enable use of the Tivoli TSM API libraries for butc support],, enable_tivoli_tsm="no"
64 AC_ARG_ENABLE(debug-kernel,
65 [ --enable-debug-kernel enable compilation of the kernel module with debugging information (defaults to disabled)],, enable_debug_kernel="no"
67 AC_ARG_ENABLE(optimize-kernel,
68 [ --disable-optimize-kernel disable compilation of the kernel module with optimization (defaults based on platform)],, enable_optimize_kernel="yes"
71 [ --enable-debug enable compilation of the user space code with debugging information (defaults to disabled)],, enable_debug="no"
73 AC_ARG_ENABLE(strip-binaries,
74 [ --disable-strip-binaries disable stripping of symbol information from binaries (defaults to enabled)],, enable_strip_binaries="maybe"
76 AC_ARG_ENABLE(optimize,
77 [ --disable-optimize disable optimization for compilation of the user space code (defaults to enabled)],, enable_optimize="yes"
79 AC_ARG_ENABLE(debug-lwp,
80 [ --enable-debug-lwp enable compilation of the LWP code with debugging information (defaults to disabled)],, enable_debug_lwp="no"
82 AC_ARG_ENABLE(optimize-lwp,
83 [ --disable-optimize-lwp disable optimization for compilation of the LWP code (defaults to enabled)],, enable_optimize_lwp="yes"
85 AC_ARG_ENABLE(debug-pam,
86 [ --enable-debug-pam enable compilation of the PAM code with debugging information (defaults to disabled)],, enable_debug_pam="no"
88 AC_ARG_ENABLE(optimize-pam,
89 [ --disable-optimize-pam disable optimization for compilation of the PAM code (defaults to enabled)],, enable_optimize_pam="yes"
91 AC_ARG_ENABLE(warnings,
92 [ --enable-warnings enable compilation warnings when building with gcc (defaults to disabled)],, enable_warnings="no"
94 AC_ARG_ENABLE(pthreaded-ubik,
95 [ --enable-pthreaded-ubik enable installation of pthreaded ubik applications (defaults to disabled)],, enable_pthreaded_ubik="no"
101 dnl weird ass systems
106 dnl Various compiler setup.
110 COMPILER_HAS_FUNCTION_MACRO
112 dnl Checks for programs.
119 OPENAFS_CHECK_BIGENDIAN
121 AC_MSG_CHECKING(your OS)
127 if test "x$enable_redhat_buildsys" = "xyes"; then
128 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
130 if test "x$enable_kernel_module" = "xyes"; then
131 if test "x$with_linux_kernel_headers" != "x"; then
132 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
134 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/source"
135 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
136 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
138 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
139 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
141 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
142 LINUX_KERNEL_PATH="/usr/src/linux"
145 if test -f "$LINUX_KERNEL_PATH/include/linux/utsrelease.h"; then
146 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
147 LINUX_VERSION="$linux_kvers"
149 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
150 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
151 if test "x$linux_kvers" = "x"; then
152 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
153 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
154 if test "x$linux_kvers" = "x"; then
156 AC_MSG_ERROR(Linux headers lack version definition [2])
159 LINUX_VERSION="$linux_kvers"
162 AC_MSG_ERROR(Linux headers lack version definition)
166 LINUX_VERSION="$linux_kvers"
169 enable_kernel_module="no"
172 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
173 enable_kernel_module="no"
175 if test "x$enable_kernel_module" = "xno"; then
176 if test "x$with_linux_kernel_headers" != "x"; then
177 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
180 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
183 dnl do we need to determine SUBARCH from autoconf.h
187 if test "x$enable_kernel_module" = "xyes"; then
188 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
189 if test "x${AFS_SYSKVERS}" = "x"; then
190 AC_MSG_ERROR(Couldn't guess your Linux version [2])
197 SOLARIS_UFSVFS_HAS_DQRWLOCK
198 SOLARIS_PROC_HAS_P_COREFILE
199 SOLARIS_FS_HAS_FS_ROLLED
203 enable_kernel_module=no
209 if test -f "/usr/old/usr/include/ndir.h"; then
210 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
214 if test -d /usr/include/sys/SN/SN1; then
215 IRIX_BUILD_IP35="IP35"
222 AC_MSG_RESULT(rs_aix)
226 AC_MSG_RESULT(alpha_dux)
230 AC_MSG_RESULT(ppc_darwin)
234 AC_MSG_RESULT(x86_darwin)
238 AC_MSG_RESULT(i386_fbsd)
246 AC_MSG_RESULT(i386_obsd)
249 AC_MSG_RESULT($system)
253 if test "x$with_afs_sysname" != "x"; then
254 AFS_SYSNAME="$with_afs_sysname"
256 AC_MSG_CHECKING(your AFS sysname)
262 AFS_SYSNAME="i386_obsd${vM}${vm}"
264 sparc64-*-openbsd?.?)
268 AFS_SYSNAME="sparc64_obsd${vM}${vm}"
274 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
277 AFS_SYSNAME="i386_nbsd15"
280 AFS_SYSNAME="alpha_nbsd15"
282 i?86-*-netbsd*1.6[[M-Z]]*)
283 AFS_SYSNAME="i386_nbsd20"
285 powerpc-*-netbsd*1.6[[M-Z]]*)
286 AFS_SYSNAME="ppc_nbsd20"
289 AFS_SYSNAME="i386_nbsd20"
292 AFS_SYSNAME="amd64_nbsd20"
294 x86_64-*-netbsd*3.[0-8]*)
295 AFS_PARAM_COMMON=param.nbsd30.h
296 AFS_SYSNAME="amd64_nbsd30"
298 x86_64-*-netbsd*4.[0-8]*)
299 AFS_PARAM_COMMON=param.nbsd40.h
300 AFS_SYSNAME="amd64_nbsd40"
302 powerpc-*-netbsd*2.0*)
303 AFS_SYSNAME="ppc_nbsd20"
306 AFS_SYSNAME="i386_nbsd16"
309 AFS_SYSNAME="alpha_nbsd16"
311 powerpc-*-netbsd*1.6*)
312 AFS_SYSNAME="ppc_nbsd16"
315 AFS_SYSNAME="i386_nbsd21"
318 AFS_SYSNAME="i386_nbsd30"
320 i?86-*-netbsd*3.[[0-8]]*)
321 AFS_SYSNAME="i386_nbsd30"
324 AFS_SYSNAME="i386_nbsd30"
326 i?86-*-netbsd*4.[[0-8]]*)
327 AFS_SYSNAME="i386_nbsd40"
330 AFS_SYSNAME="i386_nbsd40"
333 AFS_SYSNAME="hp_ux110"
336 AFS_SYSNAME="hp_ux11i"
339 AFS_SYSNAME="hp_ux1123"
342 AFS_SYSNAME="ia64_hpux1122"
345 AFS_SYSNAME="ia64_hpux1123"
348 AFS_SYSNAME="hp_ux102"
350 powerpc-apple-darwin1.2*)
351 AFS_SYSNAME="ppc_darwin_12"
353 powerpc-apple-darwin1.3*)
354 AFS_SYSNAME="ppc_darwin_13"
356 powerpc-apple-darwin1.4*)
357 AFS_SYSNAME="ppc_darwin_14"
359 powerpc-apple-darwin5.1*)
360 AFS_SYSNAME="ppc_darwin_14"
362 powerpc-apple-darwin5.2*)
363 AFS_SYSNAME="ppc_darwin_14"
365 powerpc-apple-darwin5.3*)
366 AFS_SYSNAME="ppc_darwin_14"
368 powerpc-apple-darwin5.4*)
369 AFS_SYSNAME="ppc_darwin_14"
371 powerpc-apple-darwin5.5*)
372 AFS_SYSNAME="ppc_darwin_14"
374 powerpc-apple-darwin6.0*)
375 AFS_SYSNAME="ppc_darwin_60"
377 powerpc-apple-darwin6.1*)
378 AFS_SYSNAME="ppc_darwin_60"
380 powerpc-apple-darwin6.2*)
381 AFS_SYSNAME="ppc_darwin_60"
383 powerpc-apple-darwin6.3*)
384 AFS_SYSNAME="ppc_darwin_60"
386 powerpc-apple-darwin6.4*)
387 AFS_SYSNAME="ppc_darwin_60"
389 powerpc-apple-darwin6.5*)
390 AFS_SYSNAME="ppc_darwin_60"
392 powerpc-apple-darwin7.0*)
393 AFS_SYSNAME="ppc_darwin_70"
395 powerpc-apple-darwin7.1*)
396 AFS_SYSNAME="ppc_darwin_70"
398 powerpc-apple-darwin7.2*)
399 AFS_SYSNAME="ppc_darwin_70"
401 powerpc-apple-darwin7.3*)
402 AFS_SYSNAME="ppc_darwin_70"
404 powerpc-apple-darwin7.4*)
405 AFS_SYSNAME="ppc_darwin_70"
407 powerpc-apple-darwin7.5*)
408 AFS_SYSNAME="ppc_darwin_70"
410 powerpc-apple-darwin8.0*)
411 AFS_SYSNAME="ppc_darwin_80"
413 powerpc-apple-darwin8.*)
414 AFS_SYSNAME="ppc_darwin_80"
416 i386-apple-darwin8.*)
417 AFS_SYSNAME="x86_darwin_80"
419 powerpc-apple-darwin9.*)
420 AFS_SYSNAME="ppc_darwin_90"
422 i386-apple-darwin9.*)
423 AFS_SYSNAME="x86_darwin_90"
425 sparc-sun-solaris2.5*)
426 AFS_SYSNAME="sun4x_55"
429 sparc-sun-solaris2.6)
430 AFS_SYSNAME="sun4x_56"
432 sparc-sun-solaris2.7)
433 AFS_SYSNAME="sun4x_57"
435 sparc-sun-solaris2.8)
436 AFS_SYSNAME="sun4x_58"
438 sparc-sun-solaris2.9)
439 AFS_SYSNAME="sun4x_59"
441 sparc-sun-solaris2.10)
442 AFS_SYSNAME="sun4x_510"
444 sparc-sun-solaris2.11)
445 AFS_SYSNAME="sun4x_511"
448 AFS_SYSNAME="sun4_413"
452 AFS_SYSNAME="sunx86_57"
455 AFS_SYSNAME="sunx86_58"
458 AFS_SYSNAME="sunx86_59"
461 AFS_SYSNAME="sunx86_510"
464 AFS_SYSNAME="sunx86_511"
467 AFS_SYSNAME="alpha_dux40"
470 AFS_SYSNAME="alpha_dux50"
473 AFS_SYSNAME="alpha_dux51"
479 AFS_SYSNAME="ia64_linuxXX"
482 AFS_SYSNAME="`/bin/arch`_linuxXX"
485 AFS_SYSNAME="ppc64_linuxXX"
488 AFS_SYSNAME="alpha_linux_XX"
491 AFS_SYSNAME="s390_linuxXX"
494 AFS_SYSNAME="s390x_linuxXX"
497 AFS_SYSNAME="`/bin/arch`_linuxXX"
500 AFS_SYSNAME="sparc64_linuxXX"
503 AFS_SYSNAME="i386_linuxXX"
505 parisc-*-linux-gnu|hppa-*-linux-gnu)
506 AFS_SYSNAME="parisc_linuxXX"
510 AFS_SYSNAME="rs_aix42"
514 AFS_SYSNAME="rs_aix42"
518 AFS_SYSNAME="rs_aix51"
522 AFS_SYSNAME="rs_aix52"
526 AFS_SYSNAME="rs_aix53"
530 AFS_SYSNAME="amd64_linuxXX"
534 AC_MSG_ERROR(An AFS sysname is required)
539 *_linux* | *_umlinux*)
540 if test "x${AFS_SYSKVERS}" = "x"; then
541 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
543 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
544 AFS_SYSNAME="$_AFS_SYSNAME"
545 save_CPPFLAGS="$CPPFLAGS"
546 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
548 [#include <linux/autoconf.h>],
549 [#ifndef CONFIG_USERMODE
552 ac_cv_linux_is_uml=yes,)
553 if test "${ac_cv_linux_is_uml}" = yes; then
554 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
556 CPPFLAGS="$save_CPPFLAGS"
557 AFS_SYSNAME="$_AFS_SYSNAME"
560 AC_MSG_RESULT($AFS_SYSNAME)
563 dnl Some hosts have a separate common param file they should include. Figure
564 dnl out if we're on one of them now that we know the sysname.
566 *_nbsd15) AFS_PARAM_COMMON=param.nbsd15.h ;;
567 *_nbsd16) AFS_PARAM_COMMON=param.nbsd16.h ;;
568 *_nbsd20) AFS_PARAM_COMMON=param.nbsd20.h ;;
569 *_nbsd21) AFS_PARAM_COMMON=param.nbsd21.h ;;
570 *_nbsd30) AFS_PARAM_COMMON=param.nbsd30.h ;;
571 *_nbsd40) AFS_PARAM_COMMON=param.nbsd40.h ;;
572 *_linux22) AFS_PARAM_COMMON=param.linux22.h ;;
573 *_linux24) AFS_PARAM_COMMON=param.linux24.h ;;
574 *_linux26) AFS_PARAM_COMMON=param.linux26.h ;;
577 case $AFS_SYSNAME in *_linux* | *_umlinux*)
579 # Add (sub-) architecture-specific paths needed by conftests
582 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
583 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
584 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
585 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
588 if test "x$enable_kernel_module" = "xyes"; then
589 if test "x$enable_debug_kernel" = "xno"; then
590 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
592 OPENAFS_GCC_SUPPORTS_MARCH
593 AC_SUBST(P5PLUS_KOPTS)
594 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
595 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
596 OPENAFS_GCC_SUPPORTS_NO_COMMON
597 OPENAFS_GCC_SUPPORTS_PIPE
598 AC_SUBST(LINUX_GCC_KOPTS)
599 ifdef([OPENAFS_CONFIGURE_LIBAFS],
600 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
601 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
604 LINUX_KBUILD_USES_EXTRA_CFLAGS
605 LINUX_KERNEL_COMPILE_WORKS
606 LINUX_HAVE_CURRENT_KERNEL_TIME
607 LINUX_KMEM_CACHE_INIT
608 LINUX_HAVE_KMEM_CACHE_T
609 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
610 LINUX_CONFIG_H_EXISTS
611 LINUX_COMPLETION_H_EXISTS
612 LINUX_EXPORTFS_H_EXISTS
613 LINUX_DEFINES_FOR_EACH_PROCESS
614 LINUX_DEFINES_PREV_TASK
615 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
616 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
617 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
618 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
619 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
620 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
621 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
622 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
623 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
624 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
625 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
626 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
627 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
628 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
629 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
630 LINUX_INODE_SETATTR_RETURN_TYPE
631 LINUX_WRITE_INODE_RETURN_TYPE
632 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
633 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
634 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
635 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
636 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
637 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
638 LINUX_AOP_WRITEBACK_CONTROL
639 LINUX_FS_STRUCT_FOP_HAS_FLOCK
640 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
641 LINUX_FS_STRUCT_FOP_HAS_SPLICE
642 LINUX_KERNEL_LINUX_SYSCALL_H
643 LINUX_KERNEL_LINUX_SEQ_FILE_H
644 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
646 LINUX_KERNEL_SOCK_CREATE
647 LINUX_KERNEL_PAGE_FOLLOW_LINK
648 LINUX_KEY_TYPE_H_EXISTS
650 LINUX_RECALC_SIGPENDING_ARG_TYPE
651 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
652 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
653 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
654 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
655 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
656 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
657 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
658 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
659 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
660 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
661 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
662 LINUX_EXPORTS_TASKLIST_LOCK
663 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
664 LINUX_STATFS_TAKES_DENTRY
665 LINUX_FREEZER_H_EXISTS
666 LINUX_HAVE_SVC_ADDR_IN
667 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
668 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
671 LINUX_LINUX_KEYRING_SUPPORT
672 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
674 LINUX_GENERIC_FILE_AIO_READ
675 LINUX_INIT_WORK_HAS_DATA
676 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
677 LINUX_SYSCTL_TABLE_CHECKING
679 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
680 LINUX_EXPORTS_INIT_MM
681 LINUX_EXPORTS_SYS_CHDIR
682 LINUX_EXPORTS_SYS_CLOSE
683 LINUX_EXPORTS_SYS_OPEN
684 LINUX_EXPORTS_SYS_WAIT4
685 LINUX_EXPORTS_RCU_READ_LOCK
687 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
688 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
689 ac_cv_linux_exports_sys_call_table=no
690 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
691 ac_cv_linux_exports_ia32_sys_call_table=yes
694 LINUX_EXPORTS_KALLSYMS_ADDRESS
695 LINUX_EXPORTS_KALLSYMS_SYMBOL
696 LINUX_EXPORTS_SYS_CALL_TABLE
697 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
698 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
699 linux_syscall_method=none
700 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
701 linux_syscall_method=scan
702 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
703 linux_syscall_method=scan_with_kallsyms_address
706 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
707 linux_syscall_method=kallsyms_symbol
709 if test "x$linux_syscall_method" = "xnone"; then
710 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
711 linux_syscall_method=scan
715 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
716 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
718 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
719 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
721 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
722 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
724 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
725 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
727 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
728 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
730 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
731 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
733 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
734 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
736 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
737 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
739 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
740 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
742 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
743 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
745 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
746 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
748 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
749 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
751 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
752 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
754 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
755 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
757 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
758 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
760 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
761 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
763 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
764 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
766 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
767 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
769 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
770 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
772 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
773 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
775 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
776 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
778 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
779 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
781 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
782 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
784 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
785 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
787 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
788 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
790 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
791 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
793 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
794 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
796 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
797 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
799 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
800 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
802 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
803 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
805 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
806 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
808 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
809 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
811 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
812 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
814 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
815 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
817 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
818 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
820 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
821 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
823 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
824 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
826 if test "x$ac_linux_syscall" = "xyes" ; then
827 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
829 if test "x$ac_linux_seq_file" = "xyes" ; then
830 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
832 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
833 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
835 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
836 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
838 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
839 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
841 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
842 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
844 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
845 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
847 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
848 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
850 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
851 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
853 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
854 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
856 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
857 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
859 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
860 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
862 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
863 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
865 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
866 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
868 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
869 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
871 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
872 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
874 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
875 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
877 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
878 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
880 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
881 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
883 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
884 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
886 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
887 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
889 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
890 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
892 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
893 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
895 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
896 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
898 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
899 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
901 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
902 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
904 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
905 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
907 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
908 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
910 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
911 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
913 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
914 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
916 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
917 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
919 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
920 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
922 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
923 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
925 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
926 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
928 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
929 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
931 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
932 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
934 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
935 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
937 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
939 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
940 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
948 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
949 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
950 dnl the test below fails on darwin, even if the CPPFLAGS below
951 dnl are added. the headers from Kernel.framework must be used
952 dnl when KERNEL is defined.
954 dnl really, such a thing isn't guaranteed to work on any
955 dnl platform until the kernel cflags from MakefileProto are
956 dnl known to configure
957 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
960 AC_MSG_CHECKING(for definition of struct buf)
961 dnl save_CPPFLAGS="$CPPFLAGS"
962 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
963 AC_CACHE_VAL(ac_cv_have_struct_buf, [
964 ac_cv_have_struct_buf=no
966 [#include <sys/buf.h>],
968 printf("%d\n", sizeof(x));],
969 ac_cv_have_struct_buf=yes,)
972 dnl CPPFLAGS="$save_CPPFLAGS"
973 AC_MSG_RESULT($ac_cv_have_struct_buf)
974 if test "$ac_cv_have_struct_buf" = yes; then
975 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
981 AC_CACHE_VAL(ac_cv_sockaddr_len,
983 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
984 AC_TRY_COMPILE( [#include <sys/types.h>
985 #include <sys/socket.h>],
987 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
988 AC_MSG_RESULT($ac_cv_sockaddr_len)])
989 if test "$ac_cv_sockaddr_len" = "yes"; then
990 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
992 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
993 echo Skipping library tests because they confuse Irix.
995 AC_CHECK_FUNCS(socket)
997 if test "$ac_cv_func_socket" = no; then
998 for lib in socket inet; do
999 if test "$HAVE_SOCKET" != 1; then
1000 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1005 AC_CHECK_FUNCS(connect)
1007 if test "$ac_cv_func_connect" = no; then
1009 if test "$HAVE_CONNECT" != 1; then
1010 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1015 AC_CHECK_FUNCS(gethostbyname)
1016 if test "$ac_cv_func_gethostbyname" = no; then
1017 for lib in dns nsl resolv; do
1018 if test "$HAVE_GETHOSTBYNAME" != 1; then
1019 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1024 dnl darwin wants it, aix hates it
1025 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1029 #include <sys/types.h>
1030 #include <sys/socket.h>
1031 #include <netinet/in.h>
1032 #include <arpa/inet.h>
1033 #include <arpa/nameser.h>
1034 #include <arpa/nameser_compat.h>
1036 ], [static int i; i = 0;],
1038 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
1042 openafs_save_libs="$LIBS"
1043 AC_MSG_CHECKING([for res_search])
1046 if test "$ac_cv_func_res_search" = no; then
1047 for lib in dns nsl resolv; do
1048 if test "$ac_cv_func_res_search" != yes; then
1051 LIBS="$openafs_save_libs"
1054 if test "$ac_cv_func_res_search" = yes; then
1055 LIB_res_search="-l$lib"
1056 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1057 AC_MSG_RESULT([yes, in lib$lib])
1062 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1069 if test "x$MKAFS_OSTYPE" = OBSD; then
1070 PTHREAD_LIBS="-pthread"
1072 if test "x$PTHREAD_LIBS" = xerror; then
1073 AC_CHECK_LIB(pthread, pthread_attr_init,
1074 PTHREAD_LIBS="-lpthread")
1076 if test "x$PTHREAD_LIBS" = xerror; then
1077 AC_CHECK_LIB(pthreads, pthread_attr_init,
1078 PTHREAD_LIBS="-lpthreads")
1080 if test "x$PTHREAD_LIBS" = xerror; then
1081 AC_CHECK_LIB(c_r, pthread_attr_init,
1082 PTHREAD_LIBS="-lc_r")
1084 if test "x$PTHREAD_LIBS" = xerror; then
1085 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1087 if test "x$PTHREAD_LIBS" = xerror; then
1088 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1089 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1090 PTHREAD_LIBS="-lpthread")
1092 if test "x$PTHREAD_LIBS" = xerror; then
1093 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1095 AC_SUBST(PTHREAD_LIBS)
1097 HOST_CPU="$host_cpu"
1099 if test "x$with_bsd_kernel_headers" != "x"; then
1100 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1102 BSD_KERNEL_PATH="/usr/src/sys"
1105 if test "x$with_bsd_kernel_build" != "x"; then
1106 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1108 case $AFS_SYSNAME in
1110 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1113 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1119 if test "$enable_supergroups" = "yes"; then
1120 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1123 if test "$enable_fast_restart" = "yes"; then
1124 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1127 if test "$enable_bitmap_later" = "yes"; then
1128 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1131 if test "$enable_demand_attach_fs" = "yes"; then
1132 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1137 AC_SUBST(DEMAND_ATTACH)
1139 if test "$enable_unix_sockets" = "yes"; then
1140 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1141 USE_UNIX_SOCKETS="yes"
1143 USE_UNIX_SOCKETS="no"
1145 AC_SUBST(USE_UNIX_SOCKETS)
1147 if test "$enable_fast_restart" = "yes" &&
1148 test "$enable_demand_attach_fs" = "yes" ; then
1149 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.])
1153 if test "$enable_full_vos_listvol_switch" = "yes"; then
1154 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1157 if test "$enable_bos_restricted_mode" = "yes"; then
1158 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1161 if test "$enable_bos_new_config" = "yes"; then
1162 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1165 if test "$enable_largefile_fileserver" = "yes"; then
1166 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1169 if test "$enable_namei_fileserver" = "yes"; then
1170 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1173 if test "$enable_afsdb" = "yes"; then
1174 LIB_AFSDB="$LIB_res_search"
1175 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1178 dnl check for tivoli
1179 AC_MSG_CHECKING(for tivoli tsm butc support)
1181 if test "$enable_tivoli_tsm" = "yes"; then
1182 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1183 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1185 if test -r "$XBSADIR1/xbsa.h"; then
1186 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1187 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1188 elif test -r "$XBSADIR2/xbsa.h"; then
1189 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1190 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1192 AC_MSG_RESULT([no, missing xbsa.h header file])
1197 AC_SUBST(XBSA_CFLAGS)
1199 dnl checks for header files.
1203 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1204 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1205 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1206 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1207 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1208 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1210 dnl Don't build PAM on IRIX; the interface doesn't work for us.
1211 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1212 case $AFS_SYSNAME in
1225 if test "$enable_login" = yes; then
1230 AC_SUBST(BUILD_LOGIN)
1232 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1233 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1234 AC_CHECK_FUNCS(setvbuf vsyslog)
1235 AC_FUNC_SETVBUF_REVERSED
1236 AC_CHECK_FUNCS(regcomp regexec regerror)
1237 AC_MSG_CHECKING([for POSIX regex library])
1238 if test "$ac_cv_header_regex_h" = "yes" && \
1239 test "$ac_cv_func_regcomp" = "yes" && \
1240 test "$ac_cv_func_regexec" = "yes" && \
1241 test "$ac_cv_func_regerror" = "yes"; then
1242 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1249 AC_CHECK_TYPE(ssize_t, int)
1250 AC_CHECK_TYPE([sig_atomic_t], ,
1251 [AC_DEFINE([sig_atomic_t], [int],
1252 [Define to int if <signal.h> does not define.])],
1253 [#include <sys/types.h>
1254 #include <signal.h>])
1255 AC_SIZEOF_TYPE(long)
1257 AC_MSG_CHECKING(size of time_t)
1258 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1259 [AC_TRY_RUN([#include <stdio.h>
1263 FILE *f=fopen("conftestval", "w");
1265 fprintf(f, "%d\n", sizeof(time_t));
1267 }], ac_cv_sizeof_time_t=`cat conftestval`, ac_cv_sizeof_time_t=0)
1269 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1270 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t)
1272 AC_CHECK_FUNCS(timegm)
1273 AC_CHECK_FUNCS(daemon)
1275 dnl Directory PATH handling
1276 if test "x$enable_transarc_paths" = "xyes" ; then
1277 afsconfdir=${afsconfdir=/usr/afs/etc}
1278 viceetcdir=${viceetcdir=/usr/vice/etc}
1279 afskerneldir=${afskerneldir=${viceetcdir}}
1280 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1281 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1282 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1283 afsdbdir=${afsdbdir=/usr/afs/db}
1284 afslogsdir=${afslogsdir=/usr/afs/logs}
1285 afslocaldir=${afslocaldir=/usr/afs/local}
1286 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1287 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1289 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1290 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1291 afskerneldir=${afskerneldir='${libdir}/openafs'}
1292 afssrvbindir=${afssrvbindir='${bindir}'}
1293 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1294 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1295 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1296 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1297 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1298 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1299 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1301 AC_SUBST(afsconfdir)
1302 AC_SUBST(viceetcdir)
1303 AC_SUBST(afskerneldir)
1304 AC_SUBST(afssrvbindir)
1305 AC_SUBST(afssrvsbindir)
1306 AC_SUBST(afssrvlibexecdir)
1308 AC_SUBST(afslogsdir)
1309 AC_SUBST(afslocaldir)
1310 AC_SUBST(afsbackupdir)
1311 AC_SUBST(afsbosconfigdir)
1313 if test "x$enable_kernel_module" = "xyes"; then
1314 ENABLE_KERNEL_MODULE=libafs
1317 if test "x$enable_pthreaded_ubik" = "xyes"; then
1318 ENABLE_PTHREADED_UBIK=yes
1321 AC_SUBST(AFS_SYSNAME)
1322 AC_SUBST(AFS_PARAM_COMMON)
1323 AC_SUBST(ENABLE_KERNEL_MODULE)
1324 AC_SUBST(ENABLE_PTHREADED_UBIK)
1326 AC_SUBST(LINUX_KERNEL_PATH)
1328 AC_SUBST(BSD_KERNEL_PATH)
1329 AC_SUBST(BSD_KERNEL_BUILD)
1330 AC_SUBST(LINUX_VERSION)
1331 AC_SUBST(MKAFS_OSTYPE)
1332 AC_SUBST(TOP_OBJDIR)
1333 AC_SUBST(TOP_SRCDIR)
1334 AC_SUBST(TOP_INCDIR)
1335 AC_SUBST(TOP_LIBDIR)
1337 AC_SUBST(DARWIN_INFOFILE)
1338 AC_SUBST(IRIX_BUILD_IP35)
1343 TOP_SRCDIR="${srcdir}/src"
1345 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1351 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1355 TOP_OBJDIR="${SRCDIR_PARENT}"
1356 TOP_INCDIR="${SRCDIR_PARENT}/include"
1357 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1358 if test "${DEST}x" = "x"; then
1359 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1362 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1363 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1364 AC_SUBST(HELPER_SPLINT)
1365 AC_SUBST(HELPER_SPLINTCFG)
1367 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs