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"
106 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
107 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -1`
108 if test "x$linux_kvers" = "x"; then
109 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
110 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -1`
111 if test "x$linux_kvers" = "x"; then
113 AC_MSG_ERROR(Linux headers lack version definition [2])
116 LINUX_VERSION="$linux_kvers"
119 AC_MSG_ERROR(Linux headers lack version definition)
123 LINUX_VERSION="$linux_kvers"
126 enable_kernel_module="no"
128 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
129 enable_kernel_module="no"
131 if test "x$enable_kernel_module" = "xno"; then
132 if test "x$with_linux_kernel_headers" != "x"; then
133 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
136 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
141 if test "x$enable_kernel_module" = "xyes"; then
142 if test "x$enable_debug_kernel" = "xno"; then
143 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
145 OPENAFS_GCC_SUPPORTS_MARCH
146 AC_SUBST(P5PLUS_KOPTS)
147 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
148 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
149 OPENAFS_GCC_SUPPORTS_NO_COMMON
150 OPENAFS_GCC_SUPPORTS_PIPE
151 AC_SUBST(LINUX_GCC_KOPTS)
152 ifdef([OPENAFS_CONFIGURE_LIBAFS],
153 [LINUX_BUILD_VNODE_FROM_INODE(src/config,afs)],
154 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
156 LINUX_COMPLETION_H_EXISTS
157 LINUX_DEFINES_FOR_EACH_PROCESS
158 LINUX_DEFINES_PREV_TASK
159 LINUX_EXPORTS_TASKLIST_LOCK
160 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
161 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
162 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
163 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
164 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
165 LINUX_INODE_SETATTR_RETURN_TYPE
167 LINUX_RECALC_SIGPENDING_ARG_TYPE
168 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
169 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
170 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
171 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
172 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
174 if test "x$ac_cv_linux_config_modversions" = "xno"; then
175 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it's exported])
176 ac_cv_linux_exports_sys_call_table=yes
178 LINUX_EXPORTS_INIT_MM
179 LINUX_EXPORTS_KALLSYMS_ADDRESS
180 LINUX_EXPORTS_KALLSYMS_SYMBOL
181 LINUX_EXPORTS_SYS_CALL_TABLE
182 LINUX_EXPORTS_SYS_CHDIR
183 LINUX_EXPORTS_SYS_CLOSE
184 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
185 linux_syscall_method=none
186 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
187 linux_syscall_method=scan
188 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
189 linux_syscall_method=scan_with_kallsyms_address
192 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
193 linux_syscall_method=kallsyms_symbol
195 if test "x$linux_syscall_method" = "xnone"; then
196 AC_MSG_ERROR([no available sys_call_table access method])
198 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
199 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
201 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
202 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
206 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
207 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock])
209 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
210 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
212 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
213 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
215 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
216 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
218 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
219 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
221 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
222 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
224 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
225 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
227 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
228 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
230 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
231 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
233 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
234 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
236 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
237 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
239 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
240 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
242 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
243 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
245 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
246 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
248 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
249 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
251 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
252 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
254 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
255 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
257 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
258 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
260 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
261 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
269 SOLARIS_UFSVFS_HAS_DQRWLOCK
270 SOLARIS_PROC_HAS_P_COREFILE
271 SOLARIS_FS_HAS_FS_ROLLED
275 enable_kernel_module=no
283 if test -d /usr/include/sys/SN/SN1; then
284 IRIX_BUILD_IP35="IP35"
291 AC_MSG_RESULT(rs_aix)
295 AC_MSG_RESULT(alpha_dux)
296 if test "x$enable_kernel_module" = "xyes"; then
297 if test "x$with_dux_kernel_headers" != "x"; then
298 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
300 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
303 if test "$HEADER_RT" = "*" ; then
304 AC_MSG_ERROR([Need a configured kernel directory])
306 AC_SUBST([HEADER_RT])
310 AC_MSG_RESULT(ppc_darwin)
314 AC_MSG_RESULT(i386_fbsd)
322 AC_MSG_RESULT(i386_obsd)
325 AC_MSG_RESULT($system)
329 if test "x$with_afs_sysname" != "x"; then
330 AFS_SYSNAME="$with_afs_sysname"
332 AC_MSG_CHECKING(your AFS sysname)
334 i386-unknown-openbsd3.1)
335 AFS_SYSNAME="i386_obsd31"
337 i386-unknown-openbsd3.2)
338 AFS_SYSNAME="i386_obsd32"
341 AFS_SYSNAME="i386_fbsd_42"
344 AFS_SYSNAME="i386_fbsd_43"
347 AFS_SYSNAME="i386_fbsd_44"
350 AFS_SYSNAME="i386_fbsd_45"
353 AFS_SYSNAME="i386_fbsd_46"
356 AFS_SYSNAME="i386_fbsd_47"
359 AFS_SYSNAME="i386_fbsd_50"
362 AFS_PARAM_COMMON=param.nbsd15.h
363 AFS_SYSNAME="i386_nbsd15"
366 AFS_PARAM_COMMON=param.nbsd15.h
367 AFS_SYSNAME="alpha_nbsd15"
369 i?86-*-netbsd*1.6[[M-Z]]*)
370 AFS_PARAM_COMMON=param.nbsd20.h
371 AFS_SYSNAME="i386_nbsd20"
373 powerpc-*-netbsd*1.6[[M-Z]]*)
374 AFS_PARAM_COMMON=param.nbsd20.h
375 AFS_SYSNAME="ppc_nbsd20"
378 AFS_PARAM_COMMON=param.nbsd20.h
379 AFS_SYSNAME="i386_nbsd20"
381 powerpc-*-netbsd*2.0*)
382 AFS_PARAM_COMMON=param.nbsd20.h
383 AFS_SYSNAME="ppc_nbsd20"
386 AFS_PARAM_COMMON=param.nbsd16.h
387 AFS_SYSNAME="i386_nbsd16"
390 AFS_PARAM_COMMON=param.nbsd16.h
391 AFS_SYSNAME="alpha_nbsd16"
393 powerpc-*-netbsd*1.6*)
394 AFS_PARAM_COMMON=param.nbsd16.h
395 AFS_SYSNAME="ppc_nbsd16"
398 AFS_SYSNAME="hp_ux110"
401 AFS_SYSNAME="hp_ux11i"
404 AFS_SYSNAME="ia64_hpux1122"
407 AFS_SYSNAME="hp_ux102"
409 powerpc-apple-darwin1.2*)
410 AFS_SYSNAME="ppc_darwin_12"
412 powerpc-apple-darwin1.3*)
413 AFS_SYSNAME="ppc_darwin_13"
415 powerpc-apple-darwin1.4*)
416 AFS_SYSNAME="ppc_darwin_14"
418 powerpc-apple-darwin5.1*)
419 AFS_SYSNAME="ppc_darwin_14"
421 powerpc-apple-darwin5.2*)
422 AFS_SYSNAME="ppc_darwin_14"
424 powerpc-apple-darwin5.3*)
425 AFS_SYSNAME="ppc_darwin_14"
427 powerpc-apple-darwin5.4*)
428 AFS_SYSNAME="ppc_darwin_14"
430 powerpc-apple-darwin5.5*)
431 AFS_SYSNAME="ppc_darwin_14"
433 powerpc-apple-darwin6.0*)
434 AFS_SYSNAME="ppc_darwin_60"
436 powerpc-apple-darwin6.1*)
437 AFS_SYSNAME="ppc_darwin_60"
439 powerpc-apple-darwin6.2*)
440 AFS_SYSNAME="ppc_darwin_60"
442 powerpc-apple-darwin6.3*)
443 AFS_SYSNAME="ppc_darwin_60"
445 powerpc-apple-darwin6.4*)
446 AFS_SYSNAME="ppc_darwin_60"
448 sparc-sun-solaris2.5*)
449 AFS_SYSNAME="sun4x_55"
451 sparc-sun-solaris2.6)
452 AFS_SYSNAME="sun4x_56"
454 sparc-sun-solaris2.7)
455 AFS_SYSNAME="sun4x_57"
457 sparc-sun-solaris2.8)
458 AFS_SYSNAME="sun4x_58"
460 sparc-sun-solaris2.9)
461 AFS_SYSNAME="sun4x_59"
464 AFS_SYSNAME="sun4_413"
467 AFS_SYSNAME="sunx86_57"
470 AFS_SYSNAME="sunx86_58"
473 AFS_SYSNAME="sunx86_59"
476 AFS_SYSNAME="alpha_dux40"
479 AFS_SYSNAME="alpha_dux50"
482 AFS_SYSNAME="alpha_dux51"
488 AFS_SYSNAME="ia64_linuxXX"
491 AFS_SYSNAME="ppc_linuxXX"
494 AFS_SYSNAME="alpha_linux_XX"
497 AFS_SYSNAME="s390_linuxXX"
500 AFS_SYSNAME="sparc_linuxXX"
503 AFS_SYSNAME="sparc64_linuxXX"
506 AFS_SYSNAME="i386_linuxXX"
509 AFS_SYSNAME="parisc_linuxXX"
512 AFS_SYSNAME="rs_aix42"
515 AFS_SYSNAME="rs_aix42"
518 AC_MSG_ERROR(An AFS sysname is required)
524 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
525 if test "x${AFS_SYSKVERS}" = "x"; then
526 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
528 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
529 AFS_SYSNAME="$_AFS_SYSNAME"
532 AC_MSG_RESULT($AFS_SYSNAME)
537 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
538 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
539 dnl the test below fails on darwin, even if the CPPFLAGS below
540 dnl are added. the headers from Kernel.Framework must be used
541 dnl when KERNEL is defined.
543 dnl really, such a thing isn't guaranteed to work on any
544 dnl platform until the kernel cflags from MakefileProto are
545 dnl known to configure
546 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
549 AC_MSG_CHECKING(for definition of struct buf)
550 dnl save_CPPFLAGS="$CPPFLAGS"
551 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
552 AC_CACHE_VAL(ac_cv_have_struct_buf, [
553 ac_cv_have_struct_buf=no
555 [#include <sys/buf.h>],
557 printf("%d\n", sizeof(x));],
558 ac_cv_have_struct_buf=yes,)
561 dnl CPPFLAGS="$save_CPPFLAGS"
562 AC_MSG_RESULT($ac_cv_have_struct_buf)
563 if test "$ac_cv_have_struct_buf" = yes; then
564 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
570 AC_CACHE_VAL(ac_cv_sockaddr_len,
572 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
573 AC_TRY_COMPILE( [#include <sys/types.h>
574 #include <sys/socket.h>],
576 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
577 AC_MSG_RESULT($ac_cv_sockaddr_len)])
578 if test "$ac_cv_sockaddr_len" = "yes"; then
579 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
581 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
582 echo Skipping library tests because they confuse Irix.
584 AC_CHECK_FUNCS(socket)
586 if test "$ac_cv_func_socket" = no; then
587 for lib in socket inet; do
588 if test "$HAVE_SOCKET" != 1; then
589 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
594 AC_CHECK_FUNCS(connect)
596 if test "$ac_cv_func_connect" = no; then
598 if test "$HAVE_CONNECT" != 1; then
599 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
604 AC_CHECK_FUNCS(gethostbyname)
605 if test "$ac_cv_func_gethostbyname" = no; then
606 for lib in dns nsl resolv; do
607 if test "$HAVE_GETHOSTBYNAME" != 1; then
608 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
613 AC_CHECK_FUNCS(res_search)
614 if test "$ac_cv_func_res_search" = no; then
615 for lib in dns nsl resolv; do
616 if test "$HAVE_RES_SEARCH" != 1; then
617 AC_CHECK_LIB(${lib}, res_search, LIBS="$LIBS -l$lib";HAVE_RES_SEARCH=1;AC_DEFINE(HAVE_RES_SEARCH, 1, [define if you have res_search]))
620 if test "$HAVE_RES_SEARCH" = 1; then
621 LIB_res_search="-l$lib"
627 AC_CHECK_LIB(pthread, pthread_attr_init,
628 PTHREAD_LIBS="-lpthread")
629 if test "x$PTHREAD_LIBS" = xerror; then
630 AC_CHECK_LIB(pthreads, pthread_attr_init,
631 PTHREAD_LIBS="-lpthreads")
633 if test "x$PTHREAD_LIBS" = xerror; then
634 AC_CHECK_LIB(c_r, pthread_attr_init,
635 PTHREAD_LIBS="-lc_r")
637 if test "x$PTHREAD_LIBS" = xerror; then
638 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
640 if test "x$PTHREAD_LIBS" = xerror; then
641 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
643 AC_SUBST(PTHREAD_LIBS)
646 if test "$enable_obsolete" = "yes"; then
651 if test "$enable_insecure" = "yes"; then
656 if test "$enable_supergroups" = "yes"; then
657 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
660 if test "$enable_fast_restart" = "yes"; then
661 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
664 if test "$enable_bitmap_later" = "yes"; then
665 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
668 if test "$enable_full_vos_listvol_switch" = "yes"; then
669 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
672 if test "$enable_bos_restricted_mode" = "yes"; then
673 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
676 if test "$enable_bos_new_config" = "yes"; then
677 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
680 if test "$enable_namei_fileserver" = "yes"; then
681 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
684 if test "$enable_afsdb" = "yes"; then
685 LIB_AFSDB="$LIB_res_search"
686 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
690 AC_MSG_CHECKING(for tivoli tsm butc support)
692 if test "$enable_tivoli_tsm" = "yes"; then
693 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
694 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
696 if test -e "$XBSADIR1/xbsa.h"; then
697 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
698 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
699 elif test -e "$XBSADIR2/xbsa.h"; then
700 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
701 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
703 AC_MSG_RESULT([no, missing xbsa.h header file])
708 AC_SUBST(XBSA_CFLAGS)
710 dnl checks for header files.
714 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
715 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
716 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h)
717 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
718 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h)
719 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h)
721 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf re_comp re_exec)
722 AC_CHECK_FUNCS(setprogname getprogname sigaction)
723 AC_CHECK_TYPE(ssize_t, int)
726 AC_CHECK_FUNCS(timegm)
728 dnl Directory PATH handling
729 if test "x$enable_transarc_paths" = "xyes" ; then
730 afsconfdir=${afsconfdir=/usr/afs/etc}
731 viceetcdir=${viceetcdir=/usr/vice/etc}
732 afskerneldir=${afskerneldir=${viceetcdir}}
733 afssrvbindir=${afssrvbindir=/usr/afs/bin}
734 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
735 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
736 afsdbdir=${afsdbdir=/usr/afs/db}
737 afslogsdir=${afslogsdir=/usr/afs/logs}
738 afslocaldir=${afslocaldir=/usr/afs/local}
739 afsbackupdir=${afsbackupdir=/usr/afs/backup}
740 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
742 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
743 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
744 afskerneldir=${afskerneldir='${libdir}/openafs'}
745 afssrvbindir=${afssrvbindir='${bindir}'}
746 afssrvsbindir=${afssrvsbindir='${sbindir}'}
747 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
748 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
749 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
750 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
751 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
752 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
756 AC_SUBST(afskerneldir)
757 AC_SUBST(afssrvbindir)
758 AC_SUBST(afssrvsbindir)
759 AC_SUBST(afssrvlibexecdir)
762 AC_SUBST(afslocaldir)
763 AC_SUBST(afsbackupdir)
764 AC_SUBST(afsbosconfigdir)
766 if test "x$enable_kernel_module" = "xyes"; then
767 ENABLE_KERNEL_MODULE=libafs
770 AC_SUBST(AFS_SYSNAME)
771 AC_SUBST(AFS_PARAM_COMMON)
772 AC_SUBST(ENABLE_KERNEL_MODULE)
774 AC_SUBST(LINUX_KERNEL_PATH)
775 AC_SUBST(LINUX_VERSION)
776 AC_SUBST(MKAFS_OSTYPE)
782 AC_SUBST(WITH_OBSOLETE)
783 AC_SUBST(WITH_INSECURE)
784 AC_SUBST(DARWIN_INFOFILE)
785 AC_SUBST(IRIX_BUILD_IP35)
789 TOP_SRCDIR="${srcdir}/src"
791 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
797 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
801 TOP_OBJDIR="${SRCDIR_PARENT}"
802 TOP_INCDIR="${SRCDIR_PARENT}/include"
803 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
804 if test "${DEST}x" = "x"; then
805 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"