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 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 [ --enable-largefile-fileserver enable large file support in fileserver],, enable_largefile_fileserver="no")
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( full-vos-listvol-switch,
37 [ --disable-full-vos-listvol-switch disable vos full listvol switch for formatted output],, enable_full_vos_listvol_switch="yes")
38 AC_ARG_WITH(dux-kernel-headers,
39 [ --with-dux-kernel-headers=path use the kernel headers found at path(optional, defaults to first match in /usr/sys)]
41 AC_ARG_WITH(linux-kernel-headers,
42 [ --with-linux-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/linux-2.4, then /usr/src/linux)]
44 AC_ARG_WITH(bsd-kernel-headers,
45 [ --with-bsd-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/sys)]
47 AC_ARG_WITH(bsd-kernel-build,
48 [ --with-bsd-kernel-build=path use the kernel build found at path(optional, defaults to KSRC/i386/compile/GENERIC)]
50 AC_ARG_ENABLE(kernel-module,
51 [ --disable-kernel-module disable compilation of the kernel module (defaults to enabled)],, enable_kernel_module="yes"
53 AC_ARG_ENABLE(redhat-buildsys,
54 [ --enable-redhat-buildsys enable compilation of the redhat build system kernel (defaults to disabled)],, enable_redhat_buildsys="no"
56 AC_ARG_ENABLE(transarc-paths,
57 [ --enable-transarc-paths Use Transarc style paths like /usr/afs and /usr/vice],, enable_transarc_paths="no"
59 AC_ARG_ENABLE(tivoli-tsm,
60 [ --enable-tivoli-tsm Enable use of the Tivoli TSM API libraries for butc support],, enable_tivoli_tsm="no"
62 AC_ARG_ENABLE(debug-kernel,
63 [ --enable-debug-kernel enable compilation of the kernel module with debugging information (defaults to disabled)],, enable_debug_kernel="no"
65 AC_ARG_ENABLE(optimize-kernel,
66 [ --disable-optimize-kernel disable compilation of the kernel module with optimization (defaults based on platform)],, enable_optimize_kernel="yes"
69 [ --enable-debug enable compilation of the user space code with debugging information (defaults to disabled)],, enable_debug="no"
71 AC_ARG_ENABLE(optimize,
72 [ --disable-optimize disable optimization for compilation of the user space code (defaults to enabled)],, enable_optimize="yes"
74 AC_ARG_ENABLE(debug-lwp,
75 [ --enable-debug-lwp enable compilation of the LWP code with debugging information (defaults to disabled)],, enable_debug_lwp="no"
77 AC_ARG_ENABLE(optimize-lwp,
78 [ --disable-optimize-lwp disable optimization for compilation of the LWP code (defaults to enabled)],, enable_optimize_lwp="yes"
88 dnl Various compiler setup.
92 COMPILER_HAS_FUNCTION_MACRO
94 dnl Checks for programs.
101 OPENAFS_CHECK_BIGENDIAN
103 AC_MSG_CHECKING(your OS)
109 if test "x$enable_redhat_buildsys" = "xyes"; then
110 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
112 if test "x$enable_kernel_module" = "xyes"; then
113 if test "x$with_linux_kernel_headers" != "x"; then
114 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
116 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
117 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
118 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
120 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
121 LINUX_KERNEL_PATH="/usr/src/linux"
124 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
125 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
126 if test "x$linux_kvers" = "x"; then
127 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
128 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
129 if test "x$linux_kvers" = "x"; then
131 AC_MSG_ERROR(Linux headers lack version definition [2])
134 LINUX_VERSION="$linux_kvers"
137 AC_MSG_ERROR(Linux headers lack version definition)
141 LINUX_VERSION="$linux_kvers"
144 enable_kernel_module="no"
146 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
147 enable_kernel_module="no"
149 if test "x$enable_kernel_module" = "xno"; then
150 if test "x$with_linux_kernel_headers" != "x"; then
151 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
154 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
157 dnl do we need to determine SUBARCH from autoconf.h
161 if test "x$enable_kernel_module" = "xyes"; then
162 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
163 if test "x${AFS_SYSKVERS}" = "x"; then
164 AC_MSG_ERROR(Couldn't guess your Linux version [2])
171 SOLARIS_UFSVFS_HAS_DQRWLOCK
172 SOLARIS_PROC_HAS_P_COREFILE
173 SOLARIS_FS_HAS_FS_ROLLED
177 enable_kernel_module=no
185 if test -d /usr/include/sys/SN/SN1; then
186 IRIX_BUILD_IP35="IP35"
193 AC_MSG_RESULT(rs_aix)
197 AC_MSG_RESULT(alpha_dux)
198 if test "x$enable_kernel_module" = "xyes"; then
199 if test "x$with_dux_kernel_headers" != "x"; then
200 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
202 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
205 if test "$HEADER_RT" = "*" ; then
206 AC_MSG_ERROR([Need a configured kernel directory])
208 AC_SUBST([HEADER_RT])
212 AC_MSG_RESULT(ppc_darwin)
216 AC_MSG_RESULT(i386_fbsd)
224 AC_MSG_RESULT(i386_obsd)
227 AC_MSG_RESULT($system)
231 if test "x$with_afs_sysname" != "x"; then
232 AFS_SYSNAME="$with_afs_sysname"
234 AC_MSG_CHECKING(your AFS sysname)
240 AFS_SYSNAME="i386_obsd${vM}${vm}"
243 AFS_SYSNAME="i386_fbsd_42"
246 AFS_SYSNAME="i386_fbsd_43"
249 AFS_SYSNAME="i386_fbsd_44"
252 AFS_SYSNAME="i386_fbsd_45"
255 AFS_SYSNAME="i386_fbsd_46"
258 AFS_SYSNAME="i386_fbsd_47"
261 AFS_SYSNAME="i386_fbsd_50"
264 AFS_SYSNAME="i386_fbsd_51"
267 AFS_SYSNAME="i386_fbsd_52"
270 AFS_SYSNAME="i386_fbsd_53"
273 AFS_SYSNAME="i386_fbsd_54"
276 AFS_SYSNAME="i386_fbsd_60"
279 AFS_PARAM_COMMON=param.nbsd15.h
280 AFS_SYSNAME="i386_nbsd15"
283 AFS_PARAM_COMMON=param.nbsd15.h
284 AFS_SYSNAME="alpha_nbsd15"
286 i?86-*-netbsd*1.6[[M-Z]]*)
287 AFS_PARAM_COMMON=param.nbsd20.h
288 AFS_SYSNAME="i386_nbsd20"
290 powerpc-*-netbsd*1.6[[M-Z]]*)
291 AFS_PARAM_COMMON=param.nbsd20.h
292 AFS_SYSNAME="ppc_nbsd20"
295 AFS_PARAM_COMMON=param.nbsd20.h
296 AFS_SYSNAME="i386_nbsd20"
298 powerpc-*-netbsd*2.0*)
299 AFS_PARAM_COMMON=param.nbsd20.h
300 AFS_SYSNAME="ppc_nbsd20"
303 AFS_PARAM_COMMON=param.nbsd16.h
304 AFS_SYSNAME="i386_nbsd16"
307 AFS_PARAM_COMMON=param.nbsd16.h
308 AFS_SYSNAME="alpha_nbsd16"
310 powerpc-*-netbsd*1.6*)
311 AFS_PARAM_COMMON=param.nbsd16.h
312 AFS_SYSNAME="ppc_nbsd16"
315 AFS_PARAM_COMMON=param.nbsd21.h
316 AFS_SYSNAME="i386_nbsd21"
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_PARAM_COMMON=param.nbsd30.h
328 AFS_SYSNAME="i386_nbsd30"
331 AFS_SYSNAME="hp_ux110"
334 AFS_SYSNAME="hp_ux11i"
337 AFS_SYSNAME="ia64_hpux1122"
340 AFS_SYSNAME="ia64_hpux1123"
343 AFS_SYSNAME="hp_ux102"
345 powerpc-apple-darwin1.2*)
346 AFS_SYSNAME="ppc_darwin_12"
348 powerpc-apple-darwin1.3*)
349 AFS_SYSNAME="ppc_darwin_13"
351 powerpc-apple-darwin1.4*)
352 AFS_SYSNAME="ppc_darwin_14"
354 powerpc-apple-darwin5.1*)
355 AFS_SYSNAME="ppc_darwin_14"
357 powerpc-apple-darwin5.2*)
358 AFS_SYSNAME="ppc_darwin_14"
360 powerpc-apple-darwin5.3*)
361 AFS_SYSNAME="ppc_darwin_14"
363 powerpc-apple-darwin5.4*)
364 AFS_SYSNAME="ppc_darwin_14"
366 powerpc-apple-darwin5.5*)
367 AFS_SYSNAME="ppc_darwin_14"
369 powerpc-apple-darwin6.0*)
370 AFS_SYSNAME="ppc_darwin_60"
372 powerpc-apple-darwin6.1*)
373 AFS_SYSNAME="ppc_darwin_60"
375 powerpc-apple-darwin6.2*)
376 AFS_SYSNAME="ppc_darwin_60"
378 powerpc-apple-darwin6.3*)
379 AFS_SYSNAME="ppc_darwin_60"
381 powerpc-apple-darwin6.4*)
382 AFS_SYSNAME="ppc_darwin_60"
384 powerpc-apple-darwin6.5*)
385 AFS_SYSNAME="ppc_darwin_60"
387 powerpc-apple-darwin7.0*)
388 AFS_SYSNAME="ppc_darwin_70"
390 powerpc-apple-darwin7.1*)
391 AFS_SYSNAME="ppc_darwin_70"
393 powerpc-apple-darwin7.2*)
394 AFS_SYSNAME="ppc_darwin_70"
396 powerpc-apple-darwin7.3*)
397 AFS_SYSNAME="ppc_darwin_70"
399 powerpc-apple-darwin7.4*)
400 AFS_SYSNAME="ppc_darwin_70"
402 powerpc-apple-darwin7.5*)
403 AFS_SYSNAME="ppc_darwin_70"
405 powerpc-apple-darwin8.0*)
406 AFS_SYSNAME="ppc_darwin_80"
408 sparc-sun-solaris2.5*)
409 AFS_SYSNAME="sun4x_55"
412 sparc-sun-solaris2.6)
413 AFS_SYSNAME="sun4x_56"
415 sparc-sun-solaris2.7)
416 AFS_SYSNAME="sun4x_57"
418 sparc-sun-solaris2.8)
419 AFS_SYSNAME="sun4x_58"
421 sparc-sun-solaris2.9)
422 AFS_SYSNAME="sun4x_59"
424 sparc-sun-solaris2.10)
425 AFS_SYSNAME="sun4x_510"
428 AFS_SYSNAME="sun4_413"
432 AFS_SYSNAME="sunx86_57"
435 AFS_SYSNAME="sunx86_58"
438 AFS_SYSNAME="sunx86_59"
441 AFS_SYSNAME="sunx86_510"
444 AFS_SYSNAME="alpha_dux40"
447 AFS_SYSNAME="alpha_dux50"
450 AFS_SYSNAME="alpha_dux51"
456 AFS_SYSNAME="ia64_linuxXX"
459 AFS_SYSNAME="`/bin/arch`_linuxXX"
462 AFS_SYSNAME="ppc64_linuxXX"
465 AFS_SYSNAME="alpha_linux_XX"
468 AFS_SYSNAME="s390_linuxXX"
471 AFS_SYSNAME="s390x_linuxXX"
474 AFS_SYSNAME="sparc_linuxXX"
477 AFS_SYSNAME="sparc64_linuxXX"
480 AFS_SYSNAME="i386_linuxXX"
483 AFS_SYSNAME="parisc_linuxXX"
487 AFS_SYSNAME="rs_aix42"
491 AFS_SYSNAME="rs_aix42"
495 AFS_SYSNAME="rs_aix51"
499 AFS_SYSNAME="rs_aix52"
503 AFS_SYSNAME="rs_aix53"
507 AFS_SYSNAME="amd64_linuxXX"
511 AC_MSG_ERROR(An AFS sysname is required)
516 *_linux* | *_umlinux*)
517 if test "x${AFS_SYSKVERS}" = "x"; then
518 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
520 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
521 AFS_SYSNAME="$_AFS_SYSNAME"
522 save_CPPFLAGS="$CPPFLAGS"
523 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
525 [#include <linux/autoconf.h>],
526 [#ifndef CONFIG_USERMODE
529 ac_cv_linux_is_uml=yes,)
530 if test "${ac_cv_linux_is_uml}" = yes; then
531 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
533 CPPFLAGS="$save_CPPFLAGS"
534 AFS_SYSNAME="$_AFS_SYSNAME"
537 AC_MSG_RESULT($AFS_SYSNAME)
540 case $AFS_SYSNAME in *_linux* | *_umlinux*)
542 # Add (sub-) architecture-specific paths needed by conftests
545 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
546 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
547 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
548 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
551 if test "x$enable_kernel_module" = "xyes"; then
552 if test "x$enable_debug_kernel" = "xno"; then
553 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
555 OPENAFS_GCC_SUPPORTS_MARCH
556 AC_SUBST(P5PLUS_KOPTS)
557 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
558 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
559 OPENAFS_GCC_SUPPORTS_NO_COMMON
560 OPENAFS_GCC_SUPPORTS_PIPE
561 AC_SUBST(LINUX_GCC_KOPTS)
562 ifdef([OPENAFS_CONFIGURE_LIBAFS],
563 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
564 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
566 LINUX_COMPLETION_H_EXISTS
567 LINUX_DEFINES_FOR_EACH_PROCESS
568 LINUX_DEFINES_PREV_TASK
569 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
570 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
571 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
572 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
573 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
574 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
575 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
576 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
577 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
578 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
579 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
580 LINUX_INODE_SETATTR_RETURN_TYPE
581 LINUX_WRITE_INODE_RETURN_TYPE
583 LINUX_AOP_WRITEBACK_CONTROL
584 LINUX_KERNEL_LINUX_SYSCALL_H
585 LINUX_KERNEL_LINUX_SEQ_FILE_H
587 LINUX_KERNEL_SOCK_CREATE
588 LINUX_KERNEL_PAGE_FOLLOW_LINK
590 LINUX_RECALC_SIGPENDING_ARG_TYPE
591 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
592 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
593 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
594 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
595 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
596 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
597 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
598 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
601 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
602 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
603 ac_cv_linux_exports_sys_call_table=no
604 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
605 ac_cv_linux_exports_ia32_sys_call_table=yes
608 LINUX_EXPORTS_INIT_MM
609 LINUX_EXPORTS_KALLSYMS_ADDRESS
610 LINUX_EXPORTS_KALLSYMS_SYMBOL
611 LINUX_EXPORTS_SYS_CALL_TABLE
612 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
613 LINUX_EXPORTS_SYS_CHDIR
614 LINUX_EXPORTS_SYS_CLOSE
615 LINUX_EXPORTS_SYS_WAIT4
616 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
617 linux_syscall_method=none
618 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
619 linux_syscall_method=scan
620 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
621 linux_syscall_method=scan_with_kallsyms_address
624 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
625 linux_syscall_method=kallsyms_symbol
627 if test "x$linux_syscall_method" = "xnone"; then
628 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
629 linux_syscall_method=scan
633 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
634 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
636 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
637 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
639 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
640 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
642 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
643 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
645 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
646 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
648 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
649 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
651 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
652 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
654 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
655 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
657 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
658 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
660 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
661 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
663 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
664 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
666 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
667 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
669 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
670 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
672 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
673 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
675 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
676 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
678 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
679 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
681 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
682 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
684 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
685 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
687 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
688 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
690 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
691 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
693 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
694 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
696 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
697 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
699 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
700 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
702 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
703 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
705 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
706 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
708 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
709 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
711 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
712 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
714 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
715 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
717 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
718 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
720 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
721 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
723 if test "x$ac_linux_syscall" = "xyes" ; then
724 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
726 if test "x$ac_linux_seq_file" = "xyes" ; then
727 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
729 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
730 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
732 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
733 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
735 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
736 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
738 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
739 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
741 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
742 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
744 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
745 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
747 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
748 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
750 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
751 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
759 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
760 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
761 dnl the test below fails on darwin, even if the CPPFLAGS below
762 dnl are added. the headers from Kernel.Framework must be used
763 dnl when KERNEL is defined.
765 dnl really, such a thing isn't guaranteed to work on any
766 dnl platform until the kernel cflags from MakefileProto are
767 dnl known to configure
768 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
771 AC_MSG_CHECKING(for definition of struct buf)
772 dnl save_CPPFLAGS="$CPPFLAGS"
773 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
774 AC_CACHE_VAL(ac_cv_have_struct_buf, [
775 ac_cv_have_struct_buf=no
777 [#include <sys/buf.h>],
779 printf("%d\n", sizeof(x));],
780 ac_cv_have_struct_buf=yes,)
783 dnl CPPFLAGS="$save_CPPFLAGS"
784 AC_MSG_RESULT($ac_cv_have_struct_buf)
785 if test "$ac_cv_have_struct_buf" = yes; then
786 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
792 AC_CACHE_VAL(ac_cv_sockaddr_len,
794 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
795 AC_TRY_COMPILE( [#include <sys/types.h>
796 #include <sys/socket.h>],
798 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
799 AC_MSG_RESULT($ac_cv_sockaddr_len)])
800 if test "$ac_cv_sockaddr_len" = "yes"; then
801 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
803 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
804 echo Skipping library tests because they confuse Irix.
806 AC_CHECK_FUNCS(socket)
808 if test "$ac_cv_func_socket" = no; then
809 for lib in socket inet; do
810 if test "$HAVE_SOCKET" != 1; then
811 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
816 AC_CHECK_FUNCS(connect)
818 if test "$ac_cv_func_connect" = no; then
820 if test "$HAVE_CONNECT" != 1; then
821 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
826 AC_CHECK_FUNCS(gethostbyname)
827 if test "$ac_cv_func_gethostbyname" = no; then
828 for lib in dns nsl resolv; do
829 if test "$HAVE_GETHOSTBYNAME" != 1; then
830 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
835 dnl darwin wants it, aix hates it
836 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
840 #include <sys/types.h>
841 #include <sys/socket.h>
842 #include <netinet/in.h>
843 #include <arpa/inet.h>
844 #include <arpa/nameser.h>
845 #include <arpa/nameser_compat.h>
847 ], [static int i; i = 0;],
849 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
853 openafs_save_libs="$LIBS"
854 AC_MSG_CHECKING([for res_search])
857 if test "$ac_cv_func_res_search" = no; then
858 for lib in dns nsl resolv; do
859 if test "$ac_cv_func_res_search" != yes; then
862 LIBS="$openafs_save_libs"
865 if test "$ac_cv_func_res_search" = yes; then
866 LIB_res_search="-l$lib"
867 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
868 AC_MSG_RESULT([yes, in lib$lib])
873 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
880 AC_CHECK_LIB(pthread, pthread_attr_init,
881 PTHREAD_LIBS="-lpthread")
882 if test "x$PTHREAD_LIBS" = xerror; then
883 AC_CHECK_LIB(pthreads, pthread_attr_init,
884 PTHREAD_LIBS="-lpthreads")
886 if test "x$PTHREAD_LIBS" = xerror; then
887 AC_CHECK_LIB(c_r, pthread_attr_init,
888 PTHREAD_LIBS="-lc_r")
890 if test "x$PTHREAD_LIBS" = xerror; then
891 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
893 if test "x$PTHREAD_LIBS" = xerror; then
894 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
896 AC_SUBST(PTHREAD_LIBS)
899 if test "$enable_obsolete" = "yes"; then
903 if test "x$with_bsd_kernel_headers" != "x"; then
904 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
906 BSD_KERNEL_PATH="/usr/src/sys"
909 if test "x$with_bsd_kernel_build" != "x"; then
910 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
914 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
917 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/i386/compile/GENERIC"
923 if test "$enable_supergroups" = "yes"; then
924 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
927 if test "$enable_fast_restart" = "yes"; then
928 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
931 if test "$enable_bitmap_later" = "yes"; then
932 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
935 if test "$enable_full_vos_listvol_switch" = "yes"; then
936 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
939 if test "$enable_bos_restricted_mode" = "yes"; then
940 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
943 if test "$enable_bos_new_config" = "yes"; then
944 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
947 if test "$enable_largefile_fileserver" = "yes"; then
948 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
951 if test "$enable_namei_fileserver" = "yes"; then
952 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
955 if test "$enable_afsdb" = "yes"; then
956 LIB_AFSDB="$LIB_res_search"
957 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
961 AC_MSG_CHECKING(for tivoli tsm butc support)
963 if test "$enable_tivoli_tsm" = "yes"; then
964 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
965 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
967 if test -r "$XBSADIR1/xbsa.h"; then
968 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
969 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
970 elif test -r "$XBSADIR2/xbsa.h"; then
971 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
972 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
974 AC_MSG_RESULT([no, missing xbsa.h header file])
979 AC_SUBST(XBSA_CFLAGS)
981 dnl checks for header files.
985 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
986 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
987 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
988 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
989 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
990 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h)
992 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
999 if test "$enable_login" = yes; then
1004 AC_SUBST(BUILD_LOGIN)
1006 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
1007 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1009 AC_CHECK_FUNCS(regcomp regexec regerror)
1010 AC_MSG_CHECKING([for POSIX regex library])
1011 if test "$ac_cv_header_regex_h" = "yes" && \
1012 test "$ac_cv_func_regcomp" = "yes" && \
1013 test "$ac_cv_func_regexec" = "yes" && \
1014 test "$ac_cv_func_regerror" = "yes"; then
1015 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1021 AC_CHECK_TYPE(ssize_t, int)
1022 AC_SIZEOF_TYPE(long)
1024 AC_MSG_CHECKING(size of time_t)
1025 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1026 [AC_TRY_RUN([#include <stdio.h>
1030 FILE *f=fopen("conftestval", "w");
1032 fprintf(f, "%d\n", sizeof(time_t));
1034 }], ac_cv_sizeof_time_t=`cat conftestval`, ac_cv_sizeof_time_t=0)
1036 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1037 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t)
1039 AC_CHECK_FUNCS(timegm)
1040 AC_CHECK_FUNCS(daemon)
1042 dnl Directory PATH handling
1043 if test "x$enable_transarc_paths" = "xyes" ; then
1044 afsconfdir=${afsconfdir=/usr/afs/etc}
1045 viceetcdir=${viceetcdir=/usr/vice/etc}
1046 afskerneldir=${afskerneldir=${viceetcdir}}
1047 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1048 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1049 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1050 afsdbdir=${afsdbdir=/usr/afs/db}
1051 afslogsdir=${afslogsdir=/usr/afs/logs}
1052 afslocaldir=${afslocaldir=/usr/afs/local}
1053 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1054 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1056 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1057 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1058 afskerneldir=${afskerneldir='${libdir}/openafs'}
1059 afssrvbindir=${afssrvbindir='${bindir}'}
1060 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1061 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1062 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1063 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1064 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1065 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1066 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1068 AC_SUBST(afsconfdir)
1069 AC_SUBST(viceetcdir)
1070 AC_SUBST(afskerneldir)
1071 AC_SUBST(afssrvbindir)
1072 AC_SUBST(afssrvsbindir)
1073 AC_SUBST(afssrvlibexecdir)
1075 AC_SUBST(afslogsdir)
1076 AC_SUBST(afslocaldir)
1077 AC_SUBST(afsbackupdir)
1078 AC_SUBST(afsbosconfigdir)
1080 if test "x$enable_kernel_module" = "xyes"; then
1081 ENABLE_KERNEL_MODULE=libafs
1084 AC_SUBST(AFS_SYSNAME)
1085 AC_SUBST(AFS_PARAM_COMMON)
1086 AC_SUBST(ENABLE_KERNEL_MODULE)
1088 AC_SUBST(LINUX_KERNEL_PATH)
1089 AC_SUBST(BSD_KERNEL_PATH)
1090 AC_SUBST(BSD_KERNEL_BUILD)
1091 AC_SUBST(LINUX_VERSION)
1092 AC_SUBST(MKAFS_OSTYPE)
1093 AC_SUBST(TOP_OBJDIR)
1094 AC_SUBST(TOP_SRCDIR)
1095 AC_SUBST(TOP_INCDIR)
1096 AC_SUBST(TOP_LIBDIR)
1098 AC_SUBST(WITH_OBSOLETE)
1099 AC_SUBST(DARWIN_INFOFILE)
1100 AC_SUBST(IRIX_BUILD_IP35)
1105 TOP_SRCDIR="${srcdir}/src"
1107 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1113 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1117 TOP_OBJDIR="${SRCDIR_PARENT}"
1118 TOP_INCDIR="${SRCDIR_PARENT}/include"
1119 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1120 if test "${DEST}x" = "x"; then
1121 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1124 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1125 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1126 AC_SUBST(HELPER_SPLINT)
1127 AC_SUBST(HELPER_SPLINTCFG)
1129 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs