summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2007-05-16 17:24:17 (GMT)
committerBrad King <brad.king@kitware.com>2007-05-16 17:24:17 (GMT)
commit142210997f803cd64f93795980dbf6dd38182697 (patch)
treef861c88b1df5be1ce8fcf03ee9793c8ff4ce78e3
parent01c7db07c3826c05c658a370cd0d42bf3128fcff (diff)
downloadCMake-142210997f803cd64f93795980dbf6dd38182697.zip
CMake-142210997f803cd64f93795980dbf6dd38182697.tar.gz
CMake-142210997f803cd64f93795980dbf6dd38182697.tar.bz2
BUG: Watcom WMake needs empty rule commands even for symbolic targets. This fixes the cmake_force target.
-rw-r--r--Source/cmGlobalUnixMakefileGenerator3.h15
-rw-r--r--Source/cmGlobalWatcomWMakeGenerator.cxx2
-rw-r--r--Source/cmLocalUnixMakefileGenerator3.cxx5
-rw-r--r--Source/cmMakefileTargetGenerator.cxx2
4 files changed, 14 insertions, 10 deletions
diff --git a/Source/cmGlobalUnixMakefileGenerator3.h b/Source/cmGlobalUnixMakefileGenerator3.h
index aa901af..5d4ceef 100644
--- a/Source/cmGlobalUnixMakefileGenerator3.h
+++ b/Source/cmGlobalUnixMakefileGenerator3.h
@@ -111,9 +111,9 @@ public:
check-build-system step. */
virtual void CheckMultipleOutputs(cmMakefile* mf, bool verbose);
- /** Get the command to use for a non-symbolic target file that has
- no rule. This is used for multiple output dependencies. */
- std::string GetEmptyCommandHack() { return this->EmptyCommandsHack; }
+ /** Get the command to use for a target that has no rule. This is
+ used for multiple output dependencies and for cmake_force. */
+ std::string GetEmptyRuleHackCommand() { return this->EmptyRuleHackCommand; }
/** Get the fake dependency to use when a rule has no real commands
or dependencies. */
@@ -175,11 +175,10 @@ protected:
// that can be added.
std::string EmptyRuleHackDepends;
- // Some make programs (Watcom) do not like rules with no commands
- // for non-symbolic targets. If non-empty this variable holds a
- // bogus command that may be put in the rule to satisfy the make
- // program.
- std::string EmptyCommandsHack;
+ // Some make programs (Watcom) do not like rules with no commands.
+ // If non-empty this variable holds a bogus command that may be put
+ // in the rule to satisfy the make program.
+ std::string EmptyRuleHackCommand;
typedef std::map<cmStdString, cmStdString> MultipleOutputPairsType;
MultipleOutputPairsType MultipleOutputPairs;
diff --git a/Source/cmGlobalWatcomWMakeGenerator.cxx b/Source/cmGlobalWatcomWMakeGenerator.cxx
index 2505353..5505be7 100644
--- a/Source/cmGlobalWatcomWMakeGenerator.cxx
+++ b/Source/cmGlobalWatcomWMakeGenerator.cxx
@@ -24,7 +24,7 @@ cmGlobalWatcomWMakeGenerator::cmGlobalWatcomWMakeGenerator()
this->ForceUnixPaths = false;
this->ToolSupportsColor = true;
this->NeedSymbolicMark = true;
- this->EmptyCommandsHack = "@cd .";
+ this->EmptyRuleHackCommand = "@cd .";
}
void cmGlobalWatcomWMakeGenerator
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx
index 5370750..3d89366 100644
--- a/Source/cmLocalUnixMakefileGenerator3.cxx
+++ b/Source/cmLocalUnixMakefileGenerator3.cxx
@@ -714,6 +714,11 @@ cmLocalUnixMakefileGenerator3
{
no_depends.push_back(hack);
}
+ std::string hack_cmd = gg->GetEmptyRuleHackCommand();
+ if(!hack_cmd.empty())
+ {
+ no_commands.push_back(hack_cmd);
+ }
// Special symbolic target that never exists to force dependers to
// run their rules.
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index 54d7835..8eec8c2 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -923,7 +923,7 @@ cmMakefileTargetGenerator
// to be created.
std::vector<std::string> commands;
std::vector<std::string> depends;
- std::string emptyCommand = this->GlobalGenerator->GetEmptyCommandHack();
+ std::string emptyCommand = this->GlobalGenerator->GetEmptyRuleHackCommand();
if(!emptyCommand.empty())
{
commands.push_back(emptyCommand);