From 6a6a71b2f1881ca1f8d461cdeed437a5a3329484 Mon Sep 17 00:00:00 2001 From: Royce Mitchell III Date: Wed, 19 Jan 2005 01:37:35 +0000 Subject: [PATCH] added 'first' attribute to svn path=/branches/xmlbuildsystem/; revision=13129 --- reactos/ntoskrnl/ntoskrnl.xml | 4 ++-- .../tools/rbuild/backend/mingw/modulehandler.cpp | 15 ++++++++++++++- reactos/tools/rbuild/module.cpp | 8 +++++--- reactos/tools/rbuild/rbuild.h | 3 ++- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/reactos/ntoskrnl/ntoskrnl.xml b/reactos/ntoskrnl/ntoskrnl.xml index 53672a8528c..19b8369dd0b 100644 --- a/reactos/ntoskrnl/ntoskrnl.xml +++ b/reactos/ntoskrnl/ntoskrnl.xml @@ -26,10 +26,10 @@ - + - multiboot.S + multiboot.S bios.c brkpoint.c bthread.S diff --git a/reactos/tools/rbuild/backend/mingw/modulehandler.cpp b/reactos/tools/rbuild/backend/mingw/modulehandler.cpp index f353b8194c8..5aed452f136 100644 --- a/reactos/tools/rbuild/backend/mingw/modulehandler.cpp +++ b/reactos/tools/rbuild/backend/mingw/modulehandler.cpp @@ -447,6 +447,17 @@ MingwModuleHandler::GenerateMacros ( if ( files.size() ) { + for ( i = 0; i < files.size(); i++ ) + { + if ( files[i]->first ) + { + fprintf ( fMakefile, + "%s := %s $(%s)\n", + objs_macro.c_str(), + GetObjectFilename(files[i]->name).c_str(), + objs_macro.c_str() ); + } + } fprintf ( fMakefile, "%s %s", @@ -455,7 +466,9 @@ MingwModuleHandler::GenerateMacros ( for ( i = 0; i < files.size(); i++ ) { string extension = GetExtension ( files[i]->name ); - if ( extension != ".spec" && extension != ".SPEC" ) + if ( extension != ".spec" + && extension != ".SPEC" + && !files[i]->first ) { fprintf ( fMakefile, diff --git a/reactos/tools/rbuild/module.cpp b/reactos/tools/rbuild/module.cpp index 0481f32586d..f4a2af70e4d 100644 --- a/reactos/tools/rbuild/module.cpp +++ b/reactos/tools/rbuild/module.cpp @@ -102,7 +102,9 @@ Module::ProcessXMLSubElement ( const XMLElement& e, string subpath ( path ); if ( e.name == "file" && e.value.size () > 0 ) { - File* pFile = new File ( FixSeparator ( path + CSEP + e.value ) ); + const XMLAttribute* att = e.GetAttribute ( "first", false ); + File* pFile = new File ( FixSeparator ( path + CSEP + e.value ), + att != NULL ); if ( pIf ) pIf->files.push_back ( pFile ); else @@ -323,8 +325,8 @@ Module::GetInvocationTarget ( const int index ) const } -File::File ( const string& _name ) - : name(_name) +File::File ( const string& _name, bool _first ) + : name(_name), first(_first) { } diff --git a/reactos/tools/rbuild/rbuild.h b/reactos/tools/rbuild/rbuild.h index a7781d22c15..864a975dcd9 100644 --- a/reactos/tools/rbuild/rbuild.h +++ b/reactos/tools/rbuild/rbuild.h @@ -168,8 +168,9 @@ class File { public: std::string name; + bool first; - File ( const std::string& _name ); + File ( const std::string& _name, bool _first ); void ProcessXML(); }; -- 2.17.1