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")
23 [ --disable-pam disable PAM support],, enable_pam="yes")
24 AC_ARG_ENABLE( bos-restricted-mode,
25 [ --enable-bos-restricted-mode enable bosserver restricted mode which disables certain bosserver functionality],, enable_bos_restricted_mode="no")
26 AC_ARG_ENABLE( bos-new-config,
27 [ --enable-bos-new-config enable bosserver pickup of BosConfig.new on restarts],, enable_bos_new_config="no")
28 AC_ARG_ENABLE( largefile-fileserver,
29 [ --enable-largefile-fileserver enable large file support in fileserver],, enable_largefile_fileserver="no")
30 AC_ARG_ENABLE( namei-fileserver,
31 [ --enable-namei-fileserver force compilation of namei fileserver in preference to inode fileserver],, enable_namei_fileserver="no")
32 AC_ARG_ENABLE( supergroups,
33 [ --enable-supergroups enable support for nested pts groups],, enable_supergroups="no")
34 AC_ARG_ENABLE( fast-restart,
35 [ --enable-fast-restart enable fast startup of file server without salvaging],, enable_fast_restart="no")
36 AC_ARG_ENABLE( bitmap-later,
37 [ --enable-bitmap-later enable fast startup of file server by not reading bitmap till needed],, enable_bitmap_later="no")
38 AC_ARG_ENABLE( full-vos-listvol-switch,
39 [ --disable-full-vos-listvol-switch disable vos full listvol switch for formatted output],, enable_full_vos_listvol_switch="yes")
40 AC_ARG_WITH(dux-kernel-headers,
41 [ --with-dux-kernel-headers=path use the kernel headers found at path(optional, defaults to first match in /usr/sys)]
43 AC_ARG_WITH(linux-kernel-headers,
44 [ --with-linux-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/linux-2.4, then /usr/src/linux)]
46 AC_ARG_WITH(bsd-kernel-headers,
47 [ --with-bsd-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/sys)]
49 AC_ARG_WITH(bsd-kernel-build,
50 [ --with-bsd-kernel-build=path use the kernel build found at path(optional, defaults to KSRC/i386/compile/GENERIC)]
52 AC_ARG_ENABLE(kernel-module,
53 [ --disable-kernel-module disable compilation of the kernel module (defaults to enabled)],, enable_kernel_module="yes"
55 AC_ARG_ENABLE(redhat-buildsys,
56 [ --enable-redhat-buildsys enable compilation of the redhat build system kernel (defaults to disabled)],, enable_redhat_buildsys="no"
58 AC_ARG_ENABLE(transarc-paths,
59 [ --enable-transarc-paths Use Transarc style paths like /usr/afs and /usr/vice],, enable_transarc_paths="no"
61 AC_ARG_ENABLE(tivoli-tsm,
62 [ --enable-tivoli-tsm Enable use of the Tivoli TSM API libraries for butc support],, enable_tivoli_tsm="no"
64 AC_ARG_ENABLE(debug-kernel,
65 [ --enable-debug-kernel enable compilation of the kernel module with debugging information (defaults to disabled)],, enable_debug_kernel="no"
67 AC_ARG_ENABLE(optimize-kernel,
68 [ --disable-optimize-kernel disable compilation of the kernel module with optimization (defaults based on platform)],, enable_optimize_kernel="yes"
71 [ --enable-debug enable compilation of the user space code with debugging information (defaults to disabled)],, enable_debug="no"
73 AC_ARG_ENABLE(optimize,
74 [ --disable-optimize disable optimization for compilation of the user space code (defaults to enabled)],, enable_optimize="yes"
76 AC_ARG_ENABLE(debug-lwp,
77 [ --enable-debug-lwp enable compilation of the LWP code with debugging information (defaults to disabled)],, enable_debug_lwp="no"
79 AC_ARG_ENABLE(optimize-lwp,
80 [ --disable-optimize-lwp disable optimization for compilation of the LWP code (defaults to enabled)],, enable_optimize_lwp="yes"
90 dnl Various compiler setup.
94 COMPILER_HAS_FUNCTION_MACRO
96 dnl Checks for programs.
103 OPENAFS_CHECK_BIGENDIAN
105 AC_MSG_CHECKING(your OS)
110 if test "x$enable_redhat_buildsys" = "xyes"; then
111 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
113 if test "x$enable_kernel_module" = "xyes"; then
114 if test "x$with_linux_kernel_headers" != "x"; then
115 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
117 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
118 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
119 LINUX_KERNEL_PATH="/usr/src/linux"
122 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
123 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
124 if test "x$linux_kvers" = "x"; then
125 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
126 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
127 if test "x$linux_kvers" = "x"; then
129 AC_MSG_ERROR(Linux headers lack version definition [2])
132 LINUX_VERSION="$linux_kvers"
135 AC_MSG_ERROR(Linux headers lack version definition)
139 LINUX_VERSION="$linux_kvers"
142 enable_kernel_module="no"
144 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
145 enable_kernel_module="no"
147 if test "x$enable_kernel_module" = "xno"; then
148 if test "x$with_linux_kernel_headers" != "x"; then
149 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
152 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
155 dnl do we need to determine SUBARCH from autoconf.h
159 if test "x$enable_kernel_module" = "xyes"; then
160 if test "x$enable_debug_kernel" = "xno"; then
161 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
163 OPENAFS_GCC_SUPPORTS_MARCH
164 AC_SUBST(P5PLUS_KOPTS)
165 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
166 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
167 OPENAFS_GCC_SUPPORTS_NO_COMMON
168 OPENAFS_GCC_SUPPORTS_PIPE
169 AC_SUBST(LINUX_GCC_KOPTS)
170 ifdef([OPENAFS_CONFIGURE_LIBAFS],
171 [LINUX_BUILD_VNODE_FROM_INODE(src/config,afs)],
172 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
174 LINUX_COMPLETION_H_EXISTS
175 LINUX_DEFINES_FOR_EACH_PROCESS
176 LINUX_DEFINES_PREV_TASK
177 LINUX_EXPORTS_TASKLIST_LOCK
178 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
179 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
180 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
181 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
182 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
183 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
184 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
185 LINUX_INODE_SETATTR_RETURN_TYPE
186 LINUX_KERNEL_LINUX_SYSCALL_H
188 LINUX_KERNEL_SOCK_CREATE
190 LINUX_RECALC_SIGPENDING_ARG_TYPE
191 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
192 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
193 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
194 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
195 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
197 if test "x$ac_cv_linux_config_modversions" = "xno"; then
198 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
199 ac_cv_linux_exports_sys_call_table=no
200 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
201 ac_cv_linux_exports_ia32_sys_call_table=yes
204 LINUX_EXPORTS_INIT_MM
205 LINUX_EXPORTS_KALLSYMS_ADDRESS
206 LINUX_EXPORTS_KALLSYMS_SYMBOL
207 LINUX_EXPORTS_SYS_CALL_TABLE
208 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
209 LINUX_EXPORTS_SYS_CHDIR
210 LINUX_EXPORTS_SYS_CLOSE
211 LINUX_EXPORTS_SYS_WAIT4
212 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
213 linux_syscall_method=none
214 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
215 linux_syscall_method=scan
216 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
217 linux_syscall_method=scan_with_kallsyms_address
220 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
221 linux_syscall_method=kallsyms_symbol
223 if test "x$linux_syscall_method" = "xnone"; then
224 AC_MSG_ERROR([no available sys_call_table access method])
228 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
229 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
231 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
232 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
234 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
235 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
237 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
238 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
240 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
241 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
243 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
244 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
246 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
247 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock])
249 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
250 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
252 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
253 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
255 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
256 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
258 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
259 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
261 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
262 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
264 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
265 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
267 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
268 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
270 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
271 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
273 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
274 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
276 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
277 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
279 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
280 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
282 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
283 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
285 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
286 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
288 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
289 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
291 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
292 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
294 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
295 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
297 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
298 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
300 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
301 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
303 if test "x$ac_linux_syscall" = "xyes" ; then
304 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
306 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
307 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
309 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
310 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
312 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
313 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
315 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
316 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
318 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
319 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
327 SOLARIS_UFSVFS_HAS_DQRWLOCK
328 SOLARIS_PROC_HAS_P_COREFILE
329 SOLARIS_FS_HAS_FS_ROLLED
333 enable_kernel_module=no
341 if test -d /usr/include/sys/SN/SN1; then
342 IRIX_BUILD_IP35="IP35"
349 AC_MSG_RESULT(rs_aix)
353 AC_MSG_RESULT(alpha_dux)
354 if test "x$enable_kernel_module" = "xyes"; then
355 if test "x$with_dux_kernel_headers" != "x"; then
356 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
358 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
361 if test "$HEADER_RT" = "*" ; then
362 AC_MSG_ERROR([Need a configured kernel directory])
364 AC_SUBST([HEADER_RT])
368 AC_MSG_RESULT(ppc_darwin)
372 AC_MSG_RESULT(i386_fbsd)
380 AC_MSG_RESULT(i386_obsd)
383 AC_MSG_RESULT($system)
387 if test "x$with_afs_sysname" != "x"; then
388 AFS_SYSNAME="$with_afs_sysname"
390 AC_MSG_CHECKING(your AFS sysname)
393 AFS_SYSNAME="i386_obsd31"
396 AFS_SYSNAME="i386_obsd32"
399 AFS_SYSNAME="i386_obsd33"
402 AFS_SYSNAME="i386_obsd34"
405 AFS_SYSNAME="i386_obsd35"
408 AFS_SYSNAME="i386_obsd36"
411 AFS_SYSNAME="i386_fbsd_42"
414 AFS_SYSNAME="i386_fbsd_43"
417 AFS_SYSNAME="i386_fbsd_44"
420 AFS_SYSNAME="i386_fbsd_45"
423 AFS_SYSNAME="i386_fbsd_46"
426 AFS_SYSNAME="i386_fbsd_47"
429 AFS_SYSNAME="i386_fbsd_50"
432 AFS_SYSNAME="i386_fbsd_51"
435 AFS_SYSNAME="i386_fbsd_52"
438 AFS_SYSNAME="i386_fbsd_53"
441 AFS_PARAM_COMMON=param.nbsd15.h
442 AFS_SYSNAME="i386_nbsd15"
445 AFS_PARAM_COMMON=param.nbsd15.h
446 AFS_SYSNAME="alpha_nbsd15"
448 i?86-*-netbsd*1.6[[M-Z]]*)
449 AFS_PARAM_COMMON=param.nbsd20.h
450 AFS_SYSNAME="i386_nbsd20"
452 powerpc-*-netbsd*1.6[[M-Z]]*)
453 AFS_PARAM_COMMON=param.nbsd20.h
454 AFS_SYSNAME="ppc_nbsd20"
457 AFS_PARAM_COMMON=param.nbsd20.h
458 AFS_SYSNAME="i386_nbsd20"
460 powerpc-*-netbsd*2.0*)
461 AFS_PARAM_COMMON=param.nbsd20.h
462 AFS_SYSNAME="ppc_nbsd20"
465 AFS_PARAM_COMMON=param.nbsd16.h
466 AFS_SYSNAME="i386_nbsd16"
469 AFS_PARAM_COMMON=param.nbsd16.h
470 AFS_SYSNAME="alpha_nbsd16"
472 powerpc-*-netbsd*1.6*)
473 AFS_PARAM_COMMON=param.nbsd16.h
474 AFS_SYSNAME="ppc_nbsd16"
477 AFS_PARAM_COMMON=param.nbsd21.h
478 AFS_SYSNAME="i386_nbsd21"
481 AFS_SYSNAME="hp_ux110"
484 AFS_SYSNAME="hp_ux11i"
487 AFS_SYSNAME="ia64_hpux1122"
490 AFS_SYSNAME="ia64_hpux1123"
493 AFS_SYSNAME="hp_ux102"
495 powerpc-apple-darwin1.2*)
496 AFS_SYSNAME="ppc_darwin_12"
498 powerpc-apple-darwin1.3*)
499 AFS_SYSNAME="ppc_darwin_13"
501 powerpc-apple-darwin1.4*)
502 AFS_SYSNAME="ppc_darwin_14"
504 powerpc-apple-darwin5.1*)
505 AFS_SYSNAME="ppc_darwin_14"
507 powerpc-apple-darwin5.2*)
508 AFS_SYSNAME="ppc_darwin_14"
510 powerpc-apple-darwin5.3*)
511 AFS_SYSNAME="ppc_darwin_14"
513 powerpc-apple-darwin5.4*)
514 AFS_SYSNAME="ppc_darwin_14"
516 powerpc-apple-darwin5.5*)
517 AFS_SYSNAME="ppc_darwin_14"
519 powerpc-apple-darwin6.0*)
520 AFS_SYSNAME="ppc_darwin_60"
522 powerpc-apple-darwin6.1*)
523 AFS_SYSNAME="ppc_darwin_60"
525 powerpc-apple-darwin6.2*)
526 AFS_SYSNAME="ppc_darwin_60"
528 powerpc-apple-darwin6.3*)
529 AFS_SYSNAME="ppc_darwin_60"
531 powerpc-apple-darwin6.4*)
532 AFS_SYSNAME="ppc_darwin_60"
534 powerpc-apple-darwin6.5*)
535 AFS_SYSNAME="ppc_darwin_60"
537 powerpc-apple-darwin7.0*)
538 AFS_SYSNAME="ppc_darwin_70"
540 powerpc-apple-darwin7.1*)
541 AFS_SYSNAME="ppc_darwin_70"
543 powerpc-apple-darwin7.2*)
544 AFS_SYSNAME="ppc_darwin_70"
546 powerpc-apple-darwin7.3*)
547 AFS_SYSNAME="ppc_darwin_70"
549 powerpc-apple-darwin7.4*)
550 AFS_SYSNAME="ppc_darwin_70"
552 powerpc-apple-darwin7.5*)
553 AFS_SYSNAME="ppc_darwin_70"
555 sparc-sun-solaris2.5*)
556 AFS_SYSNAME="sun4x_55"
559 sparc-sun-solaris2.6)
560 AFS_SYSNAME="sun4x_56"
562 sparc-sun-solaris2.7)
563 AFS_SYSNAME="sun4x_57"
565 sparc-sun-solaris2.8)
566 AFS_SYSNAME="sun4x_58"
568 sparc-sun-solaris2.9)
569 AFS_SYSNAME="sun4x_59"
571 sparc-sun-solaris2.10)
572 AFS_SYSNAME="sun4x_510"
575 AFS_SYSNAME="sun4_413"
579 AFS_SYSNAME="sunx86_57"
582 AFS_SYSNAME="sunx86_58"
585 AFS_SYSNAME="sunx86_59"
588 AFS_SYSNAME="sunx86_510"
591 AFS_SYSNAME="alpha_dux40"
594 AFS_SYSNAME="alpha_dux50"
597 AFS_SYSNAME="alpha_dux51"
603 AFS_SYSNAME="ia64_linuxXX"
606 AFS_SYSNAME="ppc_linuxXX"
609 AFS_SYSNAME="ppc64_linuxXX"
612 AFS_SYSNAME="alpha_linux_XX"
615 AFS_SYSNAME="s390_linuxXX"
618 AFS_SYSNAME="s390x_linuxXX"
621 AFS_SYSNAME="sparc_linuxXX"
624 AFS_SYSNAME="sparc64_linuxXX"
627 AFS_SYSNAME="i386_linuxXX"
630 AFS_SYSNAME="parisc_linuxXX"
634 AFS_SYSNAME="rs_aix42"
637 AFS_SYSNAME="rs_aix42"
640 AFS_SYSNAME="rs_aix51"
643 AFS_SYSNAME="rs_aix52"
646 AFS_SYSNAME="amd64_linuxXX"
650 AC_MSG_ERROR(An AFS sysname is required)
656 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
657 if test "x${AFS_SYSKVERS}" = "x"; then
658 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
660 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
661 AFS_SYSNAME="$_AFS_SYSNAME"
662 save_CPPFLAGS="$CPPFLAGS"
663 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
665 [#include <linux/autoconf.h>],
666 [#ifndef CONFIG_USERMODE
669 ac_cv_linux_is_uml=yes,)
670 if test "${ac_cv_linux_is_uml}" = yes; then
671 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
673 CPPFLAGS="$save_CPPFLAGS"
674 AFS_SYSNAME="$_AFS_SYSNAME"
677 AC_MSG_RESULT($AFS_SYSNAME)
682 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
683 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
684 dnl the test below fails on darwin, even if the CPPFLAGS below
685 dnl are added. the headers from Kernel.Framework must be used
686 dnl when KERNEL is defined.
688 dnl really, such a thing isn't guaranteed to work on any
689 dnl platform until the kernel cflags from MakefileProto are
690 dnl known to configure
691 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
694 AC_MSG_CHECKING(for definition of struct buf)
695 dnl save_CPPFLAGS="$CPPFLAGS"
696 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
697 AC_CACHE_VAL(ac_cv_have_struct_buf, [
698 ac_cv_have_struct_buf=no
700 [#include <sys/buf.h>],
702 printf("%d\n", sizeof(x));],
703 ac_cv_have_struct_buf=yes,)
706 dnl CPPFLAGS="$save_CPPFLAGS"
707 AC_MSG_RESULT($ac_cv_have_struct_buf)
708 if test "$ac_cv_have_struct_buf" = yes; then
709 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
715 AC_CACHE_VAL(ac_cv_sockaddr_len,
717 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
718 AC_TRY_COMPILE( [#include <sys/types.h>
719 #include <sys/socket.h>],
721 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
722 AC_MSG_RESULT($ac_cv_sockaddr_len)])
723 if test "$ac_cv_sockaddr_len" = "yes"; then
724 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
726 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
727 echo Skipping library tests because they confuse Irix.
729 AC_CHECK_FUNCS(socket)
731 if test "$ac_cv_func_socket" = no; then
732 for lib in socket inet; do
733 if test "$HAVE_SOCKET" != 1; then
734 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
739 AC_CHECK_FUNCS(connect)
741 if test "$ac_cv_func_connect" = no; then
743 if test "$HAVE_CONNECT" != 1; then
744 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
749 AC_CHECK_FUNCS(gethostbyname)
750 if test "$ac_cv_func_gethostbyname" = no; then
751 for lib in dns nsl resolv; do
752 if test "$HAVE_GETHOSTBYNAME" != 1; then
753 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
758 dnl darwin wants it, aix hates it
759 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
763 #include <sys/types.h>
764 #include <sys/socket.h>
765 #include <netinet/in.h>
766 #include <arpa/inet.h>
767 #include <arpa/nameser.h>
768 #include <arpa/nameser_compat.h>
770 ], [static int i; i = 0;],
772 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
776 openafs_save_libs="$LIBS"
777 AC_MSG_CHECKING([for res_search])
780 if test "$ac_cv_func_res_search" = no; then
781 for lib in dns nsl resolv; do
782 if test "$ac_cv_func_res_search" != yes; then
785 LIBS="$openafs_save_libs"
788 if test "$ac_cv_func_res_search" = yes; then
789 LIB_res_search="-l$lib"
790 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
791 AC_MSG_RESULT([yes, in lib$lib])
796 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
803 AC_CHECK_LIB(pthread, pthread_attr_init,
804 PTHREAD_LIBS="-lpthread")
805 if test "x$PTHREAD_LIBS" = xerror; then
806 AC_CHECK_LIB(pthreads, pthread_attr_init,
807 PTHREAD_LIBS="-lpthreads")
809 if test "x$PTHREAD_LIBS" = xerror; then
810 AC_CHECK_LIB(c_r, pthread_attr_init,
811 PTHREAD_LIBS="-lc_r")
813 if test "x$PTHREAD_LIBS" = xerror; then
814 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
816 if test "x$PTHREAD_LIBS" = xerror; then
817 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
819 AC_SUBST(PTHREAD_LIBS)
822 if test "$enable_obsolete" = "yes"; then
827 if test "$enable_insecure" = "yes"; then
831 if test "x$with_bsd_kernel_headers" != "x"; then
832 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
834 BSD_KERNEL_PATH="/usr/src/sys"
837 if test "x$with_bsd_kernel_build" != "x"; then
838 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
842 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
845 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/i386/compile/GENERIC"
851 if test "$enable_supergroups" = "yes"; then
852 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
855 if test "$enable_fast_restart" = "yes"; then
856 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
859 if test "$enable_bitmap_later" = "yes"; then
860 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
863 if test "$enable_full_vos_listvol_switch" = "yes"; then
864 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
867 if test "$enable_bos_restricted_mode" = "yes"; then
868 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
871 if test "$enable_bos_new_config" = "yes"; then
872 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
875 if test "$enable_largefile_fileserver" = "yes"; then
876 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
879 if test "$enable_namei_fileserver" = "yes"; then
880 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
883 if test "$enable_afsdb" = "yes"; then
884 LIB_AFSDB="$LIB_res_search"
885 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
889 AC_MSG_CHECKING(for tivoli tsm butc support)
891 if test "$enable_tivoli_tsm" = "yes"; then
892 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
893 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
895 if test -e "$XBSADIR1/xbsa.h"; then
896 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
897 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
898 elif test -e "$XBSADIR2/xbsa.h"; then
899 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
900 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
902 AC_MSG_RESULT([no, missing xbsa.h header file])
907 AC_SUBST(XBSA_CFLAGS)
909 dnl checks for header files.
913 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
914 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
915 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
916 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
917 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
918 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h)
920 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
927 if test "$enable_login" = yes; then
932 AC_SUBST(BUILD_LOGIN)
934 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
935 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror)
937 AC_CHECK_FUNCS(regcomp regexec regerror)
938 AC_MSG_CHECKING([for POSIX regex library])
939 if test "$ac_cv_header_regex_h" = "yes" && \
940 test "$ac_cv_func_regcomp" = "yes" && \
941 test "$ac_cv_func_regexec" = "yes" && \
942 test "$ac_cv_func_regerror" = "yes"; then
943 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
949 AC_CHECK_TYPE(ssize_t, int)
952 AC_CHECK_FUNCS(timegm)
954 dnl Directory PATH handling
955 if test "x$enable_transarc_paths" = "xyes" ; then
956 afsconfdir=${afsconfdir=/usr/afs/etc}
957 viceetcdir=${viceetcdir=/usr/vice/etc}
958 afskerneldir=${afskerneldir=${viceetcdir}}
959 afssrvbindir=${afssrvbindir=/usr/afs/bin}
960 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
961 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
962 afsdbdir=${afsdbdir=/usr/afs/db}
963 afslogsdir=${afslogsdir=/usr/afs/logs}
964 afslocaldir=${afslocaldir=/usr/afs/local}
965 afsbackupdir=${afsbackupdir=/usr/afs/backup}
966 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
968 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
969 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
970 afskerneldir=${afskerneldir='${libdir}/openafs'}
971 afssrvbindir=${afssrvbindir='${bindir}'}
972 afssrvsbindir=${afssrvsbindir='${sbindir}'}
973 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
974 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
975 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
976 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
977 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
978 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
982 AC_SUBST(afskerneldir)
983 AC_SUBST(afssrvbindir)
984 AC_SUBST(afssrvsbindir)
985 AC_SUBST(afssrvlibexecdir)
988 AC_SUBST(afslocaldir)
989 AC_SUBST(afsbackupdir)
990 AC_SUBST(afsbosconfigdir)
992 if test "x$enable_kernel_module" = "xyes"; then
993 ENABLE_KERNEL_MODULE=libafs
996 AC_SUBST(AFS_SYSNAME)
997 AC_SUBST(AFS_PARAM_COMMON)
998 AC_SUBST(ENABLE_KERNEL_MODULE)
1000 AC_SUBST(LINUX_KERNEL_PATH)
1001 AC_SUBST(BSD_KERNEL_PATH)
1002 AC_SUBST(BSD_KERNEL_BUILD)
1003 AC_SUBST(LINUX_VERSION)
1004 AC_SUBST(MKAFS_OSTYPE)
1005 AC_SUBST(TOP_OBJDIR)
1006 AC_SUBST(TOP_SRCDIR)
1007 AC_SUBST(TOP_INCDIR)
1008 AC_SUBST(TOP_LIBDIR)
1010 AC_SUBST(WITH_OBSOLETE)
1011 AC_SUBST(WITH_INSECURE)
1012 AC_SUBST(DARWIN_INFOFILE)
1013 AC_SUBST(IRIX_BUILD_IP35)
1017 TOP_SRCDIR="${srcdir}/src"
1019 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1025 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1029 TOP_OBJDIR="${SRCDIR_PARENT}"
1030 TOP_INCDIR="${SRCDIR_PARENT}/include"
1031 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1032 if test "${DEST}x" = "x"; then
1033 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1036 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1037 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1038 AC_SUBST(HELPER_SPLINT)
1039 AC_SUBST(HELPER_SPLINTCFG)