SubDir HAIKU_TOP ;# Prepare the optional build features before parsing the Jamfile tree.local architectureObject ;for architectureObject in [ MultiArchSubDirSetup ] {on $(architectureObject) {include [ FDirName $(HAIKU_BUILD_RULES_DIR) BuildFeatures ] ;# Let the target platform depend on the external header directories such# that those will be unpacked before anything is built for the target# platform.Depends $(TARGET_PLATFORM) : [BuildFeatureAttribute gcc_syslibs_devel : c++-headers] [BuildFeatureAttribute gcc_syslibs_devel : gcc-headers] ;}}# Include required packages:# primary architectureAddHaikuImageSystemPackages [ FFilterByBuildFeaturesbash bc freetype zlib!gcc2 @{ coreutils icu74 wget }@gcc2 @{ coreutils_x86 wget_x86 icu icu74_x86@secondary_x86 }@regular_image @{bzip2 expat ffmpeg6 glu gutenprint9 gziplame less libedit libicnsmesa mesa_devel mesa_swpipe@!gcc2 mesa_swrast@gcc2netcatsed sharutilsunzip which zip!gcc2 @{ diffutils findutils gawk grep tar tcpdump zstd }@gcc2 @{diffutils_x86@secondary_x86 findutils_x86@secondary_x86mawk grep_x86@secondary_x86 tar_x86@secondary_x86tcpdump_x86@secondary_x86}@}@] ;AddHaikuImageSourcePackages [ FFilterByBuildFeaturesbash bc!gcc2 @{ coreutils }@gcc2 @{ coreutils_x86 }@regular_image @{expat ffmpeg6 findutils grep gutenprint9 gziplame less libicnssed sharutilstar wget which!gcc2 @{ gawk }@gcc2 @{ mawk }@}@] ;if $(HAIKU_PACKAGING_ARCHS[1]) != x86_gcc2 {AddHaikuImageSystemPackages [ FFilterByBuildFeatures gcc_syslibs ] ;}if $(HAIKU_PACKAGING_ARCHS[2]) {# secondary architectureslocal architectureObject ;for architectureObjectin [ MultiArchSubDirSetup $(HAIKU_PACKAGING_ARCHS[2-]) ] {on $(architectureObject) {AddHaikuImageSystemPackages [ FFilterByBuildFeaturesfreetype icu zlibregular_image @{ffmpeg6 glu jasper jpeg libavif libicns libpng16 libwebp mesa}@] ;if $(TARGET_PACKAGING_ARCH) != x86_gcc2 {AddHaikuImageSystemPackages [ FFilterByBuildFeatures gcc_syslibsmesa_swpipe ] ;}}}}# If enabled, make sure that OpenSSL is added to the image.if [ FIsBuildFeatureEnabled openssl ] {AddHaikuImageSystemPackages openssl3 ;}# add additionally requested packagesAddHaikuImageSystemPackages $(HAIKU_IMAGE_ADDITIONAL_PACKAGES) ;# Optionally we allow not to include the "src" subdirectory.if $(HAIKU_DONT_INCLUDE_SRC) {# Don't include "src", but at least include the stuff needed for the# build.SubInclude HAIKU_TOP src build ;SubInclude HAIKU_TOP src tools ;} else {SubInclude HAIKU_TOP src ;}if $(HAIKU_INCLUDE_3RDPARTY) {SubInclude HAIKU_TOP 3rdparty ;}# Perform deferred SubIncludes.ExecuteDeferredSubIncludes ;# reset subdirSubDir HAIKU_TOP ;# Execute post-build-target user config rules.UserBuildConfigRulePostBuildTargets ;# specify the Haiku repository contentsinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) repositories Haiku ] ;# specify the actual Haiku image contentsinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImage ] ;# specify the additional image contents one for each boot typeinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images NetBootArchive ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) images FloppyBootImage ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootImage ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuCD ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) images AnybootImage ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) images MMCImage ] ;# Check whether all requested optional packages do actually exist.local package ;local packageError ;for package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) {if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] {Echo "ERROR: Requested optional package \"$(package)\" does not""exist." ;packageError = 1 ;}}if $(packageError) {Exit ;}# Pseudo-target to build all targets that are localized.NotFile LocalizedTargets ;Depends LocalizedTargets : $(HAIKU_LOCALIZED_TARGETS) ;NotFile catalogs ;Depends catalogs : $(HAIKU_LOCALE_CATALOGS) ;NotFile catkeys ;Depends catkeys : $(HAIKU_LOCALE_OUTPUT_CATKEYS) ;