Add --enable-debug-dmu-tx configure option
[zfs.git] / config / zfs-build.m4
index b6a1800..6bfea51 100644 (file)
@@ -20,19 +20,46 @@ AC_DEFUN([ZFS_AC_DEBUG], [
                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(DEBUG_CFLAGS)
        AC_SUBST(DEBUG_STACKFLAGS)
+       AC_SUBST(DEBUG_ZFS)
        AC_MSG_RESULT([$enable_debug])
 ])
 
+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_SUBST(DEBUG_DMU_TX)
+       AC_MSG_CHECKING([whether dmu tx validation is enabled])
+       AC_MSG_RESULT([$enable_debug_dmu_tx])
+])
+
 AC_DEFUN([ZFS_AC_CONFIG_ALWAYS], [
        ZFS_AC_CONFIG_ALWAYS_NO_UNUSED_BUT_SET_VARIABLE
 ])
@@ -222,24 +249,26 @@ dnl # package type for 'make pkg': (rpm | deb | tgz)
 dnl #
 AC_DEFUN([ZFS_AC_DEFAULT_PACKAGE], [
        AC_MSG_CHECKING([linux distribution])
-       if test -f /etc/redhat-release ; then
-               VENDOR=redhat ;
+       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/debian_version ; then
-               VENDOR=debian ;
+       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/arch-release ; then
-               VENDOR=arch ;
-       elif test -f /etc/lsb-release ; then
-               VENDOR=ubuntu ;
        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
                VENDOR= ;
        fi
@@ -248,16 +277,17 @@ AC_DEFUN([ZFS_AC_DEFAULT_PACKAGE], [
 
        AC_MSG_CHECKING([default package type])
        case "$VENDOR" in
-               redhat)     DEFAULT_PACKAGE=rpm ;;
-               fedora)     DEFAULT_PACKAGE=rpm ;;
-               ubuntu)     DEFAULT_PACKAGE=deb ;;
-               debian)     DEFAULT_PACKAGE=deb ;;
-               sles)       DEFAULT_PACKAGE=rpm ;;
-               slackware)  DEFAULT_PACKAGE=tgz ;;
-               gentoo)     DEFAULT_PACKAGE=tgz ;;
-               lunar)      DEFAULT_PACKAGE=tgz ;;
-               arch)       DEFAULT_PACKAGE=arch;;
-               *)          DEFAULT_PACKAGE=rpm ;;
+               toss)       DEFAULT_PACKAGE=rpm  ;;
+               redhat)     DEFAULT_PACKAGE=rpm  ;;
+               fedora)     DEFAULT_PACKAGE=rpm  ;;
+               gentoo)     DEFAULT_PACKAGE=tgz  ;;
+               arch)       DEFAULT_PACKAGE=arch ;;
+               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])
@@ -274,16 +304,17 @@ AC_DEFUN([ZFS_AC_DEFAULT_PACKAGE], [
 
        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 ;;
-               ubuntu)     DEFAULT_INIT_SCRIPT=lsb ;;
-               debian)     DEFAULT_INIT_SCRIPT=lsb ;;
-               sles)       DEFAULT_INIT_SCRIPT=lsb ;;
-               slackware)  DEFAULT_INIT_SCRIPT=lsb ;;
                gentoo)     DEFAULT_INIT_SCRIPT=gentoo ;;
-               lunar)      DEFAULT_INIT_SCRIPT=lunar ;;
-               arch)       DEFAULT_INIT_SCRIPT=arch ;;
-               *)          DEFAULT_INIT_SCRIPT=lsb ;;
+               arch)       DEFAULT_INIT_SCRIPT=arch   ;;
+               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])
@@ -294,9 +325,10 @@ dnl #
 dnl # Default ZFS package configuration
 dnl #
 AC_DEFUN([ZFS_AC_PACKAGE], [
+       ZFS_AC_DEFAULT_PACKAGE
        ZFS_AC_RPM
        ZFS_AC_DPKG
        ZFS_AC_ALIEN
-       ZFS_AC_PACMAN
-       ZFS_AC_DEFAULT_PACKAGE
+
+       AS_IF([test "$VENDOR" = "arch"], [ZFS_AC_PACMAN])
 ])