ROS_BUILDNOSTRIP environment variable to control building of non-symbol-stripped executable output files
Modified: branches/xmlbuildsystem/reactos/Makefile
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h

Modified: branches/xmlbuildsystem/reactos/Makefile
--- branches/xmlbuildsystem/reactos/Makefile	2005-04-23 18:17:11 UTC (rev 14787)
+++ branches/xmlbuildsystem/reactos/Makefile	2005-04-23 18:41:02 UTC (rev 14788)
@@ -39,6 +39,14 @@
 #        without source code) or no (to not build any map files). The variable
 #        defaults to no.
 #
+#    ROS_BUILDNOSTRIP
+#        This variable controls if non-symbol-stripped versions are to be built
+#        of executable output files. Non-symbol-stripped executable output files
+#        have .nostrip added to the filename just before the extension. The value
+#        can be either yes (to build non-symbol-stripped versions of executable
+#        output files) or no (to not build non-symbol-stripped versions of
+#        executable output files). The variable defaults to no.
+#
 #    ROS_RBUILDFLAGS
 #        Pass parameters to rbuild.
 

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp	2005-04-23 18:17:11 UTC (rev 14787)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp	2005-04-23 18:41:02 UTC (rev 14788)
@@ -1147,6 +1147,32 @@
 }
 
 void
+MingwModuleHandler::GenerateBuildNonSymbolStrippedCode ()
+{
+	fprintf ( fMakefile,
+	          "ifeq ($(ROS_BUILDNOSTRIP),yes)\n" );
+
+	string filename = module.GetPath ();
+	string outputFilename = PassThruCacheDirectory (
+		filename,
+		backend->outputDirectory );
+	string nostripFilename = PassThruCacheDirectory (
+		GetBasename ( filename ) + ".nostrip" + GetExtension ( filename ),
+		backend->outputDirectory );
+	CLEAN_FILE ( nostripFilename );
+	
+	fprintf ( fMakefile,
+	          "\t$(ECHO_CP)\n" );
+	fprintf ( fMakefile,
+			  "\t${cp} %s %s 1>$(NUL)\n",
+			  outputFilename.c_str (),
+	          nostripFilename.c_str () );
+	
+	fprintf ( fMakefile,
+	          "endif\n" );
+}
+
+void
 MergeStringVector ( const vector<string>& input,
 	                vector<string>& output )
 {
@@ -1289,6 +1315,8 @@
 
 	GenerateBuildMapCode ();
 
+	GenerateBuildNonSymbolStrippedCode ();
+
 	fprintf ( fMakefile,
 	          "\t$(ECHO_RSYM)\n" );
 	fprintf ( fMakefile,

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h	2005-04-23 18:17:11 UTC (rev 14787)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h	2005-04-23 18:41:02 UTC (rev 14788)
@@ -169,6 +169,7 @@
 	std::string GetDefinitionFilename () const;
 	static std::string RemoveVariables ( std::string path);
 	void GenerateBuildMapCode ();
+	void GenerateBuildNonSymbolStrippedCode ();
 public:
 	const Module& module;
 	string_list clean_files;