Author: tkreuzer
Date: Wed Jul 21 23:17:12 2010
New Revision: 48168
URL:
http://svn.reactos.org/svn/reactos?rev=48168&view=rev
Log:
[RBUILD]
Generate an RSP rule for the bootloader, this fixes "input line too long" error
reported by tower.
Modified:
trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
Modified: trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/backend/mingw…
==============================================================================
--- trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp [iso-8859-1] (original)
+++ trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp [iso-8859-1] Wed Jul 21
23:17:12 2010
@@ -2444,11 +2444,26 @@
string libsMacro = GetLibsMacro ();
GenerateRules ();
+
+ string objectsDir = "${call RBUILD_intermediate_dir,$(" + module.name +
"_TARGET)}";
+ string rspFile = objectsDir + "$(SEP)" + module.name + "_objs.rsp";
+
+ /* Generate the rsp rule */
+ fprintf(fMakefile, "%s: $(%s_OBJS) %s | %s\n"
+ "\t$(ECHO_RSP)\n"
+ "\t-@${rm} $@ 2>$(NUL)\n"
+ "\t${cp} $(NUL) $@ >$(NUL)\n"
+ "\t$(foreach obj,$(%s_LIBS),$(Q)echo $(QUOTE)$(subst
\\,\\\\,$(obj))$(QUOTE)>>$@$(NL))\n\n",
+ rspFile.c_str(),
+ module.name.c_str(),
+ module.xmlbuildFile.c_str(),
+ objectsDir.c_str(),
+ module.name.c_str());
const FileLocation *target_file = GetTargetFilename ( module, NULL );
fprintf ( fMakefile, "%s: %s %s | %s\n",
targetMacro.c_str (),
- objectsMacro.c_str (),
+ rspFile.c_str(),
libsMacro.c_str (),
backend->GetFullPath ( *target_file ).c_str () );
@@ -2461,24 +2476,22 @@
/* Link the stripped booloader */
fprintf(fMakefile,
- "\t${ld} --strip-all --subsystem native --entry=%s --image-base=%s %s %s
$(PROJECT_CCLIBS) "
+ "\t${ld} --strip-all --subsystem native --entry=%s --image-base=%s @%s
$(PROJECT_CCLIBS) "
"$(BUILTIN_LDFLAGS) $(PROJECT_LDFLAGS) $(LDFLAG_DRIVER) %s -o
$@\n",
module.GetEntryPoint().c_str(),
module.baseaddress.c_str(),
- objectsMacro.c_str(),
- libsMacro.c_str(),
+ rspFile.c_str(),
linkerScriptArgument.c_str() );
/* Link an unstripped version */
fprintf(fMakefile,
"ifeq ($(ROS_BUILDNOSTRIP),yes)\n"
- "\t${ld} --subsystem native --entry=%s --image-base=%s %s %s
$(PROJECT_CCLIBS) "
+ "\t${ld} --subsystem native --entry=%s --image-base=%s @%s
$(PROJECT_CCLIBS) "
"$(BUILTIN_LDFLAGS) $(PROJECT_LDFLAGS) $(LDFLAG_DRIVER) %s -o
%s$(SEP)%s.nostrip.sys\n"
"endif\n",
module.GetEntryPoint().c_str(),
module.baseaddress.c_str(),
- objectsMacro.c_str(),
- libsMacro.c_str(),
+ rspFile.c_str(),
linkerScriptArgument.c_str(),
backend->GetFullPath(*target_file).c_str(),
module.name.c_str());