More commits of the same.  SVN is being a bit picky about resolved 
conflicts.
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.h
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/pch.h

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp	2005-01-17 16:26:11 UTC (rev 13098)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp	2005-01-17 16:27:28 UTC (rev 13099)
@@ -2,6 +2,7 @@
 #include "../../pch.h"
 
 #include "mingw.h"
+#include <assert.h>
 
 using std::string;
 using std::vector;
@@ -166,8 +167,10 @@
 	fprintf ( fMakefile, "gcc = gcc\n" );
 	fprintf ( fMakefile, "ld = ld\n" );
 	fprintf ( fMakefile, "ar = ar\n" );
+        fprintf ( fMakefile, "mkdir = tools%crmkdir\n", CSEP );
 	fprintf ( fMakefile, "dlltool = dlltool\n" );
 	fprintf ( fMakefile, "windres = windres\n" );
+        fprintf ( fMakefile, "NUL=NUL\n" );
 	fprintf ( fMakefile, "winebuild = tools" SSEP "winebuild" SSEP "winebuild\n" );
 	fprintf ( fMakefile, "\n" );
 	GenerateGlobalCFlagsAndProperties (
@@ -188,7 +191,7 @@
 void
 MingwBackend::GenerateAllTarget ()
 {
-	fprintf ( fMakefile, "all:" );
+        fprintf ( fMakefile, "all:" );
 	for ( size_t i = 0; i < ProjectNode.modules.size (); i++ )
 	{
 		Module& module = *ProjectNode.modules[i];
@@ -206,6 +209,7 @@
 		module.node.location,
 		module.type );
 	h->Process ( module );
+        h->GenerateDirectoryTargets ();
 }
 
 string

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.h
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.h	2005-01-17 16:26:11 UTC (rev 13098)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.h	2005-01-17 16:27:28 UTC (rev 13099)
@@ -23,6 +23,7 @@
 	                                         const std::vector<Define*>& defines,
 	                                         const std::vector<If*>& ifs );
 	std::string GenerateProjectLFLAGS ();
+        void GenerateDirectoryTargets ();
 	void GenerateGlobalVariables ();
 	void GenerateAllTarget ();
 	FILE* fMakefile;

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h	2005-01-17 16:26:11 UTC (rev 13098)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h	2005-01-17 16:27:28 UTC (rev 13099)
@@ -16,9 +16,12 @@
 	static MingwModuleHandler* LookupHandler ( const std::string& location,
 	                                           ModuleType moduletype_ );
 	virtual void Process ( const Module& module ) = 0;
+        void GenerateDirectoryTargets () const;
 
 protected:
+        const std::string &PassThruCacheDirectory ( const std::string &f ) const;
 	std::string GetWorkingDirectory () const;
+        std::string GetDirectory (const std::string& filename ) const;
 	std::string GetExtension ( const std::string& filename ) const;
 	std::string GetBasename ( const std::string& filename ) const;
 	std::string ReplaceExtension ( const std::string& filename,
@@ -51,6 +54,7 @@
 	std::string GetDefinitionDependencies ( const Module& module ) const;
 	std::string GetLinkingDependencies ( const Module& module ) const;
 	static FILE* fMakefile;
+        static std::set<std::string> directory_set;
 private:
 	std::string ConcatenatePaths ( const std::string& path1,
 	                               const std::string& path2 ) const;

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/pch.h
--- branches/xmlbuildsystem/reactos/tools/rbuild/pch.h	2005-01-17 16:26:11 UTC (rev 13098)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/pch.h	2005-01-17 16:27:28 UTC (rev 13099)
@@ -10,6 +10,7 @@
 #include <string>
 #include <vector>
 #include <map>
+#include <set>
 
 #include <stdarg.h>