X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=config%2Fzfs-build.m4;h=005185b038115484c426faf80a3871909ac793fd;hb=refs%2Fheads%2Frertzinger%2Ffeature-zpool-get--p;hp=484ce8dd30d1f17b1acd84c3651cb168f46dc0d6;hpb=dbceaca71db4d7989acdef950ae23d4c92a55b67;p=zfs.git diff --git a/config/zfs-build.m4 b/config/zfs-build.m4 index 484ce8d..005185b 100644 --- a/config/zfs-build.m4 +++ b/config/zfs-build.m4 @@ -1,383 +1,324 @@ -AC_DEFUN([ZFS_AC_CONFIG], [ - - AC_ARG_WITH([zfs-config], - AS_HELP_STRING([--with-config=CONFIG], - [Config file 'kernel|user|lustre']), - [zfsconfig="$withval"]) - - AC_MSG_CHECKING([zfs config file]) - if test -z "$zfsconfig" || test ! -r config/$zfsconfig; then - AC_MSG_RESULT([no]) - AC_MSG_ERROR([ - *** Please specify one of the valid config files located - *** in ./config/ with the '--with-zfs-config=CONFIG' option]) - fi +AC_DEFUN([ZFS_AC_LICENSE], [ + AC_MSG_CHECKING([zfs author]) + AC_MSG_RESULT([$ZFS_META_AUTHOR]) - AC_MSG_RESULT([$zfsconfig]); - . ./config/$zfsconfig - - TOPDIR=`/bin/pwd` - BUILDDIR=$ZFS_META_NAME #+$zfsconfig - ZFSDIR=$TOPDIR/$BUILDDIR - LIBDIR=$ZFSDIR/lib - CMDDIR=$ZFSDIR/zcmd - UNAME=`uname -r | cut -d- -f1` - - AC_SUBST(UNAME) - AC_SUBST(TOPDIR) - AC_SUBST(BUILDDIR) - AC_SUBST(ZFSDIR) - AC_SUBST(LIBDIR) - AC_SUBST(CMDDIR) - AC_SUBST(UNAME) + AC_MSG_CHECKING([zfs license]) + AC_MSG_RESULT([$ZFS_META_LICENSE]) ]) -AC_DEFUN([ZFS_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-linux=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 "; - 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 "; - 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 - LINUX=${kernelsrc} - LINUX_OBJ=${kernelbuild} +AC_DEFUN([ZFS_AC_DEBUG], [ + AC_MSG_CHECKING([whether debugging is enabled]) + AC_ARG_ENABLE([debug], + [AS_HELP_STRING([--enable-debug], + [Enable generic debug support @<:@default=no@:>@])], + [], + [enable_debug=no]) + + AS_IF([test "x$enable_debug" = xyes], + [ + KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG -Werror" + HOSTCFLAGS="${HOSTCFLAGS} -DDEBUG -Werror" + DEBUG_CFLAGS="-DDEBUG -Werror" + DEBUG_STACKFLAGS="-fstack-check" + DEBUG_ZFS="_with_debug" + AC_DEFINE(ZFS_DEBUG, 1, [zfs debugging enabled]) + ], + [ + KERNELCPPFLAGS="${KERNELCPPFLAGS} -DNDEBUG " + HOSTCFLAGS="${HOSTCFLAGS} -DNDEBUG " + DEBUG_CFLAGS="-DNDEBUG" + DEBUG_STACKFLAGS="" + DEBUG_ZFS="_without_debug" + ]) - AC_SUBST(LINUX) - AC_SUBST(LINUX_OBJ) - AC_SUBST(kmoduledir) + AC_SUBST(DEBUG_CFLAGS) + AC_SUBST(DEBUG_STACKFLAGS) + AC_SUBST(DEBUG_ZFS) + AC_MSG_RESULT([$enable_debug]) ]) -AC_DEFUN([ZFS_AC_SPL], [ - - AC_ARG_WITH([spl], - AS_HELP_STRING([--with-spl=PATH], - [Path to spl source]), - [splsrc="$withval"; splbuild="$withval"]) - - AC_ARG_WITH([spl-obj], - AS_HELP_STRING([--with-spl-obj=PATH], - [Path to spl build objects]), - [splbuild="$withval"]) - - - AC_MSG_CHECKING([spl source directory]) - if test -z "$splsrc"; then - splbuild= - sourcelink=/tmp/`whoami`/spl - buildlink=/tmp/`whoami`/spl - - if test -e $sourcelink; then - splsrc=`(cd $sourcelink; /bin/pwd)` - fi - if test -e $buildlink; then - splbuild=`(cd $buildlink; /bin/pwd)` - fi - if test -z "$splsrc"; then - splsrc=$splbuild - fi - fi - - if test -z "$splsrc" -o -z "$splbuild"; then - sourcelink=/lib/modules/${ver}/source - buildlink=/lib/modules/${ver}/build - - if test -e $sourcelink; then - splsrc=`(cd $sourcelink; /bin/pwd)` - fi - if test -e $buildlink; then - splbuild=`(cd $buildlink; /bin/pwd)` - fi - if test -z "$splsrc"; then - splsrc=$splbuild - fi - if test -z "$splsrc" -o -z "$splbuild"; then - AC_MSG_RESULT([Not found]) - AC_MSG_ERROR([ - *** Please specify the location of the spl source - *** with the '--with-spl=PATH' option]) - fi - fi - - AC_MSG_RESULT([$splsrc]) - AC_MSG_CHECKING([spl build directory]) - AC_MSG_RESULT([$splbuild]) - - AC_MSG_CHECKING([spl source version]) - if test -r $splbuild/spl_config.h && - fgrep -q VERSION $splbuild/spl_config.h; then - - splsrcver=`(echo "#include "; - echo "splsrcver=VERSION") | - cpp -I $splbuild | - grep "^splsrcver=" | cut -d \" -f 2` - fi - - if test -z "$splsrcver"; then - AC_MSG_RESULT([Not found]) - AC_MSG_ERROR([ - *** Cannot determine the version of the spl source. - *** Please prepare the spl source before running this script]) - fi - - AC_MSG_RESULT([$splsrcver]) - - AC_MSG_CHECKING([spl Module.symvers]) - if test -r $splbuild/modules/Module.symvers; then - splsymvers=$splbuild/modules/Module.symvers - elif test -r $kernelbuild/Module.symvers; then - splsymvers=$kernelbuild/Module.symvers - fi - - if test -z "$splsymvers"; then - AC_MSG_RESULT([Not found]) - AC_MSG_ERROR([ - *** Cannot find extra Module.symvers in the spl source. - *** Please prepare the spl source before running this script]) - fi +AC_DEFUN([ZFS_AC_DEBUG_DMU_TX], [ + AC_ARG_ENABLE([debug-dmu-tx], + [AS_HELP_STRING([--enable-debug-dmu-tx], + [Enable dmu tx validation @<:@default=no@:>@])], + [], + [enable_debug_dmu_tx=no]) + + AS_IF([test "x$enable_debug_dmu_tx" = xyes], + [ + KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_DMU_TX" + DEBUG_DMU_TX="_with_debug_dmu_tx" + AC_DEFINE([DEBUG_DMU_TX], [1], + [Define to 1 to enabled dmu tx validation]) + ], + [ + DEBUG_DMU_TX="_without_debug_dmu_tx" + ]) - AC_MSG_RESULT([$splsymvers]) - AC_SUBST(splsrc) - AC_SUBST(splsymvers) + AC_SUBST(DEBUG_DMU_TX) + AC_MSG_CHECKING([whether dmu tx validation is enabled]) + AC_MSG_RESULT([$enable_debug_dmu_tx]) ]) -AC_DEFUN([ZFS_AC_LICENSE], [ - AC_MSG_CHECKING([license]) - AC_MSG_RESULT([CDDL]) -dnl # AC_DEFINE([HAVE_GPL_ONLY_SYMBOLS], [1], -dnl # [Define to 1 if module is licensed under the GPL]) +AC_DEFUN([ZFS_AC_CONFIG_ALWAYS], [ + ZFS_AC_CONFIG_ALWAYS_NO_UNUSED_BUT_SET_VARIABLE ]) -AC_DEFUN([ZFS_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) zfs_ac_debug=yes ;; - no) zfs_ac_debug=no ;; - *) AC_MSG_RESULT([Error!]) - AC_MSG_ERROR([Bad value "$enableval" for --enable-debug]) ;; - esac ] - ) - if test "$zfs_ac_debug" = yes; then - AC_MSG_RESULT([yes]) - KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG " - HOSTCFLAGS="${HOSTCFLAGS} -DDEBUG " - else - AC_MSG_RESULT([no]) - AC_DEFINE([NDEBUG], [1], - [Define to 1 to disable debug tracing]) - KERNELCPPFLAGS="${KERNELCPPFLAGS} -DNDEBUG " - HOSTCFLAGS="${HOSTCFLAGS} -DNDEBUG " - fi -]) +AC_DEFUN([ZFS_AC_CONFIG], [ + TARGET_ASM_DIR=asm-generic + AC_SUBST(TARGET_ASM_DIR) -AC_DEFUN([ZFS_AC_SCRIPT_CONFIG], [ - SCRIPT_CONFIG=.script-config - rm -f ${SCRIPT_CONFIG} - echo "KERNELSRC=${LINUX}" >>${SCRIPT_CONFIG} - echo "KERNELBUILD=${LINUX_OBJ}" >>${SCRIPT_CONFIG} - echo "KERNELSRCVER=$kernsrcver" >>${SCRIPT_CONFIG} - echo >>${SCRIPT_CONFIG} - echo "SPLSRC=$splsrc" >>${SCRIPT_CONFIG} - echo "SPLBUILD=$splbuild" >>${SCRIPT_CONFIG} - echo "SPLSRCVER=$splsrcver" >>${SCRIPT_CONFIG} - echo "SPLSYMVERS=$splsymvers" >>${SCRIPT_CONFIG} - echo >>${SCRIPT_CONFIG} - echo "ZFSSRC=${TOPDIR}/src" >>${SCRIPT_CONFIG} - echo "ZFSBUILD=${ZFSDIR}" >>${SCRIPT_CONFIG} - echo >>${SCRIPT_CONFIG} - echo "TOPDIR=${TOPDIR}" >>${SCRIPT_CONFIG} - echo "LIBDIR=${LIBDIR}" >>${SCRIPT_CONFIG} - echo "CMDDIR=${CMDDIR}" >>${SCRIPT_CONFIG} + ZFS_CONFIG=all + AC_ARG_WITH([config], + AS_HELP_STRING([--with-config=CONFIG], + [Config file 'kernel|user|all|srpm']), + [ZFS_CONFIG="$withval"]) + AC_ARG_ENABLE([linux-builtin], + [AC_HELP_STRING([--enable-linux-builtin], + [Configure for builtin in-tree kernel modules @<:@default=no@:>@])], + [], + [enable_linux_builtin=no]) + + AC_MSG_CHECKING([zfs config]) + AC_MSG_RESULT([$ZFS_CONFIG]); + AC_SUBST(ZFS_CONFIG) + + ZFS_AC_CONFIG_ALWAYS + + case "$ZFS_CONFIG" in + kernel) ZFS_AC_CONFIG_KERNEL ;; + user) ZFS_AC_CONFIG_USER ;; + all) ZFS_AC_CONFIG_KERNEL + ZFS_AC_CONFIG_USER ;; + srpm) ;; + *) + AC_MSG_RESULT([Error!]) + AC_MSG_ERROR([Bad value "$ZFS_CONFIG" for --with-config, + user kernel|user|all|srpm]) ;; + esac + + AM_CONDITIONAL([CONFIG_USER], + [test "$ZFS_CONFIG" = user -o "$ZFS_CONFIG" = all]) + AM_CONDITIONAL([CONFIG_KERNEL], + [test "$ZFS_CONFIG" = kernel -o "$ZFS_CONFIG" = all] && + [test "x$enable_linux_builtin" != xyes ]) ]) dnl # -dnl # ZFS_LINUX_CONFTEST +dnl # Check for rpm+rpmbuild to build RPM packages. If these tools +dnl # are missing it is non-fatal but you will not be able to build +dnl # RPM packages and will be warned if you try too. dnl # -AC_DEFUN([ZFS_LINUX_CONFTEST], [ -cat >conftest.c <<_ACEOF -$1 -_ACEOF -]) - +dnl # By default the generic spec file will be used because it requires +dnl # minimal dependencies. Distribution specific spec files can be +dnl # placed under the 'rpm/' directory and enabled using +dnl # the --with-spec= configure option. dnl # -dnl # ZFS_LANG_PROGRAM(C)([PROLOGUE], [BODY]) -dnl # -m4_define([ZFS_LANG_PROGRAM], [ -$1 -int -main (void) -{ -dnl Do *not* indent the following line: there may be CPP directives. -dnl Don't move the `;' right after for the same reason. -$2 - ; - return 0; -} -]) +AC_DEFUN([ZFS_AC_RPM], [ + RPM=rpm + RPMBUILD=rpmbuild + + AC_MSG_CHECKING([whether $RPM is available]) + AS_IF([tmp=$($RPM --version 2>/dev/null)], [ + RPM_VERSION=$(echo $tmp | $AWK '/RPM/ { print $[3] }') + HAVE_RPM=yes + AC_MSG_RESULT([$HAVE_RPM ($RPM_VERSION)]) + ],[ + HAVE_RPM=no + AC_MSG_RESULT([$HAVE_RPM]) + ]) -dnl # -dnl # ZFS_LINUX_COMPILE_IFELSE / like AC_COMPILE_IFELSE -dnl # -AC_DEFUN([ZFS_LINUX_COMPILE_IFELSE], [ -m4_ifvaln([$1], [ZFS_LINUX_CONFTEST([$1])])dnl -rm -f build/conftest.o build/conftest.mod.c build/conftest.ko build/Makefile -echo "obj-m := conftest.o" >build/Makefile -dnl AS_IF([AC_TRY_COMMAND(cp conftest.c build && make [$2] CC="$CC" -f $PWD/build/Makefile LINUXINCLUDE="-Iinclude -include include/linux/autoconf.h" -o tmp_include_depends -o scripts -o include/config/MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM SUBDIRS=$PWD/build) >/dev/null && AC_TRY_COMMAND([$3])], -AS_IF([AC_TRY_COMMAND(cp conftest.c build && make [$2] CC="$CC" LINUXINCLUDE="-Iinclude -include include/linux/autoconf.h" -o tmp_include_depends -o scripts -o include/config/MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build) >/dev/null && AC_TRY_COMMAND([$3])], - [$4], - [_AC_MSG_LOG_CONFTEST -m4_ifvaln([$5],[$5])dnl])dnl -rm -f build/conftest.o build/conftest.mod.c build/conftest.mod.o build/conftest.ko m4_ifval([$1], [build/conftest.c conftest.c])[]dnl + AC_MSG_CHECKING([whether $RPMBUILD is available]) + AS_IF([tmp=$($RPMBUILD --version 2>/dev/null)], [ + RPMBUILD_VERSION=$(echo $tmp | $AWK '/RPM/ { print $[3] }') + HAVE_RPMBUILD=yes + AC_MSG_RESULT([$HAVE_RPMBUILD ($RPMBUILD_VERSION)]) + ],[ + HAVE_RPMBUILD=no + AC_MSG_RESULT([$HAVE_RPMBUILD]) + ]) + + RPM_DEFINE_COMMON='--define "$(DEBUG_ZFS) 1" --define "$(DEBUG_DMU_TX) 1"' + RPM_DEFINE_UTIL= + RPM_DEFINE_KMOD='--define "kernels $(LINUX_VERSION)"' + RPM_DEFINE_DKMS= + + SRPM_DEFINE_COMMON='--define "build_src_rpm 1"' + SRPM_DEFINE_UTIL= + SRPM_DEFINE_KMOD= + SRPM_DEFINE_DKMS= + + RPM_SPEC_DIR="rpm/generic" + AC_ARG_WITH([spec], + AS_HELP_STRING([--with-spec=SPEC], + [Spec files 'generic|fedora']), + [RPM_SPEC_DIR="rpm/$withval"]) + + AC_MSG_CHECKING([whether spec files are available]) + AC_MSG_RESULT([yes ($RPM_SPEC_DIR/*.spec.in)]) + + AC_SUBST(HAVE_RPM) + AC_SUBST(RPM) + AC_SUBST(RPM_VERSION) + + AC_SUBST(HAVE_RPMBUILD) + AC_SUBST(RPMBUILD) + AC_SUBST(RPMBUILD_VERSION) + + AC_SUBST(RPM_SPEC_DIR) + AC_SUBST(RPM_DEFINE_UTIL) + AC_SUBST(RPM_DEFINE_KMOD) + AC_SUBST(RPM_DEFINE_DKMS) + AC_SUBST(RPM_DEFINE_COMMON) + AC_SUBST(SRPM_DEFINE_UTIL) + AC_SUBST(SRPM_DEFINE_KMOD) + AC_SUBST(SRPM_DEFINE_DKMS) + AC_SUBST(SRPM_DEFINE_COMMON) ]) dnl # -dnl # ZFS_LINUX_TRY_COMPILE like AC_TRY_COMPILE +dnl # Check for dpkg+dpkg-buildpackage to build DEB packages. If these +dnl # tools are missing it is non-fatal but you will not be able to build +dnl # DEB packages and will be warned if you try too. dnl # -AC_DEFUN([ZFS_LINUX_TRY_COMPILE], - [ZFS_LINUX_COMPILE_IFELSE( - [AC_LANG_SOURCE([ZFS_LANG_PROGRAM([[$1]], [[$2]])])], - [modules], - [test -s build/conftest.o], - [$3], [$4]) +AC_DEFUN([ZFS_AC_DPKG], [ + DPKG=dpkg + DPKGBUILD=dpkg-buildpackage + + AC_MSG_CHECKING([whether $DPKG is available]) + AS_IF([tmp=$($DPKG --version 2>/dev/null)], [ + DPKG_VERSION=$(echo $tmp | $AWK '/Debian/ { print $[7] }') + HAVE_DPKG=yes + AC_MSG_RESULT([$HAVE_DPKG ($DPKG_VERSION)]) + ],[ + HAVE_DPKG=no + AC_MSG_RESULT([$HAVE_DPKG]) + ]) + + AC_MSG_CHECKING([whether $DPKGBUILD is available]) + AS_IF([tmp=$($DPKGBUILD --version 2>/dev/null)], [ + DPKGBUILD_VERSION=$(echo $tmp | \ + $AWK '/Debian/ { print $[4] }' | cut -f-4 -d'.') + HAVE_DPKGBUILD=yes + AC_MSG_RESULT([$HAVE_DPKGBUILD ($DPKGBUILD_VERSION)]) + ],[ + HAVE_DPKGBUILD=no + AC_MSG_RESULT([$HAVE_DPKGBUILD]) + ]) + + AC_SUBST(HAVE_DPKG) + AC_SUBST(DPKG) + AC_SUBST(DPKG_VERSION) + + AC_SUBST(HAVE_DPKGBUILD) + AC_SUBST(DPKGBUILD) + AC_SUBST(DPKGBUILD_VERSION) ]) dnl # -dnl # ZFS_LINUX_CONFIG +dnl # Until native packaging for various different packing systems +dnl # can be added the least we can do is attempt to use alien to +dnl # convert the RPM packages to the needed package type. This is +dnl # a hack but so far it has worked reasonable well. dnl # -AC_DEFUN([ZFS_LINUX_CONFIG], - [AC_MSG_CHECKING([whether Linux was built with CONFIG_$1]) - ZFS_LINUX_TRY_COMPILE([ - #ifndef AUTOCONF_INCLUDED - #include - #endif +AC_DEFUN([ZFS_AC_ALIEN], [ + ALIEN=alien + + AC_MSG_CHECKING([whether $ALIEN is available]) + AS_IF([tmp=$($ALIEN --version 2>/dev/null)], [ + ALIEN_VERSION=$(echo $tmp | $AWK '{ print $[3] }') + HAVE_ALIEN=yes + AC_MSG_RESULT([$HAVE_ALIEN ($ALIEN_VERSION)]) ],[ - #ifndef CONFIG_$1 - #error CONFIG_$1 not #defined - #endif - ],[ - AC_MSG_RESULT([yes]) - $2 - ],[ - AC_MSG_RESULT([no]) - $3 + HAVE_ALIEN=no + AC_MSG_RESULT([$HAVE_ALIEN]) ]) + + AC_SUBST(HAVE_ALIEN) + AC_SUBST(ALIEN) + AC_SUBST(ALIEN_VERSION) ]) dnl # -dnl # ZFS_CHECK_SYMBOL_EXPORT -dnl # check symbol exported or not +dnl # Using the VENDOR tag from config.guess set the default +dnl # package type for 'make pkg': (rpm | deb | tgz) dnl # -AC_DEFUN([ZFS_CHECK_SYMBOL_EXPORT], - [AC_MSG_CHECKING([whether symbol $1 is exported]) - grep -q -E '[[[:space:]]]$1[[[:space:]]]' $LINUX/Module.symvers 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in $2; do - grep -q -E "EXPORT_SYMBOL.*($1)" "$LINUX/$file" 2>/dev/null - rc=$? - if test $rc -eq 0; then - export=1 - break; - fi - done - if test $export -eq 0; then - AC_MSG_RESULT([no]) - $4 - else - AC_MSG_RESULT([yes]) - $3 - fi +AC_DEFUN([ZFS_AC_DEFAULT_PACKAGE], [ + AC_MSG_CHECKING([linux distribution]) + if test -f /etc/toss-release ; then + VENDOR=toss ; + elif test -f /etc/fedora-release ; then + VENDOR=fedora ; + elif test -f /etc/redhat-release ; then + VENDOR=redhat ; + elif test -f /etc/gentoo-release ; then + VENDOR=gentoo ; + elif test -f /etc/arch-release ; then + VENDOR=arch ; + elif test -f /etc/SuSE-release ; then + VENDOR=sles ; + elif test -f /etc/slackware-version ; then + VENDOR=slackware ; + elif test -f /etc/lunar.release ; then + VENDOR=lunar ; + elif test -f /etc/lsb-release ; then + VENDOR=ubuntu ; + elif test -f /etc/debian_version ; then + VENDOR=debian ; else - AC_MSG_RESULT([yes]) - $3 + VENDOR= ; fi + AC_MSG_RESULT([$VENDOR]) + AC_SUBST(VENDOR) + + AC_MSG_CHECKING([default package type]) + case "$VENDOR" in + toss) DEFAULT_PACKAGE=rpm ;; + redhat) DEFAULT_PACKAGE=rpm ;; + fedora) DEFAULT_PACKAGE=rpm ;; + gentoo) DEFAULT_PACKAGE=tgz ;; + arch) DEFAULT_PACKAGE=tgz ;; + sles) DEFAULT_PACKAGE=rpm ;; + slackware) DEFAULT_PACKAGE=tgz ;; + lunar) DEFAULT_PACKAGE=tgz ;; + ubuntu) DEFAULT_PACKAGE=deb ;; + debian) DEFAULT_PACKAGE=deb ;; + *) DEFAULT_PACKAGE=rpm ;; + esac + + AC_MSG_RESULT([$DEFAULT_PACKAGE]) + AC_SUBST(DEFAULT_PACKAGE) + + DEFAULT_INIT_DIR=$sysconfdir/init.d + AC_MSG_CHECKING([default init directory]) + AC_MSG_RESULT([$DEFAULT_INIT_DIR]) + AC_SUBST(DEFAULT_INIT_DIR) + + AC_MSG_CHECKING([default init script type]) + case "$VENDOR" in + toss) DEFAULT_INIT_SCRIPT=redhat ;; + redhat) DEFAULT_INIT_SCRIPT=redhat ;; + fedora) DEFAULT_INIT_SCRIPT=fedora ;; + gentoo) DEFAULT_INIT_SCRIPT=gentoo ;; + arch) DEFAULT_INIT_SCRIPT=lsb ;; + sles) DEFAULT_INIT_SCRIPT=lsb ;; + slackware) DEFAULT_INIT_SCRIPT=lsb ;; + lunar) DEFAULT_INIT_SCRIPT=lunar ;; + ubuntu) DEFAULT_INIT_SCRIPT=lsb ;; + debian) DEFAULT_INIT_SCRIPT=lsb ;; + *) DEFAULT_INIT_SCRIPT=lsb ;; + esac + + AC_MSG_RESULT([$DEFAULT_INIT_SCRIPT]) + AC_SUBST(DEFAULT_INIT_SCRIPT) ]) dnl # -dnl # 2.6.x API change -dnl # bio_end_io_t uses 2 args (size was dropped from prototype) +dnl # Default ZFS package configuration dnl # -AC_DEFUN([ZFS_AC_2ARGS_BIO_END_IO_T], - [AC_MSG_CHECKING([whether bio_end_io_t wants 2 args]) - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="-Werror" - ZFS_LINUX_TRY_COMPILE([ - #include - ],[ - void (*wanted_end_io)(struct bio *, int) = NULL; - bio_end_io_t *local_end_io; - - local_end_io = wanted_end_io; - ],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_2ARGS_BIO_END_IO_T, 1, - [bio_end_io_t wants 2 args]) - ],[ - AC_MSG_RESULT(no) - ]) - EXTRA_KCFLAGS="$tmp_flags" +AC_DEFUN([ZFS_AC_PACKAGE], [ + ZFS_AC_DEFAULT_PACKAGE + ZFS_AC_RPM + ZFS_AC_DPKG + ZFS_AC_ALIEN ])