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 -n 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 -n 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="ia64_hpux1123"
447 AFS_SYSNAME="hp_ux102"
449 powerpc-apple-darwin1.2*)
450 AFS_SYSNAME="ppc_darwin_12"
452 powerpc-apple-darwin1.3*)
453 AFS_SYSNAME="ppc_darwin_13"
455 powerpc-apple-darwin1.4*)
456 AFS_SYSNAME="ppc_darwin_14"
458 powerpc-apple-darwin5.1*)
459 AFS_SYSNAME="ppc_darwin_14"
461 powerpc-apple-darwin5.2*)
462 AFS_SYSNAME="ppc_darwin_14"
464 powerpc-apple-darwin5.3*)
465 AFS_SYSNAME="ppc_darwin_14"
467 powerpc-apple-darwin5.4*)
468 AFS_SYSNAME="ppc_darwin_14"
470 powerpc-apple-darwin5.5*)
471 AFS_SYSNAME="ppc_darwin_14"
473 powerpc-apple-darwin6.0*)
474 AFS_SYSNAME="ppc_darwin_60"
476 powerpc-apple-darwin6.1*)
477 AFS_SYSNAME="ppc_darwin_60"
479 powerpc-apple-darwin6.2*)
480 AFS_SYSNAME="ppc_darwin_60"
482 powerpc-apple-darwin6.3*)
483 AFS_SYSNAME="ppc_darwin_60"
485 powerpc-apple-darwin6.4*)
486 AFS_SYSNAME="ppc_darwin_60"
488 powerpc-apple-darwin6.5*)
489 AFS_SYSNAME="ppc_darwin_60"
491 sparc-sun-solaris2.5*)
492 AFS_SYSNAME="sun4x_55"
494 sparc-sun-solaris2.6)
495 AFS_SYSNAME="sun4x_56"
497 sparc-sun-solaris2.7)
498 AFS_SYSNAME="sun4x_57"
500 sparc-sun-solaris2.8)
501 AFS_SYSNAME="sun4x_58"
503 sparc-sun-solaris2.9)
504 AFS_SYSNAME="sun4x_59"
507 AFS_SYSNAME="sun4_413"
510 AFS_SYSNAME="sunx86_57"
513 AFS_SYSNAME="sunx86_58"
516 AFS_SYSNAME="sunx86_59"
519 AFS_SYSNAME="alpha_dux40"
522 AFS_SYSNAME="alpha_dux50"
525 AFS_SYSNAME="alpha_dux51"
531 AFS_SYSNAME="ia64_linuxXX"
534 AFS_SYSNAME="ppc_linuxXX"
537 AFS_SYSNAME="alpha_linux_XX"
540 AFS_SYSNAME="s390_linuxXX"
543 AFS_SYSNAME="sparc_linuxXX"
546 AFS_SYSNAME="sparc64_linuxXX"
549 AFS_SYSNAME="i386_linuxXX"
552 AFS_SYSNAME="parisc_linuxXX"
555 AFS_SYSNAME="rs_aix42"
558 AFS_SYSNAME="rs_aix42"
561 AFS_SYSNAME="amd64_linuxXX"
564 AC_MSG_ERROR(An AFS sysname is required)
570 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
571 if test "x${AFS_SYSKVERS}" = "x"; then
572 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
574 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
575 AFS_SYSNAME="$_AFS_SYSNAME"
576 save_CPPFLAGS="$CPPFLAGS"
577 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
579 [#include <linux/autoconf.h>],
580 [#ifndef CONFIG_USERMODE
583 ac_cv_linux_is_uml=yes,)
584 if test "${ac_cv_linux_is_uml}" = yes; then
585 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
587 CPPFLAGS="$save_CPPFLAGS"
588 AFS_SYSNAME="$_AFS_SYSNAME"
591 AC_MSG_RESULT($AFS_SYSNAME)
594 # KDUMP64 defaults to KDUMP for systems without a separate kdump64
600 sun4x_5[[789]] | hp_ux11*)
604 KDUMP='kdump-${LINUX_VERSION}';;
611 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
612 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
613 dnl the test below fails on darwin, even if the CPPFLAGS below
614 dnl are added. the headers from Kernel.Framework must be used
615 dnl when KERNEL is defined.
617 dnl really, such a thing isn't guaranteed to work on any
618 dnl platform until the kernel cflags from MakefileProto are
619 dnl known to configure
620 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
623 AC_MSG_CHECKING(for definition of struct buf)
624 dnl save_CPPFLAGS="$CPPFLAGS"
625 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
626 AC_CACHE_VAL(ac_cv_have_struct_buf, [
627 ac_cv_have_struct_buf=no
629 [#include <sys/buf.h>],
631 printf("%d\n", sizeof(x));],
632 ac_cv_have_struct_buf=yes,)
635 dnl CPPFLAGS="$save_CPPFLAGS"
636 AC_MSG_RESULT($ac_cv_have_struct_buf)
637 if test "$ac_cv_have_struct_buf" = yes; then
638 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
644 AC_CACHE_VAL(ac_cv_sockaddr_len,
646 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
647 AC_TRY_COMPILE( [#include <sys/types.h>
648 #include <sys/socket.h>],
650 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
651 AC_MSG_RESULT($ac_cv_sockaddr_len)])
652 if test "$ac_cv_sockaddr_len" = "yes"; then
653 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
655 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
656 echo Skipping library tests because they confuse Irix.
658 AC_CHECK_FUNCS(socket)
660 if test "$ac_cv_func_socket" = no; then
661 for lib in socket inet; do
662 if test "$HAVE_SOCKET" != 1; then
663 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
668 AC_CHECK_FUNCS(connect)
670 if test "$ac_cv_func_connect" = no; then
672 if test "$HAVE_CONNECT" != 1; then
673 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
678 AC_CHECK_FUNCS(gethostbyname)
679 if test "$ac_cv_func_gethostbyname" = no; then
680 for lib in dns nsl resolv; do
681 if test "$HAVE_GETHOSTBYNAME" != 1; then
682 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
687 openafs_save_libs="$LIBS"
688 AC_MSG_CHECKING([for res_search])
691 if test "$ac_cv_func_res_search" = no; then
692 for lib in dns nsl resolv; do
693 if test "$ac_cv_func_res_search" != yes; then
696 LIBS="$openafs_save_libs"
699 if test "$ac_cv_func_res_search" = yes; then
700 LIB_res_search="-l$lib"
701 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
702 AC_MSG_RESULT([yes, in lib$lib])
707 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
714 AC_CHECK_LIB(pthread, pthread_attr_init,
715 PTHREAD_LIBS="-lpthread")
716 if test "x$PTHREAD_LIBS" = xerror; then
717 AC_CHECK_LIB(pthreads, pthread_attr_init,
718 PTHREAD_LIBS="-lpthreads")
720 if test "x$PTHREAD_LIBS" = xerror; then
721 AC_CHECK_LIB(c_r, pthread_attr_init,
722 PTHREAD_LIBS="-lc_r")
724 if test "x$PTHREAD_LIBS" = xerror; then
725 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
727 if test "x$PTHREAD_LIBS" = xerror; then
728 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
730 AC_SUBST(PTHREAD_LIBS)
733 if test "$enable_obsolete" = "yes"; then
738 if test "$enable_insecure" = "yes"; then
742 if test "x$with_bsd_kernel_headers" != "x"; then
743 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
745 BSD_KERNEL_PATH="/usr/src/sys"
749 if test "$enable_supergroups" = "yes"; then
750 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
753 if test "$enable_fast_restart" = "yes"; then
754 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
757 if test "$enable_bitmap_later" = "yes"; then
758 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
761 if test "$enable_full_vos_listvol_switch" = "yes"; then
762 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
765 if test "$enable_bos_restricted_mode" = "yes"; then
766 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
769 if test "$enable_bos_new_config" = "yes"; then
770 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
773 if test "$enable_namei_fileserver" = "yes"; then
774 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
777 if test "$enable_afsdb" = "yes"; then
778 LIB_AFSDB="$LIB_res_search"
779 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
783 AC_MSG_CHECKING(for tivoli tsm butc support)
785 if test "$enable_tivoli_tsm" = "yes"; then
786 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
787 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
789 if test -e "$XBSADIR1/xbsa.h"; then
790 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
791 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
792 elif test -e "$XBSADIR2/xbsa.h"; then
793 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
794 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
796 AC_MSG_RESULT([no, missing xbsa.h header file])
801 AC_SUBST(XBSA_CFLAGS)
803 dnl checks for header files.
807 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
808 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
809 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
810 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
811 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h)
812 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h)
814 if test "$ac_cv_header_security_pam_modules_h" = "yes"; then
821 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
822 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror)
824 AC_CHECK_FUNCS(regcomp regexec regerror)
825 AC_MSG_CHECKING([for POSIX regex library])
826 if test "$ac_cv_header_regex_h" = "yes" && \
827 test "$ac_cv_func_regcomp" = "yes" && \
828 test "$ac_cv_func_regexec" = "yes" && \
829 test "$ac_cv_func_regerror" = "yes"; then
830 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
836 AC_CHECK_TYPE(ssize_t, int)
839 AC_CHECK_FUNCS(timegm)
841 dnl Directory PATH handling
842 if test "x$enable_transarc_paths" = "xyes" ; then
843 afsconfdir=${afsconfdir=/usr/afs/etc}
844 viceetcdir=${viceetcdir=/usr/vice/etc}
845 afskerneldir=${afskerneldir=${viceetcdir}}
846 afssrvbindir=${afssrvbindir=/usr/afs/bin}
847 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
848 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
849 afsdbdir=${afsdbdir=/usr/afs/db}
850 afslogsdir=${afslogsdir=/usr/afs/logs}
851 afslocaldir=${afslocaldir=/usr/afs/local}
852 afsbackupdir=${afsbackupdir=/usr/afs/backup}
853 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
855 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
856 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
857 afskerneldir=${afskerneldir='${libdir}/openafs'}
858 afssrvbindir=${afssrvbindir='${bindir}'}
859 afssrvsbindir=${afssrvsbindir='${sbindir}'}
860 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
861 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
862 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
863 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
864 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
865 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
869 AC_SUBST(afskerneldir)
870 AC_SUBST(afssrvbindir)
871 AC_SUBST(afssrvsbindir)
872 AC_SUBST(afssrvlibexecdir)
875 AC_SUBST(afslocaldir)
876 AC_SUBST(afsbackupdir)
877 AC_SUBST(afsbosconfigdir)
879 if test "x$enable_kernel_module" = "xyes"; then
880 ENABLE_KERNEL_MODULE=libafs
883 AC_SUBST(AFS_SYSNAME)
884 AC_SUBST(AFS_PARAM_COMMON)
885 AC_SUBST(ENABLE_KERNEL_MODULE)
887 AC_SUBST(LINUX_KERNEL_PATH)
888 AC_SUBST(BSD_KERNEL_PATH)
889 AC_SUBST(LINUX_VERSION)
890 AC_SUBST(MKAFS_OSTYPE)
896 AC_SUBST(WITH_OBSOLETE)
897 AC_SUBST(WITH_INSECURE)
898 AC_SUBST(DARWIN_INFOFILE)
899 AC_SUBST(IRIX_BUILD_IP35)
903 TOP_SRCDIR="${srcdir}/src"
905 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
911 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
915 TOP_OBJDIR="${SRCDIR_PARENT}"
916 TOP_INCDIR="${SRCDIR_PARENT}/include"
917 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
918 if test "${DEST}x" = "x"; then
919 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
922 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
923 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
924 AC_SUBST(HELPER_SPLINT)
925 AC_SUBST(HELPER_SPLINTCFG)