* 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,