-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://github.com/behlendorf/spl/>.
+#
+# 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
+AC_LANG(C)
+SPL_AC_META
+AC_CONFIG_AUX_DIR([config])
AC_CANONICAL_SYSTEM
-AM_INIT_AUTOMAKE(spl, 0.0.1)
-AC_CONFIG_HEADERS([config.h])
+AM_MAINTAINER_MODE
+AM_SILENT_RULES
+AM_INIT_AUTOMAKE([$SPL_META_NAME], [$SPL_META_VERSION])
+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
-
-ver=`uname -r`
-KERNELCFLAGS=
-
-kernelsrc=
-kernelbuild=
-AC_ARG_WITH(kernel,
- [ --with-linux=PATH Path to kernel source ],
- [kernelsrc="$withval"; kernelbuild="$withval"])
-AC_ARG_WITH(kernel-build,
- [ --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)
-
-#
-# Each version of the kernel provides a slightly different
-# ABI, so figure out what we have to work with and adapt.
-#
-AC_MSG_CHECKING([if kernel defines kzalloc function])
-if egrep -qw "kzalloc" $kernelsrc/include/linux/slab.h; then
- AC_DEFINE(HAVE_KZALLOC, 1, [kzalloc() is defined])
- AC_MSG_RESULT([yes])
-else
- AC_MSG_RESULT([no])
-fi
-
-AC_MSG_CHECKING([if inode has i_private field])
-if egrep -qw "i_private" $kernelsrc/include/linux/fs.h; then
- AC_DEFINE(HAVE_I_PRIVATE, 1, [inode has i_private field])
- AC_MSG_RESULT([yes])
-else
- AC_MSG_RESULT([no])
-fi
-
-AC_MSG_CHECKING([if inode has i_mutex field ])
-if egrep -qw "i_mutex" $kernelsrc/include/linux/fs.h; then
- AC_DEFINE(HAVE_I_MUTEX, 1, [inode has i_mutex field])
- AC_MSG_RESULT([yes])
-else
- AC_MSG_RESULT([no])
-fi
-
-AC_MSG_CHECKING([if kernel has mutex.h ])
-if test -f $kernelsrc/include/linux/mutex.h; then
- AC_DEFINE(HAVE_MUTEX_H, 1, [kernel has mutex.h])
- AC_MSG_RESULT([yes])
-else
- AC_MSG_RESULT([no])
-fi
-
-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
- src/Makefile
- src/cmd/Makefile
- src/spl/Makefile
- src/splat/Makefile
- include/Makefile
- scripts/Makefile
- scripts/spl.spec
- ])
+AC_PROG_LIBTOOL
+
+SPL_AC_LICENSE
+SPL_AC_PACKAGE
+SPL_AC_CONFIG
+
+AC_CONFIG_FILES([
+ Makefile
+ lib/Makefile
+ cmd/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/sys/sysevent/Makefile
+ include/util/Makefile
+ include/vm/Makefile
+ scripts/Makefile
+ spl.spec
+ spl-modules.spec
+ PKGBUILD-spl
+ PKGBUILD-spl-modules
+ spl.release
+ dkms.conf
+])
AC_OUTPUT