AC_CANONICAL_HOST
SRCDIR_PARENT=`pwd`
-#BOZO_SAVE_CORES pam sia
+#BOZO_SAVE_CORES pam
AC_ARG_WITH(afs-sysname,
[ --with-afs-sysname=sys use sys for the afs sysname]
)
-AC_ARG_ENABLE( obsolete,
-[ --enable-obsolete enable obsolete portions of AFS (mpp and package)],, enable_obsolete="no")
AC_ARG_ENABLE( afsdb,
-[ --disable-afsdb disable AFSDB RR support],, enable_afsdb="yes")
+[ --disable-afsdb disable AFSDB DNS RR support],, enable_afsdb="yes")
AC_ARG_ENABLE( pam,
[ --disable-pam disable PAM support],, enable_pam="yes")
AC_ARG_ENABLE( bos-restricted-mode,
[ --enable-fast-restart enable fast startup of file server without salvaging],, enable_fast_restart="no")
AC_ARG_ENABLE( bitmap-later,
[ --enable-bitmap-later enable fast startup of file server by not reading bitmap till needed],, enable_bitmap_later="no")
+AC_ARG_ENABLE( demand-attach-fs,
+[ --enable-demand-attach-fs enable Demand Attach Fileserver (please see documentation)],, enable_demand_attach_fs="no")
AC_ARG_ENABLE( full-vos-listvol-switch,
[ --disable-full-vos-listvol-switch disable vos full listvol switch for formatted output],, enable_full_vos_listvol_switch="yes")
AC_ARG_WITH(dux-kernel-headers,
AC_ARG_ENABLE(optimize-lwp,
[ --disable-optimize-lwp disable optimization for compilation of the LWP code (defaults to enabled)],, enable_optimize_lwp="yes"
)
+AC_ARG_ENABLE(debug-pam,
+[ --enable-debug-pam enable compilation of the PAM code with debugging information (defaults to disabled)],, enable_debug_pam="no"
+)
+AC_ARG_ENABLE(optimize-pam,
+[ --disable-optimize-pam disable optimization for compilation of the PAM code (defaults to enabled)],, enable_optimize_pam="yes"
+)
+
enable_login="no"
LINUX_KERNEL_PATH="/usr/src/linux"
fi
fi
+ if test -f "$LINUX_KERNEL_PATH/include/linux/utsrelease.h"; then
+ linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
+ LINUX_VERSION="$linux_kvers"
+ else
if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
if test "x$linux_kvers" = "x"; then
else
enable_kernel_module="no"
fi
+ fi
if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
enable_kernel_module="no"
fi
*-osf*)
MKAFS_OSTYPE=DUX
AC_MSG_RESULT(alpha_dux)
- if test "x$enable_kernel_module" = "xyes"; then
- if test "x$with_dux_kernel_headers" != "x"; then
- HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
- else
- HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
- fi
- fi
- if test "$HEADER_RT" = "*" ; then
- AC_MSG_ERROR([Need a configured kernel directory])
- fi
- AC_SUBST([HEADER_RT])
;;
powerpc-*-darwin*)
MKAFS_OSTYPE=DARWIN
vm=${v#*.}
AFS_SYSNAME="i386_obsd${vM}${vm}"
;;
+ sparc64-*-openbsd?.?)
+ v=${host#*openbsd}
+ vM=${v%.*}
+ vm=${v#*.}
+ AFS_SYSNAME="sparc64_obsd${vM}${vm}"
+ ;;
i?86-*-freebsd?.*)
v=${host#*freebsd}
vM=${v%.*}
i386-apple-darwin8.*)
AFS_SYSNAME="x86_darwin_80"
;;
+ powerpc-apple-darwin9.*)
+ AFS_SYSNAME="ppc_darwin_90"
+ ;;
+ i386-apple-darwin9.*)
+ AFS_SYSNAME="x86_darwin_90"
+ ;;
sparc-sun-solaris2.5*)
AFS_SYSNAME="sun4x_55"
enable_login="yes"
i?86-*-linux*)
AFS_SYSNAME="i386_linuxXX"
;;
- parisc-*-linux-gnu)
+ parisc-*-linux-gnu|hppa-*-linux-gnu)
AFS_SYSNAME="parisc_linuxXX"
enable_pam="no"
;;
[LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
[LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
)
+
LINUX_COMPLETION_H_EXISTS
LINUX_DEFINES_FOR_EACH_PROCESS
LINUX_DEFINES_PREV_TASK
LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
+ LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
+ LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
+ LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
LINUX_INODE_SETATTR_RETURN_TYPE
LINUX_WRITE_INODE_RETURN_TYPE
- LINUX_IOP_NAMEIDATA
+ LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
+ LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
+ LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
+ LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
LINUX_AOP_WRITEBACK_CONTROL
LINUX_KERNEL_LINUX_SYSCALL_H
LINUX_KERNEL_LINUX_SEQ_FILE_H
LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
LINUX_REFRIGERATOR
+ LINUX_LINUX_KEYRING_SUPPORT
+ LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
LINUX_WHICH_MODULES
if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
fi
+ if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
+ AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
+ fi
if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
fi
if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
fi
+ if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
+ AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
+ fi
+ if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
+ AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
+ fi
+ if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
+ AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
+ fi
+ if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
+ AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
+ fi
+ if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
+ AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
+ fi
+ if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
+ AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
+ fi
:
fi
esac
fi
PTHREAD_LIBS=error
-AC_CHECK_LIB(pthread, pthread_attr_init,
- PTHREAD_LIBS="-lpthread")
+if test "x$MKAFS_OSTYPE" = OBSD; then
+ PTHREAD_LIBS="-pthread"
+fi
+if test "x$PTHREAD_LIBS" = xerror; then
+ AC_CHECK_LIB(pthread, pthread_attr_init,
+ PTHREAD_LIBS="-lpthread")
+fi
if test "x$PTHREAD_LIBS" = xerror; then
AC_CHECK_LIB(pthreads, pthread_attr_init,
PTHREAD_LIBS="-lpthreads")
fi
AC_SUBST(PTHREAD_LIBS)
-WITH_OBSOLETE=NO
-if test "$enable_obsolete" = "yes"; then
- WITH_OBSOLETE=YES
-fi
+HOST_CPU="$host_cpu"
if test "x$with_bsd_kernel_headers" != "x"; then
BSD_KERNEL_PATH="$with_bsd_kernel_headers"
BSD_KERNEL_BUILD="$with_bsd_kernel_build"
else
case $AFS_SYSNAME in
- i386_fbsd_4?)
+ *_fbsd_4?)
BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
;;
- i386_fbsd_*)
- BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/i386/compile/GENERIC"
+ *_fbsd_*)
+ BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
;;
esac
fi
AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
fi
+if test "$enable_demand_attach_fs" = "yes"; then
+ AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
+ DEMAND_ATTACH="yes"
+else
+ DEMAND_ATTACH="no"
+fi
+AC_SUBST(DEMAND_ATTACH)
+
+if test "$enable_fast_restart" = "yes" &&
+ test "$enable_demand_attach_fs" = "yes" ; then
+ AC_MSG_ERROR([The Demand Attach and Fast Restart extensions are mutually exclusive. Demand Attach fileservers automatically salvage volumes in the background, thereby making Fast Restart pointless.])
+ exit 1
+fi
+
if test "$enable_full_vos_listvol_switch" = "yes"; then
AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
fi
AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
+dnl Don't build PAM on IRIX; the interface doesn't work for us.
if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
- HAVE_PAM="yes"
+ case $AFS_SYSNAME in
+ sgi_*)
+ HAVE_PAM="no"
+ ;;
+ *)
+ HAVE_PAM="yes"
+ ;;
+ esac
else
HAVE_PAM="no"
fi
AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec)
AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
-
+AC_CHECK_FUNCS(setvbuf)
+AC_FUNC_SETVBUF_REVERSED
AC_CHECK_FUNCS(regcomp regexec regerror)
AC_MSG_CHECKING([for POSIX regex library])
if test "$ac_cv_header_regex_h" = "yes" && \
else
AC_MSG_RESULT(no)
fi
-
+
+AC_TYPE_SIGNAL
AC_CHECK_TYPE(ssize_t, int)
+AC_CHECK_TYPE([sig_atomic_t], ,
+ [AC_DEFINE([sig_atomic_t], [int],
+ [Define to int if <signal.h> does not define.])],
+[#include <sys/types.h>
+#include <signal.h>])
AC_SIZEOF_TYPE(long)
AC_MSG_CHECKING(size of time_t)
AC_SUBST(ENABLE_KERNEL_MODULE)
AC_SUBST(LIB_AFSDB)
AC_SUBST(LINUX_KERNEL_PATH)
+AC_SUBST(HOST_CPU)
AC_SUBST(BSD_KERNEL_PATH)
AC_SUBST(BSD_KERNEL_BUILD)
AC_SUBST(LINUX_VERSION)
AC_SUBST(TOP_INCDIR)
AC_SUBST(TOP_LIBDIR)
AC_SUBST(DEST)
-AC_SUBST(WITH_OBSOLETE)
AC_SUBST(DARWIN_INFOFILE)
AC_SUBST(IRIX_BUILD_IP35)