# set HAIKU_BUILD_TYPE earlyswitch $(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 profilesDefineBuildProfile 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 profilesDefineBuildProfile nightly-raw : image : "haiku-nightly.image" ;DefineBuildProfile nightly-mmc : haiku-mmc-image : "haiku-nightly.mmc" ;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 profilesDefineBuildProfile 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 profilesDefineBuildProfile 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 $(HAIKU_INCLUDE_SOURCES) = 1 || $(DEBUG) != 0 {HAIKU_IMAGE_SIZE ?= 1400 ;} else {HAIKU_IMAGE_SIZE ?= 800 ;}AddHaikuImageSystemPackagesbepdfkeymapswitchermandocnotonoto_sans_cjk_jpopensshpdfwriterpetimgmsoundfontvisionwonderbrushwpa_supplicant# Some packages can't be built with gcc2, so we install the gcc13# secondary architecture package instead in this case!gcc2 @{ nano p7zip python3.10 xz_utils }@gcc2 @{ nano_x86@secondary_x86 p7zip_x86@secondary_x86python3.10_x86@secondary_x86 xz_utils_x86@secondary_x86 }@;AddHaikuImageSourcePackagesbepdfnanop7zip;local architectureObject ;for architectureObject in [ MultiArchSubDirSetup ] {on $(architectureObject) {AddHaikuImageSystemPackages openssl3 ;}}AddOptionalHaikuImagePackages BeBook Development Git Welcome ;# WebPositive can only built for x86_gcc2, x86 and x86_64if $(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 ?= 650 ;HAIKU_NIGHTLY_BUILD = 1 ;AddHaikuImageSystemPackagesmandocnotoopensshopenssl3pevisionwpa_supplicant# xz_utils can't be built with gcc2, so we install it for# primary gcc 8 architectures or gcc 2 hybrids.!gcc2 @{ nano p7zip xz_utils }@gcc2 @{nano_x86@secondary_x86p7zip_x86@secondary_x86xz_utils_x86@secondary_x86}@;AddHaikuImageSourcePackagesnanop7zip;AddOptionalHaikuImagePackages Development Git ;# WebPositive can only built for x86_gcc2, x86 and x86_64if $(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 ;}AddHaikuImageSystemPackagesopenssl3;}case "bootstrap-*" : {Echo Building Haiku Bootstrap ;HAIKU_IMAGE_HOST_NAME ?= shredder ;HAIKU_IMAGE_SIZE ?= 20000 ;AddHaikuImageSystemPackagesbinutilsbisonexpatflexgccgrephaikuporterlesslibeditmakencurses6notopythonsedtexinfo!gcc2 @{ gawk grep }@gcc2 @{ grep_x86@secondary_x86 mawk }@;AddHaikuImageDisabledPackagesfreetype_devellibedit_develncurses6_develzlib_devel;# secondary architecture packageslocal architectureObject ;for architectureObjectin [ MultiArchSubDirSetup $(TARGET_PACKAGING_ARCHS[2-]) ] {on $(architectureObject) {AddHaikuImageSystemPackagesbinutilsexpatfreetypegccicu@gcc2 icu74@!gcc2libeditncurses6zlib;AddHaikuImageDisabledPackagesfreetype_devellibedit_develncurses6_develzlib_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 profilesif $(HAIKU_BUILD_PROFILE) in cd-image install vmware-image {DefineBuildProfile $(HAIKU_BUILD_PROFILE) : $(HAIKU_BUILD_PROFILE) ;} else {Exit "Build profile" $(HAIKU_BUILD_PROFILE) "not defined." ;}}}