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 if test -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
562 AFS_ISUML=`awk '$[]2 == "CONFIG_USERMODE"{print $[]3}' $LINUX_KERNEL_PATH/include/linux/autoconf.h`
563 if test "x${AFS_ISUML}" = "x1"; then
564 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
566 AFS_SYSNAME="$_AFS_SYSNAME"
570 AC_MSG_RESULT($AFS_SYSNAME)
573 # KDUMP64 defaults to KDUMP for systems without a separate kdump64
579 sun4x_5[789] | hp_ux11*)
583 KDUMP='kdump-${LINUX_VERSION}';;
590 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
591 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
592 dnl the test below fails on darwin, even if the CPPFLAGS below
593 dnl are added. the headers from Kernel.Framework must be used
594 dnl when KERNEL is defined.
596 dnl really, such a thing isn't guaranteed to work on any
597 dnl platform until the kernel cflags from MakefileProto are
598 dnl known to configure
599 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
602 AC_MSG_CHECKING(for definition of struct buf)
603 dnl save_CPPFLAGS="$CPPFLAGS"
604 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
605 AC_CACHE_VAL(ac_cv_have_struct_buf, [
606 ac_cv_have_struct_buf=no
608 [#include <sys/buf.h>],
610 printf("%d\n", sizeof(x));],
611 ac_cv_have_struct_buf=yes,)
614 dnl CPPFLAGS="$save_CPPFLAGS"
615 AC_MSG_RESULT($ac_cv_have_struct_buf)
616 if test "$ac_cv_have_struct_buf" = yes; then
617 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
623 AC_CACHE_VAL(ac_cv_sockaddr_len,
625 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
626 AC_TRY_COMPILE( [#include <sys/types.h>
627 #include <sys/socket.h>],
629 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
630 AC_MSG_RESULT($ac_cv_sockaddr_len)])
631 if test "$ac_cv_sockaddr_len" = "yes"; then
632 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
634 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
635 echo Skipping library tests because they confuse Irix.
637 AC_CHECK_FUNCS(socket)
639 if test "$ac_cv_func_socket" = no; then
640 for lib in socket inet; do
641 if test "$HAVE_SOCKET" != 1; then
642 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
647 AC_CHECK_FUNCS(connect)
649 if test "$ac_cv_func_connect" = no; then
651 if test "$HAVE_CONNECT" != 1; then
652 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
657 AC_CHECK_FUNCS(gethostbyname)
658 if test "$ac_cv_func_gethostbyname" = no; then
659 for lib in dns nsl resolv; do
660 if test "$HAVE_GETHOSTBYNAME" != 1; then
661 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
666 openafs_save_libs="$LIBS"
667 AC_MSG_CHECKING([for res_search])
670 if test "$ac_cv_func_res_search" = no; then
671 for lib in dns nsl resolv; do
672 if test "$ac_cv_func_res_search" != yes; then
675 LIBS="$openafs_save_libs"
678 if test "$ac_cv_func_res_search" = yes; then
679 LIB_res_search="-l$lib"
680 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
681 AC_MSG_RESULT([yes, in lib$lib])
686 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
693 AC_CHECK_LIB(pthread, pthread_attr_init,
694 PTHREAD_LIBS="-lpthread")
695 if test "x$PTHREAD_LIBS" = xerror; then
696 AC_CHECK_LIB(pthreads, pthread_attr_init,
697 PTHREAD_LIBS="-lpthreads")
699 if test "x$PTHREAD_LIBS" = xerror; then
700 AC_CHECK_LIB(c_r, pthread_attr_init,
701 PTHREAD_LIBS="-lc_r")
703 if test "x$PTHREAD_LIBS" = xerror; then
704 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
706 if test "x$PTHREAD_LIBS" = xerror; then
707 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
709 AC_SUBST(PTHREAD_LIBS)
712 if test "$enable_obsolete" = "yes"; then
717 if test "$enable_insecure" = "yes"; then
721 if test "x$with_bsd_kernel_headers" != "x"; then
722 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
724 BSD_KERNEL_PATH="/usr/src/sys"
728 if test "$enable_supergroups" = "yes"; then
729 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
732 if test "$enable_fast_restart" = "yes"; then
733 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
736 if test "$enable_bitmap_later" = "yes"; then
737 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
740 if test "$enable_full_vos_listvol_switch" = "yes"; then
741 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
744 if test "$enable_bos_restricted_mode" = "yes"; then
745 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
748 if test "$enable_bos_new_config" = "yes"; then
749 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
752 if test "$enable_namei_fileserver" = "yes"; then
753 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
756 if test "$enable_afsdb" = "yes"; then
757 LIB_AFSDB="$LIB_res_search"
758 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
762 AC_MSG_CHECKING(for tivoli tsm butc support)
764 if test "$enable_tivoli_tsm" = "yes"; then
765 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
766 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
768 if test -e "$XBSADIR1/xbsa.h"; then
769 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
770 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
771 elif test -e "$XBSADIR2/xbsa.h"; then
772 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
773 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
775 AC_MSG_RESULT([no, missing xbsa.h header file])
780 AC_SUBST(XBSA_CFLAGS)
782 dnl checks for header files.
786 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
787 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
788 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
789 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
790 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h)
791 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h)
793 if test "$ac_cv_header_security_pam_modules_h" = "yes"; then
800 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
801 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror)
802 AC_CHECK_TYPE(ssize_t, int)
805 AC_CHECK_FUNCS(timegm)
807 dnl Directory PATH handling
808 if test "x$enable_transarc_paths" = "xyes" ; then
809 afsconfdir=${afsconfdir=/usr/afs/etc}
810 viceetcdir=${viceetcdir=/usr/vice/etc}
811 afskerneldir=${afskerneldir=${viceetcdir}}
812 afssrvbindir=${afssrvbindir=/usr/afs/bin}
813 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
814 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
815 afsdbdir=${afsdbdir=/usr/afs/db}
816 afslogsdir=${afslogsdir=/usr/afs/logs}
817 afslocaldir=${afslocaldir=/usr/afs/local}
818 afsbackupdir=${afsbackupdir=/usr/afs/backup}
819 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
821 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
822 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
823 afskerneldir=${afskerneldir='${libdir}/openafs'}
824 afssrvbindir=${afssrvbindir='${bindir}'}
825 afssrvsbindir=${afssrvsbindir='${sbindir}'}
826 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
827 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
828 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
829 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
830 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
831 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
835 AC_SUBST(afskerneldir)
836 AC_SUBST(afssrvbindir)
837 AC_SUBST(afssrvsbindir)
838 AC_SUBST(afssrvlibexecdir)
841 AC_SUBST(afslocaldir)
842 AC_SUBST(afsbackupdir)
843 AC_SUBST(afsbosconfigdir)
845 if test "x$enable_kernel_module" = "xyes"; then
846 ENABLE_KERNEL_MODULE=libafs
849 AC_SUBST(AFS_SYSNAME)
850 AC_SUBST(AFS_PARAM_COMMON)
851 AC_SUBST(ENABLE_KERNEL_MODULE)
853 AC_SUBST(LINUX_KERNEL_PATH)
854 AC_SUBST(BSD_KERNEL_PATH)
855 AC_SUBST(LINUX_VERSION)
856 AC_SUBST(MKAFS_OSTYPE)
862 AC_SUBST(WITH_OBSOLETE)
863 AC_SUBST(WITH_INSECURE)
864 AC_SUBST(DARWIN_INFOFILE)
865 AC_SUBST(IRIX_BUILD_IP35)
869 TOP_SRCDIR="${srcdir}/src"
871 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
877 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
881 TOP_OBJDIR="${SRCDIR_PARENT}"
882 TOP_INCDIR="${SRCDIR_PARENT}/include"
883 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
884 if test "${DEST}x" = "x"; then
885 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
888 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
889 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
890 AC_SUBST(HELPER_SPLINT)
891 AC_SUBST(HELPER_SPLINTCFG)