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
182 LINUX_EXPORTS_INIT_MM
183 LINUX_EXPORTS_KALLSYMS_ADDRESS
184 LINUX_EXPORTS_KALLSYMS_SYMBOL
185 LINUX_EXPORTS_SYS_CALL_TABLE
186 LINUX_EXPORTS_SYS_CHDIR
187 LINUX_EXPORTS_SYS_CLOSE
188 LINUX_EXPORTS_SYS_WAIT4
189 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
190 linux_syscall_method=none
191 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
192 linux_syscall_method=scan
193 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
194 linux_syscall_method=scan_with_kallsyms_address
197 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
198 linux_syscall_method=kallsyms_symbol
200 if test "x$linux_syscall_method" = "xnone"; then
201 AC_MSG_ERROR([no available sys_call_table access method])
203 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
204 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
206 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
207 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
209 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
210 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
214 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
215 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock])
217 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
218 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
220 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
221 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
223 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
224 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
226 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
227 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
229 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
230 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
232 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
233 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
235 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
236 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
238 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
239 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
241 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
242 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
244 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
245 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
247 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
248 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
250 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
251 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
253 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
254 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
256 if test "x$ac_linux_syscall" = "xyes" ; then
257 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
259 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
260 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
262 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
263 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
265 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
266 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
268 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
269 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
271 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
272 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
280 SOLARIS_UFSVFS_HAS_DQRWLOCK
281 SOLARIS_PROC_HAS_P_COREFILE
282 SOLARIS_FS_HAS_FS_ROLLED
286 enable_kernel_module=no
294 if test -d /usr/include/sys/SN/SN1; then
295 IRIX_BUILD_IP35="IP35"
302 AC_MSG_RESULT(rs_aix)
306 AC_MSG_RESULT(alpha_dux)
307 if test "x$enable_kernel_module" = "xyes"; then
308 if test "x$with_dux_kernel_headers" != "x"; then
309 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
311 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
314 if test "$HEADER_RT" = "*" ; then
315 AC_MSG_ERROR([Need a configured kernel directory])
317 AC_SUBST([HEADER_RT])
321 AC_MSG_RESULT(ppc_darwin)
325 AC_MSG_RESULT(i386_fbsd)
333 AC_MSG_RESULT(i386_obsd)
336 AC_MSG_RESULT($system)
340 if test "x$with_afs_sysname" != "x"; then
341 AFS_SYSNAME="$with_afs_sysname"
343 AC_MSG_CHECKING(your AFS sysname)
345 i386-unknown-openbsd3.1)
346 AFS_SYSNAME="i386_obsd31"
348 i386-unknown-openbsd3.2)
349 AFS_SYSNAME="i386_obsd32"
352 AFS_SYSNAME="i386_fbsd_42"
355 AFS_SYSNAME="i386_fbsd_43"
358 AFS_SYSNAME="i386_fbsd_44"
361 AFS_SYSNAME="i386_fbsd_45"
364 AFS_SYSNAME="i386_fbsd_46"
367 AFS_SYSNAME="i386_fbsd_47"
370 AFS_SYSNAME="i386_fbsd_50"
373 AFS_PARAM_COMMON=param.nbsd15.h
374 AFS_SYSNAME="i386_nbsd15"
377 AFS_PARAM_COMMON=param.nbsd15.h
378 AFS_SYSNAME="alpha_nbsd15"
380 i?86-*-netbsd*1.6[[M-Z]]*)
381 AFS_PARAM_COMMON=param.nbsd20.h
382 AFS_SYSNAME="i386_nbsd20"
384 powerpc-*-netbsd*1.6[[M-Z]]*)
385 AFS_PARAM_COMMON=param.nbsd20.h
386 AFS_SYSNAME="ppc_nbsd20"
389 AFS_PARAM_COMMON=param.nbsd20.h
390 AFS_SYSNAME="i386_nbsd20"
392 powerpc-*-netbsd*2.0*)
393 AFS_PARAM_COMMON=param.nbsd20.h
394 AFS_SYSNAME="ppc_nbsd20"
397 AFS_PARAM_COMMON=param.nbsd16.h
398 AFS_SYSNAME="i386_nbsd16"
401 AFS_PARAM_COMMON=param.nbsd16.h
402 AFS_SYSNAME="alpha_nbsd16"
404 powerpc-*-netbsd*1.6*)
405 AFS_PARAM_COMMON=param.nbsd16.h
406 AFS_SYSNAME="ppc_nbsd16"
409 AFS_SYSNAME="hp_ux110"
412 AFS_SYSNAME="hp_ux11i"
415 AFS_SYSNAME="ia64_hpux1122"
418 AFS_SYSNAME="hp_ux102"
420 powerpc-apple-darwin1.2*)
421 AFS_SYSNAME="ppc_darwin_12"
423 powerpc-apple-darwin1.3*)
424 AFS_SYSNAME="ppc_darwin_13"
426 powerpc-apple-darwin1.4*)
427 AFS_SYSNAME="ppc_darwin_14"
429 powerpc-apple-darwin5.1*)
430 AFS_SYSNAME="ppc_darwin_14"
432 powerpc-apple-darwin5.2*)
433 AFS_SYSNAME="ppc_darwin_14"
435 powerpc-apple-darwin5.3*)
436 AFS_SYSNAME="ppc_darwin_14"
438 powerpc-apple-darwin5.4*)
439 AFS_SYSNAME="ppc_darwin_14"
441 powerpc-apple-darwin5.5*)
442 AFS_SYSNAME="ppc_darwin_14"
444 powerpc-apple-darwin6.0*)
445 AFS_SYSNAME="ppc_darwin_60"
447 powerpc-apple-darwin6.1*)
448 AFS_SYSNAME="ppc_darwin_60"
450 powerpc-apple-darwin6.2*)
451 AFS_SYSNAME="ppc_darwin_60"
453 powerpc-apple-darwin6.3*)
454 AFS_SYSNAME="ppc_darwin_60"
456 powerpc-apple-darwin6.4*)
457 AFS_SYSNAME="ppc_darwin_60"
459 powerpc-apple-darwin6.5*)
460 AFS_SYSNAME="ppc_darwin_60"
462 sparc-sun-solaris2.5*)
463 AFS_SYSNAME="sun4x_55"
465 sparc-sun-solaris2.6)
466 AFS_SYSNAME="sun4x_56"
468 sparc-sun-solaris2.7)
469 AFS_SYSNAME="sun4x_57"
471 sparc-sun-solaris2.8)
472 AFS_SYSNAME="sun4x_58"
474 sparc-sun-solaris2.9)
475 AFS_SYSNAME="sun4x_59"
478 AFS_SYSNAME="sun4_413"
481 AFS_SYSNAME="sunx86_57"
484 AFS_SYSNAME="sunx86_58"
487 AFS_SYSNAME="sunx86_59"
490 AFS_SYSNAME="alpha_dux40"
493 AFS_SYSNAME="alpha_dux50"
496 AFS_SYSNAME="alpha_dux51"
502 AFS_SYSNAME="ia64_linuxXX"
505 AFS_SYSNAME="ppc_linuxXX"
508 AFS_SYSNAME="alpha_linux_XX"
511 AFS_SYSNAME="s390_linuxXX"
514 AFS_SYSNAME="sparc_linuxXX"
517 AFS_SYSNAME="sparc64_linuxXX"
520 AFS_SYSNAME="i386_linuxXX"
523 AFS_SYSNAME="parisc_linuxXX"
526 AFS_SYSNAME="rs_aix42"
529 AFS_SYSNAME="rs_aix42"
532 AFS_SYSNAME="amd64_linuxXX"
535 AC_MSG_ERROR(An AFS sysname is required)
541 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
542 if test "x${AFS_SYSKVERS}" = "x"; then
543 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
545 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
546 AFS_SYSNAME="$_AFS_SYSNAME"
547 AFS_ISUML=`echo $LINUX_VERSION | awk 'BEGIN {FS="-[[0-9]]+"} {print $[]2}'`
548 if test "x${AFS_ISUML}" = "xum"; then
549 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
551 AFS_SYSNAME="$_AFS_SYSNAME"
554 AC_MSG_RESULT($AFS_SYSNAME)
559 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
560 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
561 dnl the test below fails on darwin, even if the CPPFLAGS below
562 dnl are added. the headers from Kernel.Framework must be used
563 dnl when KERNEL is defined.
565 dnl really, such a thing isn't guaranteed to work on any
566 dnl platform until the kernel cflags from MakefileProto are
567 dnl known to configure
568 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
571 AC_MSG_CHECKING(for definition of struct buf)
572 dnl save_CPPFLAGS="$CPPFLAGS"
573 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
574 AC_CACHE_VAL(ac_cv_have_struct_buf, [
575 ac_cv_have_struct_buf=no
577 [#include <sys/buf.h>],
579 printf("%d\n", sizeof(x));],
580 ac_cv_have_struct_buf=yes,)
583 dnl CPPFLAGS="$save_CPPFLAGS"
584 AC_MSG_RESULT($ac_cv_have_struct_buf)
585 if test "$ac_cv_have_struct_buf" = yes; then
586 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
592 AC_CACHE_VAL(ac_cv_sockaddr_len,
594 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
595 AC_TRY_COMPILE( [#include <sys/types.h>
596 #include <sys/socket.h>],
598 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
599 AC_MSG_RESULT($ac_cv_sockaddr_len)])
600 if test "$ac_cv_sockaddr_len" = "yes"; then
601 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
603 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
604 echo Skipping library tests because they confuse Irix.
606 AC_CHECK_FUNCS(socket)
608 if test "$ac_cv_func_socket" = no; then
609 for lib in socket inet; do
610 if test "$HAVE_SOCKET" != 1; then
611 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
616 AC_CHECK_FUNCS(connect)
618 if test "$ac_cv_func_connect" = no; then
620 if test "$HAVE_CONNECT" != 1; then
621 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
626 AC_CHECK_FUNCS(gethostbyname)
627 if test "$ac_cv_func_gethostbyname" = no; then
628 for lib in dns nsl resolv; do
629 if test "$HAVE_GETHOSTBYNAME" != 1; then
630 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
635 openafs_save_libs="$LIBS"
636 AC_MSG_CHECKING([for res_search])
639 if test "$ac_cv_func_res_search" = no; then
640 for lib in dns nsl resolv; do
641 if test "$ac_cv_func_res_search" != yes; then
644 LIBS="$openafs_save_libs"
647 if test "$ac_cv_func_res_search" = yes; then
648 LIB_res_search="-l$lib"
649 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
650 AC_MSG_RESULT([yes, in lib$lib])
655 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
662 AC_CHECK_LIB(pthread, pthread_attr_init,
663 PTHREAD_LIBS="-lpthread")
664 if test "x$PTHREAD_LIBS" = xerror; then
665 AC_CHECK_LIB(pthreads, pthread_attr_init,
666 PTHREAD_LIBS="-lpthreads")
668 if test "x$PTHREAD_LIBS" = xerror; then
669 AC_CHECK_LIB(c_r, pthread_attr_init,
670 PTHREAD_LIBS="-lc_r")
672 if test "x$PTHREAD_LIBS" = xerror; then
673 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
675 if test "x$PTHREAD_LIBS" = xerror; then
676 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
678 AC_SUBST(PTHREAD_LIBS)
681 if test "$enable_obsolete" = "yes"; then
686 if test "$enable_insecure" = "yes"; then
691 if test "$enable_supergroups" = "yes"; then
692 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
695 if test "$enable_fast_restart" = "yes"; then
696 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
699 if test "$enable_bitmap_later" = "yes"; then
700 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
703 if test "$enable_full_vos_listvol_switch" = "yes"; then
704 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
707 if test "$enable_bos_restricted_mode" = "yes"; then
708 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
711 if test "$enable_bos_new_config" = "yes"; then
712 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
715 if test "$enable_namei_fileserver" = "yes"; then
716 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
719 if test "$enable_afsdb" = "yes"; then
720 LIB_AFSDB="$LIB_res_search"
721 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
725 AC_MSG_CHECKING(for tivoli tsm butc support)
727 if test "$enable_tivoli_tsm" = "yes"; then
728 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
729 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
731 if test -e "$XBSADIR1/xbsa.h"; then
732 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
733 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
734 elif test -e "$XBSADIR2/xbsa.h"; then
735 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
736 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
738 AC_MSG_RESULT([no, missing xbsa.h header file])
743 AC_SUBST(XBSA_CFLAGS)
745 dnl checks for header files.
749 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
750 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
751 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h)
752 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
753 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h)
754 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h)
756 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf re_comp re_exec)
757 AC_CHECK_FUNCS(setprogname getprogname sigaction)
758 AC_CHECK_TYPE(ssize_t, int)
761 AC_CHECK_FUNCS(timegm)
763 dnl Directory PATH handling
764 if test "x$enable_transarc_paths" = "xyes" ; then
765 afsconfdir=${afsconfdir=/usr/afs/etc}
766 viceetcdir=${viceetcdir=/usr/vice/etc}
767 afskerneldir=${afskerneldir=${viceetcdir}}
768 afssrvbindir=${afssrvbindir=/usr/afs/bin}
769 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
770 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
771 afsdbdir=${afsdbdir=/usr/afs/db}
772 afslogsdir=${afslogsdir=/usr/afs/logs}
773 afslocaldir=${afslocaldir=/usr/afs/local}
774 afsbackupdir=${afsbackupdir=/usr/afs/backup}
775 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
777 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
778 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
779 afskerneldir=${afskerneldir='${libdir}/openafs'}
780 afssrvbindir=${afssrvbindir='${bindir}'}
781 afssrvsbindir=${afssrvsbindir='${sbindir}'}
782 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
783 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
784 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
785 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
786 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
787 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
791 AC_SUBST(afskerneldir)
792 AC_SUBST(afssrvbindir)
793 AC_SUBST(afssrvsbindir)
794 AC_SUBST(afssrvlibexecdir)
797 AC_SUBST(afslocaldir)
798 AC_SUBST(afsbackupdir)
799 AC_SUBST(afsbosconfigdir)
801 if test "x$enable_kernel_module" = "xyes"; then
802 ENABLE_KERNEL_MODULE=libafs
805 AC_SUBST(AFS_SYSNAME)
806 AC_SUBST(AFS_PARAM_COMMON)
807 AC_SUBST(ENABLE_KERNEL_MODULE)
809 AC_SUBST(LINUX_KERNEL_PATH)
810 AC_SUBST(LINUX_VERSION)
811 AC_SUBST(MKAFS_OSTYPE)
817 AC_SUBST(WITH_OBSOLETE)
818 AC_SUBST(WITH_INSECURE)
819 AC_SUBST(DARWIN_INFOFILE)
820 AC_SUBST(IRIX_BUILD_IP35)
824 TOP_SRCDIR="${srcdir}/src"
826 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
832 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
836 TOP_OBJDIR="${SRCDIR_PARENT}"
837 TOP_INCDIR="${SRCDIR_PARENT}/include"
838 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
839 if test "${DEST}x" = "x"; then
840 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"