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"
365 i386-unknown-openbsd3.3)
366 AFS_SYSNAME="i386_obsd33"
368 i386-unknown-openbsd3.4)
369 AFS_SYSNAME="i386_obsd34"
372 AFS_SYSNAME="i386_fbsd_42"
375 AFS_SYSNAME="i386_fbsd_43"
378 AFS_SYSNAME="i386_fbsd_44"
381 AFS_SYSNAME="i386_fbsd_45"
384 AFS_SYSNAME="i386_fbsd_46"
387 AFS_SYSNAME="i386_fbsd_47"
390 AFS_SYSNAME="i386_fbsd_50"
393 AFS_SYSNAME="i386_fbsd_51"
396 AFS_SYSNAME="i386_fbsd_52"
399 AFS_PARAM_COMMON=param.nbsd15.h
400 AFS_SYSNAME="i386_nbsd15"
403 AFS_PARAM_COMMON=param.nbsd15.h
404 AFS_SYSNAME="alpha_nbsd15"
406 i?86-*-netbsd*1.6[[M-Z]]*)
407 AFS_PARAM_COMMON=param.nbsd20.h
408 AFS_SYSNAME="i386_nbsd20"
410 powerpc-*-netbsd*1.6[[M-Z]]*)
411 AFS_PARAM_COMMON=param.nbsd20.h
412 AFS_SYSNAME="ppc_nbsd20"
415 AFS_PARAM_COMMON=param.nbsd20.h
416 AFS_SYSNAME="i386_nbsd20"
418 powerpc-*-netbsd*2.0*)
419 AFS_PARAM_COMMON=param.nbsd20.h
420 AFS_SYSNAME="ppc_nbsd20"
423 AFS_PARAM_COMMON=param.nbsd16.h
424 AFS_SYSNAME="i386_nbsd16"
427 AFS_PARAM_COMMON=param.nbsd16.h
428 AFS_SYSNAME="alpha_nbsd16"
430 powerpc-*-netbsd*1.6*)
431 AFS_PARAM_COMMON=param.nbsd16.h
432 AFS_SYSNAME="ppc_nbsd16"
435 AFS_SYSNAME="hp_ux110"
438 AFS_SYSNAME="hp_ux11i"
441 AFS_SYSNAME="ia64_hpux1122"
444 AFS_SYSNAME="hp_ux102"
446 powerpc-apple-darwin1.2*)
447 AFS_SYSNAME="ppc_darwin_12"
449 powerpc-apple-darwin1.3*)
450 AFS_SYSNAME="ppc_darwin_13"
452 powerpc-apple-darwin1.4*)
453 AFS_SYSNAME="ppc_darwin_14"
455 powerpc-apple-darwin5.1*)
456 AFS_SYSNAME="ppc_darwin_14"
458 powerpc-apple-darwin5.2*)
459 AFS_SYSNAME="ppc_darwin_14"
461 powerpc-apple-darwin5.3*)
462 AFS_SYSNAME="ppc_darwin_14"
464 powerpc-apple-darwin5.4*)
465 AFS_SYSNAME="ppc_darwin_14"
467 powerpc-apple-darwin5.5*)
468 AFS_SYSNAME="ppc_darwin_14"
470 powerpc-apple-darwin6.0*)
471 AFS_SYSNAME="ppc_darwin_60"
473 powerpc-apple-darwin6.1*)
474 AFS_SYSNAME="ppc_darwin_60"
476 powerpc-apple-darwin6.2*)
477 AFS_SYSNAME="ppc_darwin_60"
479 powerpc-apple-darwin6.3*)
480 AFS_SYSNAME="ppc_darwin_60"
482 powerpc-apple-darwin6.4*)
483 AFS_SYSNAME="ppc_darwin_60"
485 powerpc-apple-darwin6.5*)
486 AFS_SYSNAME="ppc_darwin_60"
488 sparc-sun-solaris2.5*)
489 AFS_SYSNAME="sun4x_55"
491 sparc-sun-solaris2.6)
492 AFS_SYSNAME="sun4x_56"
494 sparc-sun-solaris2.7)
495 AFS_SYSNAME="sun4x_57"
497 sparc-sun-solaris2.8)
498 AFS_SYSNAME="sun4x_58"
500 sparc-sun-solaris2.9)
501 AFS_SYSNAME="sun4x_59"
504 AFS_SYSNAME="sun4_413"
507 AFS_SYSNAME="sunx86_57"
510 AFS_SYSNAME="sunx86_58"
513 AFS_SYSNAME="sunx86_59"
516 AFS_SYSNAME="alpha_dux40"
519 AFS_SYSNAME="alpha_dux50"
522 AFS_SYSNAME="alpha_dux51"
528 AFS_SYSNAME="ia64_linuxXX"
531 AFS_SYSNAME="ppc_linuxXX"
534 AFS_SYSNAME="alpha_linux_XX"
537 AFS_SYSNAME="s390_linuxXX"
540 AFS_SYSNAME="sparc_linuxXX"
543 AFS_SYSNAME="sparc64_linuxXX"
546 AFS_SYSNAME="i386_linuxXX"
549 AFS_SYSNAME="parisc_linuxXX"
552 AFS_SYSNAME="rs_aix42"
555 AFS_SYSNAME="rs_aix42"
558 AFS_SYSNAME="amd64_linuxXX"
561 AC_MSG_ERROR(An AFS sysname is required)
567 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
568 if test "x${AFS_SYSKVERS}" = "x"; then
569 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
571 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
572 AFS_SYSNAME="$_AFS_SYSNAME"
573 save_CPPFLAGS="$CPPFLAGS"
574 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
576 [#include <linux/autoconf.h>],
577 [#ifndef CONFIG_USERMODE
580 ac_cv_linux_is_uml=yes,)
581 if test "${ac_cv_linux_is_uml}" = yes; then
582 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
584 CPPFLAGS="$save_CPPFLAGS"
585 AFS_SYSNAME="$_AFS_SYSNAME"
588 AC_MSG_RESULT($AFS_SYSNAME)
591 # KDUMP64 defaults to KDUMP for systems without a separate kdump64
597 sun4x_5[789] | hp_ux11*)
601 KDUMP='kdump-${LINUX_VERSION}';;
608 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
609 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
610 dnl the test below fails on darwin, even if the CPPFLAGS below
611 dnl are added. the headers from Kernel.Framework must be used
612 dnl when KERNEL is defined.
614 dnl really, such a thing isn't guaranteed to work on any
615 dnl platform until the kernel cflags from MakefileProto are
616 dnl known to configure
617 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
620 AC_MSG_CHECKING(for definition of struct buf)
621 dnl save_CPPFLAGS="$CPPFLAGS"
622 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
623 AC_CACHE_VAL(ac_cv_have_struct_buf, [
624 ac_cv_have_struct_buf=no
626 [#include <sys/buf.h>],
628 printf("%d\n", sizeof(x));],
629 ac_cv_have_struct_buf=yes,)
632 dnl CPPFLAGS="$save_CPPFLAGS"
633 AC_MSG_RESULT($ac_cv_have_struct_buf)
634 if test "$ac_cv_have_struct_buf" = yes; then
635 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
641 AC_CACHE_VAL(ac_cv_sockaddr_len,
643 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
644 AC_TRY_COMPILE( [#include <sys/types.h>
645 #include <sys/socket.h>],
647 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
648 AC_MSG_RESULT($ac_cv_sockaddr_len)])
649 if test "$ac_cv_sockaddr_len" = "yes"; then
650 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
652 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
653 echo Skipping library tests because they confuse Irix.
655 AC_CHECK_FUNCS(socket)
657 if test "$ac_cv_func_socket" = no; then
658 for lib in socket inet; do
659 if test "$HAVE_SOCKET" != 1; then
660 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
665 AC_CHECK_FUNCS(connect)
667 if test "$ac_cv_func_connect" = no; then
669 if test "$HAVE_CONNECT" != 1; then
670 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
675 AC_CHECK_FUNCS(gethostbyname)
676 if test "$ac_cv_func_gethostbyname" = no; then
677 for lib in dns nsl resolv; do
678 if test "$HAVE_GETHOSTBYNAME" != 1; then
679 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
684 openafs_save_libs="$LIBS"
685 AC_MSG_CHECKING([for res_search])
688 if test "$ac_cv_func_res_search" = no; then
689 for lib in dns nsl resolv; do
690 if test "$ac_cv_func_res_search" != yes; then
693 LIBS="$openafs_save_libs"
696 if test "$ac_cv_func_res_search" = yes; then
697 LIB_res_search="-l$lib"
698 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
699 AC_MSG_RESULT([yes, in lib$lib])
704 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
711 AC_CHECK_LIB(pthread, pthread_attr_init,
712 PTHREAD_LIBS="-lpthread")
713 if test "x$PTHREAD_LIBS" = xerror; then
714 AC_CHECK_LIB(pthreads, pthread_attr_init,
715 PTHREAD_LIBS="-lpthreads")
717 if test "x$PTHREAD_LIBS" = xerror; then
718 AC_CHECK_LIB(c_r, pthread_attr_init,
719 PTHREAD_LIBS="-lc_r")
721 if test "x$PTHREAD_LIBS" = xerror; then
722 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
724 if test "x$PTHREAD_LIBS" = xerror; then
725 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
727 AC_SUBST(PTHREAD_LIBS)
730 if test "$enable_obsolete" = "yes"; then
735 if test "$enable_insecure" = "yes"; then
739 if test "x$with_bsd_kernel_headers" != "x"; then
740 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
742 BSD_KERNEL_PATH="/usr/src/sys"
746 if test "$enable_supergroups" = "yes"; then
747 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
750 if test "$enable_fast_restart" = "yes"; then
751 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
754 if test "$enable_bitmap_later" = "yes"; then
755 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
758 if test "$enable_full_vos_listvol_switch" = "yes"; then
759 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
762 if test "$enable_bos_restricted_mode" = "yes"; then
763 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
766 if test "$enable_bos_new_config" = "yes"; then
767 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
770 if test "$enable_namei_fileserver" = "yes"; then
771 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
774 if test "$enable_afsdb" = "yes"; then
775 LIB_AFSDB="$LIB_res_search"
776 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
780 AC_MSG_CHECKING(for tivoli tsm butc support)
782 if test "$enable_tivoli_tsm" = "yes"; then
783 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
784 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
786 if test -e "$XBSADIR1/xbsa.h"; then
787 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
788 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
789 elif test -e "$XBSADIR2/xbsa.h"; then
790 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
791 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
793 AC_MSG_RESULT([no, missing xbsa.h header file])
798 AC_SUBST(XBSA_CFLAGS)
800 dnl checks for header files.
804 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
805 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
806 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
807 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
808 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h)
809 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h)
811 if test "$ac_cv_header_security_pam_modules_h" = "yes"; then
818 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
819 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror)
820 AC_CHECK_TYPE(ssize_t, int)
823 AC_CHECK_FUNCS(timegm)
825 dnl Directory PATH handling
826 if test "x$enable_transarc_paths" = "xyes" ; then
827 afsconfdir=${afsconfdir=/usr/afs/etc}
828 viceetcdir=${viceetcdir=/usr/vice/etc}
829 afskerneldir=${afskerneldir=${viceetcdir}}
830 afssrvbindir=${afssrvbindir=/usr/afs/bin}
831 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
832 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
833 afsdbdir=${afsdbdir=/usr/afs/db}
834 afslogsdir=${afslogsdir=/usr/afs/logs}
835 afslocaldir=${afslocaldir=/usr/afs/local}
836 afsbackupdir=${afsbackupdir=/usr/afs/backup}
837 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
839 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
840 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
841 afskerneldir=${afskerneldir='${libdir}/openafs'}
842 afssrvbindir=${afssrvbindir='${bindir}'}
843 afssrvsbindir=${afssrvsbindir='${sbindir}'}
844 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
845 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
846 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
847 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
848 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
849 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
853 AC_SUBST(afskerneldir)
854 AC_SUBST(afssrvbindir)
855 AC_SUBST(afssrvsbindir)
856 AC_SUBST(afssrvlibexecdir)
859 AC_SUBST(afslocaldir)
860 AC_SUBST(afsbackupdir)
861 AC_SUBST(afsbosconfigdir)
863 if test "x$enable_kernel_module" = "xyes"; then
864 ENABLE_KERNEL_MODULE=libafs
867 AC_SUBST(AFS_SYSNAME)
868 AC_SUBST(AFS_PARAM_COMMON)
869 AC_SUBST(ENABLE_KERNEL_MODULE)
871 AC_SUBST(LINUX_KERNEL_PATH)
872 AC_SUBST(BSD_KERNEL_PATH)
873 AC_SUBST(LINUX_VERSION)
874 AC_SUBST(MKAFS_OSTYPE)
880 AC_SUBST(WITH_OBSOLETE)
881 AC_SUBST(WITH_INSECURE)
882 AC_SUBST(DARWIN_INFOFILE)
883 AC_SUBST(IRIX_BUILD_IP35)
887 TOP_SRCDIR="${srcdir}/src"
889 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
895 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
899 TOP_OBJDIR="${SRCDIR_PARENT}"
900 TOP_INCDIR="${SRCDIR_PARENT}/include"
901 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
902 if test "${DEST}x" = "x"; then
903 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
906 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
907 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
908 AC_SUBST(HELPER_SPLINT)
909 AC_SUBST(HELPER_SPLINTCFG)