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.
95 dnl Checks for programs.
102 OPENAFS_CHECK_BIGENDIAN
104 AC_MSG_CHECKING(your OS)
109 if test "x$enable_redhat_buildsys" = "xyes"; then
110 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
112 if test "x$enable_kernel_module" = "xyes"; then
113 if test "x$with_linux_kernel_headers" != "x"; then
114 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
116 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
117 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
118 LINUX_KERNEL_PATH="/usr/src/linux"
121 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
122 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
123 if test "x$linux_kvers" = "x"; then
124 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
125 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
126 if test "x$linux_kvers" = "x"; then
128 AC_MSG_ERROR(Linux headers lack version definition [2])
131 LINUX_VERSION="$linux_kvers"
134 AC_MSG_ERROR(Linux headers lack version definition)
138 LINUX_VERSION="$linux_kvers"
141 enable_kernel_module="no"
143 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
144 enable_kernel_module="no"
146 if test "x$enable_kernel_module" = "xno"; then
147 if test "x$with_linux_kernel_headers" != "x"; then
148 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
151 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
154 dnl do we need to determine SUBARCH from autoconf.h
158 if test "x$enable_kernel_module" = "xyes"; then
159 if test "x$enable_debug_kernel" = "xno"; then
160 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
162 OPENAFS_GCC_SUPPORTS_MARCH
163 AC_SUBST(P5PLUS_KOPTS)
164 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
165 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
166 OPENAFS_GCC_SUPPORTS_NO_COMMON
167 OPENAFS_GCC_SUPPORTS_PIPE
168 AC_SUBST(LINUX_GCC_KOPTS)
169 ifdef([OPENAFS_CONFIGURE_LIBAFS],
170 [LINUX_BUILD_VNODE_FROM_INODE(src/config,afs)],
171 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
173 LINUX_COMPLETION_H_EXISTS
174 LINUX_DEFINES_FOR_EACH_PROCESS
175 LINUX_DEFINES_PREV_TASK
176 LINUX_EXPORTS_TASKLIST_LOCK
177 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
178 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
179 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
180 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
181 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
182 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
183 LINUX_INODE_SETATTR_RETURN_TYPE
184 LINUX_KERNEL_LINUX_SYSCALL_H
186 LINUX_RECALC_SIGPENDING_ARG_TYPE
187 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
188 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
189 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
190 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
191 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
193 if test "x$ac_cv_linux_config_modversions" = "xno"; then
194 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it's exported])
195 ac_cv_linux_exports_sys_call_table=yes
196 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
197 ac_cv_linux_exports_ia32_sys_call_table=yes
200 LINUX_EXPORTS_INIT_MM
201 LINUX_EXPORTS_KALLSYMS_ADDRESS
202 LINUX_EXPORTS_KALLSYMS_SYMBOL
203 LINUX_EXPORTS_SYS_CALL_TABLE
204 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
205 LINUX_EXPORTS_SYS_CHDIR
206 LINUX_EXPORTS_SYS_CLOSE
207 LINUX_EXPORTS_SYS_WAIT4
208 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
209 linux_syscall_method=none
210 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
211 linux_syscall_method=scan
212 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
213 linux_syscall_method=scan_with_kallsyms_address
216 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
217 linux_syscall_method=kallsyms_symbol
219 if test "x$linux_syscall_method" = "xnone"; then
220 AC_MSG_ERROR([no available sys_call_table access method])
224 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
225 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
227 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
228 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
230 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
231 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
233 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
234 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock])
236 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
237 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
239 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
240 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
242 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
243 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
245 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
246 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
248 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
249 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
251 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
252 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
254 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
255 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
257 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
258 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
260 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
261 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
263 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
264 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
266 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
267 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
269 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
270 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
272 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
273 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
275 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
276 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
278 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
279 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
281 if test "x$ac_linux_syscall" = "xyes" ; then
282 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
284 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
285 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
287 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
288 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
290 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
291 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
293 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
294 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
296 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
297 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
305 SOLARIS_UFSVFS_HAS_DQRWLOCK
306 SOLARIS_PROC_HAS_P_COREFILE
307 SOLARIS_FS_HAS_FS_ROLLED
311 enable_kernel_module=no
319 if test -d /usr/include/sys/SN/SN1; then
320 IRIX_BUILD_IP35="IP35"
327 AC_MSG_RESULT(rs_aix)
331 AC_MSG_RESULT(alpha_dux)
332 if test "x$enable_kernel_module" = "xyes"; then
333 if test "x$with_dux_kernel_headers" != "x"; then
334 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
336 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
339 if test "$HEADER_RT" = "*" ; then
340 AC_MSG_ERROR([Need a configured kernel directory])
342 AC_SUBST([HEADER_RT])
346 AC_MSG_RESULT(ppc_darwin)
350 AC_MSG_RESULT(i386_fbsd)
358 AC_MSG_RESULT(i386_obsd)
361 AC_MSG_RESULT($system)
365 if test "x$with_afs_sysname" != "x"; then
366 AFS_SYSNAME="$with_afs_sysname"
368 AC_MSG_CHECKING(your AFS sysname)
370 i386-unknown-openbsd3.1)
371 AFS_SYSNAME="i386_obsd31"
373 i386-unknown-openbsd3.2)
374 AFS_SYSNAME="i386_obsd32"
376 i386-unknown-openbsd3.3)
377 AFS_SYSNAME="i386_obsd33"
379 i386-unknown-openbsd3.4)
380 AFS_SYSNAME="i386_obsd34"
383 AFS_SYSNAME="i386_fbsd_42"
386 AFS_SYSNAME="i386_fbsd_43"
389 AFS_SYSNAME="i386_fbsd_44"
392 AFS_SYSNAME="i386_fbsd_45"
395 AFS_SYSNAME="i386_fbsd_46"
398 AFS_SYSNAME="i386_fbsd_47"
401 AFS_SYSNAME="i386_fbsd_50"
404 AFS_SYSNAME="i386_fbsd_51"
407 AFS_SYSNAME="i386_fbsd_52"
410 AFS_PARAM_COMMON=param.nbsd15.h
411 AFS_SYSNAME="i386_nbsd15"
414 AFS_PARAM_COMMON=param.nbsd15.h
415 AFS_SYSNAME="alpha_nbsd15"
417 i?86-*-netbsd*1.6[[M-Z]]*)
418 AFS_PARAM_COMMON=param.nbsd20.h
419 AFS_SYSNAME="i386_nbsd20"
421 powerpc-*-netbsd*1.6[[M-Z]]*)
422 AFS_PARAM_COMMON=param.nbsd20.h
423 AFS_SYSNAME="ppc_nbsd20"
426 AFS_PARAM_COMMON=param.nbsd20.h
427 AFS_SYSNAME="i386_nbsd20"
429 powerpc-*-netbsd*2.0*)
430 AFS_PARAM_COMMON=param.nbsd20.h
431 AFS_SYSNAME="ppc_nbsd20"
434 AFS_PARAM_COMMON=param.nbsd16.h
435 AFS_SYSNAME="i386_nbsd16"
438 AFS_PARAM_COMMON=param.nbsd16.h
439 AFS_SYSNAME="alpha_nbsd16"
441 powerpc-*-netbsd*1.6*)
442 AFS_PARAM_COMMON=param.nbsd16.h
443 AFS_SYSNAME="ppc_nbsd16"
446 AFS_SYSNAME="hp_ux110"
449 AFS_SYSNAME="hp_ux11i"
452 AFS_SYSNAME="ia64_hpux1122"
455 AFS_SYSNAME="ia64_hpux1123"
458 AFS_SYSNAME="hp_ux102"
460 powerpc-apple-darwin1.2*)
461 AFS_SYSNAME="ppc_darwin_12"
463 powerpc-apple-darwin1.3*)
464 AFS_SYSNAME="ppc_darwin_13"
466 powerpc-apple-darwin1.4*)
467 AFS_SYSNAME="ppc_darwin_14"
469 powerpc-apple-darwin5.1*)
470 AFS_SYSNAME="ppc_darwin_14"
472 powerpc-apple-darwin5.2*)
473 AFS_SYSNAME="ppc_darwin_14"
475 powerpc-apple-darwin5.3*)
476 AFS_SYSNAME="ppc_darwin_14"
478 powerpc-apple-darwin5.4*)
479 AFS_SYSNAME="ppc_darwin_14"
481 powerpc-apple-darwin5.5*)
482 AFS_SYSNAME="ppc_darwin_14"
484 powerpc-apple-darwin6.0*)
485 AFS_SYSNAME="ppc_darwin_60"
487 powerpc-apple-darwin6.1*)
488 AFS_SYSNAME="ppc_darwin_60"
490 powerpc-apple-darwin6.2*)
491 AFS_SYSNAME="ppc_darwin_60"
493 powerpc-apple-darwin6.3*)
494 AFS_SYSNAME="ppc_darwin_60"
496 powerpc-apple-darwin6.4*)
497 AFS_SYSNAME="ppc_darwin_60"
499 powerpc-apple-darwin6.5*)
500 AFS_SYSNAME="ppc_darwin_60"
502 powerpc-apple-darwin7.0*)
503 AFS_SYSNAME="ppc_darwin_70"
505 powerpc-apple-darwin7.1*)
506 AFS_SYSNAME="ppc_darwin_70"
508 powerpc-apple-darwin7.2*)
509 AFS_SYSNAME="ppc_darwin_70"
511 powerpc-apple-darwin7.3*)
512 AFS_SYSNAME="ppc_darwin_70"
514 sparc-sun-solaris2.5*)
515 AFS_SYSNAME="sun4x_55"
518 sparc-sun-solaris2.6)
519 AFS_SYSNAME="sun4x_56"
521 sparc-sun-solaris2.7)
522 AFS_SYSNAME="sun4x_57"
524 sparc-sun-solaris2.8)
525 AFS_SYSNAME="sun4x_58"
527 sparc-sun-solaris2.9)
528 AFS_SYSNAME="sun4x_59"
531 AFS_SYSNAME="sun4_413"
535 AFS_SYSNAME="sunx86_57"
538 AFS_SYSNAME="sunx86_58"
541 AFS_SYSNAME="sunx86_59"
544 AFS_SYSNAME="alpha_dux40"
547 AFS_SYSNAME="alpha_dux50"
550 AFS_SYSNAME="alpha_dux51"
556 AFS_SYSNAME="ia64_linuxXX"
559 AFS_SYSNAME="ppc_linuxXX"
562 AFS_SYSNAME="ppc64_linuxXX"
565 AFS_SYSNAME="alpha_linux_XX"
568 AFS_SYSNAME="s390_linuxXX"
571 AFS_SYSNAME="sparc_linuxXX"
574 AFS_SYSNAME="sparc64_linuxXX"
577 AFS_SYSNAME="i386_linuxXX"
580 AFS_SYSNAME="parisc_linuxXX"
584 AFS_SYSNAME="rs_aix42"
587 AFS_SYSNAME="rs_aix42"
590 AFS_SYSNAME="rs_aix51"
593 AFS_SYSNAME="rs_aix52"
596 AFS_SYSNAME="amd64_linuxXX"
600 AC_MSG_ERROR(An AFS sysname is required)
606 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
607 if test "x${AFS_SYSKVERS}" = "x"; then
608 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
610 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
611 AFS_SYSNAME="$_AFS_SYSNAME"
612 save_CPPFLAGS="$CPPFLAGS"
613 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
615 [#include <linux/autoconf.h>],
616 [#ifndef CONFIG_USERMODE
619 ac_cv_linux_is_uml=yes,)
620 if test "${ac_cv_linux_is_uml}" = yes; then
621 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
623 CPPFLAGS="$save_CPPFLAGS"
624 AFS_SYSNAME="$_AFS_SYSNAME"
627 AC_MSG_RESULT($AFS_SYSNAME)
630 # KDUMP64 defaults to KDUMP for systems without a separate kdump64
636 sun4x_5[[789]] | hp_ux11*)
640 KDUMP='kdump-${LINUX_VERSION}';;
647 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
648 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
649 dnl the test below fails on darwin, even if the CPPFLAGS below
650 dnl are added. the headers from Kernel.Framework must be used
651 dnl when KERNEL is defined.
653 dnl really, such a thing isn't guaranteed to work on any
654 dnl platform until the kernel cflags from MakefileProto are
655 dnl known to configure
656 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
659 AC_MSG_CHECKING(for definition of struct buf)
660 dnl save_CPPFLAGS="$CPPFLAGS"
661 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
662 AC_CACHE_VAL(ac_cv_have_struct_buf, [
663 ac_cv_have_struct_buf=no
665 [#include <sys/buf.h>],
667 printf("%d\n", sizeof(x));],
668 ac_cv_have_struct_buf=yes,)
671 dnl CPPFLAGS="$save_CPPFLAGS"
672 AC_MSG_RESULT($ac_cv_have_struct_buf)
673 if test "$ac_cv_have_struct_buf" = yes; then
674 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
680 AC_CACHE_VAL(ac_cv_sockaddr_len,
682 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
683 AC_TRY_COMPILE( [#include <sys/types.h>
684 #include <sys/socket.h>],
686 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
687 AC_MSG_RESULT($ac_cv_sockaddr_len)])
688 if test "$ac_cv_sockaddr_len" = "yes"; then
689 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
691 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
692 echo Skipping library tests because they confuse Irix.
694 AC_CHECK_FUNCS(socket)
696 if test "$ac_cv_func_socket" = no; then
697 for lib in socket inet; do
698 if test "$HAVE_SOCKET" != 1; then
699 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
704 AC_CHECK_FUNCS(connect)
706 if test "$ac_cv_func_connect" = no; then
708 if test "$HAVE_CONNECT" != 1; then
709 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
714 AC_CHECK_FUNCS(gethostbyname)
715 if test "$ac_cv_func_gethostbyname" = no; then
716 for lib in dns nsl resolv; do
717 if test "$HAVE_GETHOSTBYNAME" != 1; then
718 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
723 dnl darwin wants it, aix hates it
724 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
728 #include <sys/types.h>
729 #include <sys/socket.h>
730 #include <netinet/in.h>
731 #include <arpa/inet.h>
732 #include <arpa/nameser.h>
733 #include <arpa/nameser_compat.h>
735 ], [static int i; i = 0;],
737 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
741 openafs_save_libs="$LIBS"
742 AC_MSG_CHECKING([for res_search])
745 if test "$ac_cv_func_res_search" = no; then
746 for lib in dns nsl resolv; do
747 if test "$ac_cv_func_res_search" != yes; then
750 LIBS="$openafs_save_libs"
753 if test "$ac_cv_func_res_search" = yes; then
754 LIB_res_search="-l$lib"
755 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
756 AC_MSG_RESULT([yes, in lib$lib])
761 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
768 AC_CHECK_LIB(pthread, pthread_attr_init,
769 PTHREAD_LIBS="-lpthread")
770 if test "x$PTHREAD_LIBS" = xerror; then
771 AC_CHECK_LIB(pthreads, pthread_attr_init,
772 PTHREAD_LIBS="-lpthreads")
774 if test "x$PTHREAD_LIBS" = xerror; then
775 AC_CHECK_LIB(c_r, pthread_attr_init,
776 PTHREAD_LIBS="-lc_r")
778 if test "x$PTHREAD_LIBS" = xerror; then
779 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
781 if test "x$PTHREAD_LIBS" = xerror; then
782 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
784 AC_SUBST(PTHREAD_LIBS)
787 if test "$enable_obsolete" = "yes"; then
792 if test "$enable_insecure" = "yes"; then
796 if test "x$with_bsd_kernel_headers" != "x"; then
797 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
799 BSD_KERNEL_PATH="/usr/src/sys"
802 if test "x$with_bsd_kernel_build" != "x"; then
803 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
807 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
810 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/i386/compile/GENERIC"
816 if test "$enable_supergroups" = "yes"; then
817 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
820 if test "$enable_fast_restart" = "yes"; then
821 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
824 if test "$enable_bitmap_later" = "yes"; then
825 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
828 if test "$enable_full_vos_listvol_switch" = "yes"; then
829 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
832 if test "$enable_bos_restricted_mode" = "yes"; then
833 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
836 if test "$enable_bos_new_config" = "yes"; then
837 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
840 if test "$enable_largefile_fileserver" = "yes"; then
841 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
844 if test "$enable_namei_fileserver" = "yes"; then
845 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
848 if test "$enable_afsdb" = "yes"; then
849 LIB_AFSDB="$LIB_res_search"
850 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
854 AC_MSG_CHECKING(for tivoli tsm butc support)
856 if test "$enable_tivoli_tsm" = "yes"; then
857 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
858 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
860 if test -e "$XBSADIR1/xbsa.h"; then
861 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
862 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
863 elif test -e "$XBSADIR2/xbsa.h"; then
864 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
865 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
867 AC_MSG_RESULT([no, missing xbsa.h header file])
872 AC_SUBST(XBSA_CFLAGS)
874 dnl checks for header files.
878 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
879 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
880 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
881 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
882 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
883 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h)
885 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
892 if test "$enable_login" = yes; then
897 AC_SUBST(BUILD_LOGIN)
899 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
900 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror)
902 AC_CHECK_FUNCS(regcomp regexec regerror)
903 AC_MSG_CHECKING([for POSIX regex library])
904 if test "$ac_cv_header_regex_h" = "yes" && \
905 test "$ac_cv_func_regcomp" = "yes" && \
906 test "$ac_cv_func_regexec" = "yes" && \
907 test "$ac_cv_func_regerror" = "yes"; then
908 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
914 AC_CHECK_TYPE(ssize_t, int)
917 AC_CHECK_FUNCS(timegm)
919 dnl Directory PATH handling
920 if test "x$enable_transarc_paths" = "xyes" ; then
921 afsconfdir=${afsconfdir=/usr/afs/etc}
922 viceetcdir=${viceetcdir=/usr/vice/etc}
923 afskerneldir=${afskerneldir=${viceetcdir}}
924 afssrvbindir=${afssrvbindir=/usr/afs/bin}
925 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
926 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
927 afsdbdir=${afsdbdir=/usr/afs/db}
928 afslogsdir=${afslogsdir=/usr/afs/logs}
929 afslocaldir=${afslocaldir=/usr/afs/local}
930 afsbackupdir=${afsbackupdir=/usr/afs/backup}
931 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
933 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
934 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
935 afskerneldir=${afskerneldir='${libdir}/openafs'}
936 afssrvbindir=${afssrvbindir='${bindir}'}
937 afssrvsbindir=${afssrvsbindir='${sbindir}'}
938 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
939 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
940 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
941 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
942 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
943 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
947 AC_SUBST(afskerneldir)
948 AC_SUBST(afssrvbindir)
949 AC_SUBST(afssrvsbindir)
950 AC_SUBST(afssrvlibexecdir)
953 AC_SUBST(afslocaldir)
954 AC_SUBST(afsbackupdir)
955 AC_SUBST(afsbosconfigdir)
957 if test "x$enable_kernel_module" = "xyes"; then
958 ENABLE_KERNEL_MODULE=libafs
961 AC_SUBST(AFS_SYSNAME)
962 AC_SUBST(AFS_PARAM_COMMON)
963 AC_SUBST(ENABLE_KERNEL_MODULE)
965 AC_SUBST(LINUX_KERNEL_PATH)
966 AC_SUBST(BSD_KERNEL_PATH)
967 AC_SUBST(BSD_KERNEL_BUILD)
968 AC_SUBST(LINUX_VERSION)
969 AC_SUBST(MKAFS_OSTYPE)
975 AC_SUBST(WITH_OBSOLETE)
976 AC_SUBST(WITH_INSECURE)
977 AC_SUBST(DARWIN_INFOFILE)
978 AC_SUBST(IRIX_BUILD_IP35)
982 TOP_SRCDIR="${srcdir}/src"
984 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
990 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
994 TOP_OBJDIR="${SRCDIR_PARENT}"
995 TOP_INCDIR="${SRCDIR_PARENT}/include"
996 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
997 if test "${DEST}x" = "x"; then
998 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1001 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1002 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1003 AC_SUBST(HELPER_SPLINT)
1004 AC_SUBST(HELPER_SPLINTCFG)