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_ENABLE(kernel-module,
43 [ --disable-kernel-module disable compilation of the kernel module (defaults to enabled)],, enable_kernel_module="yes"
45 AC_ARG_ENABLE(redhat-buildsys,
46 [ --enable-redhat-buildsys enable compilation of the redhat build system kernel (defaults to disabled)],, enable_redhat_buildsys="no"
48 AC_ARG_ENABLE(transarc-paths,
49 [ --enable-transarc-paths Use Transarc style paths like /usr/afs and /usr/vice],, enable_transarc_paths="no"
51 AC_ARG_ENABLE(tivoli-tsm,
52 [ --enable-tivoli-tsm Enable use of the Tivoli TSM API libraries for butc support],, enable_tivoli_tsm="no"
54 AC_ARG_ENABLE(debug-kernel,
55 [ --enable-debug-kernel enable compilation of the kernel module with debugging information (defaults to disabled)],, enable_debug_kernel="no"
57 AC_ARG_ENABLE(optimize-kernel,
58 [ --disable-optimize-kernel disable compilation of the kernel module with optimization (defaults based on platform)],, enable_optimize_kernel="yes"
61 [ --enable-debug enable compilation of the user space code with debugging information (defaults to disabled)],, enable_debug="no"
63 AC_ARG_ENABLE(optimize,
64 [ --disable-optimize disable optimization for compilation of the user space code (defaults to enabled)],, enable_optimize="yes"
66 AC_ARG_ENABLE(debug-lwp,
67 [ --enable-debug-lwp enable compilation of the LWP code with debugging information (defaults to disabled)],, enable_debug_lwp="no"
69 AC_ARG_ENABLE(optimize-lwp,
70 [ --disable-optimize-lwp disable optimization for compilation of the LWP code (defaults to enabled)],, enable_optimize_lwp="yes"
78 dnl Various compiler setup.
83 dnl Checks for programs.
90 OPENAFS_CHECK_BIGENDIAN
92 AC_MSG_CHECKING(your OS)
97 if test "x$enable_redhat_buildsys" = "xyes"; then
98 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
100 if test "x$enable_kernel_module" = "xyes"; then
101 if test "x$with_linux_kernel_headers" != "x"; then
102 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
104 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
105 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
106 LINUX_KERNEL_PATH="/usr/src/linux"
109 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
110 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -1`
111 if test "x$linux_kvers" = "x"; then
112 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
113 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -1`
114 if test "x$linux_kvers" = "x"; then
116 AC_MSG_ERROR(Linux headers lack version definition [2])
119 LINUX_VERSION="$linux_kvers"
122 AC_MSG_ERROR(Linux headers lack version definition)
126 LINUX_VERSION="$linux_kvers"
129 enable_kernel_module="no"
131 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
132 enable_kernel_module="no"
134 if test "x$enable_kernel_module" = "xno"; then
135 if test "x$with_linux_kernel_headers" != "x"; then
136 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
139 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
144 if test "x$enable_kernel_module" = "xyes"; then
145 if test "x$enable_debug_kernel" = "xno"; then
146 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
148 OPENAFS_GCC_SUPPORTS_MARCH
149 AC_SUBST(P5PLUS_KOPTS)
150 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
151 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
152 OPENAFS_GCC_SUPPORTS_NO_COMMON
153 OPENAFS_GCC_SUPPORTS_PIPE
154 AC_SUBST(LINUX_GCC_KOPTS)
155 ifdef([OPENAFS_CONFIGURE_LIBAFS],
156 [LINUX_BUILD_VNODE_FROM_INODE(src/config,afs)],
157 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
159 LINUX_COMPLETION_H_EXISTS
160 LINUX_DEFINES_FOR_EACH_PROCESS
161 LINUX_DEFINES_PREV_TASK
162 LINUX_EXPORTS_TASKLIST_LOCK
163 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
164 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
165 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
166 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
167 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
168 LINUX_INODE_SETATTR_RETURN_TYPE
169 LINUX_KERNEL_LINUX_SYSCALL_H
171 LINUX_RECALC_SIGPENDING_ARG_TYPE
172 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
173 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
174 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
175 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
176 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
178 if test "x$ac_cv_linux_config_modversions" = "xno"; then
179 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it's exported])
180 ac_cv_linux_exports_sys_call_table=yes
181 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
182 ac_cv_linux_exports_ia32_sys_call_table=yes
185 LINUX_EXPORTS_INIT_MM
186 LINUX_EXPORTS_KALLSYMS_ADDRESS
187 LINUX_EXPORTS_KALLSYMS_SYMBOL
188 LINUX_EXPORTS_SYS_CALL_TABLE
189 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
190 LINUX_EXPORTS_SYS_CHDIR
191 LINUX_EXPORTS_SYS_CLOSE
192 LINUX_EXPORTS_SYS_WAIT4
193 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
194 linux_syscall_method=none
195 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
196 linux_syscall_method=scan
197 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
198 linux_syscall_method=scan_with_kallsyms_address
201 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
202 linux_syscall_method=kallsyms_symbol
204 if test "x$linux_syscall_method" = "xnone"; then
205 AC_MSG_ERROR([no available sys_call_table access method])
209 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
210 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
212 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
213 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
215 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
216 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
218 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
219 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock])
221 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
222 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
224 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
225 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
227 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
228 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
230 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
231 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
233 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
234 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
236 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
237 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
239 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
240 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
242 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
243 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
245 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
246 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
248 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
249 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
251 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
252 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
254 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
255 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
257 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
258 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
260 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
261 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
263 if test "x$ac_linux_syscall" = "xyes" ; then
264 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
266 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
267 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
269 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
270 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
272 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
273 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
275 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
276 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
278 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
279 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
287 SOLARIS_UFSVFS_HAS_DQRWLOCK
288 SOLARIS_PROC_HAS_P_COREFILE
289 SOLARIS_FS_HAS_FS_ROLLED
293 enable_kernel_module=no
301 if test -d /usr/include/sys/SN/SN1; then
302 IRIX_BUILD_IP35="IP35"
309 AC_MSG_RESULT(rs_aix)
313 AC_MSG_RESULT(alpha_dux)
314 if test "x$enable_kernel_module" = "xyes"; then
315 if test "x$with_dux_kernel_headers" != "x"; then
316 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
318 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
321 if test "$HEADER_RT" = "*" ; then
322 AC_MSG_ERROR([Need a configured kernel directory])
324 AC_SUBST([HEADER_RT])
328 AC_MSG_RESULT(ppc_darwin)
332 AC_MSG_RESULT(i386_fbsd)
340 AC_MSG_RESULT(i386_obsd)
343 AC_MSG_RESULT($system)
347 if test "x$with_afs_sysname" != "x"; then
348 AFS_SYSNAME="$with_afs_sysname"
350 AC_MSG_CHECKING(your AFS sysname)
352 i386-unknown-openbsd3.1)
353 AFS_SYSNAME="i386_obsd31"
355 i386-unknown-openbsd3.2)
356 AFS_SYSNAME="i386_obsd32"
359 AFS_SYSNAME="i386_fbsd_42"
362 AFS_SYSNAME="i386_fbsd_43"
365 AFS_SYSNAME="i386_fbsd_44"
368 AFS_SYSNAME="i386_fbsd_45"
371 AFS_SYSNAME="i386_fbsd_46"
374 AFS_SYSNAME="i386_fbsd_47"
377 AFS_SYSNAME="i386_fbsd_50"
380 AFS_PARAM_COMMON=param.nbsd15.h
381 AFS_SYSNAME="i386_nbsd15"
384 AFS_PARAM_COMMON=param.nbsd15.h
385 AFS_SYSNAME="alpha_nbsd15"
387 i?86-*-netbsd*1.6[[M-Z]]*)
388 AFS_PARAM_COMMON=param.nbsd20.h
389 AFS_SYSNAME="i386_nbsd20"
391 powerpc-*-netbsd*1.6[[M-Z]]*)
392 AFS_PARAM_COMMON=param.nbsd20.h
393 AFS_SYSNAME="ppc_nbsd20"
396 AFS_PARAM_COMMON=param.nbsd20.h
397 AFS_SYSNAME="i386_nbsd20"
399 powerpc-*-netbsd*2.0*)
400 AFS_PARAM_COMMON=param.nbsd20.h
401 AFS_SYSNAME="ppc_nbsd20"
404 AFS_PARAM_COMMON=param.nbsd16.h
405 AFS_SYSNAME="i386_nbsd16"
408 AFS_PARAM_COMMON=param.nbsd16.h
409 AFS_SYSNAME="alpha_nbsd16"
411 powerpc-*-netbsd*1.6*)
412 AFS_PARAM_COMMON=param.nbsd16.h
413 AFS_SYSNAME="ppc_nbsd16"
416 AFS_SYSNAME="hp_ux110"
419 AFS_SYSNAME="hp_ux11i"
422 AFS_SYSNAME="ia64_hpux1122"
425 AFS_SYSNAME="hp_ux102"
427 powerpc-apple-darwin1.2*)
428 AFS_SYSNAME="ppc_darwin_12"
430 powerpc-apple-darwin1.3*)
431 AFS_SYSNAME="ppc_darwin_13"
433 powerpc-apple-darwin1.4*)
434 AFS_SYSNAME="ppc_darwin_14"
436 powerpc-apple-darwin5.1*)
437 AFS_SYSNAME="ppc_darwin_14"
439 powerpc-apple-darwin5.2*)
440 AFS_SYSNAME="ppc_darwin_14"
442 powerpc-apple-darwin5.3*)
443 AFS_SYSNAME="ppc_darwin_14"
445 powerpc-apple-darwin5.4*)
446 AFS_SYSNAME="ppc_darwin_14"
448 powerpc-apple-darwin5.5*)
449 AFS_SYSNAME="ppc_darwin_14"
451 powerpc-apple-darwin6.0*)
452 AFS_SYSNAME="ppc_darwin_60"
454 powerpc-apple-darwin6.1*)
455 AFS_SYSNAME="ppc_darwin_60"
457 powerpc-apple-darwin6.2*)
458 AFS_SYSNAME="ppc_darwin_60"
460 powerpc-apple-darwin6.3*)
461 AFS_SYSNAME="ppc_darwin_60"
463 powerpc-apple-darwin6.4*)
464 AFS_SYSNAME="ppc_darwin_60"
466 powerpc-apple-darwin6.5*)
467 AFS_SYSNAME="ppc_darwin_60"
469 sparc-sun-solaris2.5*)
470 AFS_SYSNAME="sun4x_55"
472 sparc-sun-solaris2.6)
473 AFS_SYSNAME="sun4x_56"
475 sparc-sun-solaris2.7)
476 AFS_SYSNAME="sun4x_57"
478 sparc-sun-solaris2.8)
479 AFS_SYSNAME="sun4x_58"
481 sparc-sun-solaris2.9)
482 AFS_SYSNAME="sun4x_59"
485 AFS_SYSNAME="sun4_413"
488 AFS_SYSNAME="sunx86_57"
491 AFS_SYSNAME="sunx86_58"
494 AFS_SYSNAME="sunx86_59"
497 AFS_SYSNAME="alpha_dux40"
500 AFS_SYSNAME="alpha_dux50"
503 AFS_SYSNAME="alpha_dux51"
509 AFS_SYSNAME="ia64_linuxXX"
512 AFS_SYSNAME="ppc_linuxXX"
515 AFS_SYSNAME="alpha_linux_XX"
518 AFS_SYSNAME="s390_linuxXX"
521 AFS_SYSNAME="sparc_linuxXX"
524 AFS_SYSNAME="sparc64_linuxXX"
527 AFS_SYSNAME="i386_linuxXX"
530 AFS_SYSNAME="parisc_linuxXX"
533 AFS_SYSNAME="rs_aix42"
536 AFS_SYSNAME="rs_aix42"
539 AFS_SYSNAME="amd64_linuxXX"
542 AC_MSG_ERROR(An AFS sysname is required)
548 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
549 if test "x${AFS_SYSKVERS}" = "x"; then
550 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
552 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
553 AFS_SYSNAME="$_AFS_SYSNAME"
554 AFS_ISUML=`echo $LINUX_VERSION | awk 'BEGIN {FS="-[[0-9]]+"} {print $[]2}'`
555 if test "x${AFS_ISUML}" = "xum"; then
556 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
558 AFS_SYSNAME="$_AFS_SYSNAME"
561 AC_MSG_RESULT($AFS_SYSNAME)
566 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
567 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
568 dnl the test below fails on darwin, even if the CPPFLAGS below
569 dnl are added. the headers from Kernel.Framework must be used
570 dnl when KERNEL is defined.
572 dnl really, such a thing isn't guaranteed to work on any
573 dnl platform until the kernel cflags from MakefileProto are
574 dnl known to configure
575 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
578 AC_MSG_CHECKING(for definition of struct buf)
579 dnl save_CPPFLAGS="$CPPFLAGS"
580 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
581 AC_CACHE_VAL(ac_cv_have_struct_buf, [
582 ac_cv_have_struct_buf=no
584 [#include <sys/buf.h>],
586 printf("%d\n", sizeof(x));],
587 ac_cv_have_struct_buf=yes,)
590 dnl CPPFLAGS="$save_CPPFLAGS"
591 AC_MSG_RESULT($ac_cv_have_struct_buf)
592 if test "$ac_cv_have_struct_buf" = yes; then
593 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
599 AC_CACHE_VAL(ac_cv_sockaddr_len,
601 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
602 AC_TRY_COMPILE( [#include <sys/types.h>
603 #include <sys/socket.h>],
605 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
606 AC_MSG_RESULT($ac_cv_sockaddr_len)])
607 if test "$ac_cv_sockaddr_len" = "yes"; then
608 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
610 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
611 echo Skipping library tests because they confuse Irix.
613 AC_CHECK_FUNCS(socket)
615 if test "$ac_cv_func_socket" = no; then
616 for lib in socket inet; do
617 if test "$HAVE_SOCKET" != 1; then
618 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
623 AC_CHECK_FUNCS(connect)
625 if test "$ac_cv_func_connect" = no; then
627 if test "$HAVE_CONNECT" != 1; then
628 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
633 AC_CHECK_FUNCS(gethostbyname)
634 if test "$ac_cv_func_gethostbyname" = no; then
635 for lib in dns nsl resolv; do
636 if test "$HAVE_GETHOSTBYNAME" != 1; then
637 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
642 openafs_save_libs="$LIBS"
643 AC_MSG_CHECKING([for res_search])
646 if test "$ac_cv_func_res_search" = no; then
647 for lib in dns nsl resolv; do
648 if test "$ac_cv_func_res_search" != yes; then
651 LIBS="$openafs_save_libs"
654 if test "$ac_cv_func_res_search" = yes; then
655 LIB_res_search="-l$lib"
656 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
657 AC_MSG_RESULT([yes, in lib$lib])
662 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
669 AC_CHECK_LIB(pthread, pthread_attr_init,
670 PTHREAD_LIBS="-lpthread")
671 if test "x$PTHREAD_LIBS" = xerror; then
672 AC_CHECK_LIB(pthreads, pthread_attr_init,
673 PTHREAD_LIBS="-lpthreads")
675 if test "x$PTHREAD_LIBS" = xerror; then
676 AC_CHECK_LIB(c_r, pthread_attr_init,
677 PTHREAD_LIBS="-lc_r")
679 if test "x$PTHREAD_LIBS" = xerror; then
680 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
682 if test "x$PTHREAD_LIBS" = xerror; then
683 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
685 AC_SUBST(PTHREAD_LIBS)
688 if test "$enable_obsolete" = "yes"; then
693 if test "$enable_insecure" = "yes"; then
698 if test "$enable_supergroups" = "yes"; then
699 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
702 if test "$enable_fast_restart" = "yes"; then
703 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
706 if test "$enable_bitmap_later" = "yes"; then
707 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
710 if test "$enable_full_vos_listvol_switch" = "yes"; then
711 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
714 if test "$enable_bos_restricted_mode" = "yes"; then
715 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
718 if test "$enable_bos_new_config" = "yes"; then
719 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
722 if test "$enable_namei_fileserver" = "yes"; then
723 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
726 if test "$enable_afsdb" = "yes"; then
727 LIB_AFSDB="$LIB_res_search"
728 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
732 AC_MSG_CHECKING(for tivoli tsm butc support)
734 if test "$enable_tivoli_tsm" = "yes"; then
735 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
736 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
738 if test -e "$XBSADIR1/xbsa.h"; then
739 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
740 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
741 elif test -e "$XBSADIR2/xbsa.h"; then
742 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
743 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
745 AC_MSG_RESULT([no, missing xbsa.h header file])
750 AC_SUBST(XBSA_CFLAGS)
752 dnl checks for header files.
756 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
757 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
758 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
759 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
760 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h)
761 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h)
763 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf re_comp re_exec)
764 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf)
765 AC_CHECK_TYPE(ssize_t, int)
768 AC_CHECK_FUNCS(timegm)
770 dnl Directory PATH handling
771 if test "x$enable_transarc_paths" = "xyes" ; then
772 afsconfdir=${afsconfdir=/usr/afs/etc}
773 viceetcdir=${viceetcdir=/usr/vice/etc}
774 afskerneldir=${afskerneldir=${viceetcdir}}
775 afssrvbindir=${afssrvbindir=/usr/afs/bin}
776 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
777 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
778 afsdbdir=${afsdbdir=/usr/afs/db}
779 afslogsdir=${afslogsdir=/usr/afs/logs}
780 afslocaldir=${afslocaldir=/usr/afs/local}
781 afsbackupdir=${afsbackupdir=/usr/afs/backup}
782 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
784 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
785 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
786 afskerneldir=${afskerneldir='${libdir}/openafs'}
787 afssrvbindir=${afssrvbindir='${bindir}'}
788 afssrvsbindir=${afssrvsbindir='${sbindir}'}
789 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
790 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
791 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
792 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
793 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
794 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
798 AC_SUBST(afskerneldir)
799 AC_SUBST(afssrvbindir)
800 AC_SUBST(afssrvsbindir)
801 AC_SUBST(afssrvlibexecdir)
804 AC_SUBST(afslocaldir)
805 AC_SUBST(afsbackupdir)
806 AC_SUBST(afsbosconfigdir)
808 if test "x$enable_kernel_module" = "xyes"; then
809 ENABLE_KERNEL_MODULE=libafs
812 AC_SUBST(AFS_SYSNAME)
813 AC_SUBST(AFS_PARAM_COMMON)
814 AC_SUBST(ENABLE_KERNEL_MODULE)
816 AC_SUBST(LINUX_KERNEL_PATH)
817 AC_SUBST(LINUX_VERSION)
818 AC_SUBST(MKAFS_OSTYPE)
824 AC_SUBST(WITH_OBSOLETE)
825 AC_SUBST(WITH_INSECURE)
826 AC_SUBST(DARWIN_INFOFILE)
827 AC_SUBST(IRIX_BUILD_IP35)
831 TOP_SRCDIR="${srcdir}/src"
833 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
839 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
843 TOP_OBJDIR="${SRCDIR_PARENT}"
844 TOP_INCDIR="${SRCDIR_PARENT}/include"
845 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
846 if test "${DEST}x" = "x"; then
847 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"