ROS_BUILDNOSTRIP environment variable to control building of non-symbol-stripped executable output files

svn path=/branches/xmlbuildsystem/; revision=14788
This commit is contained in:
Casper Hornstrup
2005-04-23 18:41:02 +00:00
parent f76d62cff1
commit e2239c25dc
3 changed files with 37 additions and 0 deletions
+8
View File
@@ -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.
@@ -1146,6 +1146,32 @@ MingwModuleHandler::GenerateBuildMapCode ()
"endif\n" );
}
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 @@ MingwModuleHandler::GenerateLinkerCommand (
GenerateBuildMapCode ();
GenerateBuildNonSymbolStrippedCode ();
fprintf ( fMakefile,
"\t$(ECHO_RSYM)\n" );
fprintf ( fMakefile,
@@ -169,6 +169,7 @@ private:
std::string GetDefinitionFilename () const;
static std::string RemoveVariables ( std::string path);
void GenerateBuildMapCode ();
void GenerateBuildNonSymbolStrippedCode ();
public:
const Module& module;
string_list clean_files;