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)]
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
189 LINUX_RECALC_SIGPENDING_ARG_TYPE
190 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
191 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
192 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
193 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
194 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
196 if test "x$ac_cv_linux_config_modversions" = "xno"; then
197 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
198 ac_cv_linux_exports_sys_call_table=no
199 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
200 ac_cv_linux_exports_ia32_sys_call_table=yes
203 LINUX_EXPORTS_INIT_MM
204 LINUX_EXPORTS_KALLSYMS_ADDRESS
205 LINUX_EXPORTS_KALLSYMS_SYMBOL
206 LINUX_EXPORTS_SYS_CALL_TABLE
207 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
208 LINUX_EXPORTS_SYS_CHDIR
209 LINUX_EXPORTS_SYS_CLOSE
210 LINUX_EXPORTS_SYS_WAIT4
211 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
212 linux_syscall_method=none
213 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
214 linux_syscall_method=scan
215 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
216 linux_syscall_method=scan_with_kallsyms_address
219 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
220 linux_syscall_method=kallsyms_symbol
222 if test "x$linux_syscall_method" = "xnone"; then
223 AC_MSG_ERROR([no available sys_call_table access method])
227 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
228 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
230 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
231 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
233 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
234 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
236 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
237 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
239 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
240 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
242 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
243 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
245 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
246 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock])
248 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
249 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
251 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
252 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
254 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
255 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
257 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
258 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
260 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
261 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
263 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
264 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
266 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
267 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
269 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
270 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
272 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
273 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
275 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
276 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
278 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
279 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
281 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
282 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
284 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
285 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
287 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
288 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
290 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
291 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
293 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
294 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
296 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
297 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
299 if test "x$ac_linux_syscall" = "xyes" ; then
300 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
302 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
303 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
305 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
306 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
308 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
309 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
311 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
312 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
314 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
315 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
323 SOLARIS_UFSVFS_HAS_DQRWLOCK
324 SOLARIS_PROC_HAS_P_COREFILE
325 SOLARIS_FS_HAS_FS_ROLLED
329 enable_kernel_module=no
337 if test -d /usr/include/sys/SN/SN1; then
338 IRIX_BUILD_IP35="IP35"
345 AC_MSG_RESULT(rs_aix)
349 AC_MSG_RESULT(alpha_dux)
350 if test "x$enable_kernel_module" = "xyes"; then
351 if test "x$with_dux_kernel_headers" != "x"; then
352 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
354 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
357 if test "$HEADER_RT" = "*" ; then
358 AC_MSG_ERROR([Need a configured kernel directory])
360 AC_SUBST([HEADER_RT])
364 AC_MSG_RESULT(ppc_darwin)
368 AC_MSG_RESULT(i386_fbsd)
376 AC_MSG_RESULT(i386_obsd)
379 AC_MSG_RESULT($system)
383 if test "x$with_afs_sysname" != "x"; then
384 AFS_SYSNAME="$with_afs_sysname"
386 AC_MSG_CHECKING(your AFS sysname)
389 AFS_SYSNAME="i386_obsd31"
392 AFS_SYSNAME="i386_obsd32"
395 AFS_SYSNAME="i386_obsd33"
398 AFS_SYSNAME="i386_obsd34"
401 AFS_SYSNAME="i386_obsd35"
404 AFS_SYSNAME="i386_fbsd_42"
407 AFS_SYSNAME="i386_fbsd_43"
410 AFS_SYSNAME="i386_fbsd_44"
413 AFS_SYSNAME="i386_fbsd_45"
416 AFS_SYSNAME="i386_fbsd_46"
419 AFS_SYSNAME="i386_fbsd_47"
422 AFS_SYSNAME="i386_fbsd_50"
425 AFS_SYSNAME="i386_fbsd_51"
428 AFS_SYSNAME="i386_fbsd_52"
431 AFS_PARAM_COMMON=param.nbsd15.h
432 AFS_SYSNAME="i386_nbsd15"
435 AFS_PARAM_COMMON=param.nbsd15.h
436 AFS_SYSNAME="alpha_nbsd15"
438 i?86-*-netbsd*1.6[[M-Z]]*)
439 AFS_PARAM_COMMON=param.nbsd20.h
440 AFS_SYSNAME="i386_nbsd20"
442 powerpc-*-netbsd*1.6[[M-Z]]*)
443 AFS_PARAM_COMMON=param.nbsd20.h
444 AFS_SYSNAME="ppc_nbsd20"
447 AFS_PARAM_COMMON=param.nbsd20.h
448 AFS_SYSNAME="i386_nbsd20"
450 powerpc-*-netbsd*2.0*)
451 AFS_PARAM_COMMON=param.nbsd20.h
452 AFS_SYSNAME="ppc_nbsd20"
455 AFS_PARAM_COMMON=param.nbsd16.h
456 AFS_SYSNAME="i386_nbsd16"
459 AFS_PARAM_COMMON=param.nbsd16.h
460 AFS_SYSNAME="alpha_nbsd16"
462 powerpc-*-netbsd*1.6*)
463 AFS_PARAM_COMMON=param.nbsd16.h
464 AFS_SYSNAME="ppc_nbsd16"
467 AFS_SYSNAME="hp_ux110"
470 AFS_SYSNAME="hp_ux11i"
473 AFS_SYSNAME="ia64_hpux1122"
476 AFS_SYSNAME="ia64_hpux1123"
479 AFS_SYSNAME="hp_ux102"
481 powerpc-apple-darwin1.2*)
482 AFS_SYSNAME="ppc_darwin_12"
484 powerpc-apple-darwin1.3*)
485 AFS_SYSNAME="ppc_darwin_13"
487 powerpc-apple-darwin1.4*)
488 AFS_SYSNAME="ppc_darwin_14"
490 powerpc-apple-darwin5.1*)
491 AFS_SYSNAME="ppc_darwin_14"
493 powerpc-apple-darwin5.2*)
494 AFS_SYSNAME="ppc_darwin_14"
496 powerpc-apple-darwin5.3*)
497 AFS_SYSNAME="ppc_darwin_14"
499 powerpc-apple-darwin5.4*)
500 AFS_SYSNAME="ppc_darwin_14"
502 powerpc-apple-darwin5.5*)
503 AFS_SYSNAME="ppc_darwin_14"
505 powerpc-apple-darwin6.0*)
506 AFS_SYSNAME="ppc_darwin_60"
508 powerpc-apple-darwin6.1*)
509 AFS_SYSNAME="ppc_darwin_60"
511 powerpc-apple-darwin6.2*)
512 AFS_SYSNAME="ppc_darwin_60"
514 powerpc-apple-darwin6.3*)
515 AFS_SYSNAME="ppc_darwin_60"
517 powerpc-apple-darwin6.4*)
518 AFS_SYSNAME="ppc_darwin_60"
520 powerpc-apple-darwin6.5*)
521 AFS_SYSNAME="ppc_darwin_60"
523 powerpc-apple-darwin7.0*)
524 AFS_SYSNAME="ppc_darwin_70"
526 powerpc-apple-darwin7.1*)
527 AFS_SYSNAME="ppc_darwin_70"
529 powerpc-apple-darwin7.2*)
530 AFS_SYSNAME="ppc_darwin_70"
532 powerpc-apple-darwin7.3*)
533 AFS_SYSNAME="ppc_darwin_70"
535 powerpc-apple-darwin7.4*)
536 AFS_SYSNAME="ppc_darwin_70"
538 powerpc-apple-darwin7.5*)
539 AFS_SYSNAME="ppc_darwin_70"
541 sparc-sun-solaris2.5*)
542 AFS_SYSNAME="sun4x_55"
545 sparc-sun-solaris2.6)
546 AFS_SYSNAME="sun4x_56"
548 sparc-sun-solaris2.7)
549 AFS_SYSNAME="sun4x_57"
551 sparc-sun-solaris2.8)
552 AFS_SYSNAME="sun4x_58"
554 sparc-sun-solaris2.9)
555 AFS_SYSNAME="sun4x_59"
557 sparc-sun-solaris2.10)
558 AFS_SYSNAME="sun4x_510"
561 AFS_SYSNAME="sun4_413"
565 AFS_SYSNAME="sunx86_57"
568 AFS_SYSNAME="sunx86_58"
571 AFS_SYSNAME="sunx86_59"
574 AFS_SYSNAME="sunx86_510"
577 AFS_SYSNAME="alpha_dux40"
580 AFS_SYSNAME="alpha_dux50"
583 AFS_SYSNAME="alpha_dux51"
589 AFS_SYSNAME="ia64_linuxXX"
592 AFS_SYSNAME="ppc_linuxXX"
595 AFS_SYSNAME="ppc64_linuxXX"
598 AFS_SYSNAME="alpha_linux_XX"
601 AFS_SYSNAME="s390_linuxXX"
604 AFS_SYSNAME="s390x_linuxXX"
607 AFS_SYSNAME="sparc_linuxXX"
610 AFS_SYSNAME="sparc64_linuxXX"
613 AFS_SYSNAME="i386_linuxXX"
616 AFS_SYSNAME="parisc_linuxXX"
620 AFS_SYSNAME="rs_aix42"
623 AFS_SYSNAME="rs_aix42"
626 AFS_SYSNAME="rs_aix51"
629 AFS_SYSNAME="rs_aix52"
632 AFS_SYSNAME="amd64_linuxXX"
636 AC_MSG_ERROR(An AFS sysname is required)
642 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
643 if test "x${AFS_SYSKVERS}" = "x"; then
644 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
646 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
647 AFS_SYSNAME="$_AFS_SYSNAME"
648 save_CPPFLAGS="$CPPFLAGS"
649 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
651 [#include <linux/autoconf.h>],
652 [#ifndef CONFIG_USERMODE
655 ac_cv_linux_is_uml=yes,)
656 if test "${ac_cv_linux_is_uml}" = yes; then
657 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
659 CPPFLAGS="$save_CPPFLAGS"
660 AFS_SYSNAME="$_AFS_SYSNAME"
663 AC_MSG_RESULT($AFS_SYSNAME)
668 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
669 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
670 dnl the test below fails on darwin, even if the CPPFLAGS below
671 dnl are added. the headers from Kernel.Framework must be used
672 dnl when KERNEL is defined.
674 dnl really, such a thing isn't guaranteed to work on any
675 dnl platform until the kernel cflags from MakefileProto are
676 dnl known to configure
677 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
680 AC_MSG_CHECKING(for definition of struct buf)
681 dnl save_CPPFLAGS="$CPPFLAGS"
682 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
683 AC_CACHE_VAL(ac_cv_have_struct_buf, [
684 ac_cv_have_struct_buf=no
686 [#include <sys/buf.h>],
688 printf("%d\n", sizeof(x));],
689 ac_cv_have_struct_buf=yes,)
692 dnl CPPFLAGS="$save_CPPFLAGS"
693 AC_MSG_RESULT($ac_cv_have_struct_buf)
694 if test "$ac_cv_have_struct_buf" = yes; then
695 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
701 AC_CACHE_VAL(ac_cv_sockaddr_len,
703 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
704 AC_TRY_COMPILE( [#include <sys/types.h>
705 #include <sys/socket.h>],
707 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
708 AC_MSG_RESULT($ac_cv_sockaddr_len)])
709 if test "$ac_cv_sockaddr_len" = "yes"; then
710 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
712 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
713 echo Skipping library tests because they confuse Irix.
715 AC_CHECK_FUNCS(socket)
717 if test "$ac_cv_func_socket" = no; then
718 for lib in socket inet; do
719 if test "$HAVE_SOCKET" != 1; then
720 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
725 AC_CHECK_FUNCS(connect)
727 if test "$ac_cv_func_connect" = no; then
729 if test "$HAVE_CONNECT" != 1; then
730 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
735 AC_CHECK_FUNCS(gethostbyname)
736 if test "$ac_cv_func_gethostbyname" = no; then
737 for lib in dns nsl resolv; do
738 if test "$HAVE_GETHOSTBYNAME" != 1; then
739 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
744 dnl darwin wants it, aix hates it
745 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
749 #include <sys/types.h>
750 #include <sys/socket.h>
751 #include <netinet/in.h>
752 #include <arpa/inet.h>
753 #include <arpa/nameser.h>
754 #include <arpa/nameser_compat.h>
756 ], [static int i; i = 0;],
758 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
762 openafs_save_libs="$LIBS"
763 AC_MSG_CHECKING([for res_search])
766 if test "$ac_cv_func_res_search" = no; then
767 for lib in dns nsl resolv; do
768 if test "$ac_cv_func_res_search" != yes; then
771 LIBS="$openafs_save_libs"
774 if test "$ac_cv_func_res_search" = yes; then
775 LIB_res_search="-l$lib"
776 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
777 AC_MSG_RESULT([yes, in lib$lib])
782 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
789 AC_CHECK_LIB(pthread, pthread_attr_init,
790 PTHREAD_LIBS="-lpthread")
791 if test "x$PTHREAD_LIBS" = xerror; then
792 AC_CHECK_LIB(pthreads, pthread_attr_init,
793 PTHREAD_LIBS="-lpthreads")
795 if test "x$PTHREAD_LIBS" = xerror; then
796 AC_CHECK_LIB(c_r, pthread_attr_init,
797 PTHREAD_LIBS="-lc_r")
799 if test "x$PTHREAD_LIBS" = xerror; then
800 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
802 if test "x$PTHREAD_LIBS" = xerror; then
803 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
805 AC_SUBST(PTHREAD_LIBS)
808 if test "$enable_obsolete" = "yes"; then
813 if test "$enable_insecure" = "yes"; then
817 if test "x$with_bsd_kernel_headers" != "x"; then
818 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
820 BSD_KERNEL_PATH="/usr/src/sys"
823 if test "x$with_bsd_kernel_build" != "x"; then
824 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
828 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
831 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/i386/compile/GENERIC"
837 if test "$enable_supergroups" = "yes"; then
838 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
841 if test "$enable_fast_restart" = "yes"; then
842 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
845 if test "$enable_bitmap_later" = "yes"; then
846 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
849 if test "$enable_full_vos_listvol_switch" = "yes"; then
850 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
853 if test "$enable_bos_restricted_mode" = "yes"; then
854 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
857 if test "$enable_bos_new_config" = "yes"; then
858 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
861 if test "$enable_largefile_fileserver" = "yes"; then
862 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
865 if test "$enable_namei_fileserver" = "yes"; then
866 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
869 if test "$enable_afsdb" = "yes"; then
870 LIB_AFSDB="$LIB_res_search"
871 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
875 AC_MSG_CHECKING(for tivoli tsm butc support)
877 if test "$enable_tivoli_tsm" = "yes"; then
878 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
879 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
881 if test -e "$XBSADIR1/xbsa.h"; then
882 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
883 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
884 elif test -e "$XBSADIR2/xbsa.h"; then
885 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
886 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
888 AC_MSG_RESULT([no, missing xbsa.h header file])
893 AC_SUBST(XBSA_CFLAGS)
895 dnl checks for header files.
899 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
900 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
901 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
902 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
903 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
904 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h)
906 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
913 if test "$enable_login" = yes; then
918 AC_SUBST(BUILD_LOGIN)
920 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
921 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror)
923 AC_CHECK_FUNCS(regcomp regexec regerror)
924 AC_MSG_CHECKING([for POSIX regex library])
925 if test "$ac_cv_header_regex_h" = "yes" && \
926 test "$ac_cv_func_regcomp" = "yes" && \
927 test "$ac_cv_func_regexec" = "yes" && \
928 test "$ac_cv_func_regerror" = "yes"; then
929 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
935 AC_CHECK_TYPE(ssize_t, int)
938 AC_CHECK_FUNCS(timegm)
940 dnl Directory PATH handling
941 if test "x$enable_transarc_paths" = "xyes" ; then
942 afsconfdir=${afsconfdir=/usr/afs/etc}
943 viceetcdir=${viceetcdir=/usr/vice/etc}
944 afskerneldir=${afskerneldir=${viceetcdir}}
945 afssrvbindir=${afssrvbindir=/usr/afs/bin}
946 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
947 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
948 afsdbdir=${afsdbdir=/usr/afs/db}
949 afslogsdir=${afslogsdir=/usr/afs/logs}
950 afslocaldir=${afslocaldir=/usr/afs/local}
951 afsbackupdir=${afsbackupdir=/usr/afs/backup}
952 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
954 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
955 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
956 afskerneldir=${afskerneldir='${libdir}/openafs'}
957 afssrvbindir=${afssrvbindir='${bindir}'}
958 afssrvsbindir=${afssrvsbindir='${sbindir}'}
959 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
960 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
961 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
962 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
963 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
964 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
968 AC_SUBST(afskerneldir)
969 AC_SUBST(afssrvbindir)
970 AC_SUBST(afssrvsbindir)
971 AC_SUBST(afssrvlibexecdir)
974 AC_SUBST(afslocaldir)
975 AC_SUBST(afsbackupdir)
976 AC_SUBST(afsbosconfigdir)
978 if test "x$enable_kernel_module" = "xyes"; then
979 ENABLE_KERNEL_MODULE=libafs
982 AC_SUBST(AFS_SYSNAME)
983 AC_SUBST(AFS_PARAM_COMMON)
984 AC_SUBST(ENABLE_KERNEL_MODULE)
986 AC_SUBST(LINUX_KERNEL_PATH)
987 AC_SUBST(BSD_KERNEL_PATH)
988 AC_SUBST(BSD_KERNEL_BUILD)
989 AC_SUBST(LINUX_VERSION)
990 AC_SUBST(MKAFS_OSTYPE)
996 AC_SUBST(WITH_OBSOLETE)
997 AC_SUBST(WITH_INSECURE)
998 AC_SUBST(DARWIN_INFOFILE)
999 AC_SUBST(IRIX_BUILD_IP35)
1003 TOP_SRCDIR="${srcdir}/src"
1005 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1011 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1015 TOP_OBJDIR="${SRCDIR_PARENT}"
1016 TOP_INCDIR="${SRCDIR_PARENT}/include"
1017 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1018 if test "${DEST}x" = "x"; then
1019 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1022 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1023 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1024 AC_SUBST(HELPER_SPLINT)
1025 AC_SUBST(HELPER_SPLINTCFG)