Optionally build glue code for bootstrap_stage0 platform.

This commit is contained in:
Oliver Tappe
2014-08-13 13:32:49 +02:00
parent 445257ffd6
commit f7653b1b74
7 changed files with 79 additions and 6 deletions
+28
View File
@@ -760,3 +760,31 @@ rule BuildPlatformStaticLibraryPIC target : sources : otherObjects
BuildPlatformStaticLibrary $(target) : $(sources) : $(otherObjects) ;
}
rule BootstrapStage0PlatformObjects sources : separateFromStandardSiblings
{
# BootstrapStage0PlatformObjects <sources> : <separateFromStandardSiblings>
# Builds objects from the given sources for stage0 of the bootstrap process.
# <sources> The sources from which objects should be created.
# <separateFromStandardSiblings> Pass 'true' if the same objects are built
# in a different context, too, so that a separate grist and target location
# is required. This defaults to ''.
local source ;
for source in $(sources) {
local objectGrist ;
if $(separateFromStandardSiblings) = true {
objectGrist = "bootstrap!$(SOURCE_GRIST)" ;
} else {
objectGrist = $(SOURCE_GRIST) ;
}
local object = $(source:S=$(SUFOBJ):G=$(objectGrist)) ;
PLATFORM on $(object) = bootstrap_stage0 ;
SUPPORTED_PLATFORMS on $(object) = bootstrap_stage0 ;
if $(separateFromStandardSiblings) = true {
MakeLocate $(object) : [
FDirName $(TARGET_DEBUG_$(DEBUG)_LOCATE_TARGET) bootstrap
] ;
}
Object $(object) : $(source) ;
}
}
+8 -1
View File
@@ -5,14 +5,21 @@ for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
UsePrivateSystemHeaders ;
Objects
local sources =
init_term_dyn.c
start_dyn.c
haiku_version_glue.c
;
Objects $(sources) ;
if $(HAIKU_BUILD_TYPE) = bootstrap {
# build a version for stage0 of the bootstrap process
BootstrapStage0PlatformObjects $(sources) : true ;
}
}
}
local arch ;
for arch in $(TARGET_ARCHS) {
SubInclude HAIKU_TOP src system glue arch $(arch) ;
+9 -1
View File
@@ -3,9 +3,17 @@ SubDir HAIKU_TOP src system glue arch arm ;
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup arm ] {
on $(architectureObject) {
Objects
UsePrivateSystemHeaders ;
local sources =
crti.S
crtn.S
;
Objects $(sources) ;
if $(HAIKU_BUILD_TYPE) = bootstrap {
# build a version for stage0 of the bootstrap process
BootstrapStage0PlatformObjects $(sources) : true ;
}
}
}
+9 -1
View File
@@ -3,9 +3,17 @@ SubDir HAIKU_TOP src system glue arch m68k ;
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup m68k ] {
on $(architectureObject) {
Objects
UsePrivateSystemHeaders ;
local sources =
crti.S
crtn.S
;
Objects $(sources) ;
if $(HAIKU_BUILD_TYPE) = bootstrap {
# build a version for stage0 of the bootstrap process
BootstrapStage0PlatformObjects $(sources) : true ;
}
}
}
+9 -1
View File
@@ -3,9 +3,17 @@ SubDir HAIKU_TOP src system glue arch ppc ;
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ppc ] {
on $(architectureObject) {
Objects
UsePrivateSystemHeaders ;
local sources =
crti.S
crtn.S
;
Objects $(sources) ;
if $(HAIKU_BUILD_TYPE) = bootstrap {
# build a version for stage0 of the bootstrap process
BootstrapStage0PlatformObjects $(sources) : true ;
}
}
}
+9 -1
View File
@@ -3,9 +3,17 @@ SubDir HAIKU_TOP src system glue arch x86 ;
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup x86 x86_gcc2 ] {
on $(architectureObject) {
Objects
UsePrivateSystemHeaders ;
local sources =
crti.S
crtn.S
;
Objects $(sources) ;
if $(HAIKU_BUILD_TYPE) = bootstrap {
# build a version for stage0 of the bootstrap process
BootstrapStage0PlatformObjects $(sources) : true ;
}
}
}
+7 -1
View File
@@ -5,9 +5,15 @@ for architectureObject in [ MultiArchSubDirSetup x86_64 ] {
on $(architectureObject) {
UsePrivateSystemHeaders ;
Objects
local sources =
crti.S
crtn.S
;
Objects $(sources) ;
if $(HAIKU_BUILD_TYPE) = bootstrap {
# build a version for stage0 of the bootstrap process
BootstrapStage0PlatformObjects $(sources) : true ;
}
}
}