From ac80633ce275edddaa3e4fa2ae0c048ed00f7d74 Mon Sep 17 00:00:00 2001
From: marha <marha@users.sourceforge.net>
Date: Mon, 22 Mar 2010 10:29:25 +0000
Subject: svn merge -c505 ^/branches/released .

---
 tools/mhmake/src/fileinfo.h |  7 ++++++-
 tools/mhmake/src/rule.cpp   | 11 +++++++++++
 tools/mhmake/src/rule.h     |  1 +
 tools/mhmake/src/util.h     |  2 +-
 4 files changed, 19 insertions(+), 2 deletions(-)

(limited to 'tools')

diff --git a/tools/mhmake/src/fileinfo.h b/tools/mhmake/src/fileinfo.h
index 16ca414e2..6c9800f38 100644
--- a/tools/mhmake/src/fileinfo.h
+++ b/tools/mhmake/src/fileinfo.h
@@ -351,9 +351,14 @@ public:
   {
     return (m_BuildStatus&2)==2;
   }
-  void SetBuilding(void)
+  void SetBuilding(bool Others=true)
   {
     m_BuildStatus|=2;
+    /* Check if there are targets build by the rule attached to this target, if so set them also to building */
+    if (Others && m_pRule)
+    {
+      m_pRule->SetTargetsIsBuilding(this);
+    }
   }
   void ClearBuilding(void)
   {
diff --git a/tools/mhmake/src/rule.cpp b/tools/mhmake/src/rule.cpp
index f9485b560..aa2ce1a13 100644
--- a/tools/mhmake/src/rule.cpp
+++ b/tools/mhmake/src/rule.cpp
@@ -193,6 +193,17 @@ void rule::SetTargetsIsBuild(uint32 Md5_32)
     It++;
   }
 }
+///////////////////////////////////////////////////////////////////////////////
+void rule::SetTargetsIsBuilding(const fileinfo *pSrc)
+{
+  vector< fileinfo* >::iterator It=m_Targets.begin();
+  while (It!=m_Targets.end())
+  {
+    if ((*It)!=pSrc)
+      (*It)->SetBuilding(false);
+    It++;
+  }
+}
 
 
 #ifdef _DEBUG
diff --git a/tools/mhmake/src/rule.h b/tools/mhmake/src/rule.h
index c8235a8bc..bfc00bb15 100644
--- a/tools/mhmake/src/rule.h
+++ b/tools/mhmake/src/rule.h
@@ -72,6 +72,7 @@ public:
     m_Targets.push_back(pTarget);
   }
   void SetTargetsIsBuild(uint32 Md5_32);
+  void SetTargetsIsBuilding(const fileinfo *pSrc);
 };
 
 class IMPLICITRULE
diff --git a/tools/mhmake/src/util.h b/tools/mhmake/src/util.h
index 1d3cfbb66..f29b9cbcf 100644
--- a/tools/mhmake/src/util.h
+++ b/tools/mhmake/src/util.h
@@ -50,7 +50,7 @@
 #define PLATFORM     "linux"
 #endif
 
-#define MHMAKEVER    "2.0.4"
+#define MHMAKEVER    "2.0.5"
 
 class makecommand
 {
-- 
cgit v1.2.3