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")
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( namei-fileserver,
27 [ --enable-namei-fileserver force compilation of namei fileserver in preference to inode fileserver],, enable_namei_fileserver="no")
28 AC_ARG_ENABLE( supergroups,
29 [ --enable-supergroups enable support for nested pts groups],, enable_supergroups="no")
30 AC_ARG_ENABLE( fast-restart,
31 [ --enable-fast-restart enable fast startup of file server without salvaging],, enable_fast_restart="no")
32 AC_ARG_ENABLE( bitmap-later,
33 [ --enable-bitmap-later enable fast startup of file server by not reading bitmap till needed],, enable_bitmap_later="no")
34 AC_ARG_ENABLE( full-vos-listvol-switch,
35 [ --enable-full-vos-listvol-switch enable vos full listvol switch for formatted output],, enable_full_vos_listvol_switch="no")
36 AC_ARG_WITH(dux-kernel-headers,
37 [ --with-dux-kernel-headers=path use the kernel headers found at path(optional, defaults to first match in /usr/sys)]
39 AC_ARG_WITH(linux-kernel-headers,
40 [ --with-linux-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/linux)]
42 AC_ARG_WITH(bsd-kernel-headers,
43 [ --with-bsd-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/sys)]
45 AC_ARG_ENABLE(kernel-module,
46 [ --disable-kernel-module disable compilation of the kernel module (defaults to enabled)],, enable_kernel_module="yes"
48 AC_ARG_ENABLE(redhat-buildsys,
49 [ --enable-redhat-buildsys enable compilation of the redhat build system kernel (defaults to disabled)],, enable_redhat_buildsys="no"
51 AC_ARG_ENABLE(transarc-paths,
52 [ --enable-transarc-paths Use Transarc style paths like /usr/afs and /usr/vice],, enable_transarc_paths="no"
54 AC_ARG_ENABLE(tivoli-tsm,
55 [ --enable-tivoli-tsm Enable use of the Tivoli TSM API libraries for butc support],, enable_tivoli_tsm="no"
57 AC_ARG_ENABLE(debug-kernel,
58 [ --enable-debug-kernel enable compilation of the kernel module with debugging information (defaults to disabled)],, enable_debug_kernel="no"
60 AC_ARG_ENABLE(optimize-kernel,
61 [ --disable-optimize-kernel disable compilation of the kernel module with optimization (defaults based on platform)],, enable_optimize_kernel="yes"
64 [ --enable-debug enable compilation of the user space code with debugging information (defaults to disabled)],, enable_debug="no"
66 AC_ARG_ENABLE(optimize,
67 [ --disable-optimize disable optimization for compilation of the user space code (defaults to enabled)],, enable_optimize="yes"
69 AC_ARG_ENABLE(debug-lwp,
70 [ --enable-debug-lwp enable compilation of the LWP code with debugging information (defaults to disabled)],, enable_debug_lwp="no"
72 AC_ARG_ENABLE(optimize-lwp,
73 [ --disable-optimize-lwp disable optimization for compilation of the LWP code (defaults to enabled)],, enable_optimize_lwp="yes"
81 dnl Various compiler setup.
86 dnl Checks for programs.
93 OPENAFS_CHECK_BIGENDIAN
95 AC_MSG_CHECKING(your OS)
100 if test "x$enable_redhat_buildsys" = "xyes"; then
101 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
103 if test "x$enable_kernel_module" = "xyes"; then
104 if test "x$with_linux_kernel_headers" != "x"; then
105 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
107 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
108 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
109 LINUX_KERNEL_PATH="/usr/src/linux"
112 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
113 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -1`
114 if test "x$linux_kvers" = "x"; then
115 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
116 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -1`
117 if test "x$linux_kvers" = "x"; then
119 AC_MSG_ERROR(Linux headers lack version definition [2])
122 LINUX_VERSION="$linux_kvers"
125 AC_MSG_ERROR(Linux headers lack version definition)
129 LINUX_VERSION="$linux_kvers"
132 enable_kernel_module="no"
134 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
135 enable_kernel_module="no"
137 if test "x$enable_kernel_module" = "xno"; then
138 if test "x$with_linux_kernel_headers" != "x"; then
139 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
142 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
147 if test "x$enable_kernel_module" = "xyes"; then
148 if test "x$enable_debug_kernel" = "xno"; then
149 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
151 OPENAFS_GCC_SUPPORTS_MARCH
152 AC_SUBST(P5PLUS_KOPTS)
153 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
154 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
155 OPENAFS_GCC_SUPPORTS_NO_COMMON
156 OPENAFS_GCC_SUPPORTS_PIPE
157 AC_SUBST(LINUX_GCC_KOPTS)
158 ifdef([OPENAFS_CONFIGURE_LIBAFS],
159 [LINUX_BUILD_VNODE_FROM_INODE(src/config,afs)],
160 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
162 LINUX_COMPLETION_H_EXISTS
163 LINUX_DEFINES_FOR_EACH_PROCESS
164 LINUX_DEFINES_PREV_TASK
165 LINUX_EXPORTS_TASKLIST_LOCK
166 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
167 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
168 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
169 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
170 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
171 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
172 LINUX_INODE_SETATTR_RETURN_TYPE
173 LINUX_KERNEL_LINUX_SYSCALL_H
175 LINUX_RECALC_SIGPENDING_ARG_TYPE
176 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
177 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
178 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
179 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
180 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
182 if test "x$ac_cv_linux_config_modversions" = "xno"; then
183 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it's exported])
184 ac_cv_linux_exports_sys_call_table=yes
185 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
186 ac_cv_linux_exports_ia32_sys_call_table=yes
189 LINUX_EXPORTS_INIT_MM
190 LINUX_EXPORTS_KALLSYMS_ADDRESS
191 LINUX_EXPORTS_KALLSYMS_SYMBOL
192 LINUX_EXPORTS_SYS_CALL_TABLE
193 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
194 LINUX_EXPORTS_SYS_CHDIR
195 LINUX_EXPORTS_SYS_CLOSE
196 LINUX_EXPORTS_SYS_WAIT4
197 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
198 linux_syscall_method=none
199 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
200 linux_syscall_method=scan
201 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
202 linux_syscall_method=scan_with_kallsyms_address
205 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
206 linux_syscall_method=kallsyms_symbol
208 if test "x$linux_syscall_method" = "xnone"; then
209 AC_MSG_ERROR([no available sys_call_table access method])
213 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
214 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
216 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
217 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
219 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
220 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
222 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
223 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock])
225 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
226 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
228 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
229 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
231 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
232 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
234 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
235 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
237 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
238 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
240 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
241 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
243 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
244 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
246 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
247 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
249 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
250 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
252 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
253 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
255 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
256 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
258 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
259 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
261 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
262 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
264 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
265 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
267 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
268 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
270 if test "x$ac_linux_syscall" = "xyes" ; then
271 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
273 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
274 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
276 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
277 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
279 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
280 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
282 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
283 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
285 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
286 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
294 SOLARIS_UFSVFS_HAS_DQRWLOCK
295 SOLARIS_PROC_HAS_P_COREFILE
296 SOLARIS_FS_HAS_FS_ROLLED
300 enable_kernel_module=no
308 if test -d /usr/include/sys/SN/SN1; then
309 IRIX_BUILD_IP35="IP35"
316 AC_MSG_RESULT(rs_aix)
320 AC_MSG_RESULT(alpha_dux)
321 if test "x$enable_kernel_module" = "xyes"; then
322 if test "x$with_dux_kernel_headers" != "x"; then
323 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
325 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
328 if test "$HEADER_RT" = "*" ; then
329 AC_MSG_ERROR([Need a configured kernel directory])
331 AC_SUBST([HEADER_RT])
335 AC_MSG_RESULT(ppc_darwin)
339 AC_MSG_RESULT(i386_fbsd)
347 AC_MSG_RESULT(i386_obsd)
350 AC_MSG_RESULT($system)
354 if test "x$with_afs_sysname" != "x"; then
355 AFS_SYSNAME="$with_afs_sysname"
357 AC_MSG_CHECKING(your AFS sysname)
359 i386-unknown-openbsd3.1)
360 AFS_SYSNAME="i386_obsd31"
362 i386-unknown-openbsd3.2)
363 AFS_SYSNAME="i386_obsd32"
366 AFS_SYSNAME="i386_fbsd_42"
369 AFS_SYSNAME="i386_fbsd_43"
372 AFS_SYSNAME="i386_fbsd_44"
375 AFS_SYSNAME="i386_fbsd_45"
378 AFS_SYSNAME="i386_fbsd_46"
381 AFS_SYSNAME="i386_fbsd_47"
384 AFS_SYSNAME="i386_fbsd_50"
387 AFS_PARAM_COMMON=param.nbsd15.h
388 AFS_SYSNAME="i386_nbsd15"
391 AFS_PARAM_COMMON=param.nbsd15.h
392 AFS_SYSNAME="alpha_nbsd15"
394 i?86-*-netbsd*1.6[[M-Z]]*)
395 AFS_PARAM_COMMON=param.nbsd20.h
396 AFS_SYSNAME="i386_nbsd20"
398 powerpc-*-netbsd*1.6[[M-Z]]*)
399 AFS_PARAM_COMMON=param.nbsd20.h
400 AFS_SYSNAME="ppc_nbsd20"
403 AFS_PARAM_COMMON=param.nbsd20.h
404 AFS_SYSNAME="i386_nbsd20"
406 powerpc-*-netbsd*2.0*)
407 AFS_PARAM_COMMON=param.nbsd20.h
408 AFS_SYSNAME="ppc_nbsd20"
411 AFS_PARAM_COMMON=param.nbsd16.h
412 AFS_SYSNAME="i386_nbsd16"
415 AFS_PARAM_COMMON=param.nbsd16.h
416 AFS_SYSNAME="alpha_nbsd16"
418 powerpc-*-netbsd*1.6*)
419 AFS_PARAM_COMMON=param.nbsd16.h
420 AFS_SYSNAME="ppc_nbsd16"
423 AFS_SYSNAME="hp_ux110"
426 AFS_SYSNAME="hp_ux11i"
429 AFS_SYSNAME="ia64_hpux1122"
432 AFS_SYSNAME="hp_ux102"
434 powerpc-apple-darwin1.2*)
435 AFS_SYSNAME="ppc_darwin_12"
437 powerpc-apple-darwin1.3*)
438 AFS_SYSNAME="ppc_darwin_13"
440 powerpc-apple-darwin1.4*)
441 AFS_SYSNAME="ppc_darwin_14"
443 powerpc-apple-darwin5.1*)
444 AFS_SYSNAME="ppc_darwin_14"
446 powerpc-apple-darwin5.2*)
447 AFS_SYSNAME="ppc_darwin_14"
449 powerpc-apple-darwin5.3*)
450 AFS_SYSNAME="ppc_darwin_14"
452 powerpc-apple-darwin5.4*)
453 AFS_SYSNAME="ppc_darwin_14"
455 powerpc-apple-darwin5.5*)
456 AFS_SYSNAME="ppc_darwin_14"
458 powerpc-apple-darwin6.0*)
459 AFS_SYSNAME="ppc_darwin_60"
461 powerpc-apple-darwin6.1*)
462 AFS_SYSNAME="ppc_darwin_60"
464 powerpc-apple-darwin6.2*)
465 AFS_SYSNAME="ppc_darwin_60"
467 powerpc-apple-darwin6.3*)
468 AFS_SYSNAME="ppc_darwin_60"
470 powerpc-apple-darwin6.4*)
471 AFS_SYSNAME="ppc_darwin_60"
473 powerpc-apple-darwin6.5*)
474 AFS_SYSNAME="ppc_darwin_60"
476 sparc-sun-solaris2.5*)
477 AFS_SYSNAME="sun4x_55"
479 sparc-sun-solaris2.6)
480 AFS_SYSNAME="sun4x_56"
482 sparc-sun-solaris2.7)
483 AFS_SYSNAME="sun4x_57"
485 sparc-sun-solaris2.8)
486 AFS_SYSNAME="sun4x_58"
488 sparc-sun-solaris2.9)
489 AFS_SYSNAME="sun4x_59"
492 AFS_SYSNAME="sun4_413"
495 AFS_SYSNAME="sunx86_57"
498 AFS_SYSNAME="sunx86_58"
501 AFS_SYSNAME="sunx86_59"
504 AFS_SYSNAME="alpha_dux40"
507 AFS_SYSNAME="alpha_dux50"
510 AFS_SYSNAME="alpha_dux51"
516 AFS_SYSNAME="ia64_linuxXX"
519 AFS_SYSNAME="ppc_linuxXX"
522 AFS_SYSNAME="alpha_linux_XX"
525 AFS_SYSNAME="s390_linuxXX"
528 AFS_SYSNAME="sparc_linuxXX"
531 AFS_SYSNAME="sparc64_linuxXX"
534 AFS_SYSNAME="i386_linuxXX"
537 AFS_SYSNAME="parisc_linuxXX"
540 AFS_SYSNAME="rs_aix42"
543 AFS_SYSNAME="rs_aix42"
546 AFS_SYSNAME="amd64_linuxXX"
549 AC_MSG_ERROR(An AFS sysname is required)
555 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
556 if test "x${AFS_SYSKVERS}" = "x"; then
557 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
559 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
560 AFS_SYSNAME="$_AFS_SYSNAME"
561 save_CPPFLAGS="$CPPFLAGS"
562 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
564 [#include <linux/autoconf.h>],
565 [#ifndef CONFIG_USERMODE
568 ac_cv_linux_is_uml=yes,)
569 if test "${ac_cv_linux_is_uml}" = yes; then
570 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
572 CPPFLAGS="$save_CPPFLAGS"
573 AFS_SYSNAME="$_AFS_SYSNAME"
576 AC_MSG_RESULT($AFS_SYSNAME)
579 # KDUMP64 defaults to KDUMP for systems without a separate kdump64
585 sun4x_5[789] | hp_ux11*)
589 KDUMP='kdump-${LINUX_VERSION}';;
596 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
597 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
598 dnl the test below fails on darwin, even if the CPPFLAGS below
599 dnl are added. the headers from Kernel.Framework must be used
600 dnl when KERNEL is defined.
602 dnl really, such a thing isn't guaranteed to work on any
603 dnl platform until the kernel cflags from MakefileProto are
604 dnl known to configure
605 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
608 AC_MSG_CHECKING(for definition of struct buf)
609 dnl save_CPPFLAGS="$CPPFLAGS"
610 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
611 AC_CACHE_VAL(ac_cv_have_struct_buf, [
612 ac_cv_have_struct_buf=no
614 [#include <sys/buf.h>],
616 printf("%d\n", sizeof(x));],
617 ac_cv_have_struct_buf=yes,)
620 dnl CPPFLAGS="$save_CPPFLAGS"
621 AC_MSG_RESULT($ac_cv_have_struct_buf)
622 if test "$ac_cv_have_struct_buf" = yes; then
623 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
629 AC_CACHE_VAL(ac_cv_sockaddr_len,
631 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
632 AC_TRY_COMPILE( [#include <sys/types.h>
633 #include <sys/socket.h>],
635 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
636 AC_MSG_RESULT($ac_cv_sockaddr_len)])
637 if test "$ac_cv_sockaddr_len" = "yes"; then
638 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
640 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
641 echo Skipping library tests because they confuse Irix.
643 AC_CHECK_FUNCS(socket)
645 if test "$ac_cv_func_socket" = no; then
646 for lib in socket inet; do
647 if test "$HAVE_SOCKET" != 1; then
648 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
653 AC_CHECK_FUNCS(connect)
655 if test "$ac_cv_func_connect" = no; then
657 if test "$HAVE_CONNECT" != 1; then
658 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
663 AC_CHECK_FUNCS(gethostbyname)
664 if test "$ac_cv_func_gethostbyname" = no; then
665 for lib in dns nsl resolv; do
666 if test "$HAVE_GETHOSTBYNAME" != 1; then
667 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
672 openafs_save_libs="$LIBS"
673 AC_MSG_CHECKING([for res_search])
676 if test "$ac_cv_func_res_search" = no; then
677 for lib in dns nsl resolv; do
678 if test "$ac_cv_func_res_search" != yes; then
681 LIBS="$openafs_save_libs"
684 if test "$ac_cv_func_res_search" = yes; then
685 LIB_res_search="-l$lib"
686 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
687 AC_MSG_RESULT([yes, in lib$lib])
692 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
699 AC_CHECK_LIB(pthread, pthread_attr_init,
700 PTHREAD_LIBS="-lpthread")
701 if test "x$PTHREAD_LIBS" = xerror; then
702 AC_CHECK_LIB(pthreads, pthread_attr_init,
703 PTHREAD_LIBS="-lpthreads")
705 if test "x$PTHREAD_LIBS" = xerror; then
706 AC_CHECK_LIB(c_r, pthread_attr_init,
707 PTHREAD_LIBS="-lc_r")
709 if test "x$PTHREAD_LIBS" = xerror; then
710 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
712 if test "x$PTHREAD_LIBS" = xerror; then
713 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
715 AC_SUBST(PTHREAD_LIBS)
718 if test "$enable_obsolete" = "yes"; then
723 if test "$enable_insecure" = "yes"; then
727 if test "x$with_bsd_kernel_headers" != "x"; then
728 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
730 BSD_KERNEL_PATH="/usr/src/sys"
734 if test "$enable_supergroups" = "yes"; then
735 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
738 if test "$enable_fast_restart" = "yes"; then
739 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
742 if test "$enable_bitmap_later" = "yes"; then
743 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
746 if test "$enable_full_vos_listvol_switch" = "yes"; then
747 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
750 if test "$enable_bos_restricted_mode" = "yes"; then
751 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
754 if test "$enable_bos_new_config" = "yes"; then
755 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
758 if test "$enable_namei_fileserver" = "yes"; then
759 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
762 if test "$enable_afsdb" = "yes"; then
763 LIB_AFSDB="$LIB_res_search"
764 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
768 AC_MSG_CHECKING(for tivoli tsm butc support)
770 if test "$enable_tivoli_tsm" = "yes"; then
771 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
772 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
774 if test -e "$XBSADIR1/xbsa.h"; then
775 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
776 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
777 elif test -e "$XBSADIR2/xbsa.h"; then
778 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
779 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
781 AC_MSG_RESULT([no, missing xbsa.h header file])
786 AC_SUBST(XBSA_CFLAGS)
788 dnl checks for header files.
792 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
793 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
794 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
795 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
796 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h)
797 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h)
799 if test "$ac_cv_header_security_pam_modules_h" = "yes"; then
806 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
807 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror)
808 AC_CHECK_TYPE(ssize_t, int)
811 AC_CHECK_FUNCS(timegm)
813 dnl Directory PATH handling
814 if test "x$enable_transarc_paths" = "xyes" ; then
815 afsconfdir=${afsconfdir=/usr/afs/etc}
816 viceetcdir=${viceetcdir=/usr/vice/etc}
817 afskerneldir=${afskerneldir=${viceetcdir}}
818 afssrvbindir=${afssrvbindir=/usr/afs/bin}
819 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
820 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
821 afsdbdir=${afsdbdir=/usr/afs/db}
822 afslogsdir=${afslogsdir=/usr/afs/logs}
823 afslocaldir=${afslocaldir=/usr/afs/local}
824 afsbackupdir=${afsbackupdir=/usr/afs/backup}
825 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
827 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
828 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
829 afskerneldir=${afskerneldir='${libdir}/openafs'}
830 afssrvbindir=${afssrvbindir='${bindir}'}
831 afssrvsbindir=${afssrvsbindir='${sbindir}'}
832 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
833 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
834 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
835 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
836 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
837 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
841 AC_SUBST(afskerneldir)
842 AC_SUBST(afssrvbindir)
843 AC_SUBST(afssrvsbindir)
844 AC_SUBST(afssrvlibexecdir)
847 AC_SUBST(afslocaldir)
848 AC_SUBST(afsbackupdir)
849 AC_SUBST(afsbosconfigdir)
851 if test "x$enable_kernel_module" = "xyes"; then
852 ENABLE_KERNEL_MODULE=libafs
855 AC_SUBST(AFS_SYSNAME)
856 AC_SUBST(AFS_PARAM_COMMON)
857 AC_SUBST(ENABLE_KERNEL_MODULE)
859 AC_SUBST(LINUX_KERNEL_PATH)
860 AC_SUBST(BSD_KERNEL_PATH)
861 AC_SUBST(LINUX_VERSION)
862 AC_SUBST(MKAFS_OSTYPE)
868 AC_SUBST(WITH_OBSOLETE)
869 AC_SUBST(WITH_INSECURE)
870 AC_SUBST(DARWIN_INFOFILE)
871 AC_SUBST(IRIX_BUILD_IP35)
875 TOP_SRCDIR="${srcdir}/src"
877 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
883 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
887 TOP_OBJDIR="${SRCDIR_PARENT}"
888 TOP_INCDIR="${SRCDIR_PARENT}/include"
889 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
890 if test "${DEST}x" = "x"; then
891 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
894 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
895 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
896 AC_SUBST(HELPER_SPLINT)
897 AC_SUBST(HELPER_SPLINTCFG)