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, ntp and package)],, enable_obsolete="no")
18 AC_ARG_ENABLE( insecure,
19 [ --enable-insecure enable insecure portions of AFS (ftpd, inetd, rcp, rlogind and rsh)],, enable_insecure="no")
21 [ --disable-afsdb disable AFSDB RR support],, enable_afsdb="yes")
23 [ --disable-pam disable PAM support],, enable_pam="yes")
24 AC_ARG_ENABLE( bos-restricted-mode,
25 [ --enable-bos-restricted-mode enable bosserver restricted mode which disables certain bosserver functionality],, enable_bos_restricted_mode="no")
26 AC_ARG_ENABLE( bos-new-config,
27 [ --enable-bos-new-config enable bosserver pickup of BosConfig.new on restarts],, enable_bos_new_config="no")
28 AC_ARG_ENABLE( largefile-fileserver,
29 [ --enable-largefile-fileserver enable large file support in fileserver],, enable_largefile_fileserver="no")
30 AC_ARG_ENABLE( namei-fileserver,
31 [ --enable-namei-fileserver force compilation of namei fileserver in preference to inode fileserver],, enable_namei_fileserver="no")
32 AC_ARG_ENABLE( supergroups,
33 [ --enable-supergroups enable support for nested pts groups],, enable_supergroups="no")
34 AC_ARG_ENABLE( fast-restart,
35 [ --enable-fast-restart enable fast startup of file server without salvaging],, enable_fast_restart="no")
36 AC_ARG_ENABLE( bitmap-later,
37 [ --enable-bitmap-later enable fast startup of file server by not reading bitmap till needed],, enable_bitmap_later="no")
38 AC_ARG_ENABLE( full-vos-listvol-switch,
39 [ --disable-full-vos-listvol-switch disable vos full listvol switch for formatted output],, enable_full_vos_listvol_switch="yes")
40 AC_ARG_WITH(dux-kernel-headers,
41 [ --with-dux-kernel-headers=path use the kernel headers found at path(optional, defaults to first match in /usr/sys)]
43 AC_ARG_WITH(linux-kernel-headers,
44 [ --with-linux-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/linux)]
46 AC_ARG_WITH(bsd-kernel-headers,
47 [ --with-bsd-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/sys)]
49 AC_ARG_WITH(bsd-kernel-build,
50 [ --with-bsd-kernel-build=path use the kernel build found at path(optional, defaults to KSRC/i386/compile/GENERIC)]
52 AC_ARG_ENABLE(kernel-module,
53 [ --disable-kernel-module disable compilation of the kernel module (defaults to enabled)],, enable_kernel_module="yes"
55 AC_ARG_ENABLE(redhat-buildsys,
56 [ --enable-redhat-buildsys enable compilation of the redhat build system kernel (defaults to disabled)],, enable_redhat_buildsys="no"
58 AC_ARG_ENABLE(transarc-paths,
59 [ --enable-transarc-paths Use Transarc style paths like /usr/afs and /usr/vice],, enable_transarc_paths="no"
61 AC_ARG_ENABLE(tivoli-tsm,
62 [ --enable-tivoli-tsm Enable use of the Tivoli TSM API libraries for butc support],, enable_tivoli_tsm="no"
64 AC_ARG_ENABLE(debug-kernel,
65 [ --enable-debug-kernel enable compilation of the kernel module with debugging information (defaults to disabled)],, enable_debug_kernel="no"
67 AC_ARG_ENABLE(optimize-kernel,
68 [ --disable-optimize-kernel disable compilation of the kernel module with optimization (defaults based on platform)],, enable_optimize_kernel="yes"
71 [ --enable-debug enable compilation of the user space code with debugging information (defaults to disabled)],, enable_debug="no"
73 AC_ARG_ENABLE(optimize,
74 [ --disable-optimize disable optimization for compilation of the user space code (defaults to enabled)],, enable_optimize="yes"
76 AC_ARG_ENABLE(debug-lwp,
77 [ --enable-debug-lwp enable compilation of the LWP code with debugging information (defaults to disabled)],, enable_debug_lwp="no"
79 AC_ARG_ENABLE(optimize-lwp,
80 [ --disable-optimize-lwp disable optimization for compilation of the LWP code (defaults to enabled)],, enable_optimize_lwp="yes"
90 dnl Various compiler setup.
94 COMPILER_HAS_FUNCTION_MACRO
96 dnl Checks for programs.
103 OPENAFS_CHECK_BIGENDIAN
105 AC_MSG_CHECKING(your OS)
110 if test "x$enable_redhat_buildsys" = "xyes"; then
111 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
113 if test "x$enable_kernel_module" = "xyes"; then
114 if test "x$with_linux_kernel_headers" != "x"; then
115 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
117 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
118 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
119 LINUX_KERNEL_PATH="/usr/src/linux"
122 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
123 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
124 if test "x$linux_kvers" = "x"; then
125 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
126 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
127 if test "x$linux_kvers" = "x"; then
129 AC_MSG_ERROR(Linux headers lack version definition [2])
132 LINUX_VERSION="$linux_kvers"
135 AC_MSG_ERROR(Linux headers lack version definition)
139 LINUX_VERSION="$linux_kvers"
142 enable_kernel_module="no"
144 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
145 enable_kernel_module="no"
147 if test "x$enable_kernel_module" = "xno"; then
148 if test "x$with_linux_kernel_headers" != "x"; then
149 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
152 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
155 dnl do we need to determine SUBARCH from autoconf.h
159 if test "x$enable_kernel_module" = "xyes"; then
160 if test "x$enable_debug_kernel" = "xno"; then
161 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
163 OPENAFS_GCC_SUPPORTS_MARCH
164 AC_SUBST(P5PLUS_KOPTS)
165 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
166 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
167 OPENAFS_GCC_SUPPORTS_NO_COMMON
168 OPENAFS_GCC_SUPPORTS_PIPE
169 AC_SUBST(LINUX_GCC_KOPTS)
170 ifdef([OPENAFS_CONFIGURE_LIBAFS],
171 [LINUX_BUILD_VNODE_FROM_INODE(src/config,afs)],
172 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
174 LINUX_COMPLETION_H_EXISTS
175 LINUX_DEFINES_FOR_EACH_PROCESS
176 LINUX_DEFINES_PREV_TASK
177 LINUX_EXPORTS_TASKLIST_LOCK
178 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
179 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
180 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
181 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
182 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
183 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
184 LINUX_INODE_SETATTR_RETURN_TYPE
185 LINUX_KERNEL_LINUX_SYSCALL_H
187 LINUX_RECALC_SIGPENDING_ARG_TYPE
188 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
189 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
190 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
191 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
192 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
194 if test "x$ac_cv_linux_config_modversions" = "xno"; then
195 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
196 ac_cv_linux_exports_sys_call_table=no
197 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
198 ac_cv_linux_exports_ia32_sys_call_table=yes
201 LINUX_EXPORTS_INIT_MM
202 LINUX_EXPORTS_KALLSYMS_ADDRESS
203 LINUX_EXPORTS_KALLSYMS_SYMBOL
204 LINUX_EXPORTS_SYS_CALL_TABLE
205 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
206 LINUX_EXPORTS_SYS_CHDIR
207 LINUX_EXPORTS_SYS_CLOSE
208 LINUX_EXPORTS_SYS_WAIT4
209 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
210 linux_syscall_method=none
211 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
212 linux_syscall_method=scan
213 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
214 linux_syscall_method=scan_with_kallsyms_address
217 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
218 linux_syscall_method=kallsyms_symbol
220 if test "x$linux_syscall_method" = "xnone"; then
221 AC_MSG_ERROR([no available sys_call_table access method])
225 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
226 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
228 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
229 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
231 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
232 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
234 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
235 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock])
237 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
238 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
240 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
241 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
243 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
244 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
246 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
247 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
249 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
250 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
252 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
253 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
255 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
256 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
258 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
259 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
261 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
262 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
264 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
265 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
267 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
268 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
270 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
271 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
273 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
274 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
276 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
277 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
279 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
280 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
282 if test "x$ac_linux_syscall" = "xyes" ; then
283 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
285 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
286 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
288 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
289 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
291 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
292 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
294 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
295 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
297 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
298 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
306 SOLARIS_UFSVFS_HAS_DQRWLOCK
307 SOLARIS_PROC_HAS_P_COREFILE
308 SOLARIS_FS_HAS_FS_ROLLED
312 enable_kernel_module=no
320 if test -d /usr/include/sys/SN/SN1; then
321 IRIX_BUILD_IP35="IP35"
328 AC_MSG_RESULT(rs_aix)
332 AC_MSG_RESULT(alpha_dux)
333 if test "x$enable_kernel_module" = "xyes"; then
334 if test "x$with_dux_kernel_headers" != "x"; then
335 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
337 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
340 if test "$HEADER_RT" = "*" ; then
341 AC_MSG_ERROR([Need a configured kernel directory])
343 AC_SUBST([HEADER_RT])
347 AC_MSG_RESULT(ppc_darwin)
351 AC_MSG_RESULT(i386_fbsd)
359 AC_MSG_RESULT(i386_obsd)
362 AC_MSG_RESULT($system)
366 if test "x$with_afs_sysname" != "x"; then
367 AFS_SYSNAME="$with_afs_sysname"
369 AC_MSG_CHECKING(your AFS sysname)
372 AFS_SYSNAME="i386_obsd31"
375 AFS_SYSNAME="i386_obsd32"
378 AFS_SYSNAME="i386_obsd33"
381 AFS_SYSNAME="i386_obsd34"
384 AFS_SYSNAME="i386_obsd35"
387 AFS_SYSNAME="i386_fbsd_42"
390 AFS_SYSNAME="i386_fbsd_43"
393 AFS_SYSNAME="i386_fbsd_44"
396 AFS_SYSNAME="i386_fbsd_45"
399 AFS_SYSNAME="i386_fbsd_46"
402 AFS_SYSNAME="i386_fbsd_47"
405 AFS_SYSNAME="i386_fbsd_50"
408 AFS_SYSNAME="i386_fbsd_51"
411 AFS_SYSNAME="i386_fbsd_52"
414 AFS_PARAM_COMMON=param.nbsd15.h
415 AFS_SYSNAME="i386_nbsd15"
418 AFS_PARAM_COMMON=param.nbsd15.h
419 AFS_SYSNAME="alpha_nbsd15"
421 i?86-*-netbsd*1.6[[M-Z]]*)
422 AFS_PARAM_COMMON=param.nbsd20.h
423 AFS_SYSNAME="i386_nbsd20"
425 powerpc-*-netbsd*1.6[[M-Z]]*)
426 AFS_PARAM_COMMON=param.nbsd20.h
427 AFS_SYSNAME="ppc_nbsd20"
430 AFS_PARAM_COMMON=param.nbsd20.h
431 AFS_SYSNAME="i386_nbsd20"
433 powerpc-*-netbsd*2.0*)
434 AFS_PARAM_COMMON=param.nbsd20.h
435 AFS_SYSNAME="ppc_nbsd20"
438 AFS_PARAM_COMMON=param.nbsd16.h
439 AFS_SYSNAME="i386_nbsd16"
442 AFS_PARAM_COMMON=param.nbsd16.h
443 AFS_SYSNAME="alpha_nbsd16"
445 powerpc-*-netbsd*1.6*)
446 AFS_PARAM_COMMON=param.nbsd16.h
447 AFS_SYSNAME="ppc_nbsd16"
450 AFS_SYSNAME="hp_ux110"
453 AFS_SYSNAME="hp_ux11i"
456 AFS_SYSNAME="ia64_hpux1122"
459 AFS_SYSNAME="ia64_hpux1123"
462 AFS_SYSNAME="hp_ux102"
464 powerpc-apple-darwin1.2*)
465 AFS_SYSNAME="ppc_darwin_12"
467 powerpc-apple-darwin1.3*)
468 AFS_SYSNAME="ppc_darwin_13"
470 powerpc-apple-darwin1.4*)
471 AFS_SYSNAME="ppc_darwin_14"
473 powerpc-apple-darwin5.1*)
474 AFS_SYSNAME="ppc_darwin_14"
476 powerpc-apple-darwin5.2*)
477 AFS_SYSNAME="ppc_darwin_14"
479 powerpc-apple-darwin5.3*)
480 AFS_SYSNAME="ppc_darwin_14"
482 powerpc-apple-darwin5.4*)
483 AFS_SYSNAME="ppc_darwin_14"
485 powerpc-apple-darwin5.5*)
486 AFS_SYSNAME="ppc_darwin_14"
488 powerpc-apple-darwin6.0*)
489 AFS_SYSNAME="ppc_darwin_60"
491 powerpc-apple-darwin6.1*)
492 AFS_SYSNAME="ppc_darwin_60"
494 powerpc-apple-darwin6.2*)
495 AFS_SYSNAME="ppc_darwin_60"
497 powerpc-apple-darwin6.3*)
498 AFS_SYSNAME="ppc_darwin_60"
500 powerpc-apple-darwin6.4*)
501 AFS_SYSNAME="ppc_darwin_60"
503 powerpc-apple-darwin6.5*)
504 AFS_SYSNAME="ppc_darwin_60"
506 powerpc-apple-darwin7.0*)
507 AFS_SYSNAME="ppc_darwin_70"
509 powerpc-apple-darwin7.1*)
510 AFS_SYSNAME="ppc_darwin_70"
512 powerpc-apple-darwin7.2*)
513 AFS_SYSNAME="ppc_darwin_70"
515 powerpc-apple-darwin7.3*)
516 AFS_SYSNAME="ppc_darwin_70"
518 sparc-sun-solaris2.5*)
519 AFS_SYSNAME="sun4x_55"
522 sparc-sun-solaris2.6)
523 AFS_SYSNAME="sun4x_56"
525 sparc-sun-solaris2.7)
526 AFS_SYSNAME="sun4x_57"
528 sparc-sun-solaris2.8)
529 AFS_SYSNAME="sun4x_58"
531 sparc-sun-solaris2.9)
532 AFS_SYSNAME="sun4x_59"
535 AFS_SYSNAME="sun4_413"
539 AFS_SYSNAME="sunx86_57"
542 AFS_SYSNAME="sunx86_58"
545 AFS_SYSNAME="sunx86_59"
548 AFS_SYSNAME="alpha_dux40"
551 AFS_SYSNAME="alpha_dux50"
554 AFS_SYSNAME="alpha_dux51"
560 AFS_SYSNAME="ia64_linuxXX"
563 AFS_SYSNAME="ppc_linuxXX"
566 AFS_SYSNAME="ppc64_linuxXX"
569 AFS_SYSNAME="alpha_linux_XX"
572 AFS_SYSNAME="s390_linuxXX"
575 AFS_SYSNAME="sparc_linuxXX"
578 AFS_SYSNAME="sparc64_linuxXX"
581 AFS_SYSNAME="i386_linuxXX"
584 AFS_SYSNAME="parisc_linuxXX"
588 AFS_SYSNAME="rs_aix42"
591 AFS_SYSNAME="rs_aix42"
594 AFS_SYSNAME="rs_aix51"
597 AFS_SYSNAME="rs_aix52"
600 AFS_SYSNAME="amd64_linuxXX"
604 AC_MSG_ERROR(An AFS sysname is required)
610 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
611 if test "x${AFS_SYSKVERS}" = "x"; then
612 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
614 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
615 AFS_SYSNAME="$_AFS_SYSNAME"
616 save_CPPFLAGS="$CPPFLAGS"
617 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
619 [#include <linux/autoconf.h>],
620 [#ifndef CONFIG_USERMODE
623 ac_cv_linux_is_uml=yes,)
624 if test "${ac_cv_linux_is_uml}" = yes; then
625 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
627 CPPFLAGS="$save_CPPFLAGS"
628 AFS_SYSNAME="$_AFS_SYSNAME"
631 AC_MSG_RESULT($AFS_SYSNAME)
634 # KDUMP64 defaults to KDUMP for systems without a separate kdump64
640 sun4x_5[[789]] | hp_ux11*)
644 KDUMP='kdump-${LINUX_VERSION}';;
651 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
652 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
653 dnl the test below fails on darwin, even if the CPPFLAGS below
654 dnl are added. the headers from Kernel.Framework must be used
655 dnl when KERNEL is defined.
657 dnl really, such a thing isn't guaranteed to work on any
658 dnl platform until the kernel cflags from MakefileProto are
659 dnl known to configure
660 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
663 AC_MSG_CHECKING(for definition of struct buf)
664 dnl save_CPPFLAGS="$CPPFLAGS"
665 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
666 AC_CACHE_VAL(ac_cv_have_struct_buf, [
667 ac_cv_have_struct_buf=no
669 [#include <sys/buf.h>],
671 printf("%d\n", sizeof(x));],
672 ac_cv_have_struct_buf=yes,)
675 dnl CPPFLAGS="$save_CPPFLAGS"
676 AC_MSG_RESULT($ac_cv_have_struct_buf)
677 if test "$ac_cv_have_struct_buf" = yes; then
678 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
684 AC_CACHE_VAL(ac_cv_sockaddr_len,
686 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
687 AC_TRY_COMPILE( [#include <sys/types.h>
688 #include <sys/socket.h>],
690 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
691 AC_MSG_RESULT($ac_cv_sockaddr_len)])
692 if test "$ac_cv_sockaddr_len" = "yes"; then
693 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
695 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
696 echo Skipping library tests because they confuse Irix.
698 AC_CHECK_FUNCS(socket)
700 if test "$ac_cv_func_socket" = no; then
701 for lib in socket inet; do
702 if test "$HAVE_SOCKET" != 1; then
703 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
708 AC_CHECK_FUNCS(connect)
710 if test "$ac_cv_func_connect" = no; then
712 if test "$HAVE_CONNECT" != 1; then
713 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
718 AC_CHECK_FUNCS(gethostbyname)
719 if test "$ac_cv_func_gethostbyname" = no; then
720 for lib in dns nsl resolv; do
721 if test "$HAVE_GETHOSTBYNAME" != 1; then
722 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
727 dnl darwin wants it, aix hates it
728 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
732 #include <sys/types.h>
733 #include <sys/socket.h>
734 #include <netinet/in.h>
735 #include <arpa/inet.h>
736 #include <arpa/nameser.h>
737 #include <arpa/nameser_compat.h>
739 ], [static int i; i = 0;],
741 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
745 openafs_save_libs="$LIBS"
746 AC_MSG_CHECKING([for res_search])
749 if test "$ac_cv_func_res_search" = no; then
750 for lib in dns nsl resolv; do
751 if test "$ac_cv_func_res_search" != yes; then
754 LIBS="$openafs_save_libs"
757 if test "$ac_cv_func_res_search" = yes; then
758 LIB_res_search="-l$lib"
759 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
760 AC_MSG_RESULT([yes, in lib$lib])
765 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
772 AC_CHECK_LIB(pthread, pthread_attr_init,
773 PTHREAD_LIBS="-lpthread")
774 if test "x$PTHREAD_LIBS" = xerror; then
775 AC_CHECK_LIB(pthreads, pthread_attr_init,
776 PTHREAD_LIBS="-lpthreads")
778 if test "x$PTHREAD_LIBS" = xerror; then
779 AC_CHECK_LIB(c_r, pthread_attr_init,
780 PTHREAD_LIBS="-lc_r")
782 if test "x$PTHREAD_LIBS" = xerror; then
783 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
785 if test "x$PTHREAD_LIBS" = xerror; then
786 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
788 AC_SUBST(PTHREAD_LIBS)
791 if test "$enable_obsolete" = "yes"; then
796 if test "$enable_insecure" = "yes"; then
800 if test "x$with_bsd_kernel_headers" != "x"; then
801 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
803 BSD_KERNEL_PATH="/usr/src/sys"
806 if test "x$with_bsd_kernel_build" != "x"; then
807 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
811 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
814 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/i386/compile/GENERIC"
820 if test "$enable_supergroups" = "yes"; then
821 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
824 if test "$enable_fast_restart" = "yes"; then
825 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
828 if test "$enable_bitmap_later" = "yes"; then
829 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
832 if test "$enable_full_vos_listvol_switch" = "yes"; then
833 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
836 if test "$enable_bos_restricted_mode" = "yes"; then
837 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
840 if test "$enable_bos_new_config" = "yes"; then
841 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
844 if test "$enable_largefile_fileserver" = "yes"; then
845 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
848 if test "$enable_namei_fileserver" = "yes"; then
849 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
852 if test "$enable_afsdb" = "yes"; then
853 LIB_AFSDB="$LIB_res_search"
854 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
858 AC_MSG_CHECKING(for tivoli tsm butc support)
860 if test "$enable_tivoli_tsm" = "yes"; then
861 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
862 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
864 if test -e "$XBSADIR1/xbsa.h"; then
865 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
866 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
867 elif test -e "$XBSADIR2/xbsa.h"; then
868 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
869 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
871 AC_MSG_RESULT([no, missing xbsa.h header file])
876 AC_SUBST(XBSA_CFLAGS)
878 dnl checks for header files.
882 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
883 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
884 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
885 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
886 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
887 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h)
889 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
896 if test "$enable_login" = yes; then
901 AC_SUBST(BUILD_LOGIN)
903 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
904 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror)
906 AC_CHECK_FUNCS(regcomp regexec regerror)
907 AC_MSG_CHECKING([for POSIX regex library])
908 if test "$ac_cv_header_regex_h" = "yes" && \
909 test "$ac_cv_func_regcomp" = "yes" && \
910 test "$ac_cv_func_regexec" = "yes" && \
911 test "$ac_cv_func_regerror" = "yes"; then
912 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
918 AC_CHECK_TYPE(ssize_t, int)
921 AC_CHECK_FUNCS(timegm)
923 dnl Directory PATH handling
924 if test "x$enable_transarc_paths" = "xyes" ; then
925 afsconfdir=${afsconfdir=/usr/afs/etc}
926 viceetcdir=${viceetcdir=/usr/vice/etc}
927 afskerneldir=${afskerneldir=${viceetcdir}}
928 afssrvbindir=${afssrvbindir=/usr/afs/bin}
929 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
930 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
931 afsdbdir=${afsdbdir=/usr/afs/db}
932 afslogsdir=${afslogsdir=/usr/afs/logs}
933 afslocaldir=${afslocaldir=/usr/afs/local}
934 afsbackupdir=${afsbackupdir=/usr/afs/backup}
935 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
937 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
938 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
939 afskerneldir=${afskerneldir='${libdir}/openafs'}
940 afssrvbindir=${afssrvbindir='${bindir}'}
941 afssrvsbindir=${afssrvsbindir='${sbindir}'}
942 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
943 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
944 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
945 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
946 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
947 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
951 AC_SUBST(afskerneldir)
952 AC_SUBST(afssrvbindir)
953 AC_SUBST(afssrvsbindir)
954 AC_SUBST(afssrvlibexecdir)
957 AC_SUBST(afslocaldir)
958 AC_SUBST(afsbackupdir)
959 AC_SUBST(afsbosconfigdir)
961 if test "x$enable_kernel_module" = "xyes"; then
962 ENABLE_KERNEL_MODULE=libafs
965 AC_SUBST(AFS_SYSNAME)
966 AC_SUBST(AFS_PARAM_COMMON)
967 AC_SUBST(ENABLE_KERNEL_MODULE)
969 AC_SUBST(LINUX_KERNEL_PATH)
970 AC_SUBST(BSD_KERNEL_PATH)
971 AC_SUBST(BSD_KERNEL_BUILD)
972 AC_SUBST(LINUX_VERSION)
973 AC_SUBST(MKAFS_OSTYPE)
979 AC_SUBST(WITH_OBSOLETE)
980 AC_SUBST(WITH_INSECURE)
981 AC_SUBST(DARWIN_INFOFILE)
982 AC_SUBST(IRIX_BUILD_IP35)
986 TOP_SRCDIR="${srcdir}/src"
988 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
994 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
998 TOP_OBJDIR="${SRCDIR_PARENT}"
999 TOP_INCDIR="${SRCDIR_PARENT}/include"
1000 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1001 if test "${DEST}x" = "x"; then
1002 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1005 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1006 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1007 AC_SUBST(HELPER_SPLINT)
1008 AC_SUBST(HELPER_SPLINTCFG)