-/*
- * This file is part of the SPL: Solaris Porting Layer.
- *
- * Copyright (c) 2008 Lawrence Livermore National Security, LLC.
- * Produced at Lawrence Livermore National Laboratory
- * Written by:
- * Brian Behlendorf <behlendorf1@llnl.gov>,
- * Herb Wartens <wartens2@llnl.gov>,
- * Jim Garlick <garlick@llnl.gov>
- * UCRL-CODE-235197
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-AC_INIT
-
+###############################################################################
+# SPL AutoConf Configuration
+###############################################################################
+# Copyright (C) 2007-2010 Lawrence Livermore National Security, LLC.
+# Copyright (C) 2007 The Regents of the University of California.
+# Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
+# Written by Brian Behlendorf <behlendorf1@llnl.gov>.
+# UCRL-CODE-235197
+#
+# This file is part of the SPL, Solaris Porting Layer.
+# For details, see <http://zfsonlinux.org/>.
+#
+# The SPL is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.
+#
+# The SPL is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with the SPL. If not, see <http://www.gnu.org/licenses/>.
+###############################################################################
+
+AC_INIT(m4_esyscmd(grep Name META | cut -d ':' -f 2 | tr -d ' \n'),
+ m4_esyscmd(grep Version META | cut -d ':' -f 2 | tr -d ' \n'))
+AC_LANG(C)
+SPL_AC_META
+AC_CONFIG_AUX_DIR([config])
+AC_CONFIG_MACRO_DIR([config])
AC_CANONICAL_SYSTEM
-AM_INIT_AUTOMAKE(spl, 0.3.0)
-AC_CONFIG_HEADERS([config.h])
+AM_MAINTAINER_MODE
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+AM_INIT_AUTOMAKE
+AC_CONFIG_HEADERS([spl_config.h], [
+ (mv spl_config.h spl_config.h.tmp &&
+ awk -f ${ac_srcdir}/config/config.awk spl_config.h.tmp >spl_config.h &&
+ rm spl_config.h.tmp) || exit 1])
AC_PROG_INSTALL
AC_PROG_CC
AC_PROG_LIBTOOL
-kernelsrc=
-kernelbuild=
-
-AC_DEFUN([SPL_AC_KERNEL], [
- ver=`uname -r`
-
- AC_ARG_WITH([linux],
- AS_HELP_STRING([--with-linux=PATH],
- [Path to kernel source]),
- [kernelsrc="$withval"; kernelbuild="$withval"])
-
- AC_ARG_WITH([linux-obj],
- AS_HELP_STRING([--with-linux-obj=PATH],
- [Path to kernel build objects]),
- [kernelbuild="$withval"])
-
- AC_MSG_CHECKING([kernel source directory])
- if test -z "$kernelsrc"; then
- kernelbuild=
- sourcelink=/lib/modules/${ver}/source
- buildlink=/lib/modules/${ver}/build
-
- if test -e $sourcelink; then
- kernelsrc=`(cd $sourcelink; /bin/pwd)`
- fi
- if test -e $buildlink; then
- kernelbuild=`(cd $buildlink; /bin/pwd)`
- fi
- if test -z "$kernelsrc"; then
- kernelsrc=$kernelbuild
- fi
- if test -z "$kernelsrc" -o -z "$kernelbuild"; then
- AC_MSG_RESULT([Not found])
- AC_MSG_ERROR([
- *** Please specify the location of the kernel source
- *** with the '--with-kernel=PATH' option])
- fi
- fi
-
- AC_MSG_RESULT([$kernelsrc])
- AC_MSG_CHECKING([kernel build directory])
- AC_MSG_RESULT([$kernelbuild])
-
- AC_MSG_CHECKING([kernel source version])
- if test -r $kernelbuild/include/linux/version.h &&
- fgrep -q UTS_RELEASE $kernelbuild/include/linux/version.h; then
-
- kernsrcver=`(echo "#include <linux/version.h>";
- echo "kernsrcver=UTS_RELEASE") |
- cpp -I $kernelbuild/include |
- grep "^kernsrcver=" | cut -d \" -f 2`
-
- elif test -r $kernelbuild/include/linux/utsrelease.h &&
- fgrep -q UTS_RELEASE $kernelbuild/include/linux/utsrelease.h; then
-
- kernsrcver=`(echo "#include <linux/utsrelease.h>";
- echo "kernsrcver=UTS_RELEASE") |
- cpp -I $kernelbuild/include |
- grep "^kernsrcver=" | cut -d \" -f 2`
- fi
-
- if test -z "$kernsrcver"; then
- AC_MSG_RESULT([Not found])
- AC_MSG_ERROR([
- *** Cannot determine the version of the linux kernel source.
- *** Please prepare the kernel before running this script])
- fi
-
- AC_MSG_RESULT([$kernsrcver])
- kmoduledir=${INSTALL_MOD_PATH}/lib/modules/$kernsrcver
- AC_SUBST(kernelsrc)
- AC_SUBST(kmoduledir)
-])
-
-AC_DEFUN([SPL_AC_DEBUG], [
- AC_MSG_CHECKING([whether debugging is enabled])
- AC_ARG_ENABLE( [debug],
- AS_HELP_STRING([--enable-debug],
- [Enable generic debug support (default off)]),
- [ case "$enableval" in
- yes) spl_ac_debug=yes ;;
- no) spl_ac_debug=no ;;
- *) AC_MSG_RESULT([Error!])
- AC_MSG_ERROR([Bad value "$enableval" for --enable-debug]) ;;
- esac ]
- )
- if test "$spl_ac_debug" = yes; then
- KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG"
- else
- KERNELCPPFLAGS="${KERNELCPPFLAGS} -DNDEBUG"
- AC_DEFINE([NDEBUG], [1],
- [Define to 1 to disable debug tracing])
- fi
- AC_MSG_RESULT([${spl_ac_debug=no}])
-])
-
-AC_DEFUN([SPL_AC_DEBUG_KMEM], [
- AC_MSG_CHECKING([whether kmem debugging is enabled])
- AC_ARG_ENABLE( [debug-kmem],
- AS_HELP_STRING([--enable-debug-kmem],
- [Enable kmem debug support (default off)]),
- [ case "$enableval" in
- yes) spl_ac_debug=yes ;;
- no) spl_ac_debug=no ;;
- *) AC_MSG_RESULT([Error!])
- AC_MSG_ERROR([Bad value "$enableval" for --enable-debug-kmem]) ;;
- esac ]
- )
- if test "$spl_ac_debug" = yes; then
- KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_KMEM"
- AC_DEFINE([DEBUG_KMEM], [1],
- [Define to 1 to enable kmem debugging])
- fi
- AC_MSG_RESULT([${spl_ac_debug=no}])
-])
-
-AC_DEFUN([SPL_AC_DEBUG_MUTEX], [
- AC_MSG_CHECKING([whether mutex debugging is enabled])
- AC_ARG_ENABLE( [debug-mutex],
- AS_HELP_STRING([--enable-debug-mutex],
- [Enable mutex debug support (default off)]),
- [ case "$enableval" in
- yes) spl_ac_debug=yes ;;
- no) spl_ac_debug=no ;;
- *) AC_MSG_RESULT([Error!])
- AC_MSG_ERROR([Bad value "$enableval" for --enable-debug-mutex]) ;;
- esac ]
- )
- if test "$spl_ac_debug" = yes; then
- KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_MUTEX"
- AC_DEFINE([DEBUG_MUTEX], [1],
- [Define to 1 to enable mutex debugging])
- fi
- AC_MSG_RESULT([${spl_ac_debug=no}])
-])
-
-AC_DEFUN([SPL_AC_DEBUG_KSTAT], [
- AC_MSG_CHECKING([whether kstat debugging is enabled])
- AC_ARG_ENABLE( [debug-kstat],
- AS_HELP_STRING([--enable-debug-kstat],
- [Enable kstat debug support (default off)]),
- [ case "$enableval" in
- yes) spl_ac_debug=yes ;;
- no) spl_ac_debug=no ;;
- *) AC_MSG_RESULT([Error!])
- AC_MSG_ERROR([Bad value "$enableval" for --enable-debug-kstat]) ;;
- esac ]
- )
- if test "$spl_ac_debug" = yes; then
- KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_KSTAT"
- AC_DEFINE([DEBUG_KSTAT], [1],
- [Define to 1 to enable kstat debugging])
- fi
- AC_MSG_RESULT([${spl_ac_debug=no}])
-])
-
-AC_DEFUN([SPL_AC_DEBUG_CALLB], [
- AC_MSG_CHECKING([whether callb debugging is enabled])
- AC_ARG_ENABLE( [debug-callb],
- AS_HELP_STRING([--enable-debug-callb],
- [Enable callb debug support (default off)]),
- [ case "$enableval" in
- yes) spl_ac_debug=yes ;;
- no) spl_ac_debug=no ;;
- *) AC_MSG_RESULT([Error!])
- AC_MSG_ERROR([Bad value "$enableval" for --enable-debug-callb]) ;;
- esac ]
- )
- if test "$spl_ac_debug" = yes; then
- KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_CALLB"
- AC_DEFINE([DEBUG_CALLB], [1],
- [Define to 1 to enable callb debugging])
- fi
- AC_MSG_RESULT([${spl_ac_debug=no}])
-])
-
-SPL_AC_KERNEL
+SPL_AC_LICENSE
+SPL_AC_PACKAGE
+SPL_AC_CONFIG
SPL_AC_DEBUG
SPL_AC_DEBUG_KMEM
-SPL_AC_DEBUG_MUTEX
-SPL_AC_DEBUG_KSTAT
-SPL_AC_DEBUG_CALLB
-
-TOPDIR=`/bin/pwd`
-
-# Add "V=1" to KERNELMAKE_PARAMS to enable verbose module build
-KERNELMAKE_PARAMS=
-KERNELCPPFLAGS="${KERNELCPPFLAGS} -I$TOPDIR -I$TOPDIR/include"
-
-if test "$kernelbuild" != "$kernelsrc"; then
- KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$kernelbuild"
-fi
-
-AC_SUBST(KERNELMAKE_PARAMS)
-AC_SUBST(KERNELCPPFLAGS)
-AC_SUBST(KERNELCFLAGS)
-
-AC_CONFIG_FILES([ Makefile
- lib/Makefile
- cmd/Makefile
- modules/Makefile
- modules/spl/Makefile
- modules/splat/Makefile
- include/Makefile
- include/sys/Makefile
- scripts/Makefile
- scripts/spl.spec
- ])
+SPL_AC_DEBUG_KMEM_TRACKING
+
+AC_CONFIG_FILES([
+ Makefile
+ man/Makefile
+ man/man1/Makefile
+ man/man5/Makefile
+ lib/Makefile
+ cmd/Makefile
+ cmd/splat/Makefile
+ cmd/splslab/Makefile
+ module/Makefile
+ module/spl/Makefile
+ module/splat/Makefile
+ include/Makefile
+ include/fs/Makefile
+ include/linux/Makefile
+ include/rpc/Makefile
+ include/sharefs/Makefile
+ include/sys/Makefile
+ include/sys/fm/Makefile
+ include/sys/fs/Makefile
+ include/util/Makefile
+ include/vm/Makefile
+ scripts/Makefile
+ rpm/Makefile
+ rpm/redhat/Makefile
+ rpm/redhat/spl.spec
+ rpm/redhat/spl-kmod.spec
+ rpm/redhat/spl-dkms.spec
+ rpm/generic/Makefile
+ rpm/generic/spl.spec
+ rpm/generic/spl-kmod.spec
+ rpm/generic/spl-dkms.spec
+ spl.release
+])
AC_OUTPUT