* Build ntvdm
* Add win32cui module type support
Modified: branches/xmlbuildsystem/reactos/subsys/directory.xml
Added: branches/xmlbuildsystem/reactos/subsys/ntvdm/ntvdm.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
_____
Modified: branches/xmlbuildsystem/reactos/subsys/directory.xml
--- branches/xmlbuildsystem/reactos/subsys/directory.xml
2005-02-05 18:59:14 UTC (rev 13425)
+++ branches/xmlbuildsystem/reactos/subsys/directory.xml
2005-02-05 19:16:14 UTC (rev 13426)
@@ -1,6 +1,9 @@
<directory name="csrss">
<xi:include href="csrss/csrss.xml" />
</directory>
+<directory name="ntvdm">
+ <xi:include href="ntvdm/ntvdm.xml" />
+</directory>
<directory name="system">
<xi:include href="system/directory.xml" />
</directory>
_____
Added: branches/xmlbuildsystem/reactos/subsys/ntvdm/ntvdm.xml
--- branches/xmlbuildsystem/reactos/subsys/ntvdm/ntvdm.xml
2005-02-05 18:59:14 UTC (rev 13425)
+++ branches/xmlbuildsystem/reactos/subsys/ntvdm/ntvdm.xml
2005-02-05 19:16:14 UTC (rev 13426)
@@ -0,0 +1,12 @@
+<module name="ntvdm" type="win32cui">
+ <include base="ntvdm">.</include>
+ <define name="__USE_W32API" />
+ <define name="_DISABLE_TIDENTS" />
+ <library>ntdll</library>
+ <library>kernel32</library>
+ <library>user32</library>
+ <library>gdi32</library>
+ <library>advapi32</library>
+ <file>ntvdm.c</file>
+ <file>ntvdm.rc</file>
+</module>
_____
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.cpp
---
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.cpp 2005-02-05 18:59:14 UTC (rev 13425)
+++
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.cpp 2005-02-05 19:16:14 UTC (rev 13426)
@@ -1720,6 +1720,58 @@
}
+static MingwWin32CUIModuleHandler win32cui_handler;
+
+MingwWin32CUIModuleHandler::MingwWin32CUIModuleHandler ()
+ : MingwModuleHandler ( Win32CUI )
+{
+}
+
+void
+MingwWin32CUIModuleHandler::Process ( const Module& module )
+{
+ GeneratePreconditionDependencies ( module );
+ GenerateWin32CUIModuleTarget ( module );
+ GenerateInvocations ( module );
+}
+
+void
+MingwWin32CUIModuleHandler::GenerateWin32CUIModuleTarget ( const
Module& module )
+{
+ static string ros_junk ( "$(ROS_TEMPORARY)" );
+ string target ( FixupTargetFilename ( module.GetPath () ) );
+ string workingDirectory = GetWorkingDirectory ( );
+ string objectFilenames = GetObjectFilenames ( module );
+ string importLibraryDependencies = GetImportLibraryDependencies
( module );
+
+ GenerateImportLibraryTargetIfNeeded ( module );
+
+ if ( module.files.size () > 0 )
+ {
+ GenerateMacrosAndTargetsTarget ( module );
+
+ fprintf ( fMakefile, "%s: %s %s\n",
+ target.c_str (),
+ objectFilenames.c_str (),
+ importLibraryDependencies.c_str () );
+
+ string linkerParameters = ssprintf (
"-Wl,--subsystem,console -Wl,--entry,%s -Wl,--image-base,0x00400000
-Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000",
+
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 ());
+ }
+}
+
+
static MingwWin32GUIModuleHandler win32gui_handler;
MingwWin32GUIModuleHandler::MingwWin32GUIModuleHandler ()
_____
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.h
---
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.h 2005-02-05 18:59:14 UTC (rev 13425)
+++
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.h 2005-02-05 19:16:14 UTC (rev 13426)
@@ -243,6 +243,16 @@
};
+class MingwWin32CUIModuleHandler : public MingwModuleHandler
+{
+public:
+ MingwWin32CUIModuleHandler ();
+ virtual void Process ( const Module& module );
+private:
+ void GenerateWin32CUIModuleTarget ( const Module& module );
+};
+
+
class MingwWin32GUIModuleHandler : public MingwModuleHandler
{
public:
_____
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp
--- branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp
2005-02-05 18:59:14 UTC (rev 13425)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp
2005-02-05 19:16:14 UTC (rev 13426)
@@ -275,6 +275,8 @@
return NativeCUI;
if ( attribute.value == "win32dll" )
return Win32DLL;
+ if ( attribute.value == "win32cui" )
+ return Win32CUI;
if ( attribute.value == "win32gui" )
return Win32GUI;
if ( attribute.value == "bootloader" )
@@ -301,6 +303,7 @@
return ".o";
case Kernel:
case NativeCUI:
+ case Win32CUI:
case Win32GUI:
return ".exe";
case KernelModeDLL:
@@ -326,8 +329,6 @@
{
case Kernel:
return "_NtProcessStartup";
- case Win32GUI:
- return "_WinMainCRTStartup";
case KernelModeDLL:
return "_DriverEntry@8";
case NativeDLL:
@@ -336,6 +337,10 @@
return "_NtProcessStartup@4";
case Win32DLL:
return "_DllMain@12";
+ case Win32CUI:
+ return "_mainCRTStartup";
+ case Win32GUI:
+ return "_WinMainCRTStartup";
case KernelModeDriver:
return "_DriverEntry@8";
case BuildTool:
_____
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h
--- branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h
2005-02-05 18:59:14 UTC (rev 13425)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h
2005-02-05 19:16:14 UTC (rev 13426)
@@ -93,6 +93,7 @@
NativeDLL,
NativeCUI,
Win32DLL,
+ Win32CUI,
Win32GUI,
BootLoader,
BootSector,