SubDir HAIKU_TOP ; NotFile doc_files ; Depends files : doc_files ; # 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 ] ; } } # Include packages that are required by all images: # primary architecture AddHaikuImagePackages curl freetype icu libsolv zlib ; # secondary architectures local architectureObject ; for architectureObject in [ MultiArchSubDirSetup $(HAIKU_PACKAGING_ARCHS[2-]) ] { on $(architectureObject) { AddHaikuImagePackages curl freetype icu libsolv zlib ; } } # Include packages that are required by non-basic images: if ! ( $(HAIKU_BOOTSTRAP_BUILD) || $(HAIKU_MINIMUM_BUILD) ) { # primary architecture AddHaikuImagePackages bzip2 ctags ffmpeg findutils gawk glu grep jpeg libpng mesa mesa_devel mesa_swrast sed tar which ; # secondary architectures local architectureObject ; for architectureObject in [ MultiArchSubDirSetup $(HAIKU_PACKAGING_ARCHS[2-]) ] { on $(architectureObject) { AddHaikuImagePackages ffmpeg glu jpeg libpng mesa ; } } } # If enabled, make sure that OpenSSL is added to the image. if [ FIsBuildFeatureEnabled openssl ] { AddHaikuImagePackages openssl ; } # add additionally requested packages AddHaikuImagePackages $(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 subdir SubDir HAIKU_TOP ; # Execute post-build-target user config rules. UserBuildConfigRulePostBuildTargets ; # specify the Haiku repository contents include [ FDirName $(HAIKU_BUILD_RULES_DIR) repositories Haiku ] ; # specify the actual Haiku image contents include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImage ] ; # specify the additional image contents one for each boot type include [ 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 CDBootPPCImage ] ; include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuCD ] ; include [ FDirName $(HAIKU_BUILD_RULES_DIR) images AnybootImage ] ; # 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) ;