From d6f0332dc77c8880d069a878c6857a039ea83921 Mon Sep 17 00:00:00 2001
From: Giovanni Bussi <giovanni.bussi@gmail.com>
Date: Mon, 20 Jul 2015 21:07:06 -0600
Subject: [PATCH] Fix in enable-modules

Sometime there was problem with inconsistent on/off files. Now:

whenever all/none/reset is found, all on/off files are removed.
whenever one module is enabled, on file is added and off file is removed
the opposite when it is disabled

this should enforce consistency of on/off files.
---
 configure    | 5 +++++
 configure.ac | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/configure b/configure
index 0b54beb23..9e4848e47 100755
--- a/configure
+++ b/configure
@@ -2339,10 +2339,12 @@ if test "${enable_modules+set}" = set; then :
      (none)
        { $as_echo "$as_me:${as_lineno-$LINENO}: Disabling all optional modules" >&5
 $as_echo "$as_me: Disabling all optional modules" >&6;}
+       rm -f src/*.off src/*.on
        touch $(grep default-on src/*/module.type | sed "s|/module.type:.*|.off|") ;;
      (all)
        { $as_echo "$as_me:${as_lineno-$LINENO}: Enabling all optional modules" >&5
 $as_echo "$as_me: Enabling all optional modules" >&6;}
+       rm -f src/*.off src/*.off
        touch $(grep default-off src/*/module.type | sed "s|/module.type:.*|.on|") ;;
      (reset)
         { $as_echo "$as_me:${as_lineno-$LINENO}: Resetting modules to default" >&5
@@ -2355,6 +2357,7 @@ $as_echo "$as_me: Resetting modules to default" >&6;}
        fi
        { $as_echo "$as_me:${as_lineno-$LINENO}: Disabling module ${modules_mod}" >&5
 $as_echo "$as_me: Disabling module ${modules_mod}" >&6;}
+       rm -f src/$modules_mod.on
        touch src/$modules_mod.off ;;
      (+*)
        modules_mod=`echo "${modules_mod}" | sed "s|+||"`
@@ -2363,6 +2366,7 @@ $as_echo "$as_me: Disabling module ${modules_mod}" >&6;}
        fi
        { $as_echo "$as_me:${as_lineno-$LINENO}: Enabling module ${modules_mod}" >&5
 $as_echo "$as_me: Enabling module ${modules_mod}" >&6;}
+       rm -f src/$modules_mod.off
        touch src/$modules_mod.on ;;
      (*)
        if test ! -f src/$modules_mod/module.type ; then
@@ -2370,6 +2374,7 @@ $as_echo "$as_me: Enabling module ${modules_mod}" >&6;}
        fi
        { $as_echo "$as_me:${as_lineno-$LINENO}: Enabling module ${modules_mod}" >&5
 $as_echo "$as_me: Enabling module ${modules_mod}" >&6;}
+       rm -f src/$modules_mod.off
        touch src/$modules_mod.on ;;
      esac
    done
diff --git a/configure.ac b/configure.ac
index ced5054fe..e61908451 100644
--- a/configure.ac
+++ b/configure.ac
@@ -115,9 +115,11 @@ AC_ARG_ENABLE([modules],
      case "$modules_mod" in
      (none)
        AC_MSG_NOTICE([Disabling all optional modules])
+       rm -f src/*.off src/*.on
        touch $(grep default-on src/*/module.type | sed "s|/module.type:.*|.off|") ;;
      (all)
        AC_MSG_NOTICE([Enabling all optional modules])
+       rm -f src/*.off src/*.off
        touch $(grep default-off src/*/module.type | sed "s|/module.type:.*|.on|") ;;
      (reset)
         AC_MSG_NOTICE([Resetting modules to default])
@@ -128,6 +130,7 @@ AC_ARG_ENABLE([modules],
          AC_MSG_ERROR([trying to remove module $modules_mod which does not exist])
        fi
        AC_MSG_NOTICE([Disabling module ${modules_mod}])
+       rm -f src/$modules_mod.on
        touch src/$modules_mod.off ;;
      (+*)
        modules_mod=`echo "${modules_mod}" | sed "s|+||"`
@@ -135,12 +138,14 @@ AC_ARG_ENABLE([modules],
          AC_MSG_ERROR([trying to add module $modules_mod which does not exist])
        fi
        AC_MSG_NOTICE([Enabling module ${modules_mod}])
+       rm -f src/$modules_mod.off
        touch src/$modules_mod.on ;;
      (*)
        if test ! -f src/$modules_mod/module.type ; then
          AC_MSG_ERROR([trying to add module $modules_mod which does not exist])
        fi
        AC_MSG_NOTICE([Enabling module ${modules_mod}])
+       rm -f src/$modules_mod.off
        touch src/$modules_mod.on ;;
      esac
    done
-- 
GitLab