1 dnl This file contains the common configuration code which would
2 dnl otherwise be duplicated between configure and configure-libafs.
4 dnl NB: Because this code is a macro, references to positional shell
5 dnl parameters must be done like $[]1 instead of $1
7 AC_DEFUN([OPENAFS_CONFIGURE_COMMON],[
12 #BOZO_SAVE_CORES pam sia
13 AC_ARG_WITH(afs-sysname,
14 [ --with-afs-sysname=sys use sys for the afs sysname]
16 AC_ARG_ENABLE( obsolete,
17 [ --enable-obsolete enable obsolete portions of AFS (mpp and package)],, enable_obsolete="no")
19 [ --disable-afsdb disable AFSDB DNS RR support],, enable_afsdb="yes")
21 [ --disable-pam disable PAM support],, enable_pam="yes")
22 AC_ARG_ENABLE( bos-restricted-mode,
23 [ --enable-bos-restricted-mode enable bosserver restricted mode which disables certain bosserver functionality],, enable_bos_restricted_mode="no")
24 AC_ARG_ENABLE( bos-new-config,
25 [ --enable-bos-new-config enable bosserver pickup of BosConfig.new on restarts],, enable_bos_new_config="no")
26 AC_ARG_ENABLE( largefile-fileserver,
27 [ --disable-largefile-fileserver disable large file support in fileserver],, enable_largefile_fileserver="yes")
28 AC_ARG_ENABLE( namei-fileserver,
29 [ --enable-namei-fileserver force compilation of namei fileserver in preference to inode fileserver],, enable_namei_fileserver="no")
30 AC_ARG_ENABLE( supergroups,
31 [ --enable-supergroups enable support for nested pts groups],, enable_supergroups="no")
32 AC_ARG_ENABLE( fast-restart,
33 [ --enable-fast-restart enable fast startup of file server without salvaging],, enable_fast_restart="no")
34 AC_ARG_ENABLE( bitmap-later,
35 [ --enable-bitmap-later enable fast startup of file server by not reading bitmap till needed],, enable_bitmap_later="no")
36 AC_ARG_ENABLE( demand-attach-fs,
37 [ --enable-demand-attach-fs enable Demand Attach Fileserver (please see documentation)],, enable_demand_attach_fs="no")
38 AC_ARG_ENABLE( 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)
231 if test "x$enable_kernel_module" = "xyes"; then
232 if test "x$with_dux_kernel_headers" != "x"; then
233 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
235 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
238 if test "$HEADER_RT" = "*" ; then
239 AC_MSG_ERROR([Need a configured kernel directory])
241 AC_SUBST([HEADER_RT])
245 AC_MSG_RESULT(ppc_darwin)
249 AC_MSG_RESULT(x86_darwin)
253 AC_MSG_RESULT(i386_fbsd)
261 AC_MSG_RESULT(i386_obsd)
264 AC_MSG_RESULT($system)
268 if test "x$with_afs_sysname" != "x"; then
269 AFS_SYSNAME="$with_afs_sysname"
271 AC_MSG_CHECKING(your AFS sysname)
277 AFS_SYSNAME="i386_obsd${vM}${vm}"
279 sparc64-*-openbsd?.?)
283 AFS_SYSNAME="sparc64_obsd${vM}${vm}"
289 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
292 AFS_PARAM_COMMON=param.nbsd15.h
293 AFS_SYSNAME="i386_nbsd15"
296 AFS_PARAM_COMMON=param.nbsd15.h
297 AFS_SYSNAME="alpha_nbsd15"
299 i?86-*-netbsd*1.6[[M-Z]]*)
300 AFS_PARAM_COMMON=param.nbsd20.h
301 AFS_SYSNAME="i386_nbsd20"
303 powerpc-*-netbsd*1.6[[M-Z]]*)
304 AFS_PARAM_COMMON=param.nbsd20.h
305 AFS_SYSNAME="ppc_nbsd20"
308 AFS_PARAM_COMMON=param.nbsd20.h
309 AFS_SYSNAME="i386_nbsd20"
312 AFS_PARAM_COMMON=param.nbsd20.h
313 AFS_SYSNAME="amd64_nbsd20"
315 x86_64-*-netbsd*3.[0-8]*)
316 AFS_PARAM_COMMON=param.nbsd30.h
317 AFS_SYSNAME="amd64_nbsd30"
319 x86_64-*-netbsd*4.[0-8]*)
320 AFS_PARAM_COMMON=param.nbsd40.h
321 AFS_SYSNAME="amd64_nbsd40"
323 powerpc-*-netbsd*2.0*)
324 AFS_PARAM_COMMON=param.nbsd20.h
325 AFS_SYSNAME="ppc_nbsd20"
328 AFS_PARAM_COMMON=param.nbsd16.h
329 AFS_SYSNAME="i386_nbsd16"
332 AFS_PARAM_COMMON=param.nbsd16.h
333 AFS_SYSNAME="alpha_nbsd16"
335 powerpc-*-netbsd*1.6*)
336 AFS_PARAM_COMMON=param.nbsd16.h
337 AFS_SYSNAME="ppc_nbsd16"
340 AFS_PARAM_COMMON=param.nbsd21.h
341 AFS_SYSNAME="i386_nbsd21"
344 AFS_PARAM_COMMON=param.nbsd30.h
345 AFS_SYSNAME="i386_nbsd30"
347 i?86-*-netbsd*3.[[0-8]]*)
348 AFS_PARAM_COMMON=param.nbsd30.h
349 AFS_SYSNAME="i386_nbsd30"
352 AFS_PARAM_COMMON=param.nbsd30.h
353 AFS_SYSNAME="i386_nbsd30"
355 i?86-*-netbsd*4.[[0-8]]*)
356 AFS_PARAM_COMMON=param.nbsd40.h
357 AFS_SYSNAME="i386_nbsd40"
360 AFS_PARAM_COMMON=param.nbsd40.h
361 AFS_SYSNAME="i386_nbsd40"
364 AFS_SYSNAME="hp_ux110"
367 AFS_SYSNAME="hp_ux11i"
370 AFS_SYSNAME="hp_ux1123"
373 AFS_SYSNAME="ia64_hpux1122"
376 AFS_SYSNAME="ia64_hpux1123"
379 AFS_SYSNAME="hp_ux102"
381 powerpc-apple-darwin1.2*)
382 AFS_SYSNAME="ppc_darwin_12"
384 powerpc-apple-darwin1.3*)
385 AFS_SYSNAME="ppc_darwin_13"
387 powerpc-apple-darwin1.4*)
388 AFS_SYSNAME="ppc_darwin_14"
390 powerpc-apple-darwin5.1*)
391 AFS_SYSNAME="ppc_darwin_14"
393 powerpc-apple-darwin5.2*)
394 AFS_SYSNAME="ppc_darwin_14"
396 powerpc-apple-darwin5.3*)
397 AFS_SYSNAME="ppc_darwin_14"
399 powerpc-apple-darwin5.4*)
400 AFS_SYSNAME="ppc_darwin_14"
402 powerpc-apple-darwin5.5*)
403 AFS_SYSNAME="ppc_darwin_14"
405 powerpc-apple-darwin6.0*)
406 AFS_SYSNAME="ppc_darwin_60"
408 powerpc-apple-darwin6.1*)
409 AFS_SYSNAME="ppc_darwin_60"
411 powerpc-apple-darwin6.2*)
412 AFS_SYSNAME="ppc_darwin_60"
414 powerpc-apple-darwin6.3*)
415 AFS_SYSNAME="ppc_darwin_60"
417 powerpc-apple-darwin6.4*)
418 AFS_SYSNAME="ppc_darwin_60"
420 powerpc-apple-darwin6.5*)
421 AFS_SYSNAME="ppc_darwin_60"
423 powerpc-apple-darwin7.0*)
424 AFS_SYSNAME="ppc_darwin_70"
426 powerpc-apple-darwin7.1*)
427 AFS_SYSNAME="ppc_darwin_70"
429 powerpc-apple-darwin7.2*)
430 AFS_SYSNAME="ppc_darwin_70"
432 powerpc-apple-darwin7.3*)
433 AFS_SYSNAME="ppc_darwin_70"
435 powerpc-apple-darwin7.4*)
436 AFS_SYSNAME="ppc_darwin_70"
438 powerpc-apple-darwin7.5*)
439 AFS_SYSNAME="ppc_darwin_70"
441 powerpc-apple-darwin8.0*)
442 AFS_SYSNAME="ppc_darwin_80"
444 powerpc-apple-darwin8.*)
445 AFS_SYSNAME="ppc_darwin_80"
447 i386-apple-darwin8.*)
448 AFS_SYSNAME="x86_darwin_80"
450 powerpc-apple-darwin9.*)
451 AFS_SYSNAME="ppc_darwin_90"
453 i386-apple-darwin9.*)
454 AFS_SYSNAME="x86_darwin_90"
456 sparc-sun-solaris2.5*)
457 AFS_SYSNAME="sun4x_55"
460 sparc-sun-solaris2.6)
461 AFS_SYSNAME="sun4x_56"
463 sparc-sun-solaris2.7)
464 AFS_SYSNAME="sun4x_57"
466 sparc-sun-solaris2.8)
467 AFS_SYSNAME="sun4x_58"
469 sparc-sun-solaris2.9)
470 AFS_SYSNAME="sun4x_59"
472 sparc-sun-solaris2.10)
473 AFS_SYSNAME="sun4x_510"
475 sparc-sun-solaris2.11)
476 AFS_SYSNAME="sun4x_511"
479 AFS_SYSNAME="sun4_413"
483 AFS_SYSNAME="sunx86_57"
486 AFS_SYSNAME="sunx86_58"
489 AFS_SYSNAME="sunx86_59"
492 AFS_SYSNAME="sunx86_510"
495 AFS_SYSNAME="sunx86_511"
498 AFS_SYSNAME="alpha_dux40"
501 AFS_SYSNAME="alpha_dux50"
504 AFS_SYSNAME="alpha_dux51"
510 AFS_SYSNAME="ia64_linuxXX"
513 AFS_SYSNAME="`/bin/arch`_linuxXX"
516 AFS_SYSNAME="ppc64_linuxXX"
519 AFS_SYSNAME="alpha_linux_XX"
522 AFS_SYSNAME="s390_linuxXX"
525 AFS_SYSNAME="s390x_linuxXX"
528 AFS_SYSNAME="`/bin/arch`_linuxXX"
531 AFS_SYSNAME="sparc64_linuxXX"
534 AFS_SYSNAME="i386_linuxXX"
536 parisc-*-linux-gnu|hppa-*-linux-gnu)
537 AFS_SYSNAME="parisc_linuxXX"
541 AFS_SYSNAME="rs_aix42"
545 AFS_SYSNAME="rs_aix42"
549 AFS_SYSNAME="rs_aix51"
553 AFS_SYSNAME="rs_aix52"
557 AFS_SYSNAME="rs_aix53"
561 AFS_SYSNAME="amd64_linuxXX"
565 AC_MSG_ERROR(An AFS sysname is required)
570 *_linux* | *_umlinux*)
571 if test "x${AFS_SYSKVERS}" = "x"; then
572 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
574 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
575 AFS_SYSNAME="$_AFS_SYSNAME"
576 save_CPPFLAGS="$CPPFLAGS"
577 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
579 [#include <linux/autoconf.h>],
580 [#ifndef CONFIG_USERMODE
583 ac_cv_linux_is_uml=yes,)
584 if test "${ac_cv_linux_is_uml}" = yes; then
585 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
587 CPPFLAGS="$save_CPPFLAGS"
588 AFS_SYSNAME="$_AFS_SYSNAME"
591 AC_MSG_RESULT($AFS_SYSNAME)
594 case $AFS_SYSNAME in *_linux* | *_umlinux*)
596 # Add (sub-) architecture-specific paths needed by conftests
599 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
600 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
601 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
602 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
605 if test "x$enable_kernel_module" = "xyes"; then
606 if test "x$enable_debug_kernel" = "xno"; then
607 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
609 OPENAFS_GCC_SUPPORTS_MARCH
610 AC_SUBST(P5PLUS_KOPTS)
611 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
612 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
613 OPENAFS_GCC_SUPPORTS_NO_COMMON
614 OPENAFS_GCC_SUPPORTS_PIPE
615 AC_SUBST(LINUX_GCC_KOPTS)
616 ifdef([OPENAFS_CONFIGURE_LIBAFS],
617 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
618 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
621 LINUX_KBUILD_USES_EXTRA_CFLAGS
622 LINUX_KERNEL_COMPILE_WORKS
623 LINUX_HAVE_CURRENT_KERNEL_TIME
624 LINUX_KMEM_CACHE_INIT
625 LINUX_HAVE_KMEM_CACHE_T
626 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
627 LINUX_CONFIG_H_EXISTS
628 LINUX_COMPLETION_H_EXISTS
629 LINUX_EXPORTFS_H_EXISTS
630 LINUX_DEFINES_FOR_EACH_PROCESS
631 LINUX_DEFINES_PREV_TASK
632 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
633 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
634 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
635 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
636 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
637 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
638 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
639 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
640 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
641 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
642 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
643 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
644 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
645 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
646 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
647 LINUX_INODE_SETATTR_RETURN_TYPE
648 LINUX_WRITE_INODE_RETURN_TYPE
649 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
650 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
651 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
652 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
653 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
654 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
655 LINUX_AOP_WRITEBACK_CONTROL
656 LINUX_FS_STRUCT_FOP_HAS_FLOCK
657 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
658 LINUX_FS_STRUCT_FOP_HAS_SPLICE
659 LINUX_KERNEL_LINUX_SYSCALL_H
660 LINUX_KERNEL_LINUX_SEQ_FILE_H
661 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
663 LINUX_KERNEL_SOCK_CREATE
664 LINUX_KERNEL_PAGE_FOLLOW_LINK
665 LINUX_KERNEL_HLIST_UNHASHED
666 LINUX_KEY_TYPE_H_EXISTS
668 LINUX_RECALC_SIGPENDING_ARG_TYPE
669 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
670 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
671 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
672 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
673 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
674 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
675 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
676 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
677 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
678 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
679 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
680 LINUX_EXPORTS_TASKLIST_LOCK
681 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
682 LINUX_STATFS_TAKES_DENTRY
683 LINUX_FREEZER_H_EXISTS
684 LINUX_HAVE_SVC_ADDR_IN
685 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
686 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
689 LINUX_LINUX_KEYRING_SUPPORT
690 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
692 LINUX_GENERIC_FILE_AIO_READ
693 LINUX_INIT_WORK_HAS_DATA
694 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
695 LINUX_SYSCTL_TABLE_CHECKING
697 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
698 LINUX_EXPORTS_INIT_MM
699 LINUX_EXPORTS_SYS_CHDIR
700 LINUX_EXPORTS_SYS_CLOSE
701 LINUX_EXPORTS_SYS_OPEN
702 LINUX_EXPORTS_SYS_WAIT4
703 LINUX_EXPORTS_RCU_READ_LOCK
705 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
706 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
707 ac_cv_linux_exports_sys_call_table=no
708 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
709 ac_cv_linux_exports_ia32_sys_call_table=yes
712 LINUX_EXPORTS_KALLSYMS_ADDRESS
713 LINUX_EXPORTS_KALLSYMS_SYMBOL
714 LINUX_EXPORTS_SYS_CALL_TABLE
715 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
716 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
717 linux_syscall_method=none
718 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
719 linux_syscall_method=scan
720 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
721 linux_syscall_method=scan_with_kallsyms_address
724 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
725 linux_syscall_method=kallsyms_symbol
727 if test "x$linux_syscall_method" = "xnone"; then
728 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
729 linux_syscall_method=scan
733 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
734 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
736 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
737 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
739 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
740 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
742 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
743 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
745 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
746 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
748 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
749 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
751 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
752 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
754 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
755 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
757 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
758 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
760 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
761 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
763 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
764 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
766 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
767 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
769 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
770 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
772 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
773 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
775 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
776 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
778 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
779 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
781 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
782 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
784 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
785 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
787 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
788 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
790 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
791 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
793 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
794 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
796 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
797 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
799 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
800 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
802 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
803 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
805 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
806 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
808 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
809 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
811 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
812 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
814 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
815 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
817 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
818 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
820 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
821 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
823 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
824 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
826 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
827 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
829 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
830 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
832 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
833 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
835 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
836 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
838 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
839 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
841 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
842 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
844 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
845 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
847 if test "x$ac_linux_syscall" = "xyes" ; then
848 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
850 if test "x$ac_linux_seq_file" = "xyes" ; then
851 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
853 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
854 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
856 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
857 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
859 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
860 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
862 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
863 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
865 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
866 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
868 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
869 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
871 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
872 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
874 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
875 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
877 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
878 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
880 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
881 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
883 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
884 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
886 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
887 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
889 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
890 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
892 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
893 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
895 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
896 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
898 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
899 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
901 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
902 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
904 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
905 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
907 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
908 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
910 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
911 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
913 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
914 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
916 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
917 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
919 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
920 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
922 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
923 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
925 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
926 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
928 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
929 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
931 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
932 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
934 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
935 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
937 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
938 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
940 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
941 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
943 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
944 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
946 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
947 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
949 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
950 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
952 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
953 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
955 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
956 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
958 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
960 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
961 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
969 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
970 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
971 dnl the test below fails on darwin, even if the CPPFLAGS below
972 dnl are added. the headers from Kernel.framework must be used
973 dnl when KERNEL is defined.
975 dnl really, such a thing isn't guaranteed to work on any
976 dnl platform until the kernel cflags from MakefileProto are
977 dnl known to configure
978 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
981 AC_MSG_CHECKING(for definition of struct buf)
982 dnl save_CPPFLAGS="$CPPFLAGS"
983 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
984 AC_CACHE_VAL(ac_cv_have_struct_buf, [
985 ac_cv_have_struct_buf=no
987 [#include <sys/buf.h>],
989 printf("%d\n", sizeof(x));],
990 ac_cv_have_struct_buf=yes,)
993 dnl CPPFLAGS="$save_CPPFLAGS"
994 AC_MSG_RESULT($ac_cv_have_struct_buf)
995 if test "$ac_cv_have_struct_buf" = yes; then
996 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1002 AC_CACHE_VAL(ac_cv_sockaddr_len,
1004 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1005 AC_TRY_COMPILE( [#include <sys/types.h>
1006 #include <sys/socket.h>],
1007 [struct sockaddr *a;
1008 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1009 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1010 if test "$ac_cv_sockaddr_len" = "yes"; then
1011 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1013 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1014 echo Skipping library tests because they confuse Irix.
1016 AC_CHECK_FUNCS(socket)
1018 if test "$ac_cv_func_socket" = no; then
1019 for lib in socket inet; do
1020 if test "$HAVE_SOCKET" != 1; then
1021 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1026 AC_CHECK_FUNCS(connect)
1028 if test "$ac_cv_func_connect" = no; then
1030 if test "$HAVE_CONNECT" != 1; then
1031 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1036 AC_CHECK_FUNCS(gethostbyname)
1037 if test "$ac_cv_func_gethostbyname" = no; then
1038 for lib in dns nsl resolv; do
1039 if test "$HAVE_GETHOSTBYNAME" != 1; then
1040 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1045 dnl darwin wants it, aix hates it
1046 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1050 #include <sys/types.h>
1051 #include <sys/socket.h>
1052 #include <netinet/in.h>
1053 #include <arpa/inet.h>
1054 #include <arpa/nameser.h>
1055 #include <arpa/nameser_compat.h>
1057 ], [static int i; i = 0;],
1059 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
1063 openafs_save_libs="$LIBS"
1064 AC_MSG_CHECKING([for res_search])
1067 if test "$ac_cv_func_res_search" = no; then
1068 for lib in dns nsl resolv; do
1069 if test "$ac_cv_func_res_search" != yes; then
1072 LIBS="$openafs_save_libs"
1075 if test "$ac_cv_func_res_search" = yes; then
1076 LIB_res_search="-l$lib"
1077 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1078 AC_MSG_RESULT([yes, in lib$lib])
1083 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1089 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1091 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1092 AC_TRY_COMPILE( [#include <sys/types.h>
1093 #include <sys/socket.h>
1094 #include <netinet/in.h>],
1096 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1097 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1098 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1099 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1103 if test "x$MKAFS_OSTYPE" = OBSD; then
1104 PTHREAD_LIBS="-pthread"
1106 if test "x$PTHREAD_LIBS" = xerror; then
1107 AC_CHECK_LIB(pthread, pthread_attr_init,
1108 PTHREAD_LIBS="-lpthread")
1110 if test "x$PTHREAD_LIBS" = xerror; then
1111 AC_CHECK_LIB(pthreads, pthread_attr_init,
1112 PTHREAD_LIBS="-lpthreads")
1114 if test "x$PTHREAD_LIBS" = xerror; then
1115 AC_CHECK_LIB(c_r, pthread_attr_init,
1116 PTHREAD_LIBS="-lc_r")
1118 if test "x$PTHREAD_LIBS" = xerror; then
1119 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1121 if test "x$PTHREAD_LIBS" = xerror; then
1122 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1123 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1124 PTHREAD_LIBS="-lpthread")
1126 if test "x$PTHREAD_LIBS" = xerror; then
1127 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1129 AC_SUBST(PTHREAD_LIBS)
1132 if test "$enable_obsolete" = "yes"; then
1136 HOST_CPU="$host_cpu"
1138 if test "x$with_bsd_kernel_headers" != "x"; then
1139 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1141 BSD_KERNEL_PATH="/usr/src/sys"
1144 if test "x$with_bsd_kernel_build" != "x"; then
1145 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1147 case $AFS_SYSNAME in
1149 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1152 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1158 if test "$enable_supergroups" = "yes"; then
1159 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1162 if test "$enable_fast_restart" = "yes"; then
1163 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1166 if test "$enable_bitmap_later" = "yes"; then
1167 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1170 if test "$enable_demand_attach_fs" = "yes"; then
1171 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1176 AC_SUBST(DEMAND_ATTACH)
1178 if test "$enable_unix_sockets" = "yes"; then
1179 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1180 USE_UNIX_SOCKETS="yes"
1182 USE_UNIX_SOCKETS="no"
1184 AC_SUBST(USE_UNIX_SOCKETS)
1186 if test "$enable_fast_restart" = "yes" &&
1187 test "$enable_demand_attach_fs" = "yes" ; then
1188 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.])
1192 if test "$enable_full_vos_listvol_switch" = "yes"; then
1193 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1196 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1197 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1198 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1202 if test "$enable_bos_restricted_mode" = "yes"; then
1203 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1206 if test "$enable_bos_new_config" = "yes"; then
1207 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1210 if test "$enable_largefile_fileserver" = "yes"; then
1211 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1214 if test "$enable_namei_fileserver" = "yes"; then
1215 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1218 if test "$enable_afsdb" = "yes"; then
1219 LIB_AFSDB="$LIB_res_search"
1220 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1223 dnl check for tivoli
1224 AC_MSG_CHECKING(for tivoli tsm butc support)
1226 if test "$enable_tivoli_tsm" = "yes"; then
1227 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1228 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1230 if test -r "$XBSADIR1/xbsa.h"; then
1231 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1232 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1233 elif test -r "$XBSADIR2/xbsa.h"; then
1234 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1235 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1237 AC_MSG_RESULT([no, missing xbsa.h header file])
1242 AC_SUBST(XBSA_CFLAGS)
1244 dnl checks for header files.
1248 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1249 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1250 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1251 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1252 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1253 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1254 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1256 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1263 if test "$enable_login" = yes; then
1268 AC_SUBST(BUILD_LOGIN)
1270 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1271 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1272 AC_CHECK_FUNCS(setvbuf vsyslog)
1273 AC_FUNC_SETVBUF_REVERSED
1274 AC_CHECK_FUNCS(regcomp regexec regerror)
1275 AC_MSG_CHECKING([for POSIX regex library])
1276 if test "$ac_cv_header_regex_h" = "yes" && \
1277 test "$ac_cv_func_regcomp" = "yes" && \
1278 test "$ac_cv_func_regexec" = "yes" && \
1279 test "$ac_cv_func_regerror" = "yes"; then
1280 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1286 AC_CHECK_TYPE(ssize_t, int)
1287 AC_SIZEOF_TYPE(long)
1289 AC_MSG_CHECKING(size of time_t)
1290 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1291 [AC_TRY_RUN([#include <stdio.h>
1295 FILE *f=fopen("conftestval", "w");
1297 fprintf(f, "%d\n", sizeof(time_t));
1299 }], ac_cv_sizeof_time_t=`cat conftestval`, ac_cv_sizeof_time_t=0)
1301 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1302 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t)
1304 AC_CHECK_FUNCS(timegm)
1305 AC_CHECK_FUNCS(daemon)
1307 dnl Directory PATH handling
1308 if test "x$enable_transarc_paths" = "xyes" ; then
1309 afsconfdir=${afsconfdir=/usr/afs/etc}
1310 viceetcdir=${viceetcdir=/usr/vice/etc}
1311 afskerneldir=${afskerneldir=${viceetcdir}}
1312 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1313 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1314 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1315 afsdbdir=${afsdbdir=/usr/afs/db}
1316 afslogsdir=${afslogsdir=/usr/afs/logs}
1317 afslocaldir=${afslocaldir=/usr/afs/local}
1318 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1319 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1321 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1322 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1323 afskerneldir=${afskerneldir='${libdir}/openafs'}
1324 afssrvbindir=${afssrvbindir='${bindir}'}
1325 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1326 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1327 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1328 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1329 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1330 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1331 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1333 AC_SUBST(afsconfdir)
1334 AC_SUBST(viceetcdir)
1335 AC_SUBST(afskerneldir)
1336 AC_SUBST(afssrvbindir)
1337 AC_SUBST(afssrvsbindir)
1338 AC_SUBST(afssrvlibexecdir)
1340 AC_SUBST(afslogsdir)
1341 AC_SUBST(afslocaldir)
1342 AC_SUBST(afsbackupdir)
1343 AC_SUBST(afsbosconfigdir)
1345 if test "x$enable_kernel_module" = "xyes"; then
1346 ENABLE_KERNEL_MODULE=libafs
1349 if test "x$enable_pthreaded_ubik" = "xyes"; then
1350 ENABLE_PTHREADED_UBIK=yes
1353 AC_SUBST(AFS_SYSNAME)
1354 AC_SUBST(AFS_PARAM_COMMON)
1355 AC_SUBST(ENABLE_KERNEL_MODULE)
1356 AC_SUBST(ENABLE_PTHREADED_UBIK)
1358 AC_SUBST(LINUX_KERNEL_PATH)
1360 AC_SUBST(BSD_KERNEL_PATH)
1361 AC_SUBST(BSD_KERNEL_BUILD)
1362 AC_SUBST(LINUX_VERSION)
1363 AC_SUBST(MKAFS_OSTYPE)
1364 AC_SUBST(TOP_OBJDIR)
1365 AC_SUBST(TOP_SRCDIR)
1366 AC_SUBST(TOP_INCDIR)
1367 AC_SUBST(TOP_LIBDIR)
1369 AC_SUBST(WITH_OBSOLETE)
1370 AC_SUBST(DARWIN_INFOFILE)
1371 AC_SUBST(IRIX_BUILD_IP35)
1376 TOP_SRCDIR="${srcdir}/src"
1378 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1384 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1388 TOP_OBJDIR="${SRCDIR_PARENT}"
1389 TOP_INCDIR="${SRCDIR_PARENT}/include"
1390 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1391 if test "${DEST}x" = "x"; then
1392 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1395 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1396 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1397 AC_SUBST(HELPER_SPLINT)
1398 AC_SUBST(HELPER_SPLINTCFG)
1400 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs