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 AFS_ISUML=`echo $LINUX_VERSION | awk 'BEGIN {FS="-[[0-9]]+"} {print $[]2}'`
562 if test "x${AFS_ISUML}" = "xum"; then
563 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
565 AFS_SYSNAME="$_AFS_SYSNAME"
568 AC_MSG_RESULT($AFS_SYSNAME)
571 # KDUMP64 defaults to KDUMP for systems without a separate kdump64
577 sun4x_5[789] | hp_ux11*)
581 KDUMP='kdump-${LINUX_VERSION}';;
588 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
589 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
590 dnl the test below fails on darwin, even if the CPPFLAGS below
591 dnl are added. the headers from Kernel.Framework must be used
592 dnl when KERNEL is defined.
594 dnl really, such a thing isn't guaranteed to work on any
595 dnl platform until the kernel cflags from MakefileProto are
596 dnl known to configure
597 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
600 AC_MSG_CHECKING(for definition of struct buf)
601 dnl save_CPPFLAGS="$CPPFLAGS"
602 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
603 AC_CACHE_VAL(ac_cv_have_struct_buf, [
604 ac_cv_have_struct_buf=no
606 [#include <sys/buf.h>],
608 printf("%d\n", sizeof(x));],
609 ac_cv_have_struct_buf=yes,)
612 dnl CPPFLAGS="$save_CPPFLAGS"
613 AC_MSG_RESULT($ac_cv_have_struct_buf)
614 if test "$ac_cv_have_struct_buf" = yes; then
615 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
621 AC_CACHE_VAL(ac_cv_sockaddr_len,
623 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
624 AC_TRY_COMPILE( [#include <sys/types.h>
625 #include <sys/socket.h>],
627 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
628 AC_MSG_RESULT($ac_cv_sockaddr_len)])
629 if test "$ac_cv_sockaddr_len" = "yes"; then
630 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
632 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
633 echo Skipping library tests because they confuse Irix.
635 AC_CHECK_FUNCS(socket)
637 if test "$ac_cv_func_socket" = no; then
638 for lib in socket inet; do
639 if test "$HAVE_SOCKET" != 1; then
640 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
645 AC_CHECK_FUNCS(connect)
647 if test "$ac_cv_func_connect" = no; then
649 if test "$HAVE_CONNECT" != 1; then
650 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
655 AC_CHECK_FUNCS(gethostbyname)
656 if test "$ac_cv_func_gethostbyname" = no; then
657 for lib in dns nsl resolv; do
658 if test "$HAVE_GETHOSTBYNAME" != 1; then
659 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
664 openafs_save_libs="$LIBS"
665 AC_MSG_CHECKING([for res_search])
668 if test "$ac_cv_func_res_search" = no; then
669 for lib in dns nsl resolv; do
670 if test "$ac_cv_func_res_search" != yes; then
673 LIBS="$openafs_save_libs"
676 if test "$ac_cv_func_res_search" = yes; then
677 LIB_res_search="-l$lib"
678 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
679 AC_MSG_RESULT([yes, in lib$lib])
684 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
691 AC_CHECK_LIB(pthread, pthread_attr_init,
692 PTHREAD_LIBS="-lpthread")
693 if test "x$PTHREAD_LIBS" = xerror; then
694 AC_CHECK_LIB(pthreads, pthread_attr_init,
695 PTHREAD_LIBS="-lpthreads")
697 if test "x$PTHREAD_LIBS" = xerror; then
698 AC_CHECK_LIB(c_r, pthread_attr_init,
699 PTHREAD_LIBS="-lc_r")
701 if test "x$PTHREAD_LIBS" = xerror; then
702 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
704 if test "x$PTHREAD_LIBS" = xerror; then
705 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
707 AC_SUBST(PTHREAD_LIBS)
710 if test "$enable_obsolete" = "yes"; then
715 if test "$enable_insecure" = "yes"; then
719 if test "x$with_bsd_kernel_headers" != "x"; then
720 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
722 BSD_KERNEL_PATH="/usr/src/sys"
726 if test "$enable_supergroups" = "yes"; then
727 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
730 if test "$enable_fast_restart" = "yes"; then
731 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
734 if test "$enable_bitmap_later" = "yes"; then
735 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
738 if test "$enable_full_vos_listvol_switch" = "yes"; then
739 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
742 if test "$enable_bos_restricted_mode" = "yes"; then
743 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
746 if test "$enable_bos_new_config" = "yes"; then
747 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
750 if test "$enable_namei_fileserver" = "yes"; then
751 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
754 if test "$enable_afsdb" = "yes"; then
755 LIB_AFSDB="$LIB_res_search"
756 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
760 AC_MSG_CHECKING(for tivoli tsm butc support)
762 if test "$enable_tivoli_tsm" = "yes"; then
763 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
764 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
766 if test -e "$XBSADIR1/xbsa.h"; then
767 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
768 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
769 elif test -e "$XBSADIR2/xbsa.h"; then
770 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
771 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
773 AC_MSG_RESULT([no, missing xbsa.h header file])
778 AC_SUBST(XBSA_CFLAGS)
780 dnl checks for header files.
784 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
785 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
786 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
787 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
788 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h)
789 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h)
791 if test "$ac_cv_header_security_pam_modules_h" = "yes"; then
798 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
799 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf)
800 AC_CHECK_TYPE(ssize_t, int)
803 AC_CHECK_FUNCS(timegm)
805 dnl Directory PATH handling
806 if test "x$enable_transarc_paths" = "xyes" ; then
807 afsconfdir=${afsconfdir=/usr/afs/etc}
808 viceetcdir=${viceetcdir=/usr/vice/etc}
809 afskerneldir=${afskerneldir=${viceetcdir}}
810 afssrvbindir=${afssrvbindir=/usr/afs/bin}
811 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
812 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
813 afsdbdir=${afsdbdir=/usr/afs/db}
814 afslogsdir=${afslogsdir=/usr/afs/logs}
815 afslocaldir=${afslocaldir=/usr/afs/local}
816 afsbackupdir=${afsbackupdir=/usr/afs/backup}
817 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
819 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
820 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
821 afskerneldir=${afskerneldir='${libdir}/openafs'}
822 afssrvbindir=${afssrvbindir='${bindir}'}
823 afssrvsbindir=${afssrvsbindir='${sbindir}'}
824 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
825 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
826 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
827 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
828 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
829 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
833 AC_SUBST(afskerneldir)
834 AC_SUBST(afssrvbindir)
835 AC_SUBST(afssrvsbindir)
836 AC_SUBST(afssrvlibexecdir)
839 AC_SUBST(afslocaldir)
840 AC_SUBST(afsbackupdir)
841 AC_SUBST(afsbosconfigdir)
843 if test "x$enable_kernel_module" = "xyes"; then
844 ENABLE_KERNEL_MODULE=libafs
847 AC_SUBST(AFS_SYSNAME)
848 AC_SUBST(AFS_PARAM_COMMON)
849 AC_SUBST(ENABLE_KERNEL_MODULE)
851 AC_SUBST(LINUX_KERNEL_PATH)
852 AC_SUBST(BSD_KERNEL_PATH)
853 AC_SUBST(LINUX_VERSION)
854 AC_SUBST(MKAFS_OSTYPE)
860 AC_SUBST(WITH_OBSOLETE)
861 AC_SUBST(WITH_INSECURE)
862 AC_SUBST(DARWIN_INFOFILE)
863 AC_SUBST(IRIX_BUILD_IP35)
867 TOP_SRCDIR="${srcdir}/src"
869 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
875 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
879 TOP_OBJDIR="${SRCDIR_PARENT}"
880 TOP_INCDIR="${SRCDIR_PARENT}/include"
881 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
882 if test "${DEST}x" = "x"; then
883 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
886 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
887 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
888 AC_SUBST(HELPER_SPLINT)
889 AC_SUBST(HELPER_SPLINTCFG)