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_TRUNCATE_SEM
169 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
170 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
171 LINUX_INODE_SETATTR_RETURN_TYPE
172 LINUX_KERNEL_LINUX_SYSCALL_H
174 LINUX_RECALC_SIGPENDING_ARG_TYPE
175 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
176 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
177 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
178 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
179 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
181 if test "x$ac_cv_linux_config_modversions" = "xno"; then
182 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it's exported])
183 ac_cv_linux_exports_sys_call_table=yes
184 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
185 ac_cv_linux_exports_ia32_sys_call_table=yes
188 LINUX_EXPORTS_INIT_MM
189 LINUX_EXPORTS_KALLSYMS_ADDRESS
190 LINUX_EXPORTS_KALLSYMS_SYMBOL
191 LINUX_EXPORTS_SYS_CALL_TABLE
192 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
193 LINUX_EXPORTS_SYS_CHDIR
194 LINUX_EXPORTS_SYS_CLOSE
195 LINUX_EXPORTS_SYS_WAIT4
196 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
197 linux_syscall_method=none
198 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
199 linux_syscall_method=scan
200 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
201 linux_syscall_method=scan_with_kallsyms_address
204 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
205 linux_syscall_method=kallsyms_symbol
207 if test "x$linux_syscall_method" = "xnone"; then
208 AC_MSG_ERROR([no available sys_call_table access method])
212 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
213 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
215 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
216 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
218 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
219 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
221 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
222 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock])
224 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
225 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
227 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
228 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
230 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
231 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
233 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
234 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
236 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
237 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
239 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
240 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
242 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
243 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
245 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
246 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
248 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
249 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
251 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
252 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
254 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
255 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
257 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
258 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
260 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
261 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
263 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
264 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
266 if test "x$ac_linux_syscall" = "xyes" ; then
267 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
269 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
270 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
272 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
273 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
275 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
276 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
278 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
279 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
281 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
282 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
290 SOLARIS_UFSVFS_HAS_DQRWLOCK
291 SOLARIS_PROC_HAS_P_COREFILE
292 SOLARIS_FS_HAS_FS_ROLLED
296 enable_kernel_module=no
304 if test -d /usr/include/sys/SN/SN1; then
305 IRIX_BUILD_IP35="IP35"
312 AC_MSG_RESULT(rs_aix)
316 AC_MSG_RESULT(alpha_dux)
317 if test "x$enable_kernel_module" = "xyes"; then
318 if test "x$with_dux_kernel_headers" != "x"; then
319 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
321 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
324 if test "$HEADER_RT" = "*" ; then
325 AC_MSG_ERROR([Need a configured kernel directory])
327 AC_SUBST([HEADER_RT])
331 AC_MSG_RESULT(ppc_darwin)
335 AC_MSG_RESULT(i386_fbsd)
343 AC_MSG_RESULT(i386_obsd)
346 AC_MSG_RESULT($system)
350 if test "x$with_afs_sysname" != "x"; then
351 AFS_SYSNAME="$with_afs_sysname"
353 AC_MSG_CHECKING(your AFS sysname)
355 i386-unknown-openbsd3.1)
356 AFS_SYSNAME="i386_obsd31"
358 i386-unknown-openbsd3.2)
359 AFS_SYSNAME="i386_obsd32"
362 AFS_SYSNAME="i386_fbsd_42"
365 AFS_SYSNAME="i386_fbsd_43"
368 AFS_SYSNAME="i386_fbsd_44"
371 AFS_SYSNAME="i386_fbsd_45"
374 AFS_SYSNAME="i386_fbsd_46"
377 AFS_SYSNAME="i386_fbsd_47"
380 AFS_SYSNAME="i386_fbsd_50"
383 AFS_PARAM_COMMON=param.nbsd15.h
384 AFS_SYSNAME="i386_nbsd15"
387 AFS_PARAM_COMMON=param.nbsd15.h
388 AFS_SYSNAME="alpha_nbsd15"
390 i?86-*-netbsd*1.6[[M-Z]]*)
391 AFS_PARAM_COMMON=param.nbsd20.h
392 AFS_SYSNAME="i386_nbsd20"
394 powerpc-*-netbsd*1.6[[M-Z]]*)
395 AFS_PARAM_COMMON=param.nbsd20.h
396 AFS_SYSNAME="ppc_nbsd20"
399 AFS_PARAM_COMMON=param.nbsd20.h
400 AFS_SYSNAME="i386_nbsd20"
402 powerpc-*-netbsd*2.0*)
403 AFS_PARAM_COMMON=param.nbsd20.h
404 AFS_SYSNAME="ppc_nbsd20"
407 AFS_PARAM_COMMON=param.nbsd16.h
408 AFS_SYSNAME="i386_nbsd16"
411 AFS_PARAM_COMMON=param.nbsd16.h
412 AFS_SYSNAME="alpha_nbsd16"
414 powerpc-*-netbsd*1.6*)
415 AFS_PARAM_COMMON=param.nbsd16.h
416 AFS_SYSNAME="ppc_nbsd16"
419 AFS_SYSNAME="hp_ux110"
422 AFS_SYSNAME="hp_ux11i"
425 AFS_SYSNAME="ia64_hpux1122"
428 AFS_SYSNAME="hp_ux102"
430 powerpc-apple-darwin1.2*)
431 AFS_SYSNAME="ppc_darwin_12"
433 powerpc-apple-darwin1.3*)
434 AFS_SYSNAME="ppc_darwin_13"
436 powerpc-apple-darwin1.4*)
437 AFS_SYSNAME="ppc_darwin_14"
439 powerpc-apple-darwin5.1*)
440 AFS_SYSNAME="ppc_darwin_14"
442 powerpc-apple-darwin5.2*)
443 AFS_SYSNAME="ppc_darwin_14"
445 powerpc-apple-darwin5.3*)
446 AFS_SYSNAME="ppc_darwin_14"
448 powerpc-apple-darwin5.4*)
449 AFS_SYSNAME="ppc_darwin_14"
451 powerpc-apple-darwin5.5*)
452 AFS_SYSNAME="ppc_darwin_14"
454 powerpc-apple-darwin6.0*)
455 AFS_SYSNAME="ppc_darwin_60"
457 powerpc-apple-darwin6.1*)
458 AFS_SYSNAME="ppc_darwin_60"
460 powerpc-apple-darwin6.2*)
461 AFS_SYSNAME="ppc_darwin_60"
463 powerpc-apple-darwin6.3*)
464 AFS_SYSNAME="ppc_darwin_60"
466 powerpc-apple-darwin6.4*)
467 AFS_SYSNAME="ppc_darwin_60"
469 powerpc-apple-darwin6.5*)
470 AFS_SYSNAME="ppc_darwin_60"
472 sparc-sun-solaris2.5*)
473 AFS_SYSNAME="sun4x_55"
475 sparc-sun-solaris2.6)
476 AFS_SYSNAME="sun4x_56"
478 sparc-sun-solaris2.7)
479 AFS_SYSNAME="sun4x_57"
481 sparc-sun-solaris2.8)
482 AFS_SYSNAME="sun4x_58"
484 sparc-sun-solaris2.9)
485 AFS_SYSNAME="sun4x_59"
488 AFS_SYSNAME="sun4_413"
491 AFS_SYSNAME="sunx86_57"
494 AFS_SYSNAME="sunx86_58"
497 AFS_SYSNAME="sunx86_59"
500 AFS_SYSNAME="alpha_dux40"
503 AFS_SYSNAME="alpha_dux50"
506 AFS_SYSNAME="alpha_dux51"
512 AFS_SYSNAME="ia64_linuxXX"
515 AFS_SYSNAME="ppc_linuxXX"
518 AFS_SYSNAME="alpha_linux_XX"
521 AFS_SYSNAME="s390_linuxXX"
524 AFS_SYSNAME="sparc_linuxXX"
527 AFS_SYSNAME="sparc64_linuxXX"
530 AFS_SYSNAME="i386_linuxXX"
533 AFS_SYSNAME="parisc_linuxXX"
536 AFS_SYSNAME="rs_aix42"
539 AFS_SYSNAME="rs_aix42"
542 AFS_SYSNAME="amd64_linuxXX"
545 AC_MSG_ERROR(An AFS sysname is required)
551 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
552 if test "x${AFS_SYSKVERS}" = "x"; then
553 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
555 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
556 AFS_SYSNAME="$_AFS_SYSNAME"
557 AFS_ISUML=`echo $LINUX_VERSION | awk 'BEGIN {FS="-[[0-9]]+"} {print $[]2}'`
558 if test "x${AFS_ISUML}" = "xum"; then
559 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
561 AFS_SYSNAME="$_AFS_SYSNAME"
564 AC_MSG_RESULT($AFS_SYSNAME)
567 # KDUMP64 defaults to KDUMP for systems without a separate kdump64
573 sun4x_5[789] | hp_ux11*)
577 KDUMP='kdump-${LINUX_VERSION}';;
584 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
585 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
586 dnl the test below fails on darwin, even if the CPPFLAGS below
587 dnl are added. the headers from Kernel.Framework must be used
588 dnl when KERNEL is defined.
590 dnl really, such a thing isn't guaranteed to work on any
591 dnl platform until the kernel cflags from MakefileProto are
592 dnl known to configure
593 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
596 AC_MSG_CHECKING(for definition of struct buf)
597 dnl save_CPPFLAGS="$CPPFLAGS"
598 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
599 AC_CACHE_VAL(ac_cv_have_struct_buf, [
600 ac_cv_have_struct_buf=no
602 [#include <sys/buf.h>],
604 printf("%d\n", sizeof(x));],
605 ac_cv_have_struct_buf=yes,)
608 dnl CPPFLAGS="$save_CPPFLAGS"
609 AC_MSG_RESULT($ac_cv_have_struct_buf)
610 if test "$ac_cv_have_struct_buf" = yes; then
611 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
617 AC_CACHE_VAL(ac_cv_sockaddr_len,
619 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
620 AC_TRY_COMPILE( [#include <sys/types.h>
621 #include <sys/socket.h>],
623 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
624 AC_MSG_RESULT($ac_cv_sockaddr_len)])
625 if test "$ac_cv_sockaddr_len" = "yes"; then
626 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
628 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
629 echo Skipping library tests because they confuse Irix.
631 AC_CHECK_FUNCS(socket)
633 if test "$ac_cv_func_socket" = no; then
634 for lib in socket inet; do
635 if test "$HAVE_SOCKET" != 1; then
636 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
641 AC_CHECK_FUNCS(connect)
643 if test "$ac_cv_func_connect" = no; then
645 if test "$HAVE_CONNECT" != 1; then
646 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
651 AC_CHECK_FUNCS(gethostbyname)
652 if test "$ac_cv_func_gethostbyname" = no; then
653 for lib in dns nsl resolv; do
654 if test "$HAVE_GETHOSTBYNAME" != 1; then
655 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
660 openafs_save_libs="$LIBS"
661 AC_MSG_CHECKING([for res_search])
664 if test "$ac_cv_func_res_search" = no; then
665 for lib in dns nsl resolv; do
666 if test "$ac_cv_func_res_search" != yes; then
669 LIBS="$openafs_save_libs"
672 if test "$ac_cv_func_res_search" = yes; then
673 LIB_res_search="-l$lib"
674 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
675 AC_MSG_RESULT([yes, in lib$lib])
680 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
687 AC_CHECK_LIB(pthread, pthread_attr_init,
688 PTHREAD_LIBS="-lpthread")
689 if test "x$PTHREAD_LIBS" = xerror; then
690 AC_CHECK_LIB(pthreads, pthread_attr_init,
691 PTHREAD_LIBS="-lpthreads")
693 if test "x$PTHREAD_LIBS" = xerror; then
694 AC_CHECK_LIB(c_r, pthread_attr_init,
695 PTHREAD_LIBS="-lc_r")
697 if test "x$PTHREAD_LIBS" = xerror; then
698 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
700 if test "x$PTHREAD_LIBS" = xerror; then
701 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
703 AC_SUBST(PTHREAD_LIBS)
706 if test "$enable_obsolete" = "yes"; then
711 if test "$enable_insecure" = "yes"; then
715 if test "x$with_bsd_kernel_headers" != "x"; then
716 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
718 BSD_KERNEL_PATH="/usr/src/sys"
722 if test "$enable_supergroups" = "yes"; then
723 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
726 if test "$enable_fast_restart" = "yes"; then
727 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
730 if test "$enable_bitmap_later" = "yes"; then
731 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
734 if test "$enable_full_vos_listvol_switch" = "yes"; then
735 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
738 if test "$enable_bos_restricted_mode" = "yes"; then
739 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
742 if test "$enable_bos_new_config" = "yes"; then
743 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
746 if test "$enable_namei_fileserver" = "yes"; then
747 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
750 if test "$enable_afsdb" = "yes"; then
751 LIB_AFSDB="$LIB_res_search"
752 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
756 AC_MSG_CHECKING(for tivoli tsm butc support)
758 if test "$enable_tivoli_tsm" = "yes"; then
759 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
760 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
762 if test -e "$XBSADIR1/xbsa.h"; then
763 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
764 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
765 elif test -e "$XBSADIR2/xbsa.h"; then
766 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
767 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
769 AC_MSG_RESULT([no, missing xbsa.h header file])
774 AC_SUBST(XBSA_CFLAGS)
776 dnl checks for header files.
780 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
781 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
782 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
783 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
784 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h)
785 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h)
787 if test "$ac_cv_header_security_pam_modules_h" = "yes"; then
794 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
795 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf)
796 AC_CHECK_TYPE(ssize_t, int)
799 AC_CHECK_FUNCS(timegm)
801 dnl Directory PATH handling
802 if test "x$enable_transarc_paths" = "xyes" ; then
803 afsconfdir=${afsconfdir=/usr/afs/etc}
804 viceetcdir=${viceetcdir=/usr/vice/etc}
805 afskerneldir=${afskerneldir=${viceetcdir}}
806 afssrvbindir=${afssrvbindir=/usr/afs/bin}
807 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
808 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
809 afsdbdir=${afsdbdir=/usr/afs/db}
810 afslogsdir=${afslogsdir=/usr/afs/logs}
811 afslocaldir=${afslocaldir=/usr/afs/local}
812 afsbackupdir=${afsbackupdir=/usr/afs/backup}
813 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
815 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
816 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
817 afskerneldir=${afskerneldir='${libdir}/openafs'}
818 afssrvbindir=${afssrvbindir='${bindir}'}
819 afssrvsbindir=${afssrvsbindir='${sbindir}'}
820 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
821 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
822 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
823 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
824 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
825 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
829 AC_SUBST(afskerneldir)
830 AC_SUBST(afssrvbindir)
831 AC_SUBST(afssrvsbindir)
832 AC_SUBST(afssrvlibexecdir)
835 AC_SUBST(afslocaldir)
836 AC_SUBST(afsbackupdir)
837 AC_SUBST(afsbosconfigdir)
839 if test "x$enable_kernel_module" = "xyes"; then
840 ENABLE_KERNEL_MODULE=libafs
843 AC_SUBST(AFS_SYSNAME)
844 AC_SUBST(AFS_PARAM_COMMON)
845 AC_SUBST(ENABLE_KERNEL_MODULE)
847 AC_SUBST(LINUX_KERNEL_PATH)
848 AC_SUBST(BSD_KERNEL_PATH)
849 AC_SUBST(LINUX_VERSION)
850 AC_SUBST(MKAFS_OSTYPE)
856 AC_SUBST(WITH_OBSOLETE)
857 AC_SUBST(WITH_INSECURE)
858 AC_SUBST(DARWIN_INFOFILE)
859 AC_SUBST(IRIX_BUILD_IP35)
863 TOP_SRCDIR="${srcdir}/src"
865 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
871 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
875 TOP_OBJDIR="${SRCDIR_PARENT}"
876 TOP_INCDIR="${SRCDIR_PARENT}/include"
877 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
878 if test "${DEST}x" = "x"; then
879 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"