haiku/build/jam/DefaultBuildProfiles
Oliver Tappe 72e677911f Make set of source packages for bootstrap-image configurable.
* Add new build profile 'minimum', which defines a minimum set of
  packages.
* Introduce HAIKU_BOOTSTRAP_SOURCES_PROFILE and let it default to
  '@minimum-raw'. This can be overruled in UserBuildConfig, setting
  it to '@release-raw' will cause all source packages required for a
  full release to be put onto the bootstrap-image.
* Add new image HaikuImageMinimum, which is meant to define the minimum
  useful Haiku image (yeah, I know that's vague).
* Add HAIKU_MINIMUM_BUILD, which indicates that HaikuImageMinimum should
  be used (it would be better to merge this with HAIKU_BOOTSTRAP_BUILD
  into something like HAIKU_BUILD_TYPE)
* Cleanup duplicate references to basic packages - those are now added
  by the topmost Jamfile (no longer referenced by the build profiles).
2014-03-16 01:17:55 +01:00

211 lines
5.1 KiB
Plaintext

# set HAIKU_BOOTSTRAP_BUILD early, if building a bootstrap Haiku image
switch $(HAIKU_BUILD_PROFILE) {
case "bootstrap-*" : {
HAIKU_BOOTSTRAP_BUILD = 1 ;
HAIKU_DEFINES += HAIKU_BOOTSTRAP_BUILD ;
TARGET_DEFINES += HAIKU_BOOTSTRAP_BUILD ;
}
case "minimum-*" : {
HAIKU_MINIMUM_BUILD = 1 ;
}
}
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.image" ;
# 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.image" ;
# bootstrap profiles
DefineBuildProfile bootstrap-raw : image : "haiku-bootstrap.image" ;
DefineBuildProfile bootstrap-vmware : vmware-image
: "haiku-bootstrap.vmdk" ;
# minimum profiles
DefineBuildProfile minimum-raw : image : "haiku-minimum.image" ;
DefineBuildProfile minimum-vmware : vmware-image : "haiku-minimum.vmdk" ;
DefineBuildProfile minimum-anyboot : anyboot-image
: "haiku-minimum-anyboot.image" ;
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 ;
HAIKU_IMAGE_SIZE ?= 800 ;
AddHaikuImagePackages
bepdf
cvs
keymapswitcher
llvm
man
mercurial
nano
openssh
p7zip
pe
python
subversion
timgmsoundfont
vision
wpa_supplicant
wqy_microhei
# 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 }@
;
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
AddHaikuImagePackages 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 "alpha-*" : {
Echo The alpha-* build profiles have been renamed to release-* ;
}
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 ;
HAIKU_IMAGE_SIZE ?= 600 ;
AddHaikuImagePackages
man
nano
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 }@
;
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 "bootstrap-*" : {
Echo Building Haiku Bootstrap ;
HAIKU_IMAGE_HOST_NAME ?= shredder ;
HAIKU_IMAGE_SIZE ?= 20000 ;
AddHaikuImagePackages
autoconf
automake
binutils
bison
curl_devel
findutils
flex
freetype_devel
gawk
gcc
grep
haikuporter
libtool
libtool_libltdl
m4
make
ncurses
ncurses_devel
python
sed
texinfo
zlib_devel
;
# secondary architecture packages
local architectureObject ;
for architectureObject
in [ MultiArchSubDirSetup $(TARGET_PACKAGING_ARCHS[2-]) ] {
on $(architectureObject) {
AddHaikuImagePackages
binutils
curl
curl_devel
freetype
freetype_devel
gcc
icu
libsolv
ncurses
ncurses_devel
zlib
zlib_devel
;
}
}
AddOptionalHaikuImagePackages DevelopmentMin ;
}
case "minimum-*" : {
Echo Building Haiku Minimum Target ;
HAIKU_IMAGE_HOST_NAME ?= shredder ;
AddHaikuImagePackages
;
}
}
# 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." ;
}
}
}