* Build csrss and win32csr
* NativeCUI module type support
Deleted: branches/xmlbuildsystem/reactos/subsys/csrss/csrss.def
Added: branches/xmlbuildsystem/reactos/subsys/csrss/csrss.xml
Added: branches/xmlbuildsystem/reactos/subsys/csrss/win32csr/win32csr.xml
Modified: branches/xmlbuildsystem/reactos/subsys/directory.xml
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h

Deleted: branches/xmlbuildsystem/reactos/subsys/csrss/csrss.def
--- branches/xmlbuildsystem/reactos/subsys/csrss/csrss.def	2005-02-05 18:49:43 UTC (rev 13423)
+++ branches/xmlbuildsystem/reactos/subsys/csrss/csrss.def	2005-02-05 18:52:38 UTC (rev 13424)
@@ -1,8 +0,0 @@
-; $Id$
-;
-
-LIBRARY csrss.exe
-
-EXPORTS
-
-CsrServerInitialization

Added: branches/xmlbuildsystem/reactos/subsys/csrss/csrss.xml
--- branches/xmlbuildsystem/reactos/subsys/csrss/csrss.xml	2005-02-05 18:49:43 UTC (rev 13423)
+++ branches/xmlbuildsystem/reactos/subsys/csrss/csrss.xml	2005-02-05 18:52:38 UTC (rev 13424)
@@ -0,0 +1,23 @@
+<module name="csrss" type="nativecui">
+	<include base="csrss">.</include>
+	<include base="csrss">include</include>
+	<define name="__USE_W32API" />
+	<define name="_WIN32_WINNT">0x0600</define>
+	<define name="WINVER">0x0501</define>
+	<library>rosrtl</library>
+	<library>ntdll</library>
+	<directory name="api">
+		<file>handle.c</file>
+		<file>process.c</file>
+		<file>user.c</file>
+		<file>wapi.c</file>
+	</directory>
+	<file>csrss.c</file>
+	<file>init.c</file>
+	<file>print.c</file>
+	<file>video.c</file>
+	<file>csrss.rc</file>
+</module>
+<directory name="win32csr">
+	<xi:include href="win32csr/win32csr.xml" />
+</directory>

Added: branches/xmlbuildsystem/reactos/subsys/csrss/win32csr/win32csr.xml
--- branches/xmlbuildsystem/reactos/subsys/csrss/win32csr/win32csr.xml	2005-02-05 18:49:43 UTC (rev 13423)
+++ branches/xmlbuildsystem/reactos/subsys/csrss/win32csr/win32csr.xml	2005-02-05 18:52:38 UTC (rev 13424)
@@ -0,0 +1,18 @@
+<module name="win32csr" type="win32dll">
+	<importlibrary definition="win32csr.def" />
+	<include base="win32csr">.</include>
+	<include base="csrss">include</include>
+	<define name="_DISABLE_TIDENTS" />
+	<define name="__USE_W32API" />
+	<library>ntdll</library>
+	<library>kernel32</library>
+	<library>user32</library>
+	<library>gdi32</library>
+	<file>conio.c</file>
+	<file>desktopbg.c</file>
+	<file>dllmain.c</file>
+	<file>exitros.c</file>
+	<file>guiconsole.c</file>
+	<file>tuiconsole.c</file>
+	<file>win32csr.rc</file>
+</module>

Modified: branches/xmlbuildsystem/reactos/subsys/directory.xml
--- branches/xmlbuildsystem/reactos/subsys/directory.xml	2005-02-05 18:49:43 UTC (rev 13423)
+++ branches/xmlbuildsystem/reactos/subsys/directory.xml	2005-02-05 18:52:38 UTC (rev 13424)
@@ -1,3 +1,6 @@
+<directory name="csrss">
+	<xi:include href="csrss/csrss.xml" />
+</directory>
 <directory name="system">
 	<xi:include href="system/directory.xml" />
 </directory>

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp	2005-02-05 18:49:43 UTC (rev 13423)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp	2005-02-05 18:52:38 UTC (rev 13424)
@@ -1560,25 +1560,71 @@
 
 	if ( module.files.size () > 0 )
 	{
-		string killAt = module.mangledSymbols ? "" : "--kill-at";
-		fprintf ( fMakefile,
-		          "\t${dlltool} --dllname %s --def %s --output-lib %s %s\n\n",
-		          module.GetTargetName ().c_str (),
-		          (module.GetBasePath () + SSEP + module.importLibrary->definition).c_str (),
-		          FixupTargetFilename ( module.GetDependencyPath () ).c_str (),
-		          killAt.c_str () );
+		GenerateMacrosAndTargetsTarget ( module );
+
+		fprintf ( fMakefile, "%s: %s %s\n",
+		          target.c_str (),
+		          archiveFilename.c_str (),
+		          importLibraryDependencies.c_str () );
+
+		string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,0x10000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -nostdlib -mdll",
+		                                     module.entrypoint.c_str () );
+		GenerateLinkerCommand ( module,
+		                        "${gcc}",
+		                        linkerParameters,
+		                        objectFilenames );
 	}
+	else
+	{
+		fprintf ( fMakefile, ".PHONY: %s\n\n",
+		          target.c_str ());
+		fprintf ( fMakefile, "%s:\n\n",
+		          target.c_str ());
+	}
+}
 
-	if (module.files.size () > 0)
+
+static MingwNativeCUIModuleHandler nativecui_handler;
+
+MingwNativeCUIModuleHandler::MingwNativeCUIModuleHandler ()
+	: MingwModuleHandler ( NativeCUI )
+{
+}
+
+void
+MingwNativeCUIModuleHandler::Process ( const Module& module )
+{
+	GeneratePreconditionDependencies ( module );
+	GenerateNativeCUIModuleTarget ( module );
+	GenerateInvocations ( module );
+}
+
+void
+MingwNativeCUIModuleHandler::GenerateNativeCUIModuleTarget ( const Module& module )
+{
+	static string ros_junk ( "$(ROS_TEMPORARY)" );
+	string target ( FixupTargetFilename ( module.GetPath () ) );
+	string workingDirectory = GetWorkingDirectory ( );
+	string objectFilenames = GetObjectFilenames ( module );
+	string archiveFilename = GetModuleArchiveFilename ( module );
+	string importLibraryDependencies = GetImportLibraryDependencies ( module );
+	
+	GenerateImportLibraryTargetIfNeeded ( module );
+
+	if ( module.files.size () > 0 )
 	{
-		GenerateMacrosAndTargetsTarget ( module );
+		string* cflags = new string ( "-D__NTAPP__" );
+		GenerateMacrosAndTargetsTarget ( module,
+		                                 cflags,
+		                                 NULL );
+		delete cflags;
 
 		fprintf ( fMakefile, "%s: %s %s\n",
 		          target.c_str (),
 		          archiveFilename.c_str (),
 		          importLibraryDependencies.c_str () );
 
-		string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,0x10000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -nostdlib -mdll",
+		string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,0x10000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -nostdlib",
 		                                     module.entrypoint.c_str () );
 		GenerateLinkerCommand ( module,
 		                        "${gcc}",

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h	2005-02-05 18:49:43 UTC (rev 13423)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h	2005-02-05 18:52:38 UTC (rev 13424)
@@ -222,6 +222,16 @@
 };
 
 
+class MingwNativeCUIModuleHandler : public MingwModuleHandler
+{
+public:
+	MingwNativeCUIModuleHandler ();
+	virtual void Process ( const Module& module );
+private:
+	void GenerateNativeCUIModuleTarget ( const Module& module );
+};
+
+
 class MingwWin32DLLModuleHandler : public MingwModuleHandler
 {
 public:

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp
--- branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp	2005-02-05 18:49:43 UTC (rev 13423)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp	2005-02-05 18:52:38 UTC (rev 13424)
@@ -271,6 +271,8 @@
 		return KernelModeDriver;
 	if ( attribute.value == "nativedll" )
 		return NativeDLL;
+	if ( attribute.value == "nativecui" )
+		return NativeCUI;
 	if ( attribute.value == "win32dll" )
 		return Win32DLL;
 	if ( attribute.value == "win32gui" )
@@ -298,6 +300,7 @@
 		case ObjectLibrary:
 			return ".o";
 		case Kernel:
+		case NativeCUI:
 		case Win32GUI:
 			return ".exe";
 		case KernelModeDLL:
@@ -329,6 +332,8 @@
 			return "_DriverEntry@8";
 		case NativeDLL:
 			return "_DllMainCRTStartup@12";
+		case NativeCUI:
+			return "_NtProcessStartup@4";
 		case Win32DLL:
 			return "_DllMain@12";
 		case KernelModeDriver:

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h
--- branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h	2005-02-05 18:49:43 UTC (rev 13423)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h	2005-02-05 18:52:38 UTC (rev 13424)
@@ -91,6 +91,7 @@
 	KernelModeDLL,
 	KernelModeDriver,
 	NativeDLL,
+	NativeCUI,
 	Win32DLL,
 	Win32GUI,
 	BootLoader,