1 dnl This file contains the common configuration code which would
2 dnl otherwise be duplicated between configure and configure-libafs.
4 dnl NB: Because this code is a macro, references to positional shell
5 dnl parameters must be done like $[]1 instead of $1
7 AC_DEFUN(OPENAFS_CONFIGURE_COMMON,[
12 #BOZO_SAVE_CORES pam sia
13 AC_ARG_WITH(afs-sysname,
14 [ --with-afs-sysname=sys use sys for the afs sysname]
16 AC_ARG_ENABLE( obsolete,
17 [ --enable-obsolete enable obsolete portions of AFS (mpp, ntp and package)],, enable_obsolete="no")
18 AC_ARG_ENABLE( insecure,
19 [ --enable-insecure enable insecure portions of AFS (ftpd, inetd, rcp, rlogind and rsh)],, enable_insecure="no")
21 [ --disable-afsdb disable AFSDB RR support],, enable_afsdb="yes")
22 AC_ARG_ENABLE( bos-restricted-mode,
23 [ --enable-bos-restricted-mode enable bosserver restricted mode which disables certain bosserver functionality],, enable_bos_restricted_mode="no")
24 AC_ARG_ENABLE( bos-new-config,
25 [ --enable-bos-new-config enable bosserver pickup of BosConfig.new on restarts],, enable_bos_new_config="no")
26 AC_ARG_ENABLE( largefile-fileserver,
27 [ --enable-largefile-fileserver enable large file support in fileserver],, enable_largefile_fileserver="no")
28 AC_ARG_ENABLE( namei-fileserver,
29 [ --enable-namei-fileserver force compilation of namei fileserver in preference to inode fileserver],, enable_namei_fileserver="no")
30 AC_ARG_ENABLE( supergroups,
31 [ --enable-supergroups enable support for nested pts groups],, enable_supergroups="no")
32 AC_ARG_ENABLE( fast-restart,
33 [ --enable-fast-restart enable fast startup of file server without salvaging],, enable_fast_restart="no")
34 AC_ARG_ENABLE( bitmap-later,
35 [ --enable-bitmap-later enable fast startup of file server by not reading bitmap till needed],, enable_bitmap_later="no")
36 AC_ARG_ENABLE( full-vos-listvol-switch,
37 [ --disable-full-vos-listvol-switch disable vos full listvol switch for formatted output],, enable_full_vos_listvol_switch="yes")
38 AC_ARG_WITH(dux-kernel-headers,
39 [ --with-dux-kernel-headers=path use the kernel headers found at path(optional, defaults to first match in /usr/sys)]
41 AC_ARG_WITH(linux-kernel-headers,
42 [ --with-linux-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/linux)]
44 AC_ARG_WITH(bsd-kernel-headers,
45 [ --with-bsd-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/sys)]
47 AC_ARG_ENABLE(kernel-module,
48 [ --disable-kernel-module disable compilation of the kernel module (defaults to enabled)],, enable_kernel_module="yes"
50 AC_ARG_ENABLE(redhat-buildsys,
51 [ --enable-redhat-buildsys enable compilation of the redhat build system kernel (defaults to disabled)],, enable_redhat_buildsys="no"
53 AC_ARG_ENABLE(transarc-paths,
54 [ --enable-transarc-paths Use Transarc style paths like /usr/afs and /usr/vice],, enable_transarc_paths="no"
56 AC_ARG_ENABLE(tivoli-tsm,
57 [ --enable-tivoli-tsm Enable use of the Tivoli TSM API libraries for butc support],, enable_tivoli_tsm="no"
59 AC_ARG_ENABLE(debug-kernel,
60 [ --enable-debug-kernel enable compilation of the kernel module with debugging information (defaults to disabled)],, enable_debug_kernel="no"
62 AC_ARG_ENABLE(optimize-kernel,
63 [ --disable-optimize-kernel disable compilation of the kernel module with optimization (defaults based on platform)],, enable_optimize_kernel="yes"
66 [ --enable-debug enable compilation of the user space code with debugging information (defaults to disabled)],, enable_debug="no"
68 AC_ARG_ENABLE(optimize,
69 [ --disable-optimize disable optimization for compilation of the user space code (defaults to enabled)],, enable_optimize="yes"
71 AC_ARG_ENABLE(debug-lwp,
72 [ --enable-debug-lwp enable compilation of the LWP code with debugging information (defaults to disabled)],, enable_debug_lwp="no"
74 AC_ARG_ENABLE(optimize-lwp,
75 [ --disable-optimize-lwp disable optimization for compilation of the LWP code (defaults to enabled)],, enable_optimize_lwp="yes"
83 dnl Various compiler setup.
88 dnl Checks for programs.
95 OPENAFS_CHECK_BIGENDIAN
97 AC_MSG_CHECKING(your OS)
102 if test "x$enable_redhat_buildsys" = "xyes"; then
103 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
105 if test "x$enable_kernel_module" = "xyes"; then
106 if test "x$with_linux_kernel_headers" != "x"; then
107 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
109 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
110 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
111 LINUX_KERNEL_PATH="/usr/src/linux"
114 if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
115 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
116 if test "x$linux_kvers" = "x"; then
117 if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
118 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
119 if test "x$linux_kvers" = "x"; then
121 AC_MSG_ERROR(Linux headers lack version definition [2])
124 LINUX_VERSION="$linux_kvers"
127 AC_MSG_ERROR(Linux headers lack version definition)
131 LINUX_VERSION="$linux_kvers"
134 enable_kernel_module="no"
136 if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
137 enable_kernel_module="no"
139 if test "x$enable_kernel_module" = "xno"; then
140 if test "x$with_linux_kernel_headers" != "x"; then
141 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
144 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
149 if test "x$enable_kernel_module" = "xyes"; then
150 if test "x$enable_debug_kernel" = "xno"; then
151 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
153 OPENAFS_GCC_SUPPORTS_MARCH
154 AC_SUBST(P5PLUS_KOPTS)
155 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
156 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
157 OPENAFS_GCC_SUPPORTS_NO_COMMON
158 OPENAFS_GCC_SUPPORTS_PIPE
159 AC_SUBST(LINUX_GCC_KOPTS)
160 ifdef([OPENAFS_CONFIGURE_LIBAFS],
161 [LINUX_BUILD_VNODE_FROM_INODE(src/config,afs)],
162 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
164 LINUX_COMPLETION_H_EXISTS
165 LINUX_DEFINES_FOR_EACH_PROCESS
166 LINUX_DEFINES_PREV_TASK
167 LINUX_EXPORTS_TASKLIST_LOCK
168 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
169 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
170 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
171 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
172 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
173 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
174 LINUX_INODE_SETATTR_RETURN_TYPE
175 LINUX_KERNEL_LINUX_SYSCALL_H
177 LINUX_RECALC_SIGPENDING_ARG_TYPE
178 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
179 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
180 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
181 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
182 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
184 if test "x$ac_cv_linux_config_modversions" = "xno"; then
185 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it's exported])
186 ac_cv_linux_exports_sys_call_table=yes
187 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
188 ac_cv_linux_exports_ia32_sys_call_table=yes
191 LINUX_EXPORTS_INIT_MM
192 LINUX_EXPORTS_KALLSYMS_ADDRESS
193 LINUX_EXPORTS_KALLSYMS_SYMBOL
194 LINUX_EXPORTS_SYS_CALL_TABLE
195 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
196 LINUX_EXPORTS_SYS_CHDIR
197 LINUX_EXPORTS_SYS_CLOSE
198 LINUX_EXPORTS_SYS_WAIT4
199 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
200 linux_syscall_method=none
201 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
202 linux_syscall_method=scan
203 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
204 linux_syscall_method=scan_with_kallsyms_address
207 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
208 linux_syscall_method=kallsyms_symbol
210 if test "x$linux_syscall_method" = "xnone"; then
211 AC_MSG_ERROR([no available sys_call_table access method])
215 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
216 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
218 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
219 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
221 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
222 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
224 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
225 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock])
227 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
228 AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
230 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
231 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
233 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
234 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
236 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
237 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
239 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
240 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
242 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
243 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
245 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
246 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
248 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
249 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
251 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
252 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
254 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
255 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
257 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
258 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
260 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
261 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
263 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
264 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
266 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
267 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
269 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
270 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
272 if test "x$ac_linux_syscall" = "xyes" ; then
273 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
275 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
276 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
278 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
279 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
281 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
282 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
284 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
285 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
287 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
288 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
296 SOLARIS_UFSVFS_HAS_DQRWLOCK
297 SOLARIS_PROC_HAS_P_COREFILE
298 SOLARIS_FS_HAS_FS_ROLLED
302 enable_kernel_module=no
310 if test -d /usr/include/sys/SN/SN1; then
311 IRIX_BUILD_IP35="IP35"
318 AC_MSG_RESULT(rs_aix)
322 AC_MSG_RESULT(alpha_dux)
323 if test "x$enable_kernel_module" = "xyes"; then
324 if test "x$with_dux_kernel_headers" != "x"; then
325 HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
327 HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
330 if test "$HEADER_RT" = "*" ; then
331 AC_MSG_ERROR([Need a configured kernel directory])
333 AC_SUBST([HEADER_RT])
337 AC_MSG_RESULT(ppc_darwin)
341 AC_MSG_RESULT(i386_fbsd)
349 AC_MSG_RESULT(i386_obsd)
352 AC_MSG_RESULT($system)
356 if test "x$with_afs_sysname" != "x"; then
357 AFS_SYSNAME="$with_afs_sysname"
359 AC_MSG_CHECKING(your AFS sysname)
361 i386-unknown-openbsd3.1)
362 AFS_SYSNAME="i386_obsd31"
364 i386-unknown-openbsd3.2)
365 AFS_SYSNAME="i386_obsd32"
367 i386-unknown-openbsd3.3)
368 AFS_SYSNAME="i386_obsd33"
370 i386-unknown-openbsd3.4)
371 AFS_SYSNAME="i386_obsd34"
374 AFS_SYSNAME="i386_fbsd_42"
377 AFS_SYSNAME="i386_fbsd_43"
380 AFS_SYSNAME="i386_fbsd_44"
383 AFS_SYSNAME="i386_fbsd_45"
386 AFS_SYSNAME="i386_fbsd_46"
389 AFS_SYSNAME="i386_fbsd_47"
392 AFS_SYSNAME="i386_fbsd_50"
395 AFS_SYSNAME="i386_fbsd_51"
398 AFS_SYSNAME="i386_fbsd_52"
401 AFS_PARAM_COMMON=param.nbsd15.h
402 AFS_SYSNAME="i386_nbsd15"
405 AFS_PARAM_COMMON=param.nbsd15.h
406 AFS_SYSNAME="alpha_nbsd15"
408 i?86-*-netbsd*1.6[[M-Z]]*)
409 AFS_PARAM_COMMON=param.nbsd20.h
410 AFS_SYSNAME="i386_nbsd20"
412 powerpc-*-netbsd*1.6[[M-Z]]*)
413 AFS_PARAM_COMMON=param.nbsd20.h
414 AFS_SYSNAME="ppc_nbsd20"
417 AFS_PARAM_COMMON=param.nbsd20.h
418 AFS_SYSNAME="i386_nbsd20"
420 powerpc-*-netbsd*2.0*)
421 AFS_PARAM_COMMON=param.nbsd20.h
422 AFS_SYSNAME="ppc_nbsd20"
425 AFS_PARAM_COMMON=param.nbsd16.h
426 AFS_SYSNAME="i386_nbsd16"
429 AFS_PARAM_COMMON=param.nbsd16.h
430 AFS_SYSNAME="alpha_nbsd16"
432 powerpc-*-netbsd*1.6*)
433 AFS_PARAM_COMMON=param.nbsd16.h
434 AFS_SYSNAME="ppc_nbsd16"
437 AFS_SYSNAME="hp_ux110"
440 AFS_SYSNAME="hp_ux11i"
443 AFS_SYSNAME="ia64_hpux1122"
446 AFS_SYSNAME="ia64_hpux1123"
449 AFS_SYSNAME="hp_ux102"
451 powerpc-apple-darwin1.2*)
452 AFS_SYSNAME="ppc_darwin_12"
454 powerpc-apple-darwin1.3*)
455 AFS_SYSNAME="ppc_darwin_13"
457 powerpc-apple-darwin1.4*)
458 AFS_SYSNAME="ppc_darwin_14"
460 powerpc-apple-darwin5.1*)
461 AFS_SYSNAME="ppc_darwin_14"
463 powerpc-apple-darwin5.2*)
464 AFS_SYSNAME="ppc_darwin_14"
466 powerpc-apple-darwin5.3*)
467 AFS_SYSNAME="ppc_darwin_14"
469 powerpc-apple-darwin5.4*)
470 AFS_SYSNAME="ppc_darwin_14"
472 powerpc-apple-darwin5.5*)
473 AFS_SYSNAME="ppc_darwin_14"
475 powerpc-apple-darwin6.0*)
476 AFS_SYSNAME="ppc_darwin_60"
478 powerpc-apple-darwin6.1*)
479 AFS_SYSNAME="ppc_darwin_60"
481 powerpc-apple-darwin6.2*)
482 AFS_SYSNAME="ppc_darwin_60"
484 powerpc-apple-darwin6.3*)
485 AFS_SYSNAME="ppc_darwin_60"
487 powerpc-apple-darwin6.4*)
488 AFS_SYSNAME="ppc_darwin_60"
490 powerpc-apple-darwin6.5*)
491 AFS_SYSNAME="ppc_darwin_60"
493 sparc-sun-solaris2.5*)
494 AFS_SYSNAME="sun4x_55"
496 sparc-sun-solaris2.6)
497 AFS_SYSNAME="sun4x_56"
499 sparc-sun-solaris2.7)
500 AFS_SYSNAME="sun4x_57"
502 sparc-sun-solaris2.8)
503 AFS_SYSNAME="sun4x_58"
505 sparc-sun-solaris2.9)
506 AFS_SYSNAME="sun4x_59"
509 AFS_SYSNAME="sun4_413"
512 AFS_SYSNAME="sunx86_57"
515 AFS_SYSNAME="sunx86_58"
518 AFS_SYSNAME="sunx86_59"
521 AFS_SYSNAME="alpha_dux40"
524 AFS_SYSNAME="alpha_dux50"
527 AFS_SYSNAME="alpha_dux51"
533 AFS_SYSNAME="ia64_linuxXX"
536 AFS_SYSNAME="ppc_linuxXX"
539 AFS_SYSNAME="ppc64_linuxXX"
542 AFS_SYSNAME="alpha_linux_XX"
545 AFS_SYSNAME="s390_linuxXX"
548 AFS_SYSNAME="sparc_linuxXX"
551 AFS_SYSNAME="sparc64_linuxXX"
554 AFS_SYSNAME="i386_linuxXX"
557 AFS_SYSNAME="parisc_linuxXX"
560 AFS_SYSNAME="rs_aix42"
563 AFS_SYSNAME="rs_aix42"
566 AFS_SYSNAME="rs_aix51"
569 AFS_SYSNAME="rs_aix52"
572 AFS_SYSNAME="amd64_linuxXX"
575 AC_MSG_ERROR(An AFS sysname is required)
581 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
582 if test "x${AFS_SYSKVERS}" = "x"; then
583 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
585 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
586 AFS_SYSNAME="$_AFS_SYSNAME"
587 save_CPPFLAGS="$CPPFLAGS"
588 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
590 [#include <linux/autoconf.h>],
591 [#ifndef CONFIG_USERMODE
594 ac_cv_linux_is_uml=yes,)
595 if test "${ac_cv_linux_is_uml}" = yes; then
596 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
598 CPPFLAGS="$save_CPPFLAGS"
599 AFS_SYSNAME="$_AFS_SYSNAME"
602 AC_MSG_RESULT($AFS_SYSNAME)
605 # KDUMP64 defaults to KDUMP for systems without a separate kdump64
611 sun4x_5[[789]] | hp_ux11*)
615 KDUMP='kdump-${LINUX_VERSION}';;
622 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
623 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
624 dnl the test below fails on darwin, even if the CPPFLAGS below
625 dnl are added. the headers from Kernel.Framework must be used
626 dnl when KERNEL is defined.
628 dnl really, such a thing isn't guaranteed to work on any
629 dnl platform until the kernel cflags from MakefileProto are
630 dnl known to configure
631 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
634 AC_MSG_CHECKING(for definition of struct buf)
635 dnl save_CPPFLAGS="$CPPFLAGS"
636 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
637 AC_CACHE_VAL(ac_cv_have_struct_buf, [
638 ac_cv_have_struct_buf=no
640 [#include <sys/buf.h>],
642 printf("%d\n", sizeof(x));],
643 ac_cv_have_struct_buf=yes,)
646 dnl CPPFLAGS="$save_CPPFLAGS"
647 AC_MSG_RESULT($ac_cv_have_struct_buf)
648 if test "$ac_cv_have_struct_buf" = yes; then
649 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
655 AC_CACHE_VAL(ac_cv_sockaddr_len,
657 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
658 AC_TRY_COMPILE( [#include <sys/types.h>
659 #include <sys/socket.h>],
661 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
662 AC_MSG_RESULT($ac_cv_sockaddr_len)])
663 if test "$ac_cv_sockaddr_len" = "yes"; then
664 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
666 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
667 echo Skipping library tests because they confuse Irix.
669 AC_CHECK_FUNCS(socket)
671 if test "$ac_cv_func_socket" = no; then
672 for lib in socket inet; do
673 if test "$HAVE_SOCKET" != 1; then
674 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
679 AC_CHECK_FUNCS(connect)
681 if test "$ac_cv_func_connect" = no; then
683 if test "$HAVE_CONNECT" != 1; then
684 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
689 AC_CHECK_FUNCS(gethostbyname)
690 if test "$ac_cv_func_gethostbyname" = no; then
691 for lib in dns nsl resolv; do
692 if test "$HAVE_GETHOSTBYNAME" != 1; then
693 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
698 dnl darwin wants it, aix hates it
699 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
703 #include <sys/types.h>
704 #include <sys/socket.h>
705 #include <netinet/in.h>
706 #include <arpa/inet.h>
707 #include <arpa/nameser.h>
708 #include <arpa/nameser_compat.h>
710 ], [static int i; i = 0;],
712 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
716 openafs_save_libs="$LIBS"
717 AC_MSG_CHECKING([for res_search])
720 if test "$ac_cv_func_res_search" = no; then
721 for lib in dns nsl resolv; do
722 if test "$ac_cv_func_res_search" != yes; then
725 LIBS="$openafs_save_libs"
728 if test "$ac_cv_func_res_search" = yes; then
729 LIB_res_search="-l$lib"
730 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
731 AC_MSG_RESULT([yes, in lib$lib])
736 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
743 AC_CHECK_LIB(pthread, pthread_attr_init,
744 PTHREAD_LIBS="-lpthread")
745 if test "x$PTHREAD_LIBS" = xerror; then
746 AC_CHECK_LIB(pthreads, pthread_attr_init,
747 PTHREAD_LIBS="-lpthreads")
749 if test "x$PTHREAD_LIBS" = xerror; then
750 AC_CHECK_LIB(c_r, pthread_attr_init,
751 PTHREAD_LIBS="-lc_r")
753 if test "x$PTHREAD_LIBS" = xerror; then
754 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
756 if test "x$PTHREAD_LIBS" = xerror; then
757 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
759 AC_SUBST(PTHREAD_LIBS)
762 if test "$enable_obsolete" = "yes"; then
767 if test "$enable_insecure" = "yes"; then
771 if test "x$with_bsd_kernel_headers" != "x"; then
772 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
774 BSD_KERNEL_PATH="/usr/src/sys"
778 if test "$enable_supergroups" = "yes"; then
779 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
782 if test "$enable_fast_restart" = "yes"; then
783 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
786 if test "$enable_bitmap_later" = "yes"; then
787 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
790 if test "$enable_full_vos_listvol_switch" = "yes"; then
791 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
794 if test "$enable_bos_restricted_mode" = "yes"; then
795 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
798 if test "$enable_bos_new_config" = "yes"; then
799 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
802 if test "$enable_largefile_fileserver" = "yes"; then
803 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
806 if test "$enable_namei_fileserver" = "yes"; then
807 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
810 if test "$enable_afsdb" = "yes"; then
811 LIB_AFSDB="$LIB_res_search"
812 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
816 AC_MSG_CHECKING(for tivoli tsm butc support)
818 if test "$enable_tivoli_tsm" = "yes"; then
819 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
820 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
822 if test -e "$XBSADIR1/xbsa.h"; then
823 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
824 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
825 elif test -e "$XBSADIR2/xbsa.h"; then
826 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
827 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
829 AC_MSG_RESULT([no, missing xbsa.h header file])
834 AC_SUBST(XBSA_CFLAGS)
836 dnl checks for header files.
840 AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
841 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
842 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
843 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
844 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
845 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h)
847 if test "$ac_cv_header_security_pam_modules_h" = "yes"; then
854 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
855 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror)
857 AC_CHECK_FUNCS(regcomp regexec regerror)
858 AC_MSG_CHECKING([for POSIX regex library])
859 if test "$ac_cv_header_regex_h" = "yes" && \
860 test "$ac_cv_func_regcomp" = "yes" && \
861 test "$ac_cv_func_regexec" = "yes" && \
862 test "$ac_cv_func_regerror" = "yes"; then
863 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
869 AC_CHECK_TYPE(ssize_t, int)
872 AC_CHECK_FUNCS(timegm)
874 dnl Directory PATH handling
875 if test "x$enable_transarc_paths" = "xyes" ; then
876 afsconfdir=${afsconfdir=/usr/afs/etc}
877 viceetcdir=${viceetcdir=/usr/vice/etc}
878 afskerneldir=${afskerneldir=${viceetcdir}}
879 afssrvbindir=${afssrvbindir=/usr/afs/bin}
880 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
881 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
882 afsdbdir=${afsdbdir=/usr/afs/db}
883 afslogsdir=${afslogsdir=/usr/afs/logs}
884 afslocaldir=${afslocaldir=/usr/afs/local}
885 afsbackupdir=${afsbackupdir=/usr/afs/backup}
886 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
888 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
889 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
890 afskerneldir=${afskerneldir='${libdir}/openafs'}
891 afssrvbindir=${afssrvbindir='${bindir}'}
892 afssrvsbindir=${afssrvsbindir='${sbindir}'}
893 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
894 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
895 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
896 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
897 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
898 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
902 AC_SUBST(afskerneldir)
903 AC_SUBST(afssrvbindir)
904 AC_SUBST(afssrvsbindir)
905 AC_SUBST(afssrvlibexecdir)
908 AC_SUBST(afslocaldir)
909 AC_SUBST(afsbackupdir)
910 AC_SUBST(afsbosconfigdir)
912 if test "x$enable_kernel_module" = "xyes"; then
913 ENABLE_KERNEL_MODULE=libafs
916 AC_SUBST(AFS_SYSNAME)
917 AC_SUBST(AFS_PARAM_COMMON)
918 AC_SUBST(ENABLE_KERNEL_MODULE)
920 AC_SUBST(LINUX_KERNEL_PATH)
921 AC_SUBST(BSD_KERNEL_PATH)
922 AC_SUBST(LINUX_VERSION)
923 AC_SUBST(MKAFS_OSTYPE)
929 AC_SUBST(WITH_OBSOLETE)
930 AC_SUBST(WITH_INSECURE)
931 AC_SUBST(DARWIN_INFOFILE)
932 AC_SUBST(IRIX_BUILD_IP35)
936 TOP_SRCDIR="${srcdir}/src"
938 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
944 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
948 TOP_OBJDIR="${SRCDIR_PARENT}"
949 TOP_INCDIR="${SRCDIR_PARENT}/include"
950 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
951 if test "${DEST}x" = "x"; then
952 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
955 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
956 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
957 AC_SUBST(HELPER_SPLINT)
958 AC_SUBST(HELPER_SPLINTCFG)