1 dnl This file contains the common configuration code which would
2 dnl otherwise be duplicated between configure and configure-libafs.
4 dnl NB: Because this code is a macro, references to positional shell
5 dnl parameters must be done like $[]1 instead of $1
7 AC_DEFUN([OPENAFS_CONFIGURE_COMMON],[
12 #BOZO_SAVE_CORES pam sia
13 AC_ARG_WITH(afs-sysname,
14 [ --with-afs-sysname=sys use sys for the afs sysname]
16 AC_ARG_ENABLE( obsolete,
17 [ --enable-obsolete enable obsolete portions of AFS (mpp and package)],, enable_obsolete="no")
19 [ --disable-afsdb disable AFSDB DNS RR support],, enable_afsdb="yes")
21 [ --disable-pam disable PAM support],, enable_pam="yes")
22 AC_ARG_ENABLE( bos-restricted-mode,
23 [ --enable-bos-restricted-mode enable bosserver restricted mode which disables certain bosserver functionality],, enable_bos_restricted_mode="no")
24 AC_ARG_ENABLE( bos-new-config,
25 [ --enable-bos-new-config enable bosserver pickup of BosConfig.new on restarts],, enable_bos_new_config="no")
26 AC_ARG_ENABLE( largefile-fileserver,
27 [ --disable-largefile-fileserver disable large file support in fileserver],, enable_largefile_fileserver="yes")
28 AC_ARG_ENABLE( namei-fileserver,
29 [ --enable-namei-fileserver force compilation of namei fileserver in preference to inode fileserver],, enable_namei_fileserver="no")
30 AC_ARG_ENABLE( supergroups,
31 [ --enable-supergroups enable support for nested pts groups],, enable_supergroups="no")
32 AC_ARG_ENABLE( fast-restart,
33 [ --enable-fast-restart enable fast startup of file server without salvaging],, enable_fast_restart="no")
34 AC_ARG_ENABLE( bitmap-later,
35 [ --enable-bitmap-later enable fast startup of file server by not reading bitmap till needed],, enable_bitmap_later="no")
36 AC_ARG_ENABLE( demand-attach-fs,
37 [ --enable-demand-attach-fs enable Demand Attach Fileserver (please see documentation)],, enable_demand_attach_fs="no")
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(optimize,
74 [ --disable-optimize disable optimization for compilation of the user space code (defaults to enabled)],, enable_optimize="yes"
76 AC_ARG_ENABLE(debug-lwp,
77 [ --enable-debug-lwp enable compilation of the LWP code with debugging information (defaults to disabled)],, enable_debug_lwp="no"
79 AC_ARG_ENABLE(optimize-lwp,
80 [ --disable-optimize-lwp disable optimization for compilation of the LWP code (defaults to enabled)],, enable_optimize_lwp="yes"
82 AC_ARG_ENABLE(debug-pam,
83 [ --enable-debug-pam enable compilation of the PAM code with debugging information (defaults to disabled)],, enable_debug_pam="no"
85 AC_ARG_ENABLE(optimize-pam,
86 [ --disable-optimize-pam disable optimization for compilation of the PAM code (defaults to enabled)],, enable_optimize_pam="yes"
97 dnl Various compiler setup.
101 COMPILER_HAS_FUNCTION_MACRO
103 dnl Checks for programs.
110 OPENAFS_CHECK_BIGENDIAN
112 AC_MSG_CHECKING(your OS)
118 if test "x$enable_redhat_buildsys" = "xyes"; then
119 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
121 if test "x$enable_kernel_module" = "xyes"; then
122 if test "x$with_linux_kernel_headers" != "x"; then
123 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
125 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
126 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
127 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
129 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
130 LINUX_KERNEL_PATH="/usr/src/linux"
133 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
134 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
135 if test "x$linux_kvers" = "x"; then
136 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
137 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
138 if test "x$linux_kvers" = "x"; then
140 AC_MSG_ERROR(Linux headers lack version definition [2])
143 LINUX_VERSION="$linux_kvers"
146 AC_MSG_ERROR(Linux headers lack version definition)
150 LINUX_VERSION="$linux_kvers"
153 enable_kernel_module="no"
155 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
156 enable_kernel_module="no"
158 if test "x$enable_kernel_module" = "xno"; then
159 if test "x$with_linux_kernel_headers" != "x"; then
160 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
163 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
166 dnl do we need to determine SUBARCH from autoconf.h
170 if test "x$enable_kernel_module" = "xyes"; then
171 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
172 if test "x${AFS_SYSKVERS}" = "x"; then
173 AC_MSG_ERROR(Couldn't guess your Linux version [2])
180 SOLARIS_UFSVFS_HAS_DQRWLOCK
181 SOLARIS_PROC_HAS_P_COREFILE
182 SOLARIS_FS_HAS_FS_ROLLED
186 enable_kernel_module=no
192 if test -f "/usr/old/usr/include/ndir.h"; then
193 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
197 if test -d /usr/include/sys/SN/SN1; then
198 IRIX_BUILD_IP35="IP35"
205 AC_MSG_RESULT(rs_aix)
209 AC_MSG_RESULT(alpha_dux)
210 if test "x$enable_kernel_module" = "xyes"; then
211 if test "x$with_dux_kernel_headers" != "x"; then
212 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
214 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
217 if test "$HEADER_RT" = "*" ; then
218 AC_MSG_ERROR([Need a configured kernel directory])
220 AC_SUBST([HEADER_RT])
224 AC_MSG_RESULT(ppc_darwin)
228 AC_MSG_RESULT(x86_darwin)
232 AC_MSG_RESULT(i386_fbsd)
240 AC_MSG_RESULT(i386_obsd)
243 AC_MSG_RESULT($system)
247 if test "x$with_afs_sysname" != "x"; then
248 AFS_SYSNAME="$with_afs_sysname"
250 AC_MSG_CHECKING(your AFS sysname)
256 AFS_SYSNAME="i386_obsd${vM}${vm}"
258 sparc64-*-openbsd?.?)
262 AFS_SYSNAME="sparc64_obsd${vM}${vm}"
268 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
271 AFS_PARAM_COMMON=param.nbsd15.h
272 AFS_SYSNAME="i386_nbsd15"
275 AFS_PARAM_COMMON=param.nbsd15.h
276 AFS_SYSNAME="alpha_nbsd15"
278 i?86-*-netbsd*1.6[[M-Z]]*)
279 AFS_PARAM_COMMON=param.nbsd20.h
280 AFS_SYSNAME="i386_nbsd20"
282 powerpc-*-netbsd*1.6[[M-Z]]*)
283 AFS_PARAM_COMMON=param.nbsd20.h
284 AFS_SYSNAME="ppc_nbsd20"
287 AFS_PARAM_COMMON=param.nbsd20.h
288 AFS_SYSNAME="i386_nbsd20"
291 AFS_PARAM_COMMON=param.nbsd20.h
292 AFS_SYSNAME="amd64_nbsd20"
294 powerpc-*-netbsd*2.0*)
295 AFS_PARAM_COMMON=param.nbsd20.h
296 AFS_SYSNAME="ppc_nbsd20"
299 AFS_PARAM_COMMON=param.nbsd16.h
300 AFS_SYSNAME="i386_nbsd16"
303 AFS_PARAM_COMMON=param.nbsd16.h
304 AFS_SYSNAME="alpha_nbsd16"
306 powerpc-*-netbsd*1.6*)
307 AFS_PARAM_COMMON=param.nbsd16.h
308 AFS_SYSNAME="ppc_nbsd16"
311 AFS_PARAM_COMMON=param.nbsd21.h
312 AFS_SYSNAME="i386_nbsd21"
315 AFS_PARAM_COMMON=param.nbsd30.h
316 AFS_SYSNAME="i386_nbsd30"
319 AFS_PARAM_COMMON=param.nbsd30.h
320 AFS_SYSNAME="i386_nbsd30"
323 AFS_PARAM_COMMON=param.nbsd30.h
324 AFS_SYSNAME="i386_nbsd30"
327 AFS_SYSNAME="hp_ux110"
330 AFS_SYSNAME="hp_ux11i"
333 AFS_SYSNAME="ia64_hpux1122"
336 AFS_SYSNAME="ia64_hpux1123"
339 AFS_SYSNAME="hp_ux102"
341 powerpc-apple-darwin1.2*)
342 AFS_SYSNAME="ppc_darwin_12"
344 powerpc-apple-darwin1.3*)
345 AFS_SYSNAME="ppc_darwin_13"
347 powerpc-apple-darwin1.4*)
348 AFS_SYSNAME="ppc_darwin_14"
350 powerpc-apple-darwin5.1*)
351 AFS_SYSNAME="ppc_darwin_14"
353 powerpc-apple-darwin5.2*)
354 AFS_SYSNAME="ppc_darwin_14"
356 powerpc-apple-darwin5.3*)
357 AFS_SYSNAME="ppc_darwin_14"
359 powerpc-apple-darwin5.4*)
360 AFS_SYSNAME="ppc_darwin_14"
362 powerpc-apple-darwin5.5*)
363 AFS_SYSNAME="ppc_darwin_14"
365 powerpc-apple-darwin6.0*)
366 AFS_SYSNAME="ppc_darwin_60"
368 powerpc-apple-darwin6.1*)
369 AFS_SYSNAME="ppc_darwin_60"
371 powerpc-apple-darwin6.2*)
372 AFS_SYSNAME="ppc_darwin_60"
374 powerpc-apple-darwin6.3*)
375 AFS_SYSNAME="ppc_darwin_60"
377 powerpc-apple-darwin6.4*)
378 AFS_SYSNAME="ppc_darwin_60"
380 powerpc-apple-darwin6.5*)
381 AFS_SYSNAME="ppc_darwin_60"
383 powerpc-apple-darwin7.0*)
384 AFS_SYSNAME="ppc_darwin_70"
386 powerpc-apple-darwin7.1*)
387 AFS_SYSNAME="ppc_darwin_70"
389 powerpc-apple-darwin7.2*)
390 AFS_SYSNAME="ppc_darwin_70"
392 powerpc-apple-darwin7.3*)
393 AFS_SYSNAME="ppc_darwin_70"
395 powerpc-apple-darwin7.4*)
396 AFS_SYSNAME="ppc_darwin_70"
398 powerpc-apple-darwin7.5*)
399 AFS_SYSNAME="ppc_darwin_70"
401 powerpc-apple-darwin8.0*)
402 AFS_SYSNAME="ppc_darwin_80"
404 powerpc-apple-darwin8.*)
405 AFS_SYSNAME="ppc_darwin_80"
407 i386-apple-darwin8.*)
408 AFS_SYSNAME="x86_darwin_80"
410 powerpc-apple-darwin9.*)
411 AFS_SYSNAME="ppc_darwin_90"
413 i386-apple-darwin9.*)
414 AFS_SYSNAME="x86_darwin_90"
416 sparc-sun-solaris2.5*)
417 AFS_SYSNAME="sun4x_55"
420 sparc-sun-solaris2.6)
421 AFS_SYSNAME="sun4x_56"
423 sparc-sun-solaris2.7)
424 AFS_SYSNAME="sun4x_57"
426 sparc-sun-solaris2.8)
427 AFS_SYSNAME="sun4x_58"
429 sparc-sun-solaris2.9)
430 AFS_SYSNAME="sun4x_59"
432 sparc-sun-solaris2.10)
433 AFS_SYSNAME="sun4x_510"
436 AFS_SYSNAME="sun4_413"
440 AFS_SYSNAME="sunx86_57"
443 AFS_SYSNAME="sunx86_58"
446 AFS_SYSNAME="sunx86_59"
449 AFS_SYSNAME="sunx86_510"
452 AFS_SYSNAME="alpha_dux40"
455 AFS_SYSNAME="alpha_dux50"
458 AFS_SYSNAME="alpha_dux51"
464 AFS_SYSNAME="ia64_linuxXX"
467 AFS_SYSNAME="`/bin/arch`_linuxXX"
470 AFS_SYSNAME="ppc64_linuxXX"
473 AFS_SYSNAME="alpha_linux_XX"
476 AFS_SYSNAME="s390_linuxXX"
479 AFS_SYSNAME="s390x_linuxXX"
482 AFS_SYSNAME="sparc_linuxXX"
485 AFS_SYSNAME="sparc64_linuxXX"
488 AFS_SYSNAME="i386_linuxXX"
490 parisc-*-linux-gnu|hppa-*-linux-gnu)
491 AFS_SYSNAME="parisc_linuxXX"
495 AFS_SYSNAME="rs_aix42"
499 AFS_SYSNAME="rs_aix42"
503 AFS_SYSNAME="rs_aix51"
507 AFS_SYSNAME="rs_aix52"
511 AFS_SYSNAME="rs_aix53"
515 AFS_SYSNAME="amd64_linuxXX"
519 AC_MSG_ERROR(An AFS sysname is required)
524 *_linux* | *_umlinux*)
525 if test "x${AFS_SYSKVERS}" = "x"; then
526 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
528 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
529 AFS_SYSNAME="$_AFS_SYSNAME"
530 save_CPPFLAGS="$CPPFLAGS"
531 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
533 [#include <linux/autoconf.h>],
534 [#ifndef CONFIG_USERMODE
537 ac_cv_linux_is_uml=yes,)
538 if test "${ac_cv_linux_is_uml}" = yes; then
539 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
541 CPPFLAGS="$save_CPPFLAGS"
542 AFS_SYSNAME="$_AFS_SYSNAME"
545 AC_MSG_RESULT($AFS_SYSNAME)
548 case $AFS_SYSNAME in *_linux* | *_umlinux*)
550 # Add (sub-) architecture-specific paths needed by conftests
553 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
554 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
555 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
556 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
559 if test "x$enable_kernel_module" = "xyes"; then
560 if test "x$enable_debug_kernel" = "xno"; then
561 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
563 OPENAFS_GCC_SUPPORTS_MARCH
564 AC_SUBST(P5PLUS_KOPTS)
565 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
566 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
567 OPENAFS_GCC_SUPPORTS_NO_COMMON
568 OPENAFS_GCC_SUPPORTS_PIPE
569 AC_SUBST(LINUX_GCC_KOPTS)
570 ifdef([OPENAFS_CONFIGURE_LIBAFS],
571 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
572 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
574 LINUX_COMPLETION_H_EXISTS
575 LINUX_DEFINES_FOR_EACH_PROCESS
576 LINUX_DEFINES_PREV_TASK
577 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
578 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
579 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
580 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
581 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
582 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
583 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
584 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
585 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
586 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
587 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
588 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
589 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
590 LINUX_INODE_SETATTR_RETURN_TYPE
591 LINUX_WRITE_INODE_RETURN_TYPE
593 LINUX_AOP_WRITEBACK_CONTROL
594 LINUX_KERNEL_LINUX_SYSCALL_H
595 LINUX_KERNEL_LINUX_SEQ_FILE_H
597 LINUX_KERNEL_SOCK_CREATE
598 LINUX_KERNEL_PAGE_FOLLOW_LINK
600 LINUX_RECALC_SIGPENDING_ARG_TYPE
601 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
602 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
603 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
604 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
605 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
606 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
607 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
608 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
611 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
612 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
613 ac_cv_linux_exports_sys_call_table=no
614 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
615 ac_cv_linux_exports_ia32_sys_call_table=yes
618 LINUX_EXPORTS_INIT_MM
619 LINUX_EXPORTS_KALLSYMS_ADDRESS
620 LINUX_EXPORTS_KALLSYMS_SYMBOL
621 LINUX_EXPORTS_SYS_CALL_TABLE
622 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
623 LINUX_EXPORTS_SYS_CHDIR
624 LINUX_EXPORTS_SYS_CLOSE
625 LINUX_EXPORTS_SYS_WAIT4
626 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
627 linux_syscall_method=none
628 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
629 linux_syscall_method=scan
630 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
631 linux_syscall_method=scan_with_kallsyms_address
634 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
635 linux_syscall_method=kallsyms_symbol
637 if test "x$linux_syscall_method" = "xnone"; then
638 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
639 linux_syscall_method=scan
643 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
644 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
646 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
647 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
649 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
650 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
652 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
653 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
655 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
656 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
658 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
659 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
661 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
662 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
664 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
665 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
667 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
668 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
670 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
671 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
673 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
674 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
676 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
677 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
679 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
680 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
682 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
683 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
685 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
686 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
688 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
689 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
691 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
692 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
694 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
695 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
697 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
698 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
700 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
701 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
703 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
704 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
706 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
707 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
709 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
710 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
712 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
713 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
715 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
716 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
718 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
719 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
721 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
722 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
724 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
725 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
727 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
728 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
730 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
731 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
733 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
734 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
736 if test "x$ac_linux_syscall" = "xyes" ; then
737 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
739 if test "x$ac_linux_seq_file" = "xyes" ; then
740 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
742 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
743 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
745 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
746 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
748 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
749 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
751 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
752 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
754 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
755 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
757 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
758 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
760 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
761 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
763 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
764 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
772 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
773 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
774 dnl the test below fails on darwin, even if the CPPFLAGS below
775 dnl are added. the headers from Kernel.framework must be used
776 dnl when KERNEL is defined.
778 dnl really, such a thing isn't guaranteed to work on any
779 dnl platform until the kernel cflags from MakefileProto are
780 dnl known to configure
781 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
784 AC_MSG_CHECKING(for definition of struct buf)
785 dnl save_CPPFLAGS="$CPPFLAGS"
786 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
787 AC_CACHE_VAL(ac_cv_have_struct_buf, [
788 ac_cv_have_struct_buf=no
790 [#include <sys/buf.h>],
792 printf("%d\n", sizeof(x));],
793 ac_cv_have_struct_buf=yes,)
796 dnl CPPFLAGS="$save_CPPFLAGS"
797 AC_MSG_RESULT($ac_cv_have_struct_buf)
798 if test "$ac_cv_have_struct_buf" = yes; then
799 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
805 AC_CACHE_VAL(ac_cv_sockaddr_len,
807 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
808 AC_TRY_COMPILE( [#include <sys/types.h>
809 #include <sys/socket.h>],
811 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
812 AC_MSG_RESULT($ac_cv_sockaddr_len)])
813 if test "$ac_cv_sockaddr_len" = "yes"; then
814 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
816 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
817 echo Skipping library tests because they confuse Irix.
819 AC_CHECK_FUNCS(socket)
821 if test "$ac_cv_func_socket" = no; then
822 for lib in socket inet; do
823 if test "$HAVE_SOCKET" != 1; then
824 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
829 AC_CHECK_FUNCS(connect)
831 if test "$ac_cv_func_connect" = no; then
833 if test "$HAVE_CONNECT" != 1; then
834 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
839 AC_CHECK_FUNCS(gethostbyname)
840 if test "$ac_cv_func_gethostbyname" = no; then
841 for lib in dns nsl resolv; do
842 if test "$HAVE_GETHOSTBYNAME" != 1; then
843 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
848 dnl darwin wants it, aix hates it
849 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
853 #include <sys/types.h>
854 #include <sys/socket.h>
855 #include <netinet/in.h>
856 #include <arpa/inet.h>
857 #include <arpa/nameser.h>
858 #include <arpa/nameser_compat.h>
860 ], [static int i; i = 0;],
862 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
866 openafs_save_libs="$LIBS"
867 AC_MSG_CHECKING([for res_search])
870 if test "$ac_cv_func_res_search" = no; then
871 for lib in dns nsl resolv; do
872 if test "$ac_cv_func_res_search" != yes; then
875 LIBS="$openafs_save_libs"
878 if test "$ac_cv_func_res_search" = yes; then
879 LIB_res_search="-l$lib"
880 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
881 AC_MSG_RESULT([yes, in lib$lib])
886 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
893 if test "x$MKAFS_OSTYPE" = OBSD; then
894 PTHREAD_LIBS="-pthread"
896 if test "x$PTHREAD_LIBS" = xerror; then
897 AC_CHECK_LIB(pthread, pthread_attr_init,
898 PTHREAD_LIBS="-lpthread")
900 if test "x$PTHREAD_LIBS" = xerror; then
901 AC_CHECK_LIB(pthreads, pthread_attr_init,
902 PTHREAD_LIBS="-lpthreads")
904 if test "x$PTHREAD_LIBS" = xerror; then
905 AC_CHECK_LIB(c_r, pthread_attr_init,
906 PTHREAD_LIBS="-lc_r")
908 if test "x$PTHREAD_LIBS" = xerror; then
909 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
911 if test "x$PTHREAD_LIBS" = xerror; then
912 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
913 AC_CHECK_LIB(pthread, pthread_attr_destroy,
914 PTHREAD_LIBS="-lpthread")
916 if test "x$PTHREAD_LIBS" = xerror; then
917 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
919 AC_SUBST(PTHREAD_LIBS)
922 if test "$enable_obsolete" = "yes"; then
928 if test "x$with_bsd_kernel_headers" != "x"; then
929 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
931 BSD_KERNEL_PATH="/usr/src/sys"
934 if test "x$with_bsd_kernel_build" != "x"; then
935 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
939 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
942 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
948 if test "$enable_supergroups" = "yes"; then
949 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
952 if test "$enable_fast_restart" = "yes"; then
953 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
956 if test "$enable_bitmap_later" = "yes"; then
957 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
960 if test "$enable_demand_attach_fs" = "yes"; then
961 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
966 AC_SUBST(DEMAND_ATTACH)
968 if test "$enable_fast_restart" = "yes" &&
969 test "$enable_demand_attach_fs" = "yes" ; then
970 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.])
974 if test "$enable_full_vos_listvol_switch" = "yes"; then
975 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
978 if test "$enable_bos_restricted_mode" = "yes"; then
979 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
982 if test "$enable_bos_new_config" = "yes"; then
983 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
986 if test "$enable_largefile_fileserver" = "yes"; then
987 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
990 if test "$enable_namei_fileserver" = "yes"; then
991 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
994 if test "$enable_afsdb" = "yes"; then
995 LIB_AFSDB="$LIB_res_search"
996 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1000 AC_MSG_CHECKING(for tivoli tsm butc support)
1002 if test "$enable_tivoli_tsm" = "yes"; then
1003 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1004 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1006 if test -r "$XBSADIR1/xbsa.h"; then
1007 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1008 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1009 elif test -r "$XBSADIR2/xbsa.h"; then
1010 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1011 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1013 AC_MSG_RESULT([no, missing xbsa.h header file])
1018 AC_SUBST(XBSA_CFLAGS)
1020 dnl checks for header files.
1024 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
1025 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1026 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1027 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
1028 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1029 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1031 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1038 if test "$enable_login" = yes; then
1043 AC_SUBST(BUILD_LOGIN)
1045 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
1046 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1047 AC_CHECK_FUNCS(setvbuf)
1048 AC_FUNC_SETVBUF_REVERSED
1049 AC_CHECK_FUNCS(regcomp regexec regerror)
1050 AC_MSG_CHECKING([for POSIX regex library])
1051 if test "$ac_cv_header_regex_h" = "yes" && \
1052 test "$ac_cv_func_regcomp" = "yes" && \
1053 test "$ac_cv_func_regexec" = "yes" && \
1054 test "$ac_cv_func_regerror" = "yes"; then
1055 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1061 AC_CHECK_TYPE(ssize_t, int)
1062 AC_SIZEOF_TYPE(long)
1064 AC_MSG_CHECKING(size of time_t)
1065 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1066 [AC_TRY_RUN([#include <stdio.h>
1070 FILE *f=fopen("conftestval", "w");
1072 fprintf(f, "%d\n", sizeof(time_t));
1074 }], ac_cv_sizeof_time_t=`cat conftestval`, ac_cv_sizeof_time_t=0)
1076 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1077 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t)
1079 AC_CHECK_FUNCS(timegm)
1080 AC_CHECK_FUNCS(daemon)
1082 dnl Directory PATH handling
1083 if test "x$enable_transarc_paths" = "xyes" ; then
1084 afsconfdir=${afsconfdir=/usr/afs/etc}
1085 viceetcdir=${viceetcdir=/usr/vice/etc}
1086 afskerneldir=${afskerneldir=${viceetcdir}}
1087 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1088 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1089 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1090 afsdbdir=${afsdbdir=/usr/afs/db}
1091 afslogsdir=${afslogsdir=/usr/afs/logs}
1092 afslocaldir=${afslocaldir=/usr/afs/local}
1093 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1094 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1096 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1097 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1098 afskerneldir=${afskerneldir='${libdir}/openafs'}
1099 afssrvbindir=${afssrvbindir='${bindir}'}
1100 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1101 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1102 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1103 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1104 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1105 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1106 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1108 AC_SUBST(afsconfdir)
1109 AC_SUBST(viceetcdir)
1110 AC_SUBST(afskerneldir)
1111 AC_SUBST(afssrvbindir)
1112 AC_SUBST(afssrvsbindir)
1113 AC_SUBST(afssrvlibexecdir)
1115 AC_SUBST(afslogsdir)
1116 AC_SUBST(afslocaldir)
1117 AC_SUBST(afsbackupdir)
1118 AC_SUBST(afsbosconfigdir)
1120 if test "x$enable_kernel_module" = "xyes"; then
1121 ENABLE_KERNEL_MODULE=libafs
1124 AC_SUBST(AFS_SYSNAME)
1125 AC_SUBST(AFS_PARAM_COMMON)
1126 AC_SUBST(ENABLE_KERNEL_MODULE)
1128 AC_SUBST(LINUX_KERNEL_PATH)
1130 AC_SUBST(BSD_KERNEL_PATH)
1131 AC_SUBST(BSD_KERNEL_BUILD)
1132 AC_SUBST(LINUX_VERSION)
1133 AC_SUBST(MKAFS_OSTYPE)
1134 AC_SUBST(TOP_OBJDIR)
1135 AC_SUBST(TOP_SRCDIR)
1136 AC_SUBST(TOP_INCDIR)
1137 AC_SUBST(TOP_LIBDIR)
1139 AC_SUBST(WITH_OBSOLETE)
1140 AC_SUBST(DARWIN_INFOFILE)
1141 AC_SUBST(IRIX_BUILD_IP35)
1146 TOP_SRCDIR="${srcdir}/src"
1148 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1154 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1158 TOP_OBJDIR="${SRCDIR_PARENT}"
1159 TOP_INCDIR="${SRCDIR_PARENT}/include"
1160 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1161 if test "${DEST}x" = "x"; then
1162 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1165 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1166 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1167 AC_SUBST(HELPER_SPLINT)
1168 AC_SUBST(HELPER_SPLINTCFG)
1170 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs