1 dnl This file contains the common configuration code which would
2 dnl otherwise be duplicated between configure and configure-libafs.
4 dnl NB: Because this code is a macro, references to positional shell
5 dnl parameters must be done like $[]1 instead of $1
7 AC_DEFUN([OPENAFS_CONFIGURE_COMMON],[
13 AC_ARG_WITH(afs-sysname,
14 [ --with-afs-sysname=sys use sys for the afs sysname]
17 [ --disable-afsdb disable AFSDB DNS RR support],, enable_afsdb="yes")
19 [ --disable-pam disable PAM support],, enable_pam="yes")
20 AC_ARG_ENABLE( bos-restricted-mode,
21 [ --enable-bos-restricted-mode enable bosserver restricted mode which disables certain bosserver functionality],, enable_bos_restricted_mode="no")
22 AC_ARG_ENABLE( bos-new-config,
23 [ --enable-bos-new-config enable bosserver pickup of BosConfig.new on restarts],, enable_bos_new_config="no")
24 AC_ARG_ENABLE( largefile-fileserver,
25 [ --disable-largefile-fileserver disable large file support in fileserver],, enable_largefile_fileserver="yes")
26 AC_ARG_ENABLE( namei-fileserver,
27 [ --enable-namei-fileserver force compilation of namei fileserver in preference to inode fileserver],, enable_namei_fileserver="no")
28 AC_ARG_ENABLE( supergroups,
29 [ --enable-supergroups enable support for nested pts groups],, enable_supergroups="no")
30 AC_ARG_ENABLE( fast-restart,
31 [ --enable-fast-restart enable fast startup of file server without salvaging],, enable_fast_restart="no")
32 AC_ARG_ENABLE( bitmap-later,
33 [ --enable-bitmap-later enable fast startup of file server by not reading bitmap till needed],, enable_bitmap_later="no")
34 AC_ARG_ENABLE( demand-attach-fs,
35 [ --enable-demand-attach-fs enable Demand Attach Fileserver (please see documentation)],, enable_demand_attach_fs="no")
36 AC_ARG_ENABLE( 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"
80 AC_ARG_ENABLE(debug-pam,
81 [ --enable-debug-pam enable compilation of the PAM code with debugging information (defaults to disabled)],, enable_debug_pam="no"
83 AC_ARG_ENABLE(optimize-pam,
84 [ --disable-optimize-pam disable optimization for compilation of the PAM code (defaults to enabled)],, enable_optimize_pam="yes"
95 dnl Various compiler setup.
99 COMPILER_HAS_FUNCTION_MACRO
101 dnl Checks for programs.
108 OPENAFS_CHECK_BIGENDIAN
110 AC_MSG_CHECKING(your OS)
116 if test "x$enable_redhat_buildsys" = "xyes"; then
117 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
119 if test "x$enable_kernel_module" = "xyes"; then
120 if test "x$with_linux_kernel_headers" != "x"; then
121 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
123 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
124 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
125 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
127 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
128 LINUX_KERNEL_PATH="/usr/src/linux"
131 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
132 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
133 if test "x$linux_kvers" = "x"; then
134 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
135 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
136 if test "x$linux_kvers" = "x"; then
138 AC_MSG_ERROR(Linux headers lack version definition [2])
141 LINUX_VERSION="$linux_kvers"
144 AC_MSG_ERROR(Linux headers lack version definition)
148 LINUX_VERSION="$linux_kvers"
151 enable_kernel_module="no"
153 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
154 enable_kernel_module="no"
156 if test "x$enable_kernel_module" = "xno"; then
157 if test "x$with_linux_kernel_headers" != "x"; then
158 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
161 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
164 dnl do we need to determine SUBARCH from autoconf.h
168 if test "x$enable_kernel_module" = "xyes"; then
169 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
170 if test "x${AFS_SYSKVERS}" = "x"; then
171 AC_MSG_ERROR(Couldn't guess your Linux version [2])
178 SOLARIS_UFSVFS_HAS_DQRWLOCK
179 SOLARIS_PROC_HAS_P_COREFILE
180 SOLARIS_FS_HAS_FS_ROLLED
184 enable_kernel_module=no
190 if test -f "/usr/old/usr/include/ndir.h"; then
191 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
195 if test -d /usr/include/sys/SN/SN1; then
196 IRIX_BUILD_IP35="IP35"
203 AC_MSG_RESULT(rs_aix)
207 AC_MSG_RESULT(alpha_dux)
211 AC_MSG_RESULT(ppc_darwin)
215 AC_MSG_RESULT(x86_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}"
245 sparc64-*-openbsd?.?)
249 AFS_SYSNAME="sparc64_obsd${vM}${vm}"
255 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
258 AFS_PARAM_COMMON=param.nbsd15.h
259 AFS_SYSNAME="i386_nbsd15"
262 AFS_PARAM_COMMON=param.nbsd15.h
263 AFS_SYSNAME="alpha_nbsd15"
265 i?86-*-netbsd*1.6[[M-Z]]*)
266 AFS_PARAM_COMMON=param.nbsd20.h
267 AFS_SYSNAME="i386_nbsd20"
269 powerpc-*-netbsd*1.6[[M-Z]]*)
270 AFS_PARAM_COMMON=param.nbsd20.h
271 AFS_SYSNAME="ppc_nbsd20"
274 AFS_PARAM_COMMON=param.nbsd20.h
275 AFS_SYSNAME="i386_nbsd20"
278 AFS_PARAM_COMMON=param.nbsd20.h
279 AFS_SYSNAME="amd64_nbsd20"
281 powerpc-*-netbsd*2.0*)
282 AFS_PARAM_COMMON=param.nbsd20.h
283 AFS_SYSNAME="ppc_nbsd20"
286 AFS_PARAM_COMMON=param.nbsd16.h
287 AFS_SYSNAME="i386_nbsd16"
290 AFS_PARAM_COMMON=param.nbsd16.h
291 AFS_SYSNAME="alpha_nbsd16"
293 powerpc-*-netbsd*1.6*)
294 AFS_PARAM_COMMON=param.nbsd16.h
295 AFS_SYSNAME="ppc_nbsd16"
298 AFS_PARAM_COMMON=param.nbsd21.h
299 AFS_SYSNAME="i386_nbsd21"
302 AFS_PARAM_COMMON=param.nbsd30.h
303 AFS_SYSNAME="i386_nbsd30"
306 AFS_PARAM_COMMON=param.nbsd30.h
307 AFS_SYSNAME="i386_nbsd30"
310 AFS_PARAM_COMMON=param.nbsd30.h
311 AFS_SYSNAME="i386_nbsd30"
314 AFS_SYSNAME="hp_ux110"
317 AFS_SYSNAME="hp_ux11i"
320 AFS_SYSNAME="ia64_hpux1122"
323 AFS_SYSNAME="ia64_hpux1123"
326 AFS_SYSNAME="hp_ux102"
328 powerpc-apple-darwin1.2*)
329 AFS_SYSNAME="ppc_darwin_12"
331 powerpc-apple-darwin1.3*)
332 AFS_SYSNAME="ppc_darwin_13"
334 powerpc-apple-darwin1.4*)
335 AFS_SYSNAME="ppc_darwin_14"
337 powerpc-apple-darwin5.1*)
338 AFS_SYSNAME="ppc_darwin_14"
340 powerpc-apple-darwin5.2*)
341 AFS_SYSNAME="ppc_darwin_14"
343 powerpc-apple-darwin5.3*)
344 AFS_SYSNAME="ppc_darwin_14"
346 powerpc-apple-darwin5.4*)
347 AFS_SYSNAME="ppc_darwin_14"
349 powerpc-apple-darwin5.5*)
350 AFS_SYSNAME="ppc_darwin_14"
352 powerpc-apple-darwin6.0*)
353 AFS_SYSNAME="ppc_darwin_60"
355 powerpc-apple-darwin6.1*)
356 AFS_SYSNAME="ppc_darwin_60"
358 powerpc-apple-darwin6.2*)
359 AFS_SYSNAME="ppc_darwin_60"
361 powerpc-apple-darwin6.3*)
362 AFS_SYSNAME="ppc_darwin_60"
364 powerpc-apple-darwin6.4*)
365 AFS_SYSNAME="ppc_darwin_60"
367 powerpc-apple-darwin6.5*)
368 AFS_SYSNAME="ppc_darwin_60"
370 powerpc-apple-darwin7.0*)
371 AFS_SYSNAME="ppc_darwin_70"
373 powerpc-apple-darwin7.1*)
374 AFS_SYSNAME="ppc_darwin_70"
376 powerpc-apple-darwin7.2*)
377 AFS_SYSNAME="ppc_darwin_70"
379 powerpc-apple-darwin7.3*)
380 AFS_SYSNAME="ppc_darwin_70"
382 powerpc-apple-darwin7.4*)
383 AFS_SYSNAME="ppc_darwin_70"
385 powerpc-apple-darwin7.5*)
386 AFS_SYSNAME="ppc_darwin_70"
388 powerpc-apple-darwin8.0*)
389 AFS_SYSNAME="ppc_darwin_80"
391 powerpc-apple-darwin8.*)
392 AFS_SYSNAME="ppc_darwin_80"
394 i386-apple-darwin8.*)
395 AFS_SYSNAME="x86_darwin_80"
397 powerpc-apple-darwin9.*)
398 AFS_SYSNAME="ppc_darwin_90"
400 i386-apple-darwin9.*)
401 AFS_SYSNAME="x86_darwin_90"
403 sparc-sun-solaris2.5*)
404 AFS_SYSNAME="sun4x_55"
407 sparc-sun-solaris2.6)
408 AFS_SYSNAME="sun4x_56"
410 sparc-sun-solaris2.7)
411 AFS_SYSNAME="sun4x_57"
413 sparc-sun-solaris2.8)
414 AFS_SYSNAME="sun4x_58"
416 sparc-sun-solaris2.9)
417 AFS_SYSNAME="sun4x_59"
419 sparc-sun-solaris2.10)
420 AFS_SYSNAME="sun4x_510"
423 AFS_SYSNAME="sun4_413"
427 AFS_SYSNAME="sunx86_57"
430 AFS_SYSNAME="sunx86_58"
433 AFS_SYSNAME="sunx86_59"
436 AFS_SYSNAME="sunx86_510"
439 AFS_SYSNAME="alpha_dux40"
442 AFS_SYSNAME="alpha_dux50"
445 AFS_SYSNAME="alpha_dux51"
451 AFS_SYSNAME="ia64_linuxXX"
454 AFS_SYSNAME="`/bin/arch`_linuxXX"
457 AFS_SYSNAME="ppc64_linuxXX"
460 AFS_SYSNAME="alpha_linux_XX"
463 AFS_SYSNAME="s390_linuxXX"
466 AFS_SYSNAME="s390x_linuxXX"
469 AFS_SYSNAME="sparc_linuxXX"
472 AFS_SYSNAME="sparc64_linuxXX"
475 AFS_SYSNAME="i386_linuxXX"
477 parisc-*-linux-gnu|hppa-*-linux-gnu)
478 AFS_SYSNAME="parisc_linuxXX"
482 AFS_SYSNAME="rs_aix42"
486 AFS_SYSNAME="rs_aix42"
490 AFS_SYSNAME="rs_aix51"
494 AFS_SYSNAME="rs_aix52"
498 AFS_SYSNAME="rs_aix53"
502 AFS_SYSNAME="amd64_linuxXX"
506 AC_MSG_ERROR(An AFS sysname is required)
511 *_linux* | *_umlinux*)
512 if test "x${AFS_SYSKVERS}" = "x"; then
513 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
515 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
516 AFS_SYSNAME="$_AFS_SYSNAME"
517 save_CPPFLAGS="$CPPFLAGS"
518 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
520 [#include <linux/autoconf.h>],
521 [#ifndef CONFIG_USERMODE
524 ac_cv_linux_is_uml=yes,)
525 if test "${ac_cv_linux_is_uml}" = yes; then
526 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
528 CPPFLAGS="$save_CPPFLAGS"
529 AFS_SYSNAME="$_AFS_SYSNAME"
532 AC_MSG_RESULT($AFS_SYSNAME)
535 case $AFS_SYSNAME in *_linux* | *_umlinux*)
537 # Add (sub-) architecture-specific paths needed by conftests
540 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
541 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
542 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
543 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
546 if test "x$enable_kernel_module" = "xyes"; then
547 if test "x$enable_debug_kernel" = "xno"; then
548 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
550 OPENAFS_GCC_SUPPORTS_MARCH
551 AC_SUBST(P5PLUS_KOPTS)
552 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
553 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
554 OPENAFS_GCC_SUPPORTS_NO_COMMON
555 OPENAFS_GCC_SUPPORTS_PIPE
556 AC_SUBST(LINUX_GCC_KOPTS)
557 ifdef([OPENAFS_CONFIGURE_LIBAFS],
558 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
559 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
561 LINUX_COMPLETION_H_EXISTS
562 LINUX_DEFINES_FOR_EACH_PROCESS
563 LINUX_DEFINES_PREV_TASK
564 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
565 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
566 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
567 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
568 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
569 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
570 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
571 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
572 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
573 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
574 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
575 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
576 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
577 LINUX_INODE_SETATTR_RETURN_TYPE
578 LINUX_WRITE_INODE_RETURN_TYPE
580 LINUX_AOP_WRITEBACK_CONTROL
581 LINUX_KERNEL_LINUX_SYSCALL_H
582 LINUX_KERNEL_LINUX_SEQ_FILE_H
584 LINUX_KERNEL_SOCK_CREATE
585 LINUX_KERNEL_PAGE_FOLLOW_LINK
587 LINUX_RECALC_SIGPENDING_ARG_TYPE
588 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
589 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
590 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
591 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
592 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
593 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
594 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
595 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
598 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
599 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
600 ac_cv_linux_exports_sys_call_table=no
601 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
602 ac_cv_linux_exports_ia32_sys_call_table=yes
605 LINUX_EXPORTS_INIT_MM
606 LINUX_EXPORTS_KALLSYMS_ADDRESS
607 LINUX_EXPORTS_KALLSYMS_SYMBOL
608 LINUX_EXPORTS_SYS_CALL_TABLE
609 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
610 LINUX_EXPORTS_SYS_CHDIR
611 LINUX_EXPORTS_SYS_CLOSE
612 LINUX_EXPORTS_SYS_WAIT4
613 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
614 linux_syscall_method=none
615 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
616 linux_syscall_method=scan
617 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
618 linux_syscall_method=scan_with_kallsyms_address
621 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
622 linux_syscall_method=kallsyms_symbol
624 if test "x$linux_syscall_method" = "xnone"; then
625 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
626 linux_syscall_method=scan
630 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
631 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
633 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
634 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
636 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
637 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
639 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
640 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
642 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
643 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
645 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
646 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
648 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
649 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
651 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
652 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
654 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
655 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
657 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
658 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
660 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
661 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
663 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
664 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
666 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
667 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
669 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
670 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
672 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
673 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
675 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
676 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
678 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
679 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
681 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
682 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
684 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
685 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
687 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
688 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
690 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
691 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
693 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
694 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
696 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
697 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
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 if test "x$MKAFS_OSTYPE" = OBSD; then
881 PTHREAD_LIBS="-pthread"
883 if test "x$PTHREAD_LIBS" = xerror; then
884 AC_CHECK_LIB(pthread, pthread_attr_init,
885 PTHREAD_LIBS="-lpthread")
887 if test "x$PTHREAD_LIBS" = xerror; then
888 AC_CHECK_LIB(pthreads, pthread_attr_init,
889 PTHREAD_LIBS="-lpthreads")
891 if test "x$PTHREAD_LIBS" = xerror; then
892 AC_CHECK_LIB(c_r, pthread_attr_init,
893 PTHREAD_LIBS="-lc_r")
895 if test "x$PTHREAD_LIBS" = xerror; then
896 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
898 if test "x$PTHREAD_LIBS" = xerror; then
899 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
900 AC_CHECK_LIB(pthread, pthread_attr_destroy,
901 PTHREAD_LIBS="-lpthread")
903 if test "x$PTHREAD_LIBS" = xerror; then
904 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
906 AC_SUBST(PTHREAD_LIBS)
910 if test "x$with_bsd_kernel_headers" != "x"; then
911 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
913 BSD_KERNEL_PATH="/usr/src/sys"
916 if test "x$with_bsd_kernel_build" != "x"; then
917 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
921 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
924 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
930 if test "$enable_supergroups" = "yes"; then
931 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
934 if test "$enable_fast_restart" = "yes"; then
935 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
938 if test "$enable_bitmap_later" = "yes"; then
939 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
942 if test "$enable_demand_attach_fs" = "yes"; then
943 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
948 AC_SUBST(DEMAND_ATTACH)
950 if test "$enable_fast_restart" = "yes" &&
951 test "$enable_demand_attach_fs" = "yes" ; then
952 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.])
956 if test "$enable_full_vos_listvol_switch" = "yes"; then
957 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
960 if test "$enable_bos_restricted_mode" = "yes"; then
961 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
964 if test "$enable_bos_new_config" = "yes"; then
965 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
968 if test "$enable_largefile_fileserver" = "yes"; then
969 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
972 if test "$enable_namei_fileserver" = "yes"; then
973 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
976 if test "$enable_afsdb" = "yes"; then
977 LIB_AFSDB="$LIB_res_search"
978 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
982 AC_MSG_CHECKING(for tivoli tsm butc support)
984 if test "$enable_tivoli_tsm" = "yes"; then
985 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
986 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
988 if test -r "$XBSADIR1/xbsa.h"; then
989 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
990 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
991 elif test -r "$XBSADIR2/xbsa.h"; then
992 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
993 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
995 AC_MSG_RESULT([no, missing xbsa.h header file])
1000 AC_SUBST(XBSA_CFLAGS)
1002 dnl checks for header files.
1006 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
1007 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1008 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1009 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
1010 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1011 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1013 dnl Don't build PAM on IRIX; the interface doesn't work for us.
1014 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1015 case $AFS_SYSNAME in
1028 if test "$enable_login" = yes; then
1033 AC_SUBST(BUILD_LOGIN)
1035 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
1036 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1037 AC_CHECK_FUNCS(setvbuf)
1038 AC_FUNC_SETVBUF_REVERSED
1039 AC_CHECK_FUNCS(regcomp regexec regerror)
1040 AC_MSG_CHECKING([for POSIX regex library])
1041 if test "$ac_cv_header_regex_h" = "yes" && \
1042 test "$ac_cv_func_regcomp" = "yes" && \
1043 test "$ac_cv_func_regexec" = "yes" && \
1044 test "$ac_cv_func_regerror" = "yes"; then
1045 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1052 AC_CHECK_TYPE(ssize_t, int)
1053 AC_CHECK_TYPE([sig_atomic_t], ,
1054 [AC_DEFINE([sig_atomic_t], [int],
1055 [Define to int if <signal.h> does not define.])],
1056 [#include <sys/types.h>
1057 #include <signal.h>])
1058 AC_SIZEOF_TYPE(long)
1060 AC_MSG_CHECKING(size of time_t)
1061 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1062 [AC_TRY_RUN([#include <stdio.h>
1066 FILE *f=fopen("conftestval", "w");
1068 fprintf(f, "%d\n", sizeof(time_t));
1070 }], ac_cv_sizeof_time_t=`cat conftestval`, ac_cv_sizeof_time_t=0)
1072 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1073 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t)
1075 AC_CHECK_FUNCS(timegm)
1076 AC_CHECK_FUNCS(daemon)
1078 dnl Directory PATH handling
1079 if test "x$enable_transarc_paths" = "xyes" ; then
1080 afsconfdir=${afsconfdir=/usr/afs/etc}
1081 viceetcdir=${viceetcdir=/usr/vice/etc}
1082 afskerneldir=${afskerneldir=${viceetcdir}}
1083 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1084 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1085 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1086 afsdbdir=${afsdbdir=/usr/afs/db}
1087 afslogsdir=${afslogsdir=/usr/afs/logs}
1088 afslocaldir=${afslocaldir=/usr/afs/local}
1089 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1090 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1092 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1093 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1094 afskerneldir=${afskerneldir='${libdir}/openafs'}
1095 afssrvbindir=${afssrvbindir='${bindir}'}
1096 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1097 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1098 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1099 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1100 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1101 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1102 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1104 AC_SUBST(afsconfdir)
1105 AC_SUBST(viceetcdir)
1106 AC_SUBST(afskerneldir)
1107 AC_SUBST(afssrvbindir)
1108 AC_SUBST(afssrvsbindir)
1109 AC_SUBST(afssrvlibexecdir)
1111 AC_SUBST(afslogsdir)
1112 AC_SUBST(afslocaldir)
1113 AC_SUBST(afsbackupdir)
1114 AC_SUBST(afsbosconfigdir)
1116 if test "x$enable_kernel_module" = "xyes"; then
1117 ENABLE_KERNEL_MODULE=libafs
1120 AC_SUBST(AFS_SYSNAME)
1121 AC_SUBST(AFS_PARAM_COMMON)
1122 AC_SUBST(ENABLE_KERNEL_MODULE)
1124 AC_SUBST(LINUX_KERNEL_PATH)
1126 AC_SUBST(BSD_KERNEL_PATH)
1127 AC_SUBST(BSD_KERNEL_BUILD)
1128 AC_SUBST(LINUX_VERSION)
1129 AC_SUBST(MKAFS_OSTYPE)
1130 AC_SUBST(TOP_OBJDIR)
1131 AC_SUBST(TOP_SRCDIR)
1132 AC_SUBST(TOP_INCDIR)
1133 AC_SUBST(TOP_LIBDIR)
1135 AC_SUBST(DARWIN_INFOFILE)
1136 AC_SUBST(IRIX_BUILD_IP35)
1141 TOP_SRCDIR="${srcdir}/src"
1143 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1149 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1153 TOP_OBJDIR="${SRCDIR_PARENT}"
1154 TOP_INCDIR="${SRCDIR_PARENT}/include"
1155 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1156 if test "${DEST}x" = "x"; then
1157 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1160 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1161 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1162 AC_SUBST(HELPER_SPLINT)
1163 AC_SUBST(HELPER_SPLINTCFG)
1165 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs