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_INODE_SETATTR_RETURN_TYPE
185 LINUX_KERNEL_LINUX_SYSCALL_H
188 LINUX_RECALC_SIGPENDING_ARG_TYPE
189 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
190 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
191 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
192 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
193 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
195 if test "x$ac_cv_linux_config_modversions" = "xno"; then
196 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
197 ac_cv_linux_exports_sys_call_table=no
198 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
199 ac_cv_linux_exports_ia32_sys_call_table=yes
202 LINUX_EXPORTS_INIT_MM
203 LINUX_EXPORTS_KALLSYMS_ADDRESS
204 LINUX_EXPORTS_KALLSYMS_SYMBOL
205 LINUX_EXPORTS_SYS_CALL_TABLE
206 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
207 LINUX_EXPORTS_SYS_CHDIR
208 LINUX_EXPORTS_SYS_CLOSE
209 LINUX_EXPORTS_SYS_WAIT4
210 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
211 linux_syscall_method=none
212 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
213 linux_syscall_method=scan
214 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
215 linux_syscall_method=scan_with_kallsyms_address
218 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
219 linux_syscall_method=kallsyms_symbol
221 if test "x$linux_syscall_method" = "xnone"; then
222 AC_MSG_ERROR([no available sys_call_table access method])
226 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
227 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
229 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
230 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
232 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
233 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
235 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
236 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock])
238 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
239 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
241 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
242 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
244 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
245 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
247 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
248 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
250 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
251 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
253 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
254 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
256 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
257 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
259 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
260 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
262 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
263 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
265 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
266 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
268 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
269 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
271 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
272 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
274 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
275 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
277 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
278 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
280 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
281 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
283 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
284 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
286 if test "x$ac_linux_syscall" = "xyes" ; then
287 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
289 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
290 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
292 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
293 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
295 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
296 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
298 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
299 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
301 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
302 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
310 SOLARIS_UFSVFS_HAS_DQRWLOCK
311 SOLARIS_PROC_HAS_P_COREFILE
312 SOLARIS_FS_HAS_FS_ROLLED
316 enable_kernel_module=no
324 if test -d /usr/include/sys/SN/SN1; then
325 IRIX_BUILD_IP35="IP35"
332 AC_MSG_RESULT(rs_aix)
336 AC_MSG_RESULT(alpha_dux)
337 if test "x$enable_kernel_module" = "xyes"; then
338 if test "x$with_dux_kernel_headers" != "x"; then
339 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
341 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
344 if test "$HEADER_RT" = "*" ; then
345 AC_MSG_ERROR([Need a configured kernel directory])
347 AC_SUBST([HEADER_RT])
351 AC_MSG_RESULT(ppc_darwin)
355 AC_MSG_RESULT(i386_fbsd)
363 AC_MSG_RESULT(i386_obsd)
366 AC_MSG_RESULT($system)
370 if test "x$with_afs_sysname" != "x"; then
371 AFS_SYSNAME="$with_afs_sysname"
373 AC_MSG_CHECKING(your AFS sysname)
376 AFS_SYSNAME="i386_obsd31"
379 AFS_SYSNAME="i386_obsd32"
382 AFS_SYSNAME="i386_obsd33"
385 AFS_SYSNAME="i386_obsd34"
388 AFS_SYSNAME="i386_obsd35"
391 AFS_SYSNAME="i386_fbsd_42"
394 AFS_SYSNAME="i386_fbsd_43"
397 AFS_SYSNAME="i386_fbsd_44"
400 AFS_SYSNAME="i386_fbsd_45"
403 AFS_SYSNAME="i386_fbsd_46"
406 AFS_SYSNAME="i386_fbsd_47"
409 AFS_SYSNAME="i386_fbsd_50"
412 AFS_SYSNAME="i386_fbsd_51"
415 AFS_SYSNAME="i386_fbsd_52"
418 AFS_PARAM_COMMON=param.nbsd15.h
419 AFS_SYSNAME="i386_nbsd15"
422 AFS_PARAM_COMMON=param.nbsd15.h
423 AFS_SYSNAME="alpha_nbsd15"
425 i?86-*-netbsd*1.6[[M-Z]]*)
426 AFS_PARAM_COMMON=param.nbsd20.h
427 AFS_SYSNAME="i386_nbsd20"
429 powerpc-*-netbsd*1.6[[M-Z]]*)
430 AFS_PARAM_COMMON=param.nbsd20.h
431 AFS_SYSNAME="ppc_nbsd20"
434 AFS_PARAM_COMMON=param.nbsd20.h
435 AFS_SYSNAME="i386_nbsd20"
437 powerpc-*-netbsd*2.0*)
438 AFS_PARAM_COMMON=param.nbsd20.h
439 AFS_SYSNAME="ppc_nbsd20"
442 AFS_PARAM_COMMON=param.nbsd16.h
443 AFS_SYSNAME="i386_nbsd16"
446 AFS_PARAM_COMMON=param.nbsd16.h
447 AFS_SYSNAME="alpha_nbsd16"
449 powerpc-*-netbsd*1.6*)
450 AFS_PARAM_COMMON=param.nbsd16.h
451 AFS_SYSNAME="ppc_nbsd16"
454 AFS_SYSNAME="hp_ux110"
457 AFS_SYSNAME="hp_ux11i"
460 AFS_SYSNAME="ia64_hpux1122"
463 AFS_SYSNAME="ia64_hpux1123"
466 AFS_SYSNAME="hp_ux102"
468 powerpc-apple-darwin1.2*)
469 AFS_SYSNAME="ppc_darwin_12"
471 powerpc-apple-darwin1.3*)
472 AFS_SYSNAME="ppc_darwin_13"
474 powerpc-apple-darwin1.4*)
475 AFS_SYSNAME="ppc_darwin_14"
477 powerpc-apple-darwin5.1*)
478 AFS_SYSNAME="ppc_darwin_14"
480 powerpc-apple-darwin5.2*)
481 AFS_SYSNAME="ppc_darwin_14"
483 powerpc-apple-darwin5.3*)
484 AFS_SYSNAME="ppc_darwin_14"
486 powerpc-apple-darwin5.4*)
487 AFS_SYSNAME="ppc_darwin_14"
489 powerpc-apple-darwin5.5*)
490 AFS_SYSNAME="ppc_darwin_14"
492 powerpc-apple-darwin6.0*)
493 AFS_SYSNAME="ppc_darwin_60"
495 powerpc-apple-darwin6.1*)
496 AFS_SYSNAME="ppc_darwin_60"
498 powerpc-apple-darwin6.2*)
499 AFS_SYSNAME="ppc_darwin_60"
501 powerpc-apple-darwin6.3*)
502 AFS_SYSNAME="ppc_darwin_60"
504 powerpc-apple-darwin6.4*)
505 AFS_SYSNAME="ppc_darwin_60"
507 powerpc-apple-darwin6.5*)
508 AFS_SYSNAME="ppc_darwin_60"
510 powerpc-apple-darwin7.0*)
511 AFS_SYSNAME="ppc_darwin_70"
513 powerpc-apple-darwin7.1*)
514 AFS_SYSNAME="ppc_darwin_70"
516 powerpc-apple-darwin7.2*)
517 AFS_SYSNAME="ppc_darwin_70"
519 powerpc-apple-darwin7.3*)
520 AFS_SYSNAME="ppc_darwin_70"
522 sparc-sun-solaris2.5*)
523 AFS_SYSNAME="sun4x_55"
526 sparc-sun-solaris2.6)
527 AFS_SYSNAME="sun4x_56"
529 sparc-sun-solaris2.7)
530 AFS_SYSNAME="sun4x_57"
532 sparc-sun-solaris2.8)
533 AFS_SYSNAME="sun4x_58"
535 sparc-sun-solaris2.9)
536 AFS_SYSNAME="sun4x_59"
539 AFS_SYSNAME="sun4_413"
543 AFS_SYSNAME="sunx86_57"
546 AFS_SYSNAME="sunx86_58"
549 AFS_SYSNAME="sunx86_59"
552 AFS_SYSNAME="alpha_dux40"
555 AFS_SYSNAME="alpha_dux50"
558 AFS_SYSNAME="alpha_dux51"
564 AFS_SYSNAME="ia64_linuxXX"
567 AFS_SYSNAME="ppc_linuxXX"
570 AFS_SYSNAME="ppc64_linuxXX"
573 AFS_SYSNAME="alpha_linux_XX"
576 AFS_SYSNAME="s390_linuxXX"
579 AFS_SYSNAME="sparc_linuxXX"
582 AFS_SYSNAME="sparc64_linuxXX"
585 AFS_SYSNAME="i386_linuxXX"
588 AFS_SYSNAME="parisc_linuxXX"
592 AFS_SYSNAME="rs_aix42"
595 AFS_SYSNAME="rs_aix42"
598 AFS_SYSNAME="rs_aix51"
601 AFS_SYSNAME="rs_aix52"
604 AFS_SYSNAME="amd64_linuxXX"
608 AC_MSG_ERROR(An AFS sysname is required)
614 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
615 if test "x${AFS_SYSKVERS}" = "x"; then
616 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
618 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
619 AFS_SYSNAME="$_AFS_SYSNAME"
620 save_CPPFLAGS="$CPPFLAGS"
621 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
623 [#include <linux/autoconf.h>],
624 [#ifndef CONFIG_USERMODE
627 ac_cv_linux_is_uml=yes,)
628 if test "${ac_cv_linux_is_uml}" = yes; then
629 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
631 CPPFLAGS="$save_CPPFLAGS"
632 AFS_SYSNAME="$_AFS_SYSNAME"
635 AC_MSG_RESULT($AFS_SYSNAME)
640 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
641 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
642 dnl the test below fails on darwin, even if the CPPFLAGS below
643 dnl are added. the headers from Kernel.Framework must be used
644 dnl when KERNEL is defined.
646 dnl really, such a thing isn't guaranteed to work on any
647 dnl platform until the kernel cflags from MakefileProto are
648 dnl known to configure
649 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
652 AC_MSG_CHECKING(for definition of struct buf)
653 dnl save_CPPFLAGS="$CPPFLAGS"
654 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
655 AC_CACHE_VAL(ac_cv_have_struct_buf, [
656 ac_cv_have_struct_buf=no
658 [#include <sys/buf.h>],
660 printf("%d\n", sizeof(x));],
661 ac_cv_have_struct_buf=yes,)
664 dnl CPPFLAGS="$save_CPPFLAGS"
665 AC_MSG_RESULT($ac_cv_have_struct_buf)
666 if test "$ac_cv_have_struct_buf" = yes; then
667 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
673 AC_CACHE_VAL(ac_cv_sockaddr_len,
675 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
676 AC_TRY_COMPILE( [#include <sys/types.h>
677 #include <sys/socket.h>],
679 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
680 AC_MSG_RESULT($ac_cv_sockaddr_len)])
681 if test "$ac_cv_sockaddr_len" = "yes"; then
682 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
684 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
685 echo Skipping library tests because they confuse Irix.
687 AC_CHECK_FUNCS(socket)
689 if test "$ac_cv_func_socket" = no; then
690 for lib in socket inet; do
691 if test "$HAVE_SOCKET" != 1; then
692 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
697 AC_CHECK_FUNCS(connect)
699 if test "$ac_cv_func_connect" = no; then
701 if test "$HAVE_CONNECT" != 1; then
702 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
707 AC_CHECK_FUNCS(gethostbyname)
708 if test "$ac_cv_func_gethostbyname" = no; then
709 for lib in dns nsl resolv; do
710 if test "$HAVE_GETHOSTBYNAME" != 1; then
711 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
716 dnl darwin wants it, aix hates it
717 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
721 #include <sys/types.h>
722 #include <sys/socket.h>
723 #include <netinet/in.h>
724 #include <arpa/inet.h>
725 #include <arpa/nameser.h>
726 #include <arpa/nameser_compat.h>
728 ], [static int i; i = 0;],
730 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
734 openafs_save_libs="$LIBS"
735 AC_MSG_CHECKING([for res_search])
738 if test "$ac_cv_func_res_search" = no; then
739 for lib in dns nsl resolv; do
740 if test "$ac_cv_func_res_search" != yes; then
743 LIBS="$openafs_save_libs"
746 if test "$ac_cv_func_res_search" = yes; then
747 LIB_res_search="-l$lib"
748 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
749 AC_MSG_RESULT([yes, in lib$lib])
754 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
761 AC_CHECK_LIB(pthread, pthread_attr_init,
762 PTHREAD_LIBS="-lpthread")
763 if test "x$PTHREAD_LIBS" = xerror; then
764 AC_CHECK_LIB(pthreads, pthread_attr_init,
765 PTHREAD_LIBS="-lpthreads")
767 if test "x$PTHREAD_LIBS" = xerror; then
768 AC_CHECK_LIB(c_r, pthread_attr_init,
769 PTHREAD_LIBS="-lc_r")
771 if test "x$PTHREAD_LIBS" = xerror; then
772 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
774 if test "x$PTHREAD_LIBS" = xerror; then
775 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
777 AC_SUBST(PTHREAD_LIBS)
780 if test "$enable_obsolete" = "yes"; then
785 if test "$enable_insecure" = "yes"; then
789 if test "x$with_bsd_kernel_headers" != "x"; then
790 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
792 BSD_KERNEL_PATH="/usr/src/sys"
795 if test "x$with_bsd_kernel_build" != "x"; then
796 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
800 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
803 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/i386/compile/GENERIC"
809 if test "$enable_supergroups" = "yes"; then
810 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
813 if test "$enable_fast_restart" = "yes"; then
814 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
817 if test "$enable_bitmap_later" = "yes"; then
818 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
821 if test "$enable_full_vos_listvol_switch" = "yes"; then
822 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
825 if test "$enable_bos_restricted_mode" = "yes"; then
826 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
829 if test "$enable_bos_new_config" = "yes"; then
830 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
833 if test "$enable_largefile_fileserver" = "yes"; then
834 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
837 if test "$enable_namei_fileserver" = "yes"; then
838 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
841 if test "$enable_afsdb" = "yes"; then
842 LIB_AFSDB="$LIB_res_search"
843 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
847 AC_MSG_CHECKING(for tivoli tsm butc support)
849 if test "$enable_tivoli_tsm" = "yes"; then
850 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
851 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
853 if test -e "$XBSADIR1/xbsa.h"; then
854 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
855 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
856 elif test -e "$XBSADIR2/xbsa.h"; then
857 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
858 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
860 AC_MSG_RESULT([no, missing xbsa.h header file])
865 AC_SUBST(XBSA_CFLAGS)
867 dnl checks for header files.
871 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
872 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
873 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
874 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
875 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
876 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h)
878 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
885 if test "$enable_login" = yes; then
890 AC_SUBST(BUILD_LOGIN)
892 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
893 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror)
895 AC_CHECK_FUNCS(regcomp regexec regerror)
896 AC_MSG_CHECKING([for POSIX regex library])
897 if test "$ac_cv_header_regex_h" = "yes" && \
898 test "$ac_cv_func_regcomp" = "yes" && \
899 test "$ac_cv_func_regexec" = "yes" && \
900 test "$ac_cv_func_regerror" = "yes"; then
901 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
907 AC_CHECK_TYPE(ssize_t, int)
910 AC_CHECK_FUNCS(timegm)
912 dnl Directory PATH handling
913 if test "x$enable_transarc_paths" = "xyes" ; then
914 afsconfdir=${afsconfdir=/usr/afs/etc}
915 viceetcdir=${viceetcdir=/usr/vice/etc}
916 afskerneldir=${afskerneldir=${viceetcdir}}
917 afssrvbindir=${afssrvbindir=/usr/afs/bin}
918 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
919 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
920 afsdbdir=${afsdbdir=/usr/afs/db}
921 afslogsdir=${afslogsdir=/usr/afs/logs}
922 afslocaldir=${afslocaldir=/usr/afs/local}
923 afsbackupdir=${afsbackupdir=/usr/afs/backup}
924 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
926 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
927 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
928 afskerneldir=${afskerneldir='${libdir}/openafs'}
929 afssrvbindir=${afssrvbindir='${bindir}'}
930 afssrvsbindir=${afssrvsbindir='${sbindir}'}
931 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
932 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
933 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
934 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
935 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
936 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
940 AC_SUBST(afskerneldir)
941 AC_SUBST(afssrvbindir)
942 AC_SUBST(afssrvsbindir)
943 AC_SUBST(afssrvlibexecdir)
946 AC_SUBST(afslocaldir)
947 AC_SUBST(afsbackupdir)
948 AC_SUBST(afsbosconfigdir)
950 if test "x$enable_kernel_module" = "xyes"; then
951 ENABLE_KERNEL_MODULE=libafs
954 AC_SUBST(AFS_SYSNAME)
955 AC_SUBST(AFS_PARAM_COMMON)
956 AC_SUBST(ENABLE_KERNEL_MODULE)
958 AC_SUBST(LINUX_KERNEL_PATH)
959 AC_SUBST(BSD_KERNEL_PATH)
960 AC_SUBST(BSD_KERNEL_BUILD)
961 AC_SUBST(LINUX_VERSION)
962 AC_SUBST(MKAFS_OSTYPE)
968 AC_SUBST(WITH_OBSOLETE)
969 AC_SUBST(WITH_INSECURE)
970 AC_SUBST(DARWIN_INFOFILE)
971 AC_SUBST(IRIX_BUILD_IP35)
975 TOP_SRCDIR="${srcdir}/src"
977 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
983 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
987 TOP_OBJDIR="${SRCDIR_PARENT}"
988 TOP_INCDIR="${SRCDIR_PARENT}/include"
989 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
990 if test "${DEST}x" = "x"; then
991 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
994 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
995 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
996 AC_SUBST(HELPER_SPLINT)
997 AC_SUBST(HELPER_SPLINTCFG)