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( largefile-fileserver,
27 [ --enable-largefile-fileserver enable large file support in fileserver],, enable_largefile_fileserver="no")
28 AC_ARG_ENABLE( namei-fileserver,
29 [ --enable-namei-fileserver force compilation of namei fileserver in preference to inode fileserver],, enable_namei_fileserver="no")
30 AC_ARG_ENABLE( supergroups,
31 [ --enable-supergroups enable support for nested pts groups],, enable_supergroups="no")
32 AC_ARG_ENABLE( fast-restart,
33 [ --enable-fast-restart enable fast startup of file server without salvaging],, enable_fast_restart="no")
34 AC_ARG_ENABLE( bitmap-later,
35 [ --enable-bitmap-later enable fast startup of file server by not reading bitmap till needed],, enable_bitmap_later="no")
36 AC_ARG_ENABLE( full-vos-listvol-switch,
37 [ --disable-full-vos-listvol-switch disable vos full listvol switch for formatted output],, enable_full_vos_listvol_switch="yes")
38 AC_ARG_WITH(dux-kernel-headers,
39 [ --with-dux-kernel-headers=path use the kernel headers found at path(optional, defaults to first match in /usr/sys)]
41 AC_ARG_WITH(linux-kernel-headers,
42 [ --with-linux-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/linux)]
44 AC_ARG_WITH(bsd-kernel-headers,
45 [ --with-bsd-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/sys)]
47 AC_ARG_WITH(bsd-kernel-build,
48 [ --with-bsd-kernel-build=path use the kernel build found at path(optional, defaults to KSRC/i386/compile/GENERIC)]
50 AC_ARG_ENABLE(kernel-module,
51 [ --disable-kernel-module disable compilation of the kernel module (defaults to enabled)],, enable_kernel_module="yes"
53 AC_ARG_ENABLE(redhat-buildsys,
54 [ --enable-redhat-buildsys enable compilation of the redhat build system kernel (defaults to disabled)],, enable_redhat_buildsys="no"
56 AC_ARG_ENABLE(transarc-paths,
57 [ --enable-transarc-paths Use Transarc style paths like /usr/afs and /usr/vice],, enable_transarc_paths="no"
59 AC_ARG_ENABLE(tivoli-tsm,
60 [ --enable-tivoli-tsm Enable use of the Tivoli TSM API libraries for butc support],, enable_tivoli_tsm="no"
62 AC_ARG_ENABLE(debug-kernel,
63 [ --enable-debug-kernel enable compilation of the kernel module with debugging information (defaults to disabled)],, enable_debug_kernel="no"
65 AC_ARG_ENABLE(optimize-kernel,
66 [ --disable-optimize-kernel disable compilation of the kernel module with optimization (defaults based on platform)],, enable_optimize_kernel="yes"
69 [ --enable-debug enable compilation of the user space code with debugging information (defaults to disabled)],, enable_debug="no"
71 AC_ARG_ENABLE(optimize,
72 [ --disable-optimize disable optimization for compilation of the user space code (defaults to enabled)],, enable_optimize="yes"
74 AC_ARG_ENABLE(debug-lwp,
75 [ --enable-debug-lwp enable compilation of the LWP code with debugging information (defaults to disabled)],, enable_debug_lwp="no"
77 AC_ARG_ENABLE(optimize-lwp,
78 [ --disable-optimize-lwp disable optimization for compilation of the LWP code (defaults to enabled)],, enable_optimize_lwp="yes"
86 dnl Various compiler setup.
91 dnl Checks for programs.
98 OPENAFS_CHECK_BIGENDIAN
100 AC_MSG_CHECKING(your OS)
105 if test "x$enable_redhat_buildsys" = "xyes"; then
106 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
108 if test "x$enable_kernel_module" = "xyes"; then
109 if test "x$with_linux_kernel_headers" != "x"; then
110 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
112 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
113 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
114 LINUX_KERNEL_PATH="/usr/src/linux"
117 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
118 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
119 if test "x$linux_kvers" = "x"; then
120 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
121 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
122 if test "x$linux_kvers" = "x"; then
124 AC_MSG_ERROR(Linux headers lack version definition [2])
127 LINUX_VERSION="$linux_kvers"
130 AC_MSG_ERROR(Linux headers lack version definition)
134 LINUX_VERSION="$linux_kvers"
137 enable_kernel_module="no"
139 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
140 enable_kernel_module="no"
142 if test "x$enable_kernel_module" = "xno"; then
143 if test "x$with_linux_kernel_headers" != "x"; then
144 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
147 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
152 if test "x$enable_kernel_module" = "xyes"; then
153 if test "x$enable_debug_kernel" = "xno"; then
154 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
156 OPENAFS_GCC_SUPPORTS_MARCH
157 AC_SUBST(P5PLUS_KOPTS)
158 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
159 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
160 OPENAFS_GCC_SUPPORTS_NO_COMMON
161 OPENAFS_GCC_SUPPORTS_PIPE
162 AC_SUBST(LINUX_GCC_KOPTS)
163 ifdef([OPENAFS_CONFIGURE_LIBAFS],
164 [LINUX_BUILD_VNODE_FROM_INODE(src/config,afs)],
165 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
167 LINUX_COMPLETION_H_EXISTS
168 LINUX_DEFINES_FOR_EACH_PROCESS
169 LINUX_DEFINES_PREV_TASK
170 LINUX_EXPORTS_TASKLIST_LOCK
171 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
172 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
173 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
174 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
175 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
176 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
177 LINUX_INODE_SETATTR_RETURN_TYPE
178 LINUX_KERNEL_LINUX_SYSCALL_H
180 LINUX_RECALC_SIGPENDING_ARG_TYPE
181 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
182 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
183 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
184 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
185 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
187 if test "x$ac_cv_linux_config_modversions" = "xno"; then
188 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it's exported])
189 ac_cv_linux_exports_sys_call_table=yes
190 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
191 ac_cv_linux_exports_ia32_sys_call_table=yes
194 LINUX_EXPORTS_INIT_MM
195 LINUX_EXPORTS_KALLSYMS_ADDRESS
196 LINUX_EXPORTS_KALLSYMS_SYMBOL
197 LINUX_EXPORTS_SYS_CALL_TABLE
198 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
199 LINUX_EXPORTS_SYS_CHDIR
200 LINUX_EXPORTS_SYS_CLOSE
201 LINUX_EXPORTS_SYS_WAIT4
202 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
203 linux_syscall_method=none
204 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
205 linux_syscall_method=scan
206 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
207 linux_syscall_method=scan_with_kallsyms_address
210 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
211 linux_syscall_method=kallsyms_symbol
213 if test "x$linux_syscall_method" = "xnone"; then
214 AC_MSG_ERROR([no available sys_call_table access method])
218 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
219 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
221 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
222 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
224 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
225 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
227 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
228 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock])
230 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
231 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
233 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
234 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
236 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
237 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
239 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
240 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
242 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
243 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
245 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
246 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
248 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
249 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
251 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
252 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
254 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
255 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
257 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
258 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
260 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
261 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
263 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
264 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
266 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
267 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
269 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
270 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
272 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
273 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
275 if test "x$ac_linux_syscall" = "xyes" ; then
276 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
278 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
279 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
281 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
282 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
284 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
285 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
287 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
288 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
290 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
291 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
299 SOLARIS_UFSVFS_HAS_DQRWLOCK
300 SOLARIS_PROC_HAS_P_COREFILE
301 SOLARIS_FS_HAS_FS_ROLLED
305 enable_kernel_module=no
313 if test -d /usr/include/sys/SN/SN1; then
314 IRIX_BUILD_IP35="IP35"
321 AC_MSG_RESULT(rs_aix)
325 AC_MSG_RESULT(alpha_dux)
326 if test "x$enable_kernel_module" = "xyes"; then
327 if test "x$with_dux_kernel_headers" != "x"; then
328 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
330 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
333 if test "$HEADER_RT" = "*" ; then
334 AC_MSG_ERROR([Need a configured kernel directory])
336 AC_SUBST([HEADER_RT])
340 AC_MSG_RESULT(ppc_darwin)
344 AC_MSG_RESULT(i386_fbsd)
352 AC_MSG_RESULT(i386_obsd)
355 AC_MSG_RESULT($system)
359 if test "x$with_afs_sysname" != "x"; then
360 AFS_SYSNAME="$with_afs_sysname"
362 AC_MSG_CHECKING(your AFS sysname)
364 i386-unknown-openbsd3.1)
365 AFS_SYSNAME="i386_obsd31"
367 i386-unknown-openbsd3.2)
368 AFS_SYSNAME="i386_obsd32"
370 i386-unknown-openbsd3.3)
371 AFS_SYSNAME="i386_obsd33"
373 i386-unknown-openbsd3.4)
374 AFS_SYSNAME="i386_obsd34"
377 AFS_SYSNAME="i386_fbsd_42"
380 AFS_SYSNAME="i386_fbsd_43"
383 AFS_SYSNAME="i386_fbsd_44"
386 AFS_SYSNAME="i386_fbsd_45"
389 AFS_SYSNAME="i386_fbsd_46"
392 AFS_SYSNAME="i386_fbsd_47"
395 AFS_SYSNAME="i386_fbsd_50"
398 AFS_SYSNAME="i386_fbsd_51"
401 AFS_SYSNAME="i386_fbsd_52"
404 AFS_PARAM_COMMON=param.nbsd15.h
405 AFS_SYSNAME="i386_nbsd15"
408 AFS_PARAM_COMMON=param.nbsd15.h
409 AFS_SYSNAME="alpha_nbsd15"
411 i?86-*-netbsd*1.6[[M-Z]]*)
412 AFS_PARAM_COMMON=param.nbsd20.h
413 AFS_SYSNAME="i386_nbsd20"
415 powerpc-*-netbsd*1.6[[M-Z]]*)
416 AFS_PARAM_COMMON=param.nbsd20.h
417 AFS_SYSNAME="ppc_nbsd20"
420 AFS_PARAM_COMMON=param.nbsd20.h
421 AFS_SYSNAME="i386_nbsd20"
423 powerpc-*-netbsd*2.0*)
424 AFS_PARAM_COMMON=param.nbsd20.h
425 AFS_SYSNAME="ppc_nbsd20"
428 AFS_PARAM_COMMON=param.nbsd16.h
429 AFS_SYSNAME="i386_nbsd16"
432 AFS_PARAM_COMMON=param.nbsd16.h
433 AFS_SYSNAME="alpha_nbsd16"
435 powerpc-*-netbsd*1.6*)
436 AFS_PARAM_COMMON=param.nbsd16.h
437 AFS_SYSNAME="ppc_nbsd16"
440 AFS_SYSNAME="hp_ux110"
443 AFS_SYSNAME="hp_ux11i"
446 AFS_SYSNAME="ia64_hpux1122"
449 AFS_SYSNAME="ia64_hpux1123"
452 AFS_SYSNAME="hp_ux102"
454 powerpc-apple-darwin1.2*)
455 AFS_SYSNAME="ppc_darwin_12"
457 powerpc-apple-darwin1.3*)
458 AFS_SYSNAME="ppc_darwin_13"
460 powerpc-apple-darwin1.4*)
461 AFS_SYSNAME="ppc_darwin_14"
463 powerpc-apple-darwin5.1*)
464 AFS_SYSNAME="ppc_darwin_14"
466 powerpc-apple-darwin5.2*)
467 AFS_SYSNAME="ppc_darwin_14"
469 powerpc-apple-darwin5.3*)
470 AFS_SYSNAME="ppc_darwin_14"
472 powerpc-apple-darwin5.4*)
473 AFS_SYSNAME="ppc_darwin_14"
475 powerpc-apple-darwin5.5*)
476 AFS_SYSNAME="ppc_darwin_14"
478 powerpc-apple-darwin6.0*)
479 AFS_SYSNAME="ppc_darwin_60"
481 powerpc-apple-darwin6.1*)
482 AFS_SYSNAME="ppc_darwin_60"
484 powerpc-apple-darwin6.2*)
485 AFS_SYSNAME="ppc_darwin_60"
487 powerpc-apple-darwin6.3*)
488 AFS_SYSNAME="ppc_darwin_60"
490 powerpc-apple-darwin6.4*)
491 AFS_SYSNAME="ppc_darwin_60"
493 powerpc-apple-darwin6.5*)
494 AFS_SYSNAME="ppc_darwin_60"
496 sparc-sun-solaris2.5*)
497 AFS_SYSNAME="sun4x_55"
499 sparc-sun-solaris2.6)
500 AFS_SYSNAME="sun4x_56"
502 sparc-sun-solaris2.7)
503 AFS_SYSNAME="sun4x_57"
505 sparc-sun-solaris2.8)
506 AFS_SYSNAME="sun4x_58"
508 sparc-sun-solaris2.9)
509 AFS_SYSNAME="sun4x_59"
512 AFS_SYSNAME="sun4_413"
515 AFS_SYSNAME="sunx86_57"
518 AFS_SYSNAME="sunx86_58"
521 AFS_SYSNAME="sunx86_59"
524 AFS_SYSNAME="alpha_dux40"
527 AFS_SYSNAME="alpha_dux50"
530 AFS_SYSNAME="alpha_dux51"
536 AFS_SYSNAME="ia64_linuxXX"
539 AFS_SYSNAME="ppc_linuxXX"
542 AFS_SYSNAME="ppc64_linuxXX"
545 AFS_SYSNAME="alpha_linux_XX"
548 AFS_SYSNAME="s390_linuxXX"
551 AFS_SYSNAME="sparc_linuxXX"
554 AFS_SYSNAME="sparc64_linuxXX"
557 AFS_SYSNAME="i386_linuxXX"
560 AFS_SYSNAME="parisc_linuxXX"
563 AFS_SYSNAME="rs_aix42"
566 AFS_SYSNAME="rs_aix42"
569 AFS_SYSNAME="rs_aix51"
572 AFS_SYSNAME="rs_aix52"
575 AFS_SYSNAME="amd64_linuxXX"
578 AC_MSG_ERROR(An AFS sysname is required)
584 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
585 if test "x${AFS_SYSKVERS}" = "x"; then
586 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
588 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
589 AFS_SYSNAME="$_AFS_SYSNAME"
590 save_CPPFLAGS="$CPPFLAGS"
591 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
593 [#include <linux/autoconf.h>],
594 [#ifndef CONFIG_USERMODE
597 ac_cv_linux_is_uml=yes,)
598 if test "${ac_cv_linux_is_uml}" = yes; then
599 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
601 CPPFLAGS="$save_CPPFLAGS"
602 AFS_SYSNAME="$_AFS_SYSNAME"
605 AC_MSG_RESULT($AFS_SYSNAME)
608 # KDUMP64 defaults to KDUMP for systems without a separate kdump64
614 sun4x_5[[789]] | hp_ux11*)
618 KDUMP='kdump-${LINUX_VERSION}';;
625 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
626 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
627 dnl the test below fails on darwin, even if the CPPFLAGS below
628 dnl are added. the headers from Kernel.Framework must be used
629 dnl when KERNEL is defined.
631 dnl really, such a thing isn't guaranteed to work on any
632 dnl platform until the kernel cflags from MakefileProto are
633 dnl known to configure
634 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
637 AC_MSG_CHECKING(for definition of struct buf)
638 dnl save_CPPFLAGS="$CPPFLAGS"
639 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
640 AC_CACHE_VAL(ac_cv_have_struct_buf, [
641 ac_cv_have_struct_buf=no
643 [#include <sys/buf.h>],
645 printf("%d\n", sizeof(x));],
646 ac_cv_have_struct_buf=yes,)
649 dnl CPPFLAGS="$save_CPPFLAGS"
650 AC_MSG_RESULT($ac_cv_have_struct_buf)
651 if test "$ac_cv_have_struct_buf" = yes; then
652 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
658 AC_CACHE_VAL(ac_cv_sockaddr_len,
660 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
661 AC_TRY_COMPILE( [#include <sys/types.h>
662 #include <sys/socket.h>],
664 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
665 AC_MSG_RESULT($ac_cv_sockaddr_len)])
666 if test "$ac_cv_sockaddr_len" = "yes"; then
667 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
669 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
670 echo Skipping library tests because they confuse Irix.
672 AC_CHECK_FUNCS(socket)
674 if test "$ac_cv_func_socket" = no; then
675 for lib in socket inet; do
676 if test "$HAVE_SOCKET" != 1; then
677 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
682 AC_CHECK_FUNCS(connect)
684 if test "$ac_cv_func_connect" = no; then
686 if test "$HAVE_CONNECT" != 1; then
687 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
692 AC_CHECK_FUNCS(gethostbyname)
693 if test "$ac_cv_func_gethostbyname" = no; then
694 for lib in dns nsl resolv; do
695 if test "$HAVE_GETHOSTBYNAME" != 1; then
696 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
701 dnl darwin wants it, aix hates it
702 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
706 #include <sys/types.h>
707 #include <sys/socket.h>
708 #include <netinet/in.h>
709 #include <arpa/inet.h>
710 #include <arpa/nameser.h>
711 #include <arpa/nameser_compat.h>
713 ], [static int i; i = 0;],
715 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
719 openafs_save_libs="$LIBS"
720 AC_MSG_CHECKING([for res_search])
723 if test "$ac_cv_func_res_search" = no; then
724 for lib in dns nsl resolv; do
725 if test "$ac_cv_func_res_search" != yes; then
728 LIBS="$openafs_save_libs"
731 if test "$ac_cv_func_res_search" = yes; then
732 LIB_res_search="-l$lib"
733 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
734 AC_MSG_RESULT([yes, in lib$lib])
739 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
746 AC_CHECK_LIB(pthread, pthread_attr_init,
747 PTHREAD_LIBS="-lpthread")
748 if test "x$PTHREAD_LIBS" = xerror; then
749 AC_CHECK_LIB(pthreads, pthread_attr_init,
750 PTHREAD_LIBS="-lpthreads")
752 if test "x$PTHREAD_LIBS" = xerror; then
753 AC_CHECK_LIB(c_r, pthread_attr_init,
754 PTHREAD_LIBS="-lc_r")
756 if test "x$PTHREAD_LIBS" = xerror; then
757 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
759 if test "x$PTHREAD_LIBS" = xerror; then
760 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
762 AC_SUBST(PTHREAD_LIBS)
765 if test "$enable_obsolete" = "yes"; then
770 if test "$enable_insecure" = "yes"; then
774 if test "x$with_bsd_kernel_headers" != "x"; then
775 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
777 BSD_KERNEL_PATH="/usr/src/sys"
780 if test "x$with_bsd_kernel_build" != "x"; then
781 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
785 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
788 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/i386/compile/GENERIC"
794 if test "$enable_supergroups" = "yes"; then
795 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
798 if test "$enable_fast_restart" = "yes"; then
799 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
802 if test "$enable_bitmap_later" = "yes"; then
803 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
806 if test "$enable_full_vos_listvol_switch" = "yes"; then
807 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
810 if test "$enable_bos_restricted_mode" = "yes"; then
811 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
814 if test "$enable_bos_new_config" = "yes"; then
815 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
818 if test "$enable_largefile_fileserver" = "yes"; then
819 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
822 if test "$enable_namei_fileserver" = "yes"; then
823 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
826 if test "$enable_afsdb" = "yes"; then
827 LIB_AFSDB="$LIB_res_search"
828 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
832 AC_MSG_CHECKING(for tivoli tsm butc support)
834 if test "$enable_tivoli_tsm" = "yes"; then
835 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
836 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
838 if test -e "$XBSADIR1/xbsa.h"; then
839 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
840 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
841 elif test -e "$XBSADIR2/xbsa.h"; then
842 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
843 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
845 AC_MSG_RESULT([no, missing xbsa.h header file])
850 AC_SUBST(XBSA_CFLAGS)
852 dnl checks for header files.
856 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
857 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
858 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
859 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
860 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
861 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h)
863 if test "$ac_cv_header_security_pam_modules_h" = "yes"; then
870 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
871 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror)
873 AC_CHECK_FUNCS(regcomp regexec regerror)
874 AC_MSG_CHECKING([for POSIX regex library])
875 if test "$ac_cv_header_regex_h" = "yes" && \
876 test "$ac_cv_func_regcomp" = "yes" && \
877 test "$ac_cv_func_regexec" = "yes" && \
878 test "$ac_cv_func_regerror" = "yes"; then
879 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
885 AC_CHECK_TYPE(ssize_t, int)
888 AC_CHECK_FUNCS(timegm)
890 dnl Directory PATH handling
891 if test "x$enable_transarc_paths" = "xyes" ; then
892 afsconfdir=${afsconfdir=/usr/afs/etc}
893 viceetcdir=${viceetcdir=/usr/vice/etc}
894 afskerneldir=${afskerneldir=${viceetcdir}}
895 afssrvbindir=${afssrvbindir=/usr/afs/bin}
896 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
897 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
898 afsdbdir=${afsdbdir=/usr/afs/db}
899 afslogsdir=${afslogsdir=/usr/afs/logs}
900 afslocaldir=${afslocaldir=/usr/afs/local}
901 afsbackupdir=${afsbackupdir=/usr/afs/backup}
902 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
904 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
905 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
906 afskerneldir=${afskerneldir='${libdir}/openafs'}
907 afssrvbindir=${afssrvbindir='${bindir}'}
908 afssrvsbindir=${afssrvsbindir='${sbindir}'}
909 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
910 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
911 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
912 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
913 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
914 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
918 AC_SUBST(afskerneldir)
919 AC_SUBST(afssrvbindir)
920 AC_SUBST(afssrvsbindir)
921 AC_SUBST(afssrvlibexecdir)
924 AC_SUBST(afslocaldir)
925 AC_SUBST(afsbackupdir)
926 AC_SUBST(afsbosconfigdir)
928 if test "x$enable_kernel_module" = "xyes"; then
929 ENABLE_KERNEL_MODULE=libafs
932 AC_SUBST(AFS_SYSNAME)
933 AC_SUBST(AFS_PARAM_COMMON)
934 AC_SUBST(ENABLE_KERNEL_MODULE)
936 AC_SUBST(LINUX_KERNEL_PATH)
937 AC_SUBST(BSD_KERNEL_PATH)
938 AC_SUBST(BSD_KERNEL_BUILD)
939 AC_SUBST(LINUX_VERSION)
940 AC_SUBST(MKAFS_OSTYPE)
946 AC_SUBST(WITH_OBSOLETE)
947 AC_SUBST(WITH_INSECURE)
948 AC_SUBST(DARWIN_INFOFILE)
949 AC_SUBST(IRIX_BUILD_IP35)
953 TOP_SRCDIR="${srcdir}/src"
955 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
961 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
965 TOP_OBJDIR="${SRCDIR_PARENT}"
966 TOP_INCDIR="${SRCDIR_PARENT}/include"
967 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
968 if test "${DEST}x" = "x"; then
969 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
972 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
973 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
974 AC_SUBST(HELPER_SPLINT)
975 AC_SUBST(HELPER_SPLINTCFG)