aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.cpp16
-rw-r--r--src/rule.cpp5
-rw-r--r--src/targetfile.cpp1
3 files changed, 19 insertions, 3 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 03004fc..1576b0c 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -13,6 +13,7 @@ public:
13 sFile("build.conf"), 13 sFile("build.conf"),
14 sCache(".build.cache"), 14 sCache(".build.cache"),
15 bDebug( false ), 15 bDebug( false ),
16 bPostDebug( false ),
16 sView("plain") 17 sView("plain")
17 { 18 {
18 addHelpBanner("Build r?\n\n"); 19 addHelpBanner("Build r?\n\n");
@@ -25,7 +26,9 @@ public:
25 addParam("cache", &sCache, 26 addParam("cache", &sCache,
26 "Set an alternative cache file." ); 27 "Set an alternative cache file." );
27 addParam('d', &bDebug, 28 addParam('d', &bDebug,
28 "Print out a debug dump of the build.conf", NULL, "true" ); 29 "Display debug info instead of building", NULL, "true" );
30 addParam('D', &bPostDebug,
31 "Display debug info after building", NULL, "true" );
29 addParam("help", mkproc(ParamProc::help), 32 addParam("help", mkproc(ParamProc::help),
30 "This help"); 33 "This help");
31 //pViewer = new ViewerPlain; 34 //pViewer = new ViewerPlain;
@@ -63,6 +66,7 @@ public:
63 StaticString sAction; 66 StaticString sAction;
64 //Viewer *pViewer; 67 //Viewer *pViewer;
65 bool bDebug; 68 bool bDebug;
69 bool bPostDebug;
66 70
67private: 71private:
68}; 72};
@@ -92,11 +96,21 @@ int main( int argc, char *argv[] )
92 else 96 else
93 pBuild->execAction(""); 97 pBuild->execAction("");
94 } 98 }
99 if( prm.bPostDebug )
100 {
101 printf("\n\n----------\nDebug dump\n----------\n");
102 pBuild->debugDump();
103 }
95 } 104 }
96 catch( BuildException &e ) 105 catch( BuildException &e )
97 { 106 {
98 fputs( e.what(), stderr ); 107 fputs( e.what(), stderr );
99 fputs( "\n", stderr ); 108 fputs( "\n", stderr );
109 if( prm.bPostDebug )
110 {
111 printf("\n\n----------\nDebug dump\n----------\n");
112 pBuild->debugDump();
113 }
100 return 1; 114 return 1;
101 } 115 }
102 116
diff --git a/src/rule.cpp b/src/rule.cpp
index 3ba4303..dcf62d4 100644
--- a/src/rule.cpp
+++ b/src/rule.cpp
@@ -81,8 +81,9 @@ StringList Rule::execute( Build &bld, StringList &lInput, PerformList &lPerf )
81 { 81 {
82 for( StringList::iterator i = lMine.begin(); i != lMine.end(); i++ ) 82 for( StringList::iterator i = lMine.begin(); i != lMine.end(); i++ )
83 { 83 {
84 for( StringList::iterator j = lProduces.begin(); 84 //for( StringList::iterator j = lProduces.begin();
85 j != lProduces.end(); j++ ) 85 // j != lProduces.end(); j++ )
86 StringList::iterator j = lProduces.begin();
86 { 87 {
87 VarMap mTmp; 88 VarMap mTmp;
88 std::string target = bld.replVars( (*j), (*i), NULL ); 89 std::string target = bld.replVars( (*j), (*i), NULL );
diff --git a/src/targetfile.cpp b/src/targetfile.cpp
index 3743297..6ea83d5 100644
--- a/src/targetfile.cpp
+++ b/src/targetfile.cpp
@@ -72,6 +72,7 @@ void TargetFile::clean( Build &bld )
72 { 72 {
73 if( access( (*i)->getTarget().c_str(), W_OK ) == 0 ) 73 if( access( (*i)->getTarget().c_str(), W_OK ) == 0 )
74 { 74 {
75 (*i)->setRule("clean");
75 bld.getView()->beginPerform( *i ); 76 bld.getView()->beginPerform( *i );
76 unlink( (*i)->getTarget().c_str() ); 77 unlink( (*i)->getTarget().c_str() );
77 bld.getView()->endPerform(); 78 bld.getView()->endPerform();