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)
636 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
637 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
638 dnl the test below fails on darwin, even if the CPPFLAGS below
639 dnl are added. the headers from Kernel.Framework must be used
640 dnl when KERNEL is defined.
642 dnl really, such a thing isn't guaranteed to work on any
643 dnl platform until the kernel cflags from MakefileProto are
644 dnl known to configure
645 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
648 AC_MSG_CHECKING(for definition of struct buf)
649 dnl save_CPPFLAGS="$CPPFLAGS"
650 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
651 AC_CACHE_VAL(ac_cv_have_struct_buf, [
652 ac_cv_have_struct_buf=no
654 [#include <sys/buf.h>],
656 printf("%d\n", sizeof(x));],
657 ac_cv_have_struct_buf=yes,)
660 dnl CPPFLAGS="$save_CPPFLAGS"
661 AC_MSG_RESULT($ac_cv_have_struct_buf)
662 if test "$ac_cv_have_struct_buf" = yes; then
663 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
669 AC_CACHE_VAL(ac_cv_sockaddr_len,
671 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
672 AC_TRY_COMPILE( [#include <sys/types.h>
673 #include <sys/socket.h>],
675 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
676 AC_MSG_RESULT($ac_cv_sockaddr_len)])
677 if test "$ac_cv_sockaddr_len" = "yes"; then
678 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
680 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
681 echo Skipping library tests because they confuse Irix.
683 AC_CHECK_FUNCS(socket)
685 if test "$ac_cv_func_socket" = no; then
686 for lib in socket inet; do
687 if test "$HAVE_SOCKET" != 1; then
688 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
693 AC_CHECK_FUNCS(connect)
695 if test "$ac_cv_func_connect" = no; then
697 if test "$HAVE_CONNECT" != 1; then
698 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
703 AC_CHECK_FUNCS(gethostbyname)
704 if test "$ac_cv_func_gethostbyname" = no; then
705 for lib in dns nsl resolv; do
706 if test "$HAVE_GETHOSTBYNAME" != 1; then
707 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
712 dnl darwin wants it, aix hates it
713 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
717 #include <sys/types.h>
718 #include <sys/socket.h>
719 #include <netinet/in.h>
720 #include <arpa/inet.h>
721 #include <arpa/nameser.h>
722 #include <arpa/nameser_compat.h>
724 ], [static int i; i = 0;],
726 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
730 openafs_save_libs="$LIBS"
731 AC_MSG_CHECKING([for res_search])
734 if test "$ac_cv_func_res_search" = no; then
735 for lib in dns nsl resolv; do
736 if test "$ac_cv_func_res_search" != yes; then
739 LIBS="$openafs_save_libs"
742 if test "$ac_cv_func_res_search" = yes; then
743 LIB_res_search="-l$lib"
744 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
745 AC_MSG_RESULT([yes, in lib$lib])
750 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
757 AC_CHECK_LIB(pthread, pthread_attr_init,
758 PTHREAD_LIBS="-lpthread")
759 if test "x$PTHREAD_LIBS" = xerror; then
760 AC_CHECK_LIB(pthreads, pthread_attr_init,
761 PTHREAD_LIBS="-lpthreads")
763 if test "x$PTHREAD_LIBS" = xerror; then
764 AC_CHECK_LIB(c_r, pthread_attr_init,
765 PTHREAD_LIBS="-lc_r")
767 if test "x$PTHREAD_LIBS" = xerror; then
768 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
770 if test "x$PTHREAD_LIBS" = xerror; then
771 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
773 AC_SUBST(PTHREAD_LIBS)
776 if test "$enable_obsolete" = "yes"; then
781 if test "$enable_insecure" = "yes"; then
785 if test "x$with_bsd_kernel_headers" != "x"; then
786 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
788 BSD_KERNEL_PATH="/usr/src/sys"
791 if test "x$with_bsd_kernel_build" != "x"; then
792 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
796 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
799 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/i386/compile/GENERIC"
805 if test "$enable_supergroups" = "yes"; then
806 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
809 if test "$enable_fast_restart" = "yes"; then
810 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
813 if test "$enable_bitmap_later" = "yes"; then
814 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
817 if test "$enable_full_vos_listvol_switch" = "yes"; then
818 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
821 if test "$enable_bos_restricted_mode" = "yes"; then
822 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
825 if test "$enable_bos_new_config" = "yes"; then
826 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
829 if test "$enable_largefile_fileserver" = "yes"; then
830 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
833 if test "$enable_namei_fileserver" = "yes"; then
834 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
837 if test "$enable_afsdb" = "yes"; then
838 LIB_AFSDB="$LIB_res_search"
839 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
843 AC_MSG_CHECKING(for tivoli tsm butc support)
845 if test "$enable_tivoli_tsm" = "yes"; then
846 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
847 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
849 if test -e "$XBSADIR1/xbsa.h"; then
850 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
851 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
852 elif test -e "$XBSADIR2/xbsa.h"; then
853 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
854 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
856 AC_MSG_RESULT([no, missing xbsa.h header file])
861 AC_SUBST(XBSA_CFLAGS)
863 dnl checks for header files.
867 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
868 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
869 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
870 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
871 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
872 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h)
874 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
881 if test "$enable_login" = yes; then
886 AC_SUBST(BUILD_LOGIN)
888 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
889 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror)
891 AC_CHECK_FUNCS(regcomp regexec regerror)
892 AC_MSG_CHECKING([for POSIX regex library])
893 if test "$ac_cv_header_regex_h" = "yes" && \
894 test "$ac_cv_func_regcomp" = "yes" && \
895 test "$ac_cv_func_regexec" = "yes" && \
896 test "$ac_cv_func_regerror" = "yes"; then
897 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
903 AC_CHECK_TYPE(ssize_t, int)
906 AC_CHECK_FUNCS(timegm)
908 dnl Directory PATH handling
909 if test "x$enable_transarc_paths" = "xyes" ; then
910 afsconfdir=${afsconfdir=/usr/afs/etc}
911 viceetcdir=${viceetcdir=/usr/vice/etc}
912 afskerneldir=${afskerneldir=${viceetcdir}}
913 afssrvbindir=${afssrvbindir=/usr/afs/bin}
914 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
915 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
916 afsdbdir=${afsdbdir=/usr/afs/db}
917 afslogsdir=${afslogsdir=/usr/afs/logs}
918 afslocaldir=${afslocaldir=/usr/afs/local}
919 afsbackupdir=${afsbackupdir=/usr/afs/backup}
920 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
922 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
923 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
924 afskerneldir=${afskerneldir='${libdir}/openafs'}
925 afssrvbindir=${afssrvbindir='${bindir}'}
926 afssrvsbindir=${afssrvsbindir='${sbindir}'}
927 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
928 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
929 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
930 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
931 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
932 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
936 AC_SUBST(afskerneldir)
937 AC_SUBST(afssrvbindir)
938 AC_SUBST(afssrvsbindir)
939 AC_SUBST(afssrvlibexecdir)
942 AC_SUBST(afslocaldir)
943 AC_SUBST(afsbackupdir)
944 AC_SUBST(afsbosconfigdir)
946 if test "x$enable_kernel_module" = "xyes"; then
947 ENABLE_KERNEL_MODULE=libafs
950 AC_SUBST(AFS_SYSNAME)
951 AC_SUBST(AFS_PARAM_COMMON)
952 AC_SUBST(ENABLE_KERNEL_MODULE)
954 AC_SUBST(LINUX_KERNEL_PATH)
955 AC_SUBST(BSD_KERNEL_PATH)
956 AC_SUBST(BSD_KERNEL_BUILD)
957 AC_SUBST(LINUX_VERSION)
958 AC_SUBST(MKAFS_OSTYPE)
964 AC_SUBST(WITH_OBSOLETE)
965 AC_SUBST(WITH_INSECURE)
966 AC_SUBST(DARWIN_INFOFILE)
967 AC_SUBST(IRIX_BUILD_IP35)
971 TOP_SRCDIR="${srcdir}/src"
973 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
979 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
983 TOP_OBJDIR="${SRCDIR_PARENT}"
984 TOP_INCDIR="${SRCDIR_PARENT}/include"
985 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
986 if test "${DEST}x" = "x"; then
987 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
990 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
991 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
992 AC_SUBST(HELPER_SPLINT)
993 AC_SUBST(HELPER_SPLINTCFG)