Add ROS_ARCH environment variable

Set -r option of rbuild as mandatory

svn path=/trunk/; revision=28124
This commit is contained in:
Hervé Poussineau 2007-08-03 11:35:01 +00:00
parent e94c193f12
commit 1a47ede2ff
6 changed files with 36 additions and 10 deletions

View file

@ -49,6 +49,10 @@
#
# Accepted environment variables:
#
# ROS_ARCH
# This variable specifies the name of the architecture to build ReactOS for.
# The variable defaults to i386.
#
# ROS_PREFIX
# This variable specifies the prefix of the MinGW installation. On Windows
# a prefix is usually not needed, but on linux it is usually "mingw32". If
@ -323,13 +327,19 @@ else # mingw32-windows
endif
endif
ifneq ($(ROS_ARCH),)
ARCH := $(ROS_ARCH)
else
ARCH := i386
endif
ifneq ($(ROS_INTERMEDIATE),)
INTERMEDIATE := $(ROS_INTERMEDIATE)
else
ifneq ($(ROS_CDOUTPUT),)
INTERMEDIATE := obj-$(ROS_CDOUTPUT)
else
INTERMEDIATE := obj-i386
INTERMEDIATE := obj-$(ARCH)
endif
endif
INTERMEDIATE_ := $(INTERMEDIATE)$(SEP)
@ -340,7 +350,7 @@ else
ifneq ($(ROS_CDOUTPUT),)
OUTPUT := output-$(ROS_CDOUTPUT)
else
OUTPUT := output-i386
OUTPUT := output-$(ARCH)
endif
endif
OUTPUT_ := $(OUTPUT)$(SEP)
@ -392,7 +402,6 @@ include lib/lib.mak
include tools/tools.mak
include boot/freeldr/bootsect/bootsect.mak
-include $(ROS_AUTOMAKE)
include tools/nci/nci.mak
PREAUTO := \
$(BIN2C_TARGET) \
@ -402,17 +411,17 @@ PREAUTO := \
$(BUGCODES_RC) \
$(ERRCODES_H) \
$(ERRCODES_RC) \
$(GENDIB_DIB_FILES)
$(GENDIB_DIB_FILES) \
$(NCI_SERVICE_FILES)
POSTAUTO : \
psdk \
$(IDL_FILES) \
$(NCI_SERVICE_FILES)
$(IDL_FILES)
$(ROS_AUTOMAKE): $(RBUILD_TARGET) $(PREAUTO) $(XMLBUILDFILES)
${mkdir} $(INTERMEDIATE_)media$(SEP)inf 2>$(NUL)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) mingw
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -rReactOS-$(ARCH).rbuild mingw
@$(MAKE) POSTAUTO
world: all bootcd livecd

View file

@ -51,6 +51,13 @@ void Exception::SetMessageV ( const char* message, va_list args )
}
MissingArgumentException::MissingArgumentException ( const string& argument )
: Exception ( "Argument '%s' is missing",
argument.c_str () )
{
}
OutOfMemoryException::OutOfMemoryException ()
: Exception ( "Out of memory" )
{

View file

@ -39,6 +39,13 @@ private:
};
class MissingArgumentException : public Exception
{
public:
MissingArgumentException ( const std::string& argument );
};
class InvalidOperationException : public Exception
{
public:

View file

@ -33,7 +33,7 @@ using std::string;
using std::vector;
static string BuildSystem;
static string RootXmlFile = "ReactOS.rbuild";
static string RootXmlFile;
static Configuration configuration;
bool
@ -239,12 +239,11 @@ main ( int argc, char** argv )
if ( !ParseArguments ( argc, argv ) )
{
printf ( "Generates project files for buildsystems\n\n" );
printf ( " rbuild [switches] buildsystem\n\n" );
printf ( " rbuild [switches] -r{rootfile.rbuild} buildsystem\n\n" );
printf ( "Switches:\n" );
printf ( " -v Be verbose.\n" );
printf ( " -c Clean as you go. Delete generated files as soon as they are not\n" );
printf ( " needed anymore.\n" );
printf ( " -r{file.rbuild} Name of the root rbuild file. Default is ReactOS.rbuild.\n" );
printf ( " -dd Disable automatic dependencies.\n" );
printf ( " -dm{module} Check only automatic dependencies for this module.\n" );
printf ( " -ud Disable multiple source files per compilation unit.\n" );
@ -267,6 +266,9 @@ main ( int argc, char** argv )
}
try
{
if ( RootXmlFile.length () == 0 )
throw MissingArgumentException ( "-r" );
string projectFilename ( RootXmlFile );
printf ( "Reading build files..." );

View file

@ -48,6 +48,7 @@ include tools/cdmake/cdmake.mak
include tools/dbgprint/dbgprint.mak
include tools/gendib/gendib.mak
include tools/mkhive/mkhive.mak
include tools/nci/nci.mak
include tools/pefixup.mak
include tools/raddr2line.mak
include tools/rbuild/rbuild.mak