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
170 LINUX_RECALC_SIGPENDING_ARG_TYPE
171 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
172 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
173 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
174 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
175 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
177 if test "x$ac_cv_linux_config_modversions" = "xno"; then
178 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it's exported])
179 ac_cv_linux_exports_sys_call_table=yes
181 LINUX_EXPORTS_INIT_MM
182 LINUX_EXPORTS_KALLSYMS_ADDRESS
183 LINUX_EXPORTS_KALLSYMS_SYMBOL
184 LINUX_EXPORTS_SYS_CALL_TABLE
185 LINUX_EXPORTS_SYS_CHDIR
186 LINUX_EXPORTS_SYS_CLOSE
187 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
188 linux_syscall_method=none
189 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
190 linux_syscall_method=scan
191 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
192 linux_syscall_method=scan_with_kallsyms_address
195 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
196 linux_syscall_method=kallsyms_symbol
198 if test "x$linux_syscall_method" = "xnone"; then
199 AC_MSG_ERROR([no available sys_call_table access method])
201 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
202 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
204 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
205 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
209 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
210 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock])
212 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
213 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
215 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
216 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
218 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
219 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
221 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
222 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
224 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
225 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
227 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
228 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
230 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
231 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
233 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
234 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
236 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
237 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
239 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
240 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
242 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
243 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
245 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
246 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
248 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
249 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
251 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
252 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
254 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
255 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
257 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
258 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
260 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
261 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
263 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
264 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
272 SOLARIS_UFSVFS_HAS_DQRWLOCK
273 SOLARIS_PROC_HAS_P_COREFILE
274 SOLARIS_FS_HAS_FS_ROLLED
278 enable_kernel_module=no
286 if test -d /usr/include/sys/SN/SN1; then
287 IRIX_BUILD_IP35="IP35"
294 AC_MSG_RESULT(rs_aix)
298 AC_MSG_RESULT(alpha_dux)
299 if test "x$enable_kernel_module" = "xyes"; then
300 if test "x$with_dux_kernel_headers" != "x"; then
301 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
303 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
306 if test "$HEADER_RT" = "*" ; then
307 AC_MSG_ERROR([Need a configured kernel directory])
309 AC_SUBST([HEADER_RT])
313 AC_MSG_RESULT(ppc_darwin)
317 AC_MSG_RESULT(i386_fbsd)
325 AC_MSG_RESULT(i386_obsd)
328 AC_MSG_RESULT($system)
332 if test "x$with_afs_sysname" != "x"; then
333 AFS_SYSNAME="$with_afs_sysname"
335 AC_MSG_CHECKING(your AFS sysname)
337 i386-unknown-openbsd3.1)
338 AFS_SYSNAME="i386_obsd31"
340 i386-unknown-openbsd3.2)
341 AFS_SYSNAME="i386_obsd32"
344 AFS_SYSNAME="i386_fbsd_42"
347 AFS_SYSNAME="i386_fbsd_43"
350 AFS_SYSNAME="i386_fbsd_44"
353 AFS_SYSNAME="i386_fbsd_45"
356 AFS_SYSNAME="i386_fbsd_46"
359 AFS_SYSNAME="i386_fbsd_47"
362 AFS_SYSNAME="i386_fbsd_50"
365 AFS_PARAM_COMMON=param.nbsd15.h
366 AFS_SYSNAME="i386_nbsd15"
369 AFS_PARAM_COMMON=param.nbsd15.h
370 AFS_SYSNAME="alpha_nbsd15"
372 i?86-*-netbsd*1.6[[M-Z]]*)
373 AFS_PARAM_COMMON=param.nbsd20.h
374 AFS_SYSNAME="i386_nbsd20"
376 powerpc-*-netbsd*1.6[[M-Z]]*)
377 AFS_PARAM_COMMON=param.nbsd20.h
378 AFS_SYSNAME="ppc_nbsd20"
381 AFS_PARAM_COMMON=param.nbsd20.h
382 AFS_SYSNAME="i386_nbsd20"
384 powerpc-*-netbsd*2.0*)
385 AFS_PARAM_COMMON=param.nbsd20.h
386 AFS_SYSNAME="ppc_nbsd20"
389 AFS_PARAM_COMMON=param.nbsd16.h
390 AFS_SYSNAME="i386_nbsd16"
393 AFS_PARAM_COMMON=param.nbsd16.h
394 AFS_SYSNAME="alpha_nbsd16"
396 powerpc-*-netbsd*1.6*)
397 AFS_PARAM_COMMON=param.nbsd16.h
398 AFS_SYSNAME="ppc_nbsd16"
401 AFS_SYSNAME="hp_ux110"
404 AFS_SYSNAME="hp_ux11i"
407 AFS_SYSNAME="ia64_hpux1122"
410 AFS_SYSNAME="hp_ux102"
412 powerpc-apple-darwin1.2*)
413 AFS_SYSNAME="ppc_darwin_12"
415 powerpc-apple-darwin1.3*)
416 AFS_SYSNAME="ppc_darwin_13"
418 powerpc-apple-darwin1.4*)
419 AFS_SYSNAME="ppc_darwin_14"
421 powerpc-apple-darwin5.1*)
422 AFS_SYSNAME="ppc_darwin_14"
424 powerpc-apple-darwin5.2*)
425 AFS_SYSNAME="ppc_darwin_14"
427 powerpc-apple-darwin5.3*)
428 AFS_SYSNAME="ppc_darwin_14"
430 powerpc-apple-darwin5.4*)
431 AFS_SYSNAME="ppc_darwin_14"
433 powerpc-apple-darwin5.5*)
434 AFS_SYSNAME="ppc_darwin_14"
436 powerpc-apple-darwin6.0*)
437 AFS_SYSNAME="ppc_darwin_60"
439 powerpc-apple-darwin6.1*)
440 AFS_SYSNAME="ppc_darwin_60"
442 powerpc-apple-darwin6.2*)
443 AFS_SYSNAME="ppc_darwin_60"
445 powerpc-apple-darwin6.3*)
446 AFS_SYSNAME="ppc_darwin_60"
448 powerpc-apple-darwin6.4*)
449 AFS_SYSNAME="ppc_darwin_60"
451 powerpc-apple-darwin6.5*)
452 AFS_SYSNAME="ppc_darwin_60"
454 sparc-sun-solaris2.5*)
455 AFS_SYSNAME="sun4x_55"
457 sparc-sun-solaris2.6)
458 AFS_SYSNAME="sun4x_56"
460 sparc-sun-solaris2.7)
461 AFS_SYSNAME="sun4x_57"
463 sparc-sun-solaris2.8)
464 AFS_SYSNAME="sun4x_58"
466 sparc-sun-solaris2.9)
467 AFS_SYSNAME="sun4x_59"
470 AFS_SYSNAME="sun4_413"
473 AFS_SYSNAME="sunx86_57"
476 AFS_SYSNAME="sunx86_58"
479 AFS_SYSNAME="sunx86_59"
482 AFS_SYSNAME="alpha_dux40"
485 AFS_SYSNAME="alpha_dux50"
488 AFS_SYSNAME="alpha_dux51"
494 AFS_SYSNAME="ia64_linuxXX"
497 AFS_SYSNAME="ppc_linuxXX"
500 AFS_SYSNAME="alpha_linux_XX"
503 AFS_SYSNAME="s390_linuxXX"
506 AFS_SYSNAME="sparc_linuxXX"
509 AFS_SYSNAME="sparc64_linuxXX"
512 AFS_SYSNAME="i386_linuxXX"
515 AFS_SYSNAME="parisc_linuxXX"
518 AFS_SYSNAME="rs_aix42"
521 AFS_SYSNAME="rs_aix42"
524 AFS_SYSNAME="amd64_linuxXX"
527 AC_MSG_ERROR(An AFS sysname is required)
533 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
534 if test "x${AFS_SYSKVERS}" = "x"; then
535 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
537 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
538 AFS_SYSNAME="$_AFS_SYSNAME"
541 AC_MSG_RESULT($AFS_SYSNAME)
546 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
547 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
548 dnl the test below fails on darwin, even if the CPPFLAGS below
549 dnl are added. the headers from Kernel.Framework must be used
550 dnl when KERNEL is defined.
552 dnl really, such a thing isn't guaranteed to work on any
553 dnl platform until the kernel cflags from MakefileProto are
554 dnl known to configure
555 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
558 AC_MSG_CHECKING(for definition of struct buf)
559 dnl save_CPPFLAGS="$CPPFLAGS"
560 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
561 AC_CACHE_VAL(ac_cv_have_struct_buf, [
562 ac_cv_have_struct_buf=no
564 [#include <sys/buf.h>],
566 printf("%d\n", sizeof(x));],
567 ac_cv_have_struct_buf=yes,)
570 dnl CPPFLAGS="$save_CPPFLAGS"
571 AC_MSG_RESULT($ac_cv_have_struct_buf)
572 if test "$ac_cv_have_struct_buf" = yes; then
573 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
579 AC_CACHE_VAL(ac_cv_sockaddr_len,
581 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
582 AC_TRY_COMPILE( [#include <sys/types.h>
583 #include <sys/socket.h>],
585 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
586 AC_MSG_RESULT($ac_cv_sockaddr_len)])
587 if test "$ac_cv_sockaddr_len" = "yes"; then
588 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
590 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
591 echo Skipping library tests because they confuse Irix.
593 AC_CHECK_FUNCS(socket)
595 if test "$ac_cv_func_socket" = no; then
596 for lib in socket inet; do
597 if test "$HAVE_SOCKET" != 1; then
598 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
603 AC_CHECK_FUNCS(connect)
605 if test "$ac_cv_func_connect" = no; then
607 if test "$HAVE_CONNECT" != 1; then
608 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
613 AC_CHECK_FUNCS(gethostbyname)
614 if test "$ac_cv_func_gethostbyname" = no; then
615 for lib in dns nsl resolv; do
616 if test "$HAVE_GETHOSTBYNAME" != 1; then
617 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
622 openafs_save_libs="$LIBS"
623 AC_MSG_CHECKING([for res_search])
626 if test "$ac_cv_func_res_search" = no; then
627 for lib in dns nsl resolv; do
628 if test "$ac_cv_func_res_search" != yes; then
631 LIBS="$openafs_save_libs"
634 if test "$ac_cv_func_res_search" = yes; then
635 LIB_res_search="-l$lib"
636 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
637 AC_MSG_RESULT([yes, in lib$lib])
642 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
649 AC_CHECK_LIB(pthread, pthread_attr_init,
650 PTHREAD_LIBS="-lpthread")
651 if test "x$PTHREAD_LIBS" = xerror; then
652 AC_CHECK_LIB(pthreads, pthread_attr_init,
653 PTHREAD_LIBS="-lpthreads")
655 if test "x$PTHREAD_LIBS" = xerror; then
656 AC_CHECK_LIB(c_r, pthread_attr_init,
657 PTHREAD_LIBS="-lc_r")
659 if test "x$PTHREAD_LIBS" = xerror; then
660 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
662 if test "x$PTHREAD_LIBS" = xerror; then
663 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
665 AC_SUBST(PTHREAD_LIBS)
668 if test "$enable_obsolete" = "yes"; then
673 if test "$enable_insecure" = "yes"; then
678 if test "$enable_supergroups" = "yes"; then
679 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
682 if test "$enable_fast_restart" = "yes"; then
683 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
686 if test "$enable_bitmap_later" = "yes"; then
687 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
690 if test "$enable_full_vos_listvol_switch" = "yes"; then
691 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
694 if test "$enable_bos_restricted_mode" = "yes"; then
695 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
698 if test "$enable_bos_new_config" = "yes"; then
699 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
702 if test "$enable_namei_fileserver" = "yes"; then
703 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
706 if test "$enable_afsdb" = "yes"; then
707 LIB_AFSDB="$LIB_res_search"
708 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
712 AC_MSG_CHECKING(for tivoli tsm butc support)
714 if test "$enable_tivoli_tsm" = "yes"; then
715 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
716 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
718 if test -e "$XBSADIR1/xbsa.h"; then
719 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
720 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
721 elif test -e "$XBSADIR2/xbsa.h"; then
722 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
723 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
725 AC_MSG_RESULT([no, missing xbsa.h header file])
730 AC_SUBST(XBSA_CFLAGS)
732 dnl checks for header files.
736 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
737 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
738 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h)
739 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
740 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h)
741 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h)
743 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf re_comp re_exec)
744 AC_CHECK_FUNCS(setprogname getprogname sigaction)
745 AC_CHECK_TYPE(ssize_t, int)
748 AC_CHECK_FUNCS(timegm)
750 dnl Directory PATH handling
751 if test "x$enable_transarc_paths" = "xyes" ; then
752 afsconfdir=${afsconfdir=/usr/afs/etc}
753 viceetcdir=${viceetcdir=/usr/vice/etc}
754 afskerneldir=${afskerneldir=${viceetcdir}}
755 afssrvbindir=${afssrvbindir=/usr/afs/bin}
756 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
757 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
758 afsdbdir=${afsdbdir=/usr/afs/db}
759 afslogsdir=${afslogsdir=/usr/afs/logs}
760 afslocaldir=${afslocaldir=/usr/afs/local}
761 afsbackupdir=${afsbackupdir=/usr/afs/backup}
762 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
764 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
765 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
766 afskerneldir=${afskerneldir='${libdir}/openafs'}
767 afssrvbindir=${afssrvbindir='${bindir}'}
768 afssrvsbindir=${afssrvsbindir='${sbindir}'}
769 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
770 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
771 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
772 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
773 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
774 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
778 AC_SUBST(afskerneldir)
779 AC_SUBST(afssrvbindir)
780 AC_SUBST(afssrvsbindir)
781 AC_SUBST(afssrvlibexecdir)
784 AC_SUBST(afslocaldir)
785 AC_SUBST(afsbackupdir)
786 AC_SUBST(afsbosconfigdir)
788 if test "x$enable_kernel_module" = "xyes"; then
789 ENABLE_KERNEL_MODULE=libafs
792 AC_SUBST(AFS_SYSNAME)
793 AC_SUBST(AFS_PARAM_COMMON)
794 AC_SUBST(ENABLE_KERNEL_MODULE)
796 AC_SUBST(LINUX_KERNEL_PATH)
797 AC_SUBST(LINUX_VERSION)
798 AC_SUBST(MKAFS_OSTYPE)
804 AC_SUBST(WITH_OBSOLETE)
805 AC_SUBST(WITH_INSECURE)
806 AC_SUBST(DARWIN_INFOFILE)
807 AC_SUBST(IRIX_BUILD_IP35)
811 TOP_SRCDIR="${srcdir}/src"
813 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
819 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
823 TOP_OBJDIR="${SRCDIR_PARENT}"
824 TOP_INCDIR="${SRCDIR_PARENT}/include"
825 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
826 if test "${DEST}x" = "x"; then
827 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"