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.
95 dnl Checks for programs.
102 OPENAFS_CHECK_BIGENDIAN
104 AC_MSG_CHECKING(your OS)
109 if test "x$enable_redhat_buildsys" = "xyes"; then
110 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
112 if test "x$enable_kernel_module" = "xyes"; then
113 if test "x$with_linux_kernel_headers" != "x"; then
114 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
116 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
117 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
118 LINUX_KERNEL_PATH="/usr/src/linux"
121 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
122 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
123 if test "x$linux_kvers" = "x"; then
124 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
125 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
126 if test "x$linux_kvers" = "x"; then
128 AC_MSG_ERROR(Linux headers lack version definition [2])
131 LINUX_VERSION="$linux_kvers"
134 AC_MSG_ERROR(Linux headers lack version definition)
138 LINUX_VERSION="$linux_kvers"
141 enable_kernel_module="no"
143 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
144 enable_kernel_module="no"
146 if test "x$enable_kernel_module" = "xno"; then
147 if test "x$with_linux_kernel_headers" != "x"; then
148 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
151 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
156 if test "x$enable_kernel_module" = "xyes"; then
157 if test "x$enable_debug_kernel" = "xno"; then
158 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
160 OPENAFS_GCC_SUPPORTS_MARCH
161 AC_SUBST(P5PLUS_KOPTS)
162 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
163 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
164 OPENAFS_GCC_SUPPORTS_NO_COMMON
165 OPENAFS_GCC_SUPPORTS_PIPE
166 AC_SUBST(LINUX_GCC_KOPTS)
167 ifdef([OPENAFS_CONFIGURE_LIBAFS],
168 [LINUX_BUILD_VNODE_FROM_INODE(src/config,afs)],
169 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
171 LINUX_COMPLETION_H_EXISTS
172 LINUX_DEFINES_FOR_EACH_PROCESS
173 LINUX_DEFINES_PREV_TASK
174 LINUX_EXPORTS_TASKLIST_LOCK
175 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
176 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
177 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
178 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
179 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
180 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
181 LINUX_INODE_SETATTR_RETURN_TYPE
182 LINUX_KERNEL_LINUX_SYSCALL_H
184 LINUX_RECALC_SIGPENDING_ARG_TYPE
185 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
186 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
187 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
188 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
189 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
191 if test "x$ac_cv_linux_config_modversions" = "xno"; then
192 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it's exported])
193 ac_cv_linux_exports_sys_call_table=yes
194 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
195 ac_cv_linux_exports_ia32_sys_call_table=yes
198 LINUX_EXPORTS_INIT_MM
199 LINUX_EXPORTS_KALLSYMS_ADDRESS
200 LINUX_EXPORTS_KALLSYMS_SYMBOL
201 LINUX_EXPORTS_SYS_CALL_TABLE
202 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
203 LINUX_EXPORTS_SYS_CHDIR
204 LINUX_EXPORTS_SYS_CLOSE
205 LINUX_EXPORTS_SYS_WAIT4
206 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
207 linux_syscall_method=none
208 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
209 linux_syscall_method=scan
210 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
211 linux_syscall_method=scan_with_kallsyms_address
214 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
215 linux_syscall_method=kallsyms_symbol
217 if test "x$linux_syscall_method" = "xnone"; then
218 AC_MSG_ERROR([no available sys_call_table access method])
222 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
223 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
225 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
226 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
228 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
229 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
231 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
232 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock])
234 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
235 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
237 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
238 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
240 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
241 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
243 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
244 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
246 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
247 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
249 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
250 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
252 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
253 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
255 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
256 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
258 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
259 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
261 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
262 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
264 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
265 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
267 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
268 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
270 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
271 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
273 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
274 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
276 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
277 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
279 if test "x$ac_linux_syscall" = "xyes" ; then
280 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
282 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
283 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
285 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
286 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
288 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
289 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
291 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
292 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
294 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
295 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
303 SOLARIS_UFSVFS_HAS_DQRWLOCK
304 SOLARIS_PROC_HAS_P_COREFILE
305 SOLARIS_FS_HAS_FS_ROLLED
309 enable_kernel_module=no
317 if test -d /usr/include/sys/SN/SN1; then
318 IRIX_BUILD_IP35="IP35"
325 AC_MSG_RESULT(rs_aix)
329 AC_MSG_RESULT(alpha_dux)
330 if test "x$enable_kernel_module" = "xyes"; then
331 if test "x$with_dux_kernel_headers" != "x"; then
332 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
334 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
337 if test "$HEADER_RT" = "*" ; then
338 AC_MSG_ERROR([Need a configured kernel directory])
340 AC_SUBST([HEADER_RT])
344 AC_MSG_RESULT(ppc_darwin)
348 AC_MSG_RESULT(i386_fbsd)
356 AC_MSG_RESULT(i386_obsd)
359 AC_MSG_RESULT($system)
363 if test "x$with_afs_sysname" != "x"; then
364 AFS_SYSNAME="$with_afs_sysname"
366 AC_MSG_CHECKING(your AFS sysname)
368 i386-unknown-openbsd3.1)
369 AFS_SYSNAME="i386_obsd31"
371 i386-unknown-openbsd3.2)
372 AFS_SYSNAME="i386_obsd32"
374 i386-unknown-openbsd3.3)
375 AFS_SYSNAME="i386_obsd33"
377 i386-unknown-openbsd3.4)
378 AFS_SYSNAME="i386_obsd34"
381 AFS_SYSNAME="i386_fbsd_42"
384 AFS_SYSNAME="i386_fbsd_43"
387 AFS_SYSNAME="i386_fbsd_44"
390 AFS_SYSNAME="i386_fbsd_45"
393 AFS_SYSNAME="i386_fbsd_46"
396 AFS_SYSNAME="i386_fbsd_47"
399 AFS_SYSNAME="i386_fbsd_50"
402 AFS_SYSNAME="i386_fbsd_51"
405 AFS_SYSNAME="i386_fbsd_52"
408 AFS_PARAM_COMMON=param.nbsd15.h
409 AFS_SYSNAME="i386_nbsd15"
412 AFS_PARAM_COMMON=param.nbsd15.h
413 AFS_SYSNAME="alpha_nbsd15"
415 i?86-*-netbsd*1.6[[M-Z]]*)
416 AFS_PARAM_COMMON=param.nbsd20.h
417 AFS_SYSNAME="i386_nbsd20"
419 powerpc-*-netbsd*1.6[[M-Z]]*)
420 AFS_PARAM_COMMON=param.nbsd20.h
421 AFS_SYSNAME="ppc_nbsd20"
424 AFS_PARAM_COMMON=param.nbsd20.h
425 AFS_SYSNAME="i386_nbsd20"
427 powerpc-*-netbsd*2.0*)
428 AFS_PARAM_COMMON=param.nbsd20.h
429 AFS_SYSNAME="ppc_nbsd20"
432 AFS_PARAM_COMMON=param.nbsd16.h
433 AFS_SYSNAME="i386_nbsd16"
436 AFS_PARAM_COMMON=param.nbsd16.h
437 AFS_SYSNAME="alpha_nbsd16"
439 powerpc-*-netbsd*1.6*)
440 AFS_PARAM_COMMON=param.nbsd16.h
441 AFS_SYSNAME="ppc_nbsd16"
444 AFS_SYSNAME="hp_ux110"
447 AFS_SYSNAME="hp_ux11i"
450 AFS_SYSNAME="ia64_hpux1122"
453 AFS_SYSNAME="ia64_hpux1123"
456 AFS_SYSNAME="hp_ux102"
458 powerpc-apple-darwin1.2*)
459 AFS_SYSNAME="ppc_darwin_12"
461 powerpc-apple-darwin1.3*)
462 AFS_SYSNAME="ppc_darwin_13"
464 powerpc-apple-darwin1.4*)
465 AFS_SYSNAME="ppc_darwin_14"
467 powerpc-apple-darwin5.1*)
468 AFS_SYSNAME="ppc_darwin_14"
470 powerpc-apple-darwin5.2*)
471 AFS_SYSNAME="ppc_darwin_14"
473 powerpc-apple-darwin5.3*)
474 AFS_SYSNAME="ppc_darwin_14"
476 powerpc-apple-darwin5.4*)
477 AFS_SYSNAME="ppc_darwin_14"
479 powerpc-apple-darwin5.5*)
480 AFS_SYSNAME="ppc_darwin_14"
482 powerpc-apple-darwin6.0*)
483 AFS_SYSNAME="ppc_darwin_60"
485 powerpc-apple-darwin6.1*)
486 AFS_SYSNAME="ppc_darwin_60"
488 powerpc-apple-darwin6.2*)
489 AFS_SYSNAME="ppc_darwin_60"
491 powerpc-apple-darwin6.3*)
492 AFS_SYSNAME="ppc_darwin_60"
494 powerpc-apple-darwin6.4*)
495 AFS_SYSNAME="ppc_darwin_60"
497 powerpc-apple-darwin6.5*)
498 AFS_SYSNAME="ppc_darwin_60"
500 powerpc-apple-darwin7.0*)
501 AFS_SYSNAME="ppc_darwin_70"
503 powerpc-apple-darwin7.1*)
504 AFS_SYSNAME="ppc_darwin_70"
506 powerpc-apple-darwin7.2*)
507 AFS_SYSNAME="ppc_darwin_70"
509 powerpc-apple-darwin7.3*)
510 AFS_SYSNAME="ppc_darwin_70"
512 sparc-sun-solaris2.5*)
513 AFS_SYSNAME="sun4x_55"
516 sparc-sun-solaris2.6)
517 AFS_SYSNAME="sun4x_56"
519 sparc-sun-solaris2.7)
520 AFS_SYSNAME="sun4x_57"
522 sparc-sun-solaris2.8)
523 AFS_SYSNAME="sun4x_58"
525 sparc-sun-solaris2.9)
526 AFS_SYSNAME="sun4x_59"
529 AFS_SYSNAME="sun4_413"
533 AFS_SYSNAME="sunx86_57"
536 AFS_SYSNAME="sunx86_58"
539 AFS_SYSNAME="sunx86_59"
542 AFS_SYSNAME="alpha_dux40"
545 AFS_SYSNAME="alpha_dux50"
548 AFS_SYSNAME="alpha_dux51"
554 AFS_SYSNAME="ia64_linuxXX"
557 AFS_SYSNAME="ppc_linuxXX"
560 AFS_SYSNAME="ppc64_linuxXX"
563 AFS_SYSNAME="alpha_linux_XX"
566 AFS_SYSNAME="s390_linuxXX"
569 AFS_SYSNAME="sparc_linuxXX"
572 AFS_SYSNAME="sparc64_linuxXX"
575 AFS_SYSNAME="i386_linuxXX"
578 AFS_SYSNAME="parisc_linuxXX"
582 AFS_SYSNAME="rs_aix42"
585 AFS_SYSNAME="rs_aix42"
588 AFS_SYSNAME="rs_aix51"
591 AFS_SYSNAME="rs_aix52"
594 AFS_SYSNAME="amd64_linuxXX"
598 AC_MSG_ERROR(An AFS sysname is required)
604 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
605 if test "x${AFS_SYSKVERS}" = "x"; then
606 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
608 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
609 AFS_SYSNAME="$_AFS_SYSNAME"
610 save_CPPFLAGS="$CPPFLAGS"
611 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
613 [#include <linux/autoconf.h>],
614 [#ifndef CONFIG_USERMODE
617 ac_cv_linux_is_uml=yes,)
618 if test "${ac_cv_linux_is_uml}" = yes; then
619 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
621 CPPFLAGS="$save_CPPFLAGS"
622 AFS_SYSNAME="$_AFS_SYSNAME"
625 AC_MSG_RESULT($AFS_SYSNAME)
628 # KDUMP64 defaults to KDUMP for systems without a separate kdump64
634 sun4x_5[[789]] | hp_ux11*)
638 KDUMP='kdump-${LINUX_VERSION}';;
645 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
646 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
647 dnl the test below fails on darwin, even if the CPPFLAGS below
648 dnl are added. the headers from Kernel.Framework must be used
649 dnl when KERNEL is defined.
651 dnl really, such a thing isn't guaranteed to work on any
652 dnl platform until the kernel cflags from MakefileProto are
653 dnl known to configure
654 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
657 AC_MSG_CHECKING(for definition of struct buf)
658 dnl save_CPPFLAGS="$CPPFLAGS"
659 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
660 AC_CACHE_VAL(ac_cv_have_struct_buf, [
661 ac_cv_have_struct_buf=no
663 [#include <sys/buf.h>],
665 printf("%d\n", sizeof(x));],
666 ac_cv_have_struct_buf=yes,)
669 dnl CPPFLAGS="$save_CPPFLAGS"
670 AC_MSG_RESULT($ac_cv_have_struct_buf)
671 if test "$ac_cv_have_struct_buf" = yes; then
672 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
678 AC_CACHE_VAL(ac_cv_sockaddr_len,
680 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
681 AC_TRY_COMPILE( [#include <sys/types.h>
682 #include <sys/socket.h>],
684 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
685 AC_MSG_RESULT($ac_cv_sockaddr_len)])
686 if test "$ac_cv_sockaddr_len" = "yes"; then
687 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
689 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
690 echo Skipping library tests because they confuse Irix.
692 AC_CHECK_FUNCS(socket)
694 if test "$ac_cv_func_socket" = no; then
695 for lib in socket inet; do
696 if test "$HAVE_SOCKET" != 1; then
697 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
702 AC_CHECK_FUNCS(connect)
704 if test "$ac_cv_func_connect" = no; then
706 if test "$HAVE_CONNECT" != 1; then
707 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
712 AC_CHECK_FUNCS(gethostbyname)
713 if test "$ac_cv_func_gethostbyname" = no; then
714 for lib in dns nsl resolv; do
715 if test "$HAVE_GETHOSTBYNAME" != 1; then
716 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
721 dnl darwin wants it, aix hates it
722 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
726 #include <sys/types.h>
727 #include <sys/socket.h>
728 #include <netinet/in.h>
729 #include <arpa/inet.h>
730 #include <arpa/nameser.h>
731 #include <arpa/nameser_compat.h>
733 ], [static int i; i = 0;],
735 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
739 openafs_save_libs="$LIBS"
740 AC_MSG_CHECKING([for res_search])
743 if test "$ac_cv_func_res_search" = no; then
744 for lib in dns nsl resolv; do
745 if test "$ac_cv_func_res_search" != yes; then
748 LIBS="$openafs_save_libs"
751 if test "$ac_cv_func_res_search" = yes; then
752 LIB_res_search="-l$lib"
753 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
754 AC_MSG_RESULT([yes, in lib$lib])
759 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
766 AC_CHECK_LIB(pthread, pthread_attr_init,
767 PTHREAD_LIBS="-lpthread")
768 if test "x$PTHREAD_LIBS" = xerror; then
769 AC_CHECK_LIB(pthreads, pthread_attr_init,
770 PTHREAD_LIBS="-lpthreads")
772 if test "x$PTHREAD_LIBS" = xerror; then
773 AC_CHECK_LIB(c_r, pthread_attr_init,
774 PTHREAD_LIBS="-lc_r")
776 if test "x$PTHREAD_LIBS" = xerror; then
777 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
779 if test "x$PTHREAD_LIBS" = xerror; then
780 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
782 AC_SUBST(PTHREAD_LIBS)
785 if test "$enable_obsolete" = "yes"; then
790 if test "$enable_insecure" = "yes"; then
794 if test "x$with_bsd_kernel_headers" != "x"; then
795 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
797 BSD_KERNEL_PATH="/usr/src/sys"
800 if test "x$with_bsd_kernel_build" != "x"; then
801 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
805 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
808 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/i386/compile/GENERIC"
814 if test "$enable_supergroups" = "yes"; then
815 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
818 if test "$enable_fast_restart" = "yes"; then
819 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
822 if test "$enable_bitmap_later" = "yes"; then
823 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
826 if test "$enable_full_vos_listvol_switch" = "yes"; then
827 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
830 if test "$enable_bos_restricted_mode" = "yes"; then
831 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
834 if test "$enable_bos_new_config" = "yes"; then
835 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
838 if test "$enable_largefile_fileserver" = "yes"; then
839 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
842 if test "$enable_namei_fileserver" = "yes"; then
843 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
846 if test "$enable_afsdb" = "yes"; then
847 LIB_AFSDB="$LIB_res_search"
848 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
852 AC_MSG_CHECKING(for tivoli tsm butc support)
854 if test "$enable_tivoli_tsm" = "yes"; then
855 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
856 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
858 if test -e "$XBSADIR1/xbsa.h"; then
859 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
860 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
861 elif test -e "$XBSADIR2/xbsa.h"; then
862 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
863 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
865 AC_MSG_RESULT([no, missing xbsa.h header file])
870 AC_SUBST(XBSA_CFLAGS)
872 dnl checks for header files.
876 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
877 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
878 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
879 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
880 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
881 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h)
883 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
890 if test "$enable_login" = yes; then
895 AC_SUBST(BUILD_LOGIN)
897 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
898 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror)
900 AC_CHECK_FUNCS(regcomp regexec regerror)
901 AC_MSG_CHECKING([for POSIX regex library])
902 if test "$ac_cv_header_regex_h" = "yes" && \
903 test "$ac_cv_func_regcomp" = "yes" && \
904 test "$ac_cv_func_regexec" = "yes" && \
905 test "$ac_cv_func_regerror" = "yes"; then
906 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
912 AC_CHECK_TYPE(ssize_t, int)
915 AC_CHECK_FUNCS(timegm)
917 dnl Directory PATH handling
918 if test "x$enable_transarc_paths" = "xyes" ; then
919 afsconfdir=${afsconfdir=/usr/afs/etc}
920 viceetcdir=${viceetcdir=/usr/vice/etc}
921 afskerneldir=${afskerneldir=${viceetcdir}}
922 afssrvbindir=${afssrvbindir=/usr/afs/bin}
923 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
924 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
925 afsdbdir=${afsdbdir=/usr/afs/db}
926 afslogsdir=${afslogsdir=/usr/afs/logs}
927 afslocaldir=${afslocaldir=/usr/afs/local}
928 afsbackupdir=${afsbackupdir=/usr/afs/backup}
929 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
931 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
932 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
933 afskerneldir=${afskerneldir='${libdir}/openafs'}
934 afssrvbindir=${afssrvbindir='${bindir}'}
935 afssrvsbindir=${afssrvsbindir='${sbindir}'}
936 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
937 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
938 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
939 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
940 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
941 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
945 AC_SUBST(afskerneldir)
946 AC_SUBST(afssrvbindir)
947 AC_SUBST(afssrvsbindir)
948 AC_SUBST(afssrvlibexecdir)
951 AC_SUBST(afslocaldir)
952 AC_SUBST(afsbackupdir)
953 AC_SUBST(afsbosconfigdir)
955 if test "x$enable_kernel_module" = "xyes"; then
956 ENABLE_KERNEL_MODULE=libafs
959 AC_SUBST(AFS_SYSNAME)
960 AC_SUBST(AFS_PARAM_COMMON)
961 AC_SUBST(ENABLE_KERNEL_MODULE)
963 AC_SUBST(LINUX_KERNEL_PATH)
964 AC_SUBST(BSD_KERNEL_PATH)
965 AC_SUBST(BSD_KERNEL_BUILD)
966 AC_SUBST(LINUX_VERSION)
967 AC_SUBST(MKAFS_OSTYPE)
973 AC_SUBST(WITH_OBSOLETE)
974 AC_SUBST(WITH_INSECURE)
975 AC_SUBST(DARWIN_INFOFILE)
976 AC_SUBST(IRIX_BUILD_IP35)
980 TOP_SRCDIR="${srcdir}/src"
982 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
988 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
992 TOP_OBJDIR="${SRCDIR_PARENT}"
993 TOP_INCDIR="${SRCDIR_PARENT}/include"
994 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
995 if test "${DEST}x" = "x"; then
996 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
999 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1000 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1001 AC_SUBST(HELPER_SPLINT)
1002 AC_SUBST(HELPER_SPLINTCFG)