haiku/build/jam/DefaultBuildProfiles
Adrien Destugues 4f44282c3b Move source and development packages out of /system/packages on release images
Activating all these packages on live boot (especially live DVD where we
also have the write overlay eating up RAM) significantly increases
memory requirements for running Haiku, to the point that Installer may
fail to run. Move them outside the packages/ directory so they are not
activated.

Installer already skips the _sources_ directory when installing, and
lists the contents of _packages_ with checkbox to decide what to include
in the install (they are put in system/packages on the target disk).

Fix from previous version: the Haiku package was installed to /system
instead of /system/packages.

Fixes #15621.
2020-03-16 10:32:00 +01:00

267 lines
6.4 KiB
Plaintext

# set HAIKU_BUILD_TYPE early
switch $(HAIKU_BUILD_PROFILE) {
case "bootstrap-*" : {
HAIKU_BUILD_TYPE = bootstrap ;
EnableBuildFeatures bootstrap_image ;
# Add a third pseudo target for the platform used when building anything
# for stage0 of the bootstrap process.
NotFile bootstrap_stage0 ;
HAIKU_DEFINES += HAIKU_BOOTSTRAP_BUILD ;
TARGET_DEFINES += HAIKU_BOOTSTRAP_BUILD ;
}
case "minimum-*" : {
HAIKU_BUILD_TYPE = minimum ;
EnableBuildFeatures minimum_image ;
HAIKU_DEFINES += HAIKU_MINIMUM_BUILD ;
TARGET_DEFINES += HAIKU_MINIMUM_BUILD ;
}
case "*" : {
HAIKU_BUILD_TYPE = regular ;
EnableBuildFeatures regular_image ;
HAIKU_DEFINES += HAIKU_REGULAR_BUILD ;
TARGET_DEFINES += HAIKU_REGULAR_BUILD ;
}
}
Echo "Starting build of type $(HAIKU_BUILD_TYPE) ..." ;
rule DefineDefaultBuildProfiles
{
# release profiles
DefineBuildProfile release-raw : image : "haiku-release.image" ;
DefineBuildProfile release-vmware : vmware-image : "haiku-release.vmdk" ;
DefineBuildProfile release-cd : cd-image : "haiku-release.iso" ;
DefineBuildProfile release-anyboot : anyboot-image
: "haiku-release-anyboot.iso" ;
# nightly profiles
DefineBuildProfile nightly-raw : image : "haiku-nightly.image" ;
DefineBuildProfile nightly-vmware : vmware-image : "haiku-nightly.vmdk" ;
DefineBuildProfile nightly-cd : cd-image : "haiku-nightly.iso" ;
DefineBuildProfile nightly-anyboot : anyboot-image
: "haiku-nightly-anyboot.iso" ;
# bootstrap profiles
DefineBuildProfile bootstrap-raw : image : "haiku-bootstrap.image" ;
DefineBuildProfile bootstrap-mmc : haiku-mmc-image : "haiku-bootstrap.mmc" ;
DefineBuildProfile bootstrap-vmware : vmware-image
: "haiku-bootstrap.vmdk" ;
DefineBuildProfile bootstrap-anyboot : anyboot-image
: "haiku-bootstrap-anyboot.iso" ;
# minimum profiles
DefineBuildProfile minimum-raw : image : "haiku-minimum.image" ;
DefineBuildProfile minimum-mmc : haiku-mmc-image : "haiku-minimum.mmc" ;
DefineBuildProfile minimum-vmware : vmware-image : "haiku-minimum.vmdk" ;
DefineBuildProfile minimum-cd : cd-image : "haiku-minimum.iso" ;
DefineBuildProfile minimum-anyboot : anyboot-image
: "haiku-minimum-anyboot.iso" ;
switch $(HAIKU_BUILD_PROFILE) {
case "release-*" : {
Echo Building Haiku R1/development preview ;
HAIKU_ROOT_USER_NAME ?= user ;
HAIKU_ROOT_USER_REAL_NAME ?= "Yourself" ;
AddGroupToHaikuImage party : 101 : user sshd ;
HAIKU_IMAGE_HOST_NAME ?= shredder ;
if $(DEBUG) != 0 {
HAIKU_IMAGE_SIZE ?= 1300 ;
}
if $(HAIKU_INCLUDE_SOURCES) = 1 {
HAIKU_IMAGE_SIZE ?= 1100 ;
} else {
HAIKU_IMAGE_SIZE ?= 690 ;
}
AddHaikuImageSystemPackages
bepdf
keymapswitcher
llvm
man
nano
noto
noto_sans_cjk_jp
openssh
p7zip
pdfwriter
pe
python
timgmsoundfont
vision
wpa_supplicant
wqy_microhei
# xz_utils can't be built with gcc2, so we install it for
# primary gcc 8 architectures or gcc 2 hybrids.
xz_utils@!gcc2
gcc2 @{ xz_utils_x86@secondary_x86 }@
;
AddHaikuImageSourcePackages
bepdf
man
nano
p7zip
gcc
;
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
AddHaikuImageSystemPackages openssl wonderbrush@gcc2 ;
}
}
AddOptionalHaikuImagePackages BeBook Development Git Welcome ;
# WebPositive can only built for x86_gcc2, x86 and x86_64
if $(HAIKU_PACKAGING_ARCHS) in x86_gcc2 x86 x86_64 {
AddOptionalHaikuImagePackages WebPositive ;
} else {
Echo "WebPositive not available on $(HAIKU_PACKAGING_ARCHS)" ;
}
}
case "nightly-*" : {
Echo Building Haiku Nightly ;
HAIKU_ROOT_USER_NAME ?= user ;
HAIKU_ROOT_USER_REAL_NAME ?= "Yourself" ;
AddGroupToHaikuImage party : 101 : user sshd ;
HAIKU_IMAGE_HOST_NAME ?= shredder ;
if $(DEBUG) != 0 {
HAIKU_IMAGE_SIZE ?= 850 ;
}
HAIKU_IMAGE_SIZE ?= 600 ;
HAIKU_NIGHTLY_BUILD = 1 ;
AddHaikuImageSystemPackages
man
nano
noto
openssh
openssl
p7zip
pe
vision
wpa_supplicant
# xz_utils can't be built with gcc2, so we install it for
# primary gcc 4 architectures or gcc 2 hybrids.
xz_utils@!gcc2
gcc2 @{ xz_utils_x86@secondary_x86 }@
;
AddHaikuImageSourcePackages
man
nano
p7zip
gcc
;
AddOptionalHaikuImagePackages Development Git ;
# WebPositive can only built for x86_gcc2, x86 and x86_64
if $(HAIKU_PACKAGING_ARCHS) in x86_gcc2 x86 x86_64 {
AddOptionalHaikuImagePackages WebPositive ;
} else {
Echo "WebPositive not available on $(HAIKU_PACKAGING_ARCHS)" ;
}
}
case "minimum-*" : {
Echo Building Haiku Minimum Target ;
HAIKU_IMAGE_HOST_NAME ?= shredder ;
if $(DEBUG) != 0 {
HAIKU_IMAGE_SIZE ?= 450 ;
}
AddHaikuImageSystemPackages
openssl
;
}
case "bootstrap-*" : {
Echo Building Haiku Bootstrap ;
HAIKU_IMAGE_HOST_NAME ?= shredder ;
HAIKU_IMAGE_SIZE ?= 20000 ;
AddHaikuImageSystemPackages
binutils
bison
expat
flex
gawk
gcc
grep
haikuporter
less
libedit
m4
make
ncurses6
noto
python
sed
texinfo
;
AddHaikuImageDisabledPackages
curl_devel
freetype_devel
libedit_devel
ncurses6_devel
zlib_devel
;
# secondary architecture packages
local architectureObject ;
for architectureObject
in [ MultiArchSubDirSetup $(TARGET_PACKAGING_ARCHS[2-]) ] {
on $(architectureObject) {
AddHaikuImageSystemPackages
binutils
curl
expat
freetype
gcc
icu
libsolv
libedit
ncurses6
zlib
;
AddHaikuImageDisabledPackages
curl_devel
freetype_devel
libedit_devel
ncurses6_devel
zlib_devel
;
}
}
AddOptionalHaikuImagePackages DevelopmentMin ;
}
}
# Uncomment in official release branch.
#HAIKU_DEFINES += HAIKU_OFFICIAL_RELEASE ;
#TARGET_DEFINES += HAIKU_OFFICIAL_RELEASE ;
# If a build profile was specified on the command line, now is the time to
# check whether it is unknown or one of the default profiles.
if $(HAIKU_BUILD_PROFILE) && ! $(HAIKU_BUILD_PROFILE_DEFINED) {
# define the obvious default profiles
if $(HAIKU_BUILD_PROFILE) in anyboot-image cd-image image install
vmware-image {
DefineBuildProfile $(HAIKU_BUILD_PROFILE) : $(HAIKU_BUILD_PROFILE) ;
} else {
Exit "Build profile" $(HAIKU_BUILD_PROFILE) "not defined." ;
}
}
}