3d6edc43d9
* Cleanup the SD card image building to allow jam -q @bootstrap-mmc to work. There are a few remaining tricks before you can safely build an image: * This uses a non-POSIX du option, and is only tested with Linux du only (Linux is the only supported system to run bootstrap builds, anyway) * The Python recipe in haikuports.cross is known to not build on Debian/Ubuntu, but work fine on OpenSuse. There is a patch available in haikuports bugtracker to allow the reverse. * You need to populate the haikuports repo package list with some packages (which don't exist yet) to make the build system happy. But our git hook to generate the repositories is preventnig me to share this hack. Once built, the image currently crashes early in the kernel execution. On to debug that!
226 lines
5.5 KiB
Plaintext
226 lines
5.5 KiB
Plaintext
# set HAIKU_BUILD_TYPE early
|
|
switch $(HAIKU_BUILD_PROFILE) {
|
|
case "bootstrap-*" : {
|
|
HAIKU_BUILD_TYPE = bootstrap ;
|
|
EnableBuildFeatures bootstrap_image ;
|
|
|
|
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.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-mmc : haiku-mmc-image : "haiku-mmc.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
|
|
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." ;
|
|
}
|
|
}
|
|
}
|