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( disconnected,
37 [ --enable-disconnected enable disconnected support in cache manager (experimental)],, enable_disconnected="no")
38 AC_ARG_ENABLE( unix-sockets,
39 [ --enable-unix-sockets enable use of unix domain sockets for fssync],, enable_unix_sockets="yes")
40 AC_ARG_ENABLE( full-vos-listvol-switch,
41 [ --disable-full-vos-listvol-switch disable vos full listvol switch for formatted output],, enable_full_vos_listvol_switch="yes")
42 AC_ARG_ENABLE( icmp-pmtu-discovery,
43 [ --enable-icmp-pmtu-discovery enable path MTU discovery by decoding ICMP unreachable replies],, enable_icmp_pmtu_discovery="no")
44 AC_ARG_WITH(dux-kernel-headers,
45 [ --with-dux-kernel-headers=path use the kernel headers found at path(optional, defaults to first match in /usr/sys)]
47 AC_ARG_WITH(linux-kernel-headers,
48 [ --with-linux-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/linux-2.4, then /usr/src/linux)]
50 AC_ARG_WITH(bsd-kernel-headers,
51 [ --with-bsd-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/sys)]
53 AC_ARG_WITH(bsd-kernel-build,
54 [ --with-bsd-kernel-build=path use the kernel build found at path(optional, defaults to KSRC/i386/compile/GENERIC)]
56 AC_ARG_ENABLE(kernel-module,
57 [ --disable-kernel-module disable compilation of the kernel module (defaults to enabled)],, enable_kernel_module="yes"
59 AC_ARG_ENABLE(redhat-buildsys,
60 [ --enable-redhat-buildsys enable compilation of the redhat build system kernel (defaults to disabled)],, enable_redhat_buildsys="no"
62 AC_ARG_ENABLE(transarc-paths,
63 [ --enable-transarc-paths Use Transarc style paths like /usr/afs and /usr/vice],, enable_transarc_paths="no"
65 AC_ARG_ENABLE(tivoli-tsm,
66 [ --enable-tivoli-tsm Enable use of the Tivoli TSM API libraries for butc support],, enable_tivoli_tsm="no"
68 AC_ARG_ENABLE(debug-kernel,
69 [ --enable-debug-kernel enable compilation of the kernel module with debugging information (defaults to disabled)],, enable_debug_kernel="no"
71 AC_ARG_ENABLE(optimize-kernel,
72 [ --disable-optimize-kernel disable compilation of the kernel module with optimization (defaults based on platform)],, enable_optimize_kernel="yes"
75 [ --enable-debug enable compilation of the user space code with debugging information (defaults to disabled)],, enable_debug="no"
77 AC_ARG_ENABLE(strip-binaries,
78 [ --disable-strip-binaries disable stripping of symbol information from binaries (defaults to enabled)],, enable_strip_binaries="maybe"
80 AC_ARG_ENABLE(optimize,
81 [ --disable-optimize disable optimization for compilation of the user space code (defaults to enabled)],, enable_optimize="yes"
83 AC_ARG_ENABLE(debug-lwp,
84 [ --enable-debug-lwp enable compilation of the LWP code with debugging information (defaults to disabled)],, enable_debug_lwp="no"
86 AC_ARG_ENABLE(optimize-lwp,
87 [ --disable-optimize-lwp disable optimization for compilation of the LWP code (defaults to enabled)],, enable_optimize_lwp="yes"
89 AC_ARG_ENABLE(debug-pam,
90 [ --enable-debug-pam enable compilation of the PAM code with debugging information (defaults to disabled)],, enable_debug_pam="no"
92 AC_ARG_ENABLE(optimize-pam,
93 [ --disable-optimize-pam disable optimization for compilation of the PAM code (defaults to enabled)],, enable_optimize_pam="yes"
95 AC_ARG_ENABLE(warnings,
96 [ --enable-warnings enable compilation warnings when building with gcc (defaults to disabled)],, enable_warnings="no"
98 AC_ARG_ENABLE(pthreaded-ubik,
99 [ --enable-pthreaded-ubik enable installation of pthreaded ubik applications (defaults to disabled)],, enable_pthreaded_ubik="no"
105 dnl weird ass systems
110 dnl Various compiler setup.
114 COMPILER_HAS_FUNCTION_MACRO
116 dnl Checks for programs.
123 OPENAFS_CHECK_BIGENDIAN
125 AC_MSG_CHECKING(your OS)
131 if test "x$enable_redhat_buildsys" = "xyes"; then
132 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
134 if test "x$enable_kernel_module" = "xyes"; then
135 if test "x$with_linux_kernel_headers" != "x"; then
136 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
138 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/source"
139 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
140 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
142 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
143 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
145 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
146 LINUX_KERNEL_PATH="/usr/src/linux"
149 if test -f "$LINUX_KERNEL_PATH/include/linux/utsrelease.h"; then
150 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
151 LINUX_VERSION="$linux_kvers"
153 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
154 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
155 if test "x$linux_kvers" = "x"; then
156 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
157 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
158 if test "x$linux_kvers" = "x"; then
160 AC_MSG_ERROR(Linux headers lack version definition [2])
163 LINUX_VERSION="$linux_kvers"
166 AC_MSG_ERROR(Linux headers lack version definition)
170 LINUX_VERSION="$linux_kvers"
173 enable_kernel_module="no"
176 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
177 enable_kernel_module="no"
179 if test "x$enable_kernel_module" = "xno"; then
180 if test "x$with_linux_kernel_headers" != "x"; then
181 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
184 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
187 dnl do we need to determine SUBARCH from autoconf.h
191 if test "x$enable_kernel_module" = "xyes"; then
192 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
193 if test "x${AFS_SYSKVERS}" = "x"; then
194 AC_MSG_ERROR(Couldn't guess your Linux version [2])
201 SOLARIS_UFSVFS_HAS_DQRWLOCK
202 SOLARIS_PROC_HAS_P_COREFILE
203 SOLARIS_FS_HAS_FS_ROLLED
207 enable_kernel_module=no
213 if test -f "/usr/old/usr/include/ndir.h"; then
214 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
218 if test -d /usr/include/sys/SN/SN1; then
219 IRIX_BUILD_IP35="IP35"
226 AC_MSG_RESULT(rs_aix)
230 AC_MSG_RESULT(alpha_dux)
234 AC_MSG_RESULT(ppc_darwin)
238 AC_MSG_RESULT(x86_darwin)
242 AC_MSG_RESULT(i386_fbsd)
250 AC_MSG_RESULT(i386_obsd)
253 AC_MSG_RESULT($system)
257 if test "x$with_afs_sysname" != "x"; then
258 AFS_SYSNAME="$with_afs_sysname"
260 AC_MSG_CHECKING(your AFS sysname)
266 AFS_SYSNAME="i386_obsd${vM}${vm}"
268 sparc64-*-openbsd?.?)
272 AFS_SYSNAME="sparc64_obsd${vM}${vm}"
278 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
281 AFS_SYSNAME="i386_nbsd15"
284 AFS_SYSNAME="alpha_nbsd15"
286 i?86-*-netbsd*1.6[[M-Z]]*)
287 AFS_SYSNAME="i386_nbsd20"
289 powerpc-*-netbsd*1.6[[M-Z]]*)
290 AFS_SYSNAME="ppc_nbsd20"
293 AFS_SYSNAME="i386_nbsd20"
296 AFS_SYSNAME="amd64_nbsd20"
298 x86_64-*-netbsd*3.[0-8]*)
299 AFS_PARAM_COMMON=param.nbsd30.h
300 AFS_SYSNAME="amd64_nbsd30"
302 x86_64-*-netbsd*4.[0-8]*)
303 AFS_PARAM_COMMON=param.nbsd40.h
304 AFS_SYSNAME="amd64_nbsd40"
306 powerpc-*-netbsd*2.0*)
307 AFS_SYSNAME="ppc_nbsd20"
310 AFS_SYSNAME="i386_nbsd16"
313 AFS_SYSNAME="alpha_nbsd16"
315 powerpc-*-netbsd*1.6*)
316 AFS_SYSNAME="ppc_nbsd16"
319 AFS_SYSNAME="i386_nbsd21"
322 AFS_SYSNAME="i386_nbsd30"
324 i?86-*-netbsd*3.[[0-8]]*)
325 AFS_SYSNAME="i386_nbsd30"
328 AFS_SYSNAME="i386_nbsd30"
330 i?86-*-netbsd*4.[[0-8]]*)
331 AFS_SYSNAME="i386_nbsd40"
334 AFS_SYSNAME="i386_nbsd40"
337 AFS_SYSNAME="hp_ux110"
340 AFS_SYSNAME="hp_ux11i"
343 AFS_SYSNAME="hp_ux1123"
346 AFS_SYSNAME="ia64_hpux1122"
349 AFS_SYSNAME="ia64_hpux1123"
352 AFS_SYSNAME="hp_ux102"
354 powerpc-apple-darwin1.2*)
355 AFS_SYSNAME="ppc_darwin_12"
357 powerpc-apple-darwin1.3*)
358 AFS_SYSNAME="ppc_darwin_13"
360 powerpc-apple-darwin1.4*)
361 AFS_SYSNAME="ppc_darwin_14"
363 powerpc-apple-darwin5.1*)
364 AFS_SYSNAME="ppc_darwin_14"
366 powerpc-apple-darwin5.2*)
367 AFS_SYSNAME="ppc_darwin_14"
369 powerpc-apple-darwin5.3*)
370 AFS_SYSNAME="ppc_darwin_14"
372 powerpc-apple-darwin5.4*)
373 AFS_SYSNAME="ppc_darwin_14"
375 powerpc-apple-darwin5.5*)
376 AFS_SYSNAME="ppc_darwin_14"
378 powerpc-apple-darwin6.0*)
379 AFS_SYSNAME="ppc_darwin_60"
381 powerpc-apple-darwin6.1*)
382 AFS_SYSNAME="ppc_darwin_60"
384 powerpc-apple-darwin6.2*)
385 AFS_SYSNAME="ppc_darwin_60"
387 powerpc-apple-darwin6.3*)
388 AFS_SYSNAME="ppc_darwin_60"
390 powerpc-apple-darwin6.4*)
391 AFS_SYSNAME="ppc_darwin_60"
393 powerpc-apple-darwin6.5*)
394 AFS_SYSNAME="ppc_darwin_60"
396 powerpc-apple-darwin7.0*)
397 AFS_SYSNAME="ppc_darwin_70"
399 powerpc-apple-darwin7.1*)
400 AFS_SYSNAME="ppc_darwin_70"
402 powerpc-apple-darwin7.2*)
403 AFS_SYSNAME="ppc_darwin_70"
405 powerpc-apple-darwin7.3*)
406 AFS_SYSNAME="ppc_darwin_70"
408 powerpc-apple-darwin7.4*)
409 AFS_SYSNAME="ppc_darwin_70"
411 powerpc-apple-darwin7.5*)
412 AFS_SYSNAME="ppc_darwin_70"
414 powerpc-apple-darwin8.0*)
415 AFS_SYSNAME="ppc_darwin_80"
417 powerpc-apple-darwin8.*)
418 AFS_SYSNAME="ppc_darwin_80"
420 i386-apple-darwin8.*)
421 AFS_SYSNAME="x86_darwin_80"
423 powerpc-apple-darwin9.*)
424 AFS_SYSNAME="ppc_darwin_90"
426 i386-apple-darwin9.*)
427 AFS_SYSNAME="x86_darwin_90"
429 sparc-sun-solaris2.5*)
430 AFS_SYSNAME="sun4x_55"
433 sparc-sun-solaris2.6)
434 AFS_SYSNAME="sun4x_56"
436 sparc-sun-solaris2.7)
437 AFS_SYSNAME="sun4x_57"
439 sparc-sun-solaris2.8)
440 AFS_SYSNAME="sun4x_58"
442 sparc-sun-solaris2.9)
443 AFS_SYSNAME="sun4x_59"
445 sparc-sun-solaris2.10)
446 AFS_SYSNAME="sun4x_510"
448 sparc-sun-solaris2.11)
449 AFS_SYSNAME="sun4x_511"
452 AFS_SYSNAME="sun4_413"
456 AFS_SYSNAME="sunx86_57"
459 AFS_SYSNAME="sunx86_58"
462 AFS_SYSNAME="sunx86_59"
465 AFS_SYSNAME="sunx86_510"
468 AFS_SYSNAME="sunx86_511"
471 AFS_SYSNAME="alpha_dux40"
474 AFS_SYSNAME="alpha_dux50"
477 AFS_SYSNAME="alpha_dux51"
483 AFS_SYSNAME="ia64_linuxXX"
486 AFS_SYSNAME="`/bin/arch`_linuxXX"
489 AFS_SYSNAME="ppc64_linuxXX"
492 AFS_SYSNAME="alpha_linux_XX"
495 AFS_SYSNAME="s390_linuxXX"
498 AFS_SYSNAME="s390x_linuxXX"
501 AFS_SYSNAME="`/bin/arch`_linuxXX"
504 AFS_SYSNAME="sparc64_linuxXX"
507 AFS_SYSNAME="i386_linuxXX"
509 parisc-*-linux-gnu|hppa-*-linux-gnu)
510 AFS_SYSNAME="parisc_linuxXX"
514 AFS_SYSNAME="rs_aix42"
518 AFS_SYSNAME="rs_aix42"
522 AFS_SYSNAME="rs_aix51"
526 AFS_SYSNAME="rs_aix52"
530 AFS_SYSNAME="rs_aix53"
534 AFS_SYSNAME="amd64_linuxXX"
538 AC_MSG_ERROR(An AFS sysname is required)
543 *_linux* | *_umlinux*)
544 if test "x${AFS_SYSKVERS}" = "x"; then
545 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
547 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
548 AFS_SYSNAME="$_AFS_SYSNAME"
549 save_CPPFLAGS="$CPPFLAGS"
550 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
552 [#include <linux/autoconf.h>],
553 [#ifndef CONFIG_USERMODE
556 ac_cv_linux_is_uml=yes,)
557 if test "${ac_cv_linux_is_uml}" = yes; then
558 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
560 CPPFLAGS="$save_CPPFLAGS"
561 AFS_SYSNAME="$_AFS_SYSNAME"
564 AC_MSG_RESULT($AFS_SYSNAME)
567 dnl Some hosts have a separate common param file they should include. Figure
568 dnl out if we're on one of them now that we know the sysname.
570 *_nbsd15) AFS_PARAM_COMMON=param.nbsd15.h ;;
571 *_nbsd16) AFS_PARAM_COMMON=param.nbsd16.h ;;
572 *_nbsd20) AFS_PARAM_COMMON=param.nbsd20.h ;;
573 *_nbsd21) AFS_PARAM_COMMON=param.nbsd21.h ;;
574 *_nbsd30) AFS_PARAM_COMMON=param.nbsd30.h ;;
575 *_nbsd40) AFS_PARAM_COMMON=param.nbsd40.h ;;
576 *_linux22) AFS_PARAM_COMMON=param.linux22.h ;;
577 *_linux24) AFS_PARAM_COMMON=param.linux24.h ;;
578 *_linux26) AFS_PARAM_COMMON=param.linux26.h ;;
581 case $AFS_SYSNAME in *_linux* | *_umlinux*)
583 # Add (sub-) architecture-specific paths needed by conftests
586 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
587 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
588 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
589 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
592 if test "x$enable_kernel_module" = "xyes"; then
593 if test "x$enable_debug_kernel" = "xno"; then
594 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
596 OPENAFS_GCC_SUPPORTS_MARCH
597 AC_SUBST(P5PLUS_KOPTS)
598 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
599 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
600 OPENAFS_GCC_SUPPORTS_NO_COMMON
601 OPENAFS_GCC_SUPPORTS_PIPE
602 AC_SUBST(LINUX_GCC_KOPTS)
603 ifdef([OPENAFS_CONFIGURE_LIBAFS],
604 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
605 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
608 LINUX_KBUILD_USES_EXTRA_CFLAGS
609 LINUX_KERNEL_COMPILE_WORKS
610 LINUX_EXPORTS_FIND_TASK_BY_PID
611 LINUX_EXPORTS_PROC_ROOT_FS
612 LINUX_HAVE_CURRENT_KERNEL_TIME
613 LINUX_KMEM_CACHE_INIT
614 LINUX_HAVE_KMEM_CACHE_T
615 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
616 LINUX_D_PATH_TAKES_STRUCT_PATH
618 LINUX_CONFIG_H_EXISTS
619 LINUX_COMPLETION_H_EXISTS
620 LINUX_EXPORTFS_H_EXISTS
621 LINUX_DEFINES_FOR_EACH_PROCESS
622 LINUX_DEFINES_PREV_TASK
623 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
624 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
625 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
626 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
627 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
628 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
629 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
630 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
631 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
632 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
633 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
634 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
635 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
636 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
637 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
638 LINUX_INODE_SETATTR_RETURN_TYPE
639 LINUX_WRITE_INODE_RETURN_TYPE
640 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
641 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
642 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
643 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
644 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
645 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
646 LINUX_AOP_WRITEBACK_CONTROL
647 LINUX_FS_STRUCT_FOP_HAS_FLOCK
648 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
649 LINUX_FS_STRUCT_FOP_HAS_SPLICE
650 LINUX_KERNEL_LINUX_SYSCALL_H
651 LINUX_KERNEL_LINUX_SEQ_FILE_H
652 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
654 LINUX_KERNEL_SOCK_CREATE
655 LINUX_KERNEL_PAGE_FOLLOW_LINK
656 LINUX_KERNEL_HLIST_UNHASHED
657 LINUX_KEY_TYPE_H_EXISTS
659 LINUX_RECALC_SIGPENDING_ARG_TYPE
660 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
661 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
662 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
663 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
664 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
665 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
666 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
667 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
668 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
669 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
670 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
671 LINUX_EXPORTS_TASKLIST_LOCK
672 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
673 LINUX_STATFS_TAKES_DENTRY
674 LINUX_FREEZER_H_EXISTS
675 LINUX_HAVE_SVC_ADDR_IN
676 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
677 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
680 LINUX_LINUX_KEYRING_SUPPORT
681 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
683 LINUX_GENERIC_FILE_AIO_READ
684 LINUX_INIT_WORK_HAS_DATA
685 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
686 LINUX_SYSCTL_TABLE_CHECKING
688 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
689 LINUX_EXPORTS_INIT_MM
690 LINUX_EXPORTS_SYS_CHDIR
691 LINUX_EXPORTS_SYS_CLOSE
692 LINUX_EXPORTS_SYS_OPEN
693 LINUX_EXPORTS_SYS_WAIT4
694 LINUX_EXPORTS_RCU_READ_LOCK
696 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
697 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
698 ac_cv_linux_exports_sys_call_table=no
699 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
700 ac_cv_linux_exports_ia32_sys_call_table=yes
703 LINUX_EXPORTS_KALLSYMS_ADDRESS
704 LINUX_EXPORTS_KALLSYMS_SYMBOL
705 LINUX_EXPORTS_SYS_CALL_TABLE
706 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
707 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
708 linux_syscall_method=none
709 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
710 linux_syscall_method=scan
711 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
712 linux_syscall_method=scan_with_kallsyms_address
715 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
716 linux_syscall_method=kallsyms_symbol
718 if test "x$linux_syscall_method" = "xnone"; then
719 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
720 linux_syscall_method=scan
724 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
725 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
727 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
728 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
730 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
731 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
733 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
734 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
736 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
737 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
739 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
740 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
742 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
743 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
745 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
746 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
748 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
749 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
751 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
752 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
754 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
755 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
757 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
758 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
760 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
761 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
763 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
764 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
766 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
767 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
769 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
770 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
772 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
773 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
775 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
776 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
778 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
779 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
781 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
782 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
784 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
785 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
787 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
788 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
790 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
791 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
793 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
794 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
796 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
797 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
799 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
800 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
802 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
803 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
805 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
806 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
808 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
809 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
811 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
812 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
814 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
815 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
817 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
818 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
820 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
821 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
823 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
824 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
826 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
827 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
829 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
830 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
832 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
833 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
835 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
836 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
838 if test "x$ac_linux_syscall" = "xyes" ; then
839 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
841 if test "x$ac_linux_seq_file" = "xyes" ; then
842 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
844 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
845 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
847 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
848 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
850 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
851 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
853 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
854 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
856 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
857 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
859 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
860 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
862 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
863 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
865 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
866 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
868 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
869 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
871 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
872 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
874 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
875 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
877 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
878 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
880 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
881 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
883 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
884 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
886 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
887 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
889 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
890 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
892 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
893 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
895 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
896 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
898 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
899 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
901 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
902 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
904 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
905 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
907 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
908 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
910 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
911 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
913 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
914 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
916 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
917 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
919 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
920 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
922 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
923 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
925 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
926 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
928 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
929 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
931 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
932 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
934 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
935 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
937 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
938 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
940 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
941 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
943 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
944 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
946 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
947 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
949 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
951 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
952 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
960 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
961 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
962 dnl the test below fails on darwin, even if the CPPFLAGS below
963 dnl are added. the headers from Kernel.framework must be used
964 dnl when KERNEL is defined.
966 dnl really, such a thing isn't guaranteed to work on any
967 dnl platform until the kernel cflags from MakefileProto are
968 dnl known to configure
969 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
972 AC_MSG_CHECKING(for definition of struct buf)
973 dnl save_CPPFLAGS="$CPPFLAGS"
974 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
975 AC_CACHE_VAL(ac_cv_have_struct_buf, [
976 ac_cv_have_struct_buf=no
978 [#include <sys/buf.h>],
980 printf("%d\n", sizeof(x));],
981 ac_cv_have_struct_buf=yes,)
984 dnl CPPFLAGS="$save_CPPFLAGS"
985 AC_MSG_RESULT($ac_cv_have_struct_buf)
986 if test "$ac_cv_have_struct_buf" = yes; then
987 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
993 AC_CACHE_VAL(ac_cv_sockaddr_len,
995 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
996 AC_TRY_COMPILE( [#include <sys/types.h>
997 #include <sys/socket.h>],
999 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1000 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1001 if test "$ac_cv_sockaddr_len" = "yes"; then
1002 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1004 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1005 echo Skipping library tests because they confuse Irix.
1007 AC_CHECK_FUNCS(socket)
1009 if test "$ac_cv_func_socket" = no; then
1010 for lib in socket inet; do
1011 if test "$HAVE_SOCKET" != 1; then
1012 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1017 AC_CHECK_FUNCS(connect)
1019 if test "$ac_cv_func_connect" = no; then
1021 if test "$HAVE_CONNECT" != 1; then
1022 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1027 AC_CHECK_FUNCS(gethostbyname)
1028 if test "$ac_cv_func_gethostbyname" = no; then
1029 for lib in dns nsl resolv; do
1030 if test "$HAVE_GETHOSTBYNAME" != 1; then
1031 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1036 dnl darwin wants it, aix hates it
1037 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1041 #include <sys/types.h>
1042 #include <sys/socket.h>
1043 #include <netinet/in.h>
1044 #include <arpa/inet.h>
1045 #include <arpa/nameser.h>
1046 #include <arpa/nameser_compat.h>
1048 ], [static int i; i = 0;],
1050 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
1054 openafs_save_libs="$LIBS"
1055 AC_MSG_CHECKING([for res_search])
1058 if test "$ac_cv_func_res_search" = no; then
1059 for lib in dns nsl resolv; do
1060 if test "$ac_cv_func_res_search" != yes; then
1063 LIBS="$openafs_save_libs"
1066 if test "$ac_cv_func_res_search" = yes; then
1067 LIB_res_search="-l$lib"
1068 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1069 AC_MSG_RESULT([yes, in lib$lib])
1074 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1080 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1082 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1083 AC_TRY_COMPILE( [#include <sys/types.h>
1084 #include <sys/socket.h>
1085 #include <netinet/in.h>],
1087 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1088 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1089 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1090 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1094 if test "x$MKAFS_OSTYPE" = OBSD; then
1095 PTHREAD_LIBS="-pthread"
1097 if test "x$PTHREAD_LIBS" = xerror; then
1098 AC_CHECK_LIB(pthread, pthread_attr_init,
1099 PTHREAD_LIBS="-lpthread")
1101 if test "x$PTHREAD_LIBS" = xerror; then
1102 AC_CHECK_LIB(pthreads, pthread_attr_init,
1103 PTHREAD_LIBS="-lpthreads")
1105 if test "x$PTHREAD_LIBS" = xerror; then
1106 AC_CHECK_LIB(c_r, pthread_attr_init,
1107 PTHREAD_LIBS="-lc_r")
1109 if test "x$PTHREAD_LIBS" = xerror; then
1110 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1112 if test "x$PTHREAD_LIBS" = xerror; then
1113 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1114 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1115 PTHREAD_LIBS="-lpthread")
1117 if test "x$PTHREAD_LIBS" = xerror; then
1118 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1120 AC_SUBST(PTHREAD_LIBS)
1122 HOST_CPU="$host_cpu"
1124 if test "x$with_bsd_kernel_headers" != "x"; then
1125 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1127 BSD_KERNEL_PATH="/usr/src/sys"
1130 if test "x$with_bsd_kernel_build" != "x"; then
1131 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1133 case $AFS_SYSNAME in
1135 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1138 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1144 if test "$enable_supergroups" = "yes"; then
1145 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1148 if test "$enable_fast_restart" = "yes"; then
1149 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1152 if test "$enable_bitmap_later" = "yes"; then
1153 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1156 if test "$enable_demand_attach_fs" = "yes"; then
1157 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1162 AC_SUBST(DEMAND_ATTACH)
1164 if test "$enable_disconnected" = "yes"; then
1165 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1168 if test "$enable_unix_sockets" = "yes"; then
1169 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1170 USE_UNIX_SOCKETS="yes"
1172 USE_UNIX_SOCKETS="no"
1174 AC_SUBST(USE_UNIX_SOCKETS)
1176 if test "$enable_fast_restart" = "yes" &&
1177 test "$enable_demand_attach_fs" = "yes" ; then
1178 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.])
1182 if test "$enable_full_vos_listvol_switch" = "yes"; then
1183 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1186 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1187 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1188 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1192 if test "$enable_bos_restricted_mode" = "yes"; then
1193 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1196 if test "$enable_bos_new_config" = "yes"; then
1197 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1200 if test "$enable_largefile_fileserver" = "yes"; then
1201 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1204 if test "$enable_namei_fileserver" = "yes"; then
1205 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1208 if test "$enable_afsdb" = "yes"; then
1209 LIB_AFSDB="$LIB_res_search"
1210 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1213 dnl check for tivoli
1214 AC_MSG_CHECKING(for tivoli tsm butc support)
1216 if test "$enable_tivoli_tsm" = "yes"; then
1217 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1218 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1220 if test -r "$XBSADIR1/xbsa.h"; then
1221 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1222 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1223 elif test -r "$XBSADIR2/xbsa.h"; then
1224 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1225 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1227 AC_MSG_RESULT([no, missing xbsa.h header file])
1232 AC_SUBST(XBSA_CFLAGS)
1234 dnl checks for header files.
1238 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1239 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1240 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1241 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1242 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1243 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1244 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1246 dnl Don't build PAM on IRIX; the interface doesn't work for us.
1247 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1248 case $AFS_SYSNAME in
1261 if test "$enable_login" = yes; then
1266 AC_SUBST(BUILD_LOGIN)
1268 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1269 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1270 AC_CHECK_FUNCS(setvbuf vsyslog)
1271 AC_FUNC_SETVBUF_REVERSED
1272 AC_CHECK_FUNCS(regcomp regexec regerror)
1273 AC_MSG_CHECKING([for POSIX regex library])
1274 if test "$ac_cv_header_regex_h" = "yes" && \
1275 test "$ac_cv_func_regcomp" = "yes" && \
1276 test "$ac_cv_func_regexec" = "yes" && \
1277 test "$ac_cv_func_regerror" = "yes"; then
1278 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1285 AC_CHECK_TYPE(ssize_t, int)
1286 AC_CHECK_TYPE([sig_atomic_t], ,
1287 [AC_DEFINE([sig_atomic_t], [int],
1288 [Define to int if <signal.h> does not define.])],
1289 [#include <sys/types.h>
1290 #include <signal.h>])
1291 AC_SIZEOF_TYPE(long)
1293 AC_MSG_CHECKING(size of time_t)
1294 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1295 [AC_TRY_RUN([#include <stdio.h>
1299 FILE *f=fopen("conftestval", "w");
1301 fprintf(f, "%d\n", sizeof(time_t));
1303 }], ac_cv_sizeof_time_t=`cat conftestval`, ac_cv_sizeof_time_t=0)
1305 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1306 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t)
1308 AC_CHECK_FUNCS(timegm)
1309 AC_CHECK_FUNCS(daemon)
1311 dnl Directory PATH handling
1312 if test "x$enable_transarc_paths" = "xyes" ; then
1313 afsconfdir=${afsconfdir=/usr/afs/etc}
1314 viceetcdir=${viceetcdir=/usr/vice/etc}
1315 afskerneldir=${afskerneldir=${viceetcdir}}
1316 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1317 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1318 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1319 afsdbdir=${afsdbdir=/usr/afs/db}
1320 afslogsdir=${afslogsdir=/usr/afs/logs}
1321 afslocaldir=${afslocaldir=/usr/afs/local}
1322 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1323 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1325 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1326 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1327 afskerneldir=${afskerneldir='${libdir}/openafs'}
1328 afssrvbindir=${afssrvbindir='${bindir}'}
1329 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1330 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1331 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1332 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1333 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1334 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1335 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1337 AC_SUBST(afsconfdir)
1338 AC_SUBST(viceetcdir)
1339 AC_SUBST(afskerneldir)
1340 AC_SUBST(afssrvbindir)
1341 AC_SUBST(afssrvsbindir)
1342 AC_SUBST(afssrvlibexecdir)
1344 AC_SUBST(afslogsdir)
1345 AC_SUBST(afslocaldir)
1346 AC_SUBST(afsbackupdir)
1347 AC_SUBST(afsbosconfigdir)
1349 if test "x$enable_kernel_module" = "xyes"; then
1350 ENABLE_KERNEL_MODULE=libafs
1353 if test "x$enable_pthreaded_ubik" = "xyes"; then
1354 ENABLE_PTHREADED_UBIK=yes
1357 AC_SUBST(AFS_SYSNAME)
1358 AC_SUBST(AFS_PARAM_COMMON)
1359 AC_SUBST(ENABLE_KERNEL_MODULE)
1360 AC_SUBST(ENABLE_PTHREADED_UBIK)
1362 AC_SUBST(LINUX_KERNEL_PATH)
1364 AC_SUBST(BSD_KERNEL_PATH)
1365 AC_SUBST(BSD_KERNEL_BUILD)
1366 AC_SUBST(LINUX_VERSION)
1367 AC_SUBST(MKAFS_OSTYPE)
1368 AC_SUBST(TOP_OBJDIR)
1369 AC_SUBST(TOP_SRCDIR)
1370 AC_SUBST(TOP_INCDIR)
1371 AC_SUBST(TOP_LIBDIR)
1373 AC_SUBST(DARWIN_INFOFILE)
1374 AC_SUBST(IRIX_BUILD_IP35)
1379 TOP_SRCDIR="${srcdir}/src"
1381 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1387 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1391 TOP_OBJDIR="${SRCDIR_PARENT}"
1392 TOP_INCDIR="${SRCDIR_PARENT}/include"
1393 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1394 if test "${DEST}x" = "x"; then
1395 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1398 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1399 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1400 AC_SUBST(HELPER_SPLINT)
1401 AC_SUBST(HELPER_SPLINTCFG)
1403 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs