72e677911f
* 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).
211 lines
5.1 KiB
Plaintext
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." ;
|
|
}
|
|
}
|
|
}
|