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
183 if test -f "/usr/old/usr/include/ndir.h"; then
184 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
188 if test -d /usr/include/sys/SN/SN1; then
189 IRIX_BUILD_IP35="IP35"
196 AC_MSG_RESULT(rs_aix)
200 AC_MSG_RESULT(alpha_dux)
201 if test "x$enable_kernel_module" = "xyes"; then
202 if test "x$with_dux_kernel_headers" != "x"; then
203 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
205 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
208 if test "$HEADER_RT" = "*" ; then
209 AC_MSG_ERROR([Need a configured kernel directory])
211 AC_SUBST([HEADER_RT])
215 AC_MSG_RESULT(ppc_darwin)
219 AC_MSG_RESULT(i386_fbsd)
227 AC_MSG_RESULT(i386_obsd)
230 AC_MSG_RESULT($system)
234 if test "x$with_afs_sysname" != "x"; then
235 AFS_SYSNAME="$with_afs_sysname"
237 AC_MSG_CHECKING(your AFS sysname)
243 AFS_SYSNAME="i386_obsd${vM}${vm}"
249 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
252 AFS_PARAM_COMMON=param.nbsd15.h
253 AFS_SYSNAME="i386_nbsd15"
256 AFS_PARAM_COMMON=param.nbsd15.h
257 AFS_SYSNAME="alpha_nbsd15"
259 i?86-*-netbsd*1.6[[M-Z]]*)
260 AFS_PARAM_COMMON=param.nbsd20.h
261 AFS_SYSNAME="i386_nbsd20"
263 powerpc-*-netbsd*1.6[[M-Z]]*)
264 AFS_PARAM_COMMON=param.nbsd20.h
265 AFS_SYSNAME="ppc_nbsd20"
268 AFS_PARAM_COMMON=param.nbsd20.h
269 AFS_SYSNAME="i386_nbsd20"
272 AFS_PARAM_COMMON=param.nbsd20.h
273 AFS_SYSNAME="amd64_nbsd20"
275 powerpc-*-netbsd*2.0*)
276 AFS_PARAM_COMMON=param.nbsd20.h
277 AFS_SYSNAME="ppc_nbsd20"
280 AFS_PARAM_COMMON=param.nbsd16.h
281 AFS_SYSNAME="i386_nbsd16"
284 AFS_PARAM_COMMON=param.nbsd16.h
285 AFS_SYSNAME="alpha_nbsd16"
287 powerpc-*-netbsd*1.6*)
288 AFS_PARAM_COMMON=param.nbsd16.h
289 AFS_SYSNAME="ppc_nbsd16"
292 AFS_PARAM_COMMON=param.nbsd21.h
293 AFS_SYSNAME="i386_nbsd21"
296 AFS_PARAM_COMMON=param.nbsd30.h
297 AFS_SYSNAME="i386_nbsd30"
300 AFS_PARAM_COMMON=param.nbsd30.h
301 AFS_SYSNAME="i386_nbsd30"
304 AFS_PARAM_COMMON=param.nbsd30.h
305 AFS_SYSNAME="i386_nbsd30"
308 AFS_SYSNAME="hp_ux110"
311 AFS_SYSNAME="hp_ux11i"
314 AFS_SYSNAME="ia64_hpux1122"
317 AFS_SYSNAME="ia64_hpux1123"
320 AFS_SYSNAME="hp_ux102"
322 powerpc-apple-darwin1.2*)
323 AFS_SYSNAME="ppc_darwin_12"
325 powerpc-apple-darwin1.3*)
326 AFS_SYSNAME="ppc_darwin_13"
328 powerpc-apple-darwin1.4*)
329 AFS_SYSNAME="ppc_darwin_14"
331 powerpc-apple-darwin5.1*)
332 AFS_SYSNAME="ppc_darwin_14"
334 powerpc-apple-darwin5.2*)
335 AFS_SYSNAME="ppc_darwin_14"
337 powerpc-apple-darwin5.3*)
338 AFS_SYSNAME="ppc_darwin_14"
340 powerpc-apple-darwin5.4*)
341 AFS_SYSNAME="ppc_darwin_14"
343 powerpc-apple-darwin5.5*)
344 AFS_SYSNAME="ppc_darwin_14"
346 powerpc-apple-darwin6.0*)
347 AFS_SYSNAME="ppc_darwin_60"
349 powerpc-apple-darwin6.1*)
350 AFS_SYSNAME="ppc_darwin_60"
352 powerpc-apple-darwin6.2*)
353 AFS_SYSNAME="ppc_darwin_60"
355 powerpc-apple-darwin6.3*)
356 AFS_SYSNAME="ppc_darwin_60"
358 powerpc-apple-darwin6.4*)
359 AFS_SYSNAME="ppc_darwin_60"
361 powerpc-apple-darwin6.5*)
362 AFS_SYSNAME="ppc_darwin_60"
364 powerpc-apple-darwin7.0*)
365 AFS_SYSNAME="ppc_darwin_70"
367 powerpc-apple-darwin7.1*)
368 AFS_SYSNAME="ppc_darwin_70"
370 powerpc-apple-darwin7.2*)
371 AFS_SYSNAME="ppc_darwin_70"
373 powerpc-apple-darwin7.3*)
374 AFS_SYSNAME="ppc_darwin_70"
376 powerpc-apple-darwin7.4*)
377 AFS_SYSNAME="ppc_darwin_70"
379 powerpc-apple-darwin7.5*)
380 AFS_SYSNAME="ppc_darwin_70"
382 powerpc-apple-darwin8.0*)
383 AFS_SYSNAME="ppc_darwin_80"
385 sparc-sun-solaris2.5*)
386 AFS_SYSNAME="sun4x_55"
389 sparc-sun-solaris2.6)
390 AFS_SYSNAME="sun4x_56"
392 sparc-sun-solaris2.7)
393 AFS_SYSNAME="sun4x_57"
395 sparc-sun-solaris2.8)
396 AFS_SYSNAME="sun4x_58"
398 sparc-sun-solaris2.9)
399 AFS_SYSNAME="sun4x_59"
401 sparc-sun-solaris2.10)
402 AFS_SYSNAME="sun4x_510"
405 AFS_SYSNAME="sun4_413"
409 AFS_SYSNAME="sunx86_57"
412 AFS_SYSNAME="sunx86_58"
415 AFS_SYSNAME="sunx86_59"
418 AFS_SYSNAME="sunx86_510"
421 AFS_SYSNAME="alpha_dux40"
424 AFS_SYSNAME="alpha_dux50"
427 AFS_SYSNAME="alpha_dux51"
433 AFS_SYSNAME="ia64_linuxXX"
436 AFS_SYSNAME="`/bin/arch`_linuxXX"
439 AFS_SYSNAME="ppc64_linuxXX"
442 AFS_SYSNAME="alpha_linux_XX"
445 AFS_SYSNAME="s390_linuxXX"
448 AFS_SYSNAME="s390x_linuxXX"
451 AFS_SYSNAME="sparc_linuxXX"
454 AFS_SYSNAME="sparc64_linuxXX"
457 AFS_SYSNAME="i386_linuxXX"
460 AFS_SYSNAME="parisc_linuxXX"
464 AFS_SYSNAME="rs_aix42"
468 AFS_SYSNAME="rs_aix42"
472 AFS_SYSNAME="rs_aix51"
476 AFS_SYSNAME="rs_aix52"
480 AFS_SYSNAME="rs_aix53"
484 AFS_SYSNAME="amd64_linuxXX"
488 AC_MSG_ERROR(An AFS sysname is required)
493 *_linux* | *_umlinux*)
494 if test "x${AFS_SYSKVERS}" = "x"; then
495 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
497 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
498 AFS_SYSNAME="$_AFS_SYSNAME"
499 save_CPPFLAGS="$CPPFLAGS"
500 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
502 [#include <linux/autoconf.h>],
503 [#ifndef CONFIG_USERMODE
506 ac_cv_linux_is_uml=yes,)
507 if test "${ac_cv_linux_is_uml}" = yes; then
508 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
510 CPPFLAGS="$save_CPPFLAGS"
511 AFS_SYSNAME="$_AFS_SYSNAME"
514 AC_MSG_RESULT($AFS_SYSNAME)
517 case $AFS_SYSNAME in *_linux* | *_umlinux*)
519 # Add (sub-) architecture-specific paths needed by conftests
522 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
523 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
524 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
525 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
528 if test "x$enable_kernel_module" = "xyes"; then
529 if test "x$enable_debug_kernel" = "xno"; then
530 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
532 OPENAFS_GCC_SUPPORTS_MARCH
533 AC_SUBST(P5PLUS_KOPTS)
534 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
535 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
536 OPENAFS_GCC_SUPPORTS_NO_COMMON
537 OPENAFS_GCC_SUPPORTS_PIPE
538 AC_SUBST(LINUX_GCC_KOPTS)
539 ifdef([OPENAFS_CONFIGURE_LIBAFS],
540 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
541 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
543 LINUX_COMPLETION_H_EXISTS
544 LINUX_DEFINES_FOR_EACH_PROCESS
545 LINUX_DEFINES_PREV_TASK
546 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
547 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
548 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
549 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
550 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
551 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
552 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
553 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
554 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
555 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
556 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
557 LINUX_INODE_SETATTR_RETURN_TYPE
558 LINUX_WRITE_INODE_RETURN_TYPE
560 LINUX_AOP_WRITEBACK_CONTROL
561 LINUX_KERNEL_LINUX_SYSCALL_H
562 LINUX_KERNEL_LINUX_SEQ_FILE_H
564 LINUX_KERNEL_SOCK_CREATE
565 LINUX_KERNEL_PAGE_FOLLOW_LINK
567 LINUX_RECALC_SIGPENDING_ARG_TYPE
568 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
569 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
570 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
571 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
572 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
573 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
574 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
575 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
578 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
579 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
580 ac_cv_linux_exports_sys_call_table=no
581 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
582 ac_cv_linux_exports_ia32_sys_call_table=yes
585 LINUX_EXPORTS_INIT_MM
586 LINUX_EXPORTS_KALLSYMS_ADDRESS
587 LINUX_EXPORTS_KALLSYMS_SYMBOL
588 LINUX_EXPORTS_SYS_CALL_TABLE
589 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
590 LINUX_EXPORTS_SYS_CHDIR
591 LINUX_EXPORTS_SYS_CLOSE
592 LINUX_EXPORTS_SYS_WAIT4
593 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
594 linux_syscall_method=none
595 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
596 linux_syscall_method=scan
597 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
598 linux_syscall_method=scan_with_kallsyms_address
601 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
602 linux_syscall_method=kallsyms_symbol
604 if test "x$linux_syscall_method" = "xnone"; then
605 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
606 linux_syscall_method=scan
610 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
611 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
613 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
614 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
616 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
617 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
619 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
620 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
622 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
623 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
625 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
626 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
628 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
629 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
631 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
632 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
634 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
635 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
637 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
638 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
640 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
641 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
643 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
644 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
646 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
647 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
649 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
650 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
652 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
653 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
655 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
656 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
658 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
659 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
661 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
662 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
664 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
665 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
667 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
668 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
670 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
671 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
673 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
674 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
676 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
677 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
679 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
680 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
682 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
683 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
685 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
686 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
688 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
689 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
691 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
692 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
694 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
695 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
697 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
698 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
700 if test "x$ac_linux_syscall" = "xyes" ; then
701 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
703 if test "x$ac_linux_seq_file" = "xyes" ; then
704 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
706 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
707 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
709 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
710 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
712 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
713 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
715 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
716 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
718 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
719 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
721 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
722 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
724 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
725 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
727 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
728 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
736 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
737 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
738 dnl the test below fails on darwin, even if the CPPFLAGS below
739 dnl are added. the headers from Kernel.framework must be used
740 dnl when KERNEL is defined.
742 dnl really, such a thing isn't guaranteed to work on any
743 dnl platform until the kernel cflags from MakefileProto are
744 dnl known to configure
745 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
748 AC_MSG_CHECKING(for definition of struct buf)
749 dnl save_CPPFLAGS="$CPPFLAGS"
750 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
751 AC_CACHE_VAL(ac_cv_have_struct_buf, [
752 ac_cv_have_struct_buf=no
754 [#include <sys/buf.h>],
756 printf("%d\n", sizeof(x));],
757 ac_cv_have_struct_buf=yes,)
760 dnl CPPFLAGS="$save_CPPFLAGS"
761 AC_MSG_RESULT($ac_cv_have_struct_buf)
762 if test "$ac_cv_have_struct_buf" = yes; then
763 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
769 AC_CACHE_VAL(ac_cv_sockaddr_len,
771 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
772 AC_TRY_COMPILE( [#include <sys/types.h>
773 #include <sys/socket.h>],
775 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
776 AC_MSG_RESULT($ac_cv_sockaddr_len)])
777 if test "$ac_cv_sockaddr_len" = "yes"; then
778 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
780 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
781 echo Skipping library tests because they confuse Irix.
783 AC_CHECK_FUNCS(socket)
785 if test "$ac_cv_func_socket" = no; then
786 for lib in socket inet; do
787 if test "$HAVE_SOCKET" != 1; then
788 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
793 AC_CHECK_FUNCS(connect)
795 if test "$ac_cv_func_connect" = no; then
797 if test "$HAVE_CONNECT" != 1; then
798 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
803 AC_CHECK_FUNCS(gethostbyname)
804 if test "$ac_cv_func_gethostbyname" = no; then
805 for lib in dns nsl resolv; do
806 if test "$HAVE_GETHOSTBYNAME" != 1; then
807 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
812 dnl darwin wants it, aix hates it
813 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
817 #include <sys/types.h>
818 #include <sys/socket.h>
819 #include <netinet/in.h>
820 #include <arpa/inet.h>
821 #include <arpa/nameser.h>
822 #include <arpa/nameser_compat.h>
824 ], [static int i; i = 0;],
826 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
830 openafs_save_libs="$LIBS"
831 AC_MSG_CHECKING([for res_search])
834 if test "$ac_cv_func_res_search" = no; then
835 for lib in dns nsl resolv; do
836 if test "$ac_cv_func_res_search" != yes; then
839 LIBS="$openafs_save_libs"
842 if test "$ac_cv_func_res_search" = yes; then
843 LIB_res_search="-l$lib"
844 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
845 AC_MSG_RESULT([yes, in lib$lib])
850 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
857 AC_CHECK_LIB(pthread, pthread_attr_init,
858 PTHREAD_LIBS="-lpthread")
859 if test "x$PTHREAD_LIBS" = xerror; then
860 AC_CHECK_LIB(pthreads, pthread_attr_init,
861 PTHREAD_LIBS="-lpthreads")
863 if test "x$PTHREAD_LIBS" = xerror; then
864 AC_CHECK_LIB(c_r, pthread_attr_init,
865 PTHREAD_LIBS="-lc_r")
867 if test "x$PTHREAD_LIBS" = xerror; then
868 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
870 if test "x$PTHREAD_LIBS" = xerror; then
871 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
872 AC_CHECK_LIB(pthread, pthread_attr_destroy,
873 PTHREAD_LIBS="-lpthread")
875 if test "x$PTHREAD_LIBS" = xerror; then
876 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
878 AC_SUBST(PTHREAD_LIBS)
881 if test "$enable_obsolete" = "yes"; then
885 if test "x$with_bsd_kernel_headers" != "x"; then
886 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
888 BSD_KERNEL_PATH="/usr/src/sys"
891 if test "x$with_bsd_kernel_build" != "x"; then
892 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
896 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
899 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/i386/compile/GENERIC"
905 if test "$enable_supergroups" = "yes"; then
906 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
909 if test "$enable_fast_restart" = "yes"; then
910 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
913 if test "$enable_bitmap_later" = "yes"; then
914 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
917 if test "$enable_full_vos_listvol_switch" = "yes"; then
918 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
921 if test "$enable_bos_restricted_mode" = "yes"; then
922 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
925 if test "$enable_bos_new_config" = "yes"; then
926 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
929 if test "$enable_largefile_fileserver" = "yes"; then
930 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
933 if test "$enable_namei_fileserver" = "yes"; then
934 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
937 if test "$enable_afsdb" = "yes"; then
938 LIB_AFSDB="$LIB_res_search"
939 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
943 AC_MSG_CHECKING(for tivoli tsm butc support)
945 if test "$enable_tivoli_tsm" = "yes"; then
946 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
947 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
949 if test -r "$XBSADIR1/xbsa.h"; then
950 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
951 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
952 elif test -r "$XBSADIR2/xbsa.h"; then
953 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
954 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
956 AC_MSG_RESULT([no, missing xbsa.h header file])
961 AC_SUBST(XBSA_CFLAGS)
963 dnl checks for header files.
967 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
968 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
969 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
970 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
971 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
972 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h)
974 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
981 if test "$enable_login" = yes; then
986 AC_SUBST(BUILD_LOGIN)
988 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
989 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
991 AC_CHECK_FUNCS(regcomp regexec regerror)
992 AC_MSG_CHECKING([for POSIX regex library])
993 if test "$ac_cv_header_regex_h" = "yes" && \
994 test "$ac_cv_func_regcomp" = "yes" && \
995 test "$ac_cv_func_regexec" = "yes" && \
996 test "$ac_cv_func_regerror" = "yes"; then
997 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1003 AC_CHECK_TYPE(ssize_t, int)
1004 AC_SIZEOF_TYPE(long)
1006 AC_MSG_CHECKING(size of time_t)
1007 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1008 [AC_TRY_RUN([#include <stdio.h>
1012 FILE *f=fopen("conftestval", "w");
1014 fprintf(f, "%d\n", sizeof(time_t));
1016 }], ac_cv_sizeof_time_t=`cat conftestval`, ac_cv_sizeof_time_t=0)
1018 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1019 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t)
1021 AC_CHECK_FUNCS(timegm)
1022 AC_CHECK_FUNCS(daemon)
1024 dnl Directory PATH handling
1025 if test "x$enable_transarc_paths" = "xyes" ; then
1026 afsconfdir=${afsconfdir=/usr/afs/etc}
1027 viceetcdir=${viceetcdir=/usr/vice/etc}
1028 afskerneldir=${afskerneldir=${viceetcdir}}
1029 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1030 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1031 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1032 afsdbdir=${afsdbdir=/usr/afs/db}
1033 afslogsdir=${afslogsdir=/usr/afs/logs}
1034 afslocaldir=${afslocaldir=/usr/afs/local}
1035 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1036 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1038 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1039 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1040 afskerneldir=${afskerneldir='${libdir}/openafs'}
1041 afssrvbindir=${afssrvbindir='${bindir}'}
1042 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1043 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1044 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1045 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1046 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1047 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1048 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1050 AC_SUBST(afsconfdir)
1051 AC_SUBST(viceetcdir)
1052 AC_SUBST(afskerneldir)
1053 AC_SUBST(afssrvbindir)
1054 AC_SUBST(afssrvsbindir)
1055 AC_SUBST(afssrvlibexecdir)
1057 AC_SUBST(afslogsdir)
1058 AC_SUBST(afslocaldir)
1059 AC_SUBST(afsbackupdir)
1060 AC_SUBST(afsbosconfigdir)
1062 if test "x$enable_kernel_module" = "xyes"; then
1063 ENABLE_KERNEL_MODULE=libafs
1066 AC_SUBST(AFS_SYSNAME)
1067 AC_SUBST(AFS_PARAM_COMMON)
1068 AC_SUBST(ENABLE_KERNEL_MODULE)
1070 AC_SUBST(LINUX_KERNEL_PATH)
1071 AC_SUBST(BSD_KERNEL_PATH)
1072 AC_SUBST(BSD_KERNEL_BUILD)
1073 AC_SUBST(LINUX_VERSION)
1074 AC_SUBST(MKAFS_OSTYPE)
1075 AC_SUBST(TOP_OBJDIR)
1076 AC_SUBST(TOP_SRCDIR)
1077 AC_SUBST(TOP_INCDIR)
1078 AC_SUBST(TOP_LIBDIR)
1080 AC_SUBST(WITH_OBSOLETE)
1081 AC_SUBST(DARWIN_INFOFILE)
1082 AC_SUBST(IRIX_BUILD_IP35)
1087 TOP_SRCDIR="${srcdir}/src"
1089 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1095 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1099 TOP_OBJDIR="${SRCDIR_PARENT}"
1100 TOP_INCDIR="${SRCDIR_PARENT}/include"
1101 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1102 if test "${DEST}x" = "x"; then
1103 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1106 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1107 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1108 AC_SUBST(HELPER_SPLINT)
1109 AC_SUBST(HELPER_SPLINTCFG)
1111 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs