1338b8dc3SIngo WeinholdSubDir HAIKU_TOP ; 269b97469SIngo Weinhold 3f35b607dSJérôme DuvalNotFile doc_files ; 4f35b607dSJérôme DuvalDepends files : doc_files ; 5f35b607dSJérôme Duval 6f4eb5cf7SMatt Madia# Prepare the optional build features before parsing the Jamfile tree. 7b0944c78SIngo Weinholdlocal architectureObject ; 8b0944c78SIngo Weinholdfor architectureObject in [ MultiArchSubDirSetup ] { 9b0944c78SIngo Weinhold on $(architectureObject) { 10f0cacbb3SIngo Weinhold include [ FDirName $(HAIKU_BUILD_RULES_DIR) BuildFeatures ] ; 11b0944c78SIngo Weinhold } 12b0944c78SIngo Weinhold} 13f4eb5cf7SMatt Madia 140e82d313SMatt Madia# Include packages that are required by all images. 1548b1ed42SIngo Weinholdif ! $(HAIKU_BOOTSTRAP_BUILD) { 16271e9484SIngo Weinhold # primary architecture 1778f4c163SIngo Weinhold AddHaikuImagePackages 1878f4c163SIngo Weinhold bzip2 ctags ffmpeg freetype glu grep icu jpeg libpng libsolv mesa sed 1978f4c163SIngo Weinhold tar zlib 2078f4c163SIngo Weinhold : 2178f4c163SIngo Weinhold system 2278f4c163SIngo Weinhold ; 23271e9484SIngo Weinhold 24271e9484SIngo Weinhold # secondary architectures 25271e9484SIngo Weinhold local architectureObject ; 26271e9484SIngo Weinhold for architectureObject 27271e9484SIngo Weinhold in [ MultiArchSubDirSetup $(HAIKU_PACKAGING_ARCHS[2-]) ] { 28271e9484SIngo Weinhold on $(architectureObject) { 29271e9484SIngo Weinhold AddHaikuImagePackages 30271e9484SIngo Weinhold ffmpeg freetype glu icu jpeg libpng libsolv mesa zlib 31271e9484SIngo Weinhold : 32271e9484SIngo Weinhold system 33271e9484SIngo Weinhold ; 34271e9484SIngo Weinhold } 35271e9484SIngo Weinhold } 3678f4c163SIngo Weinhold} 37429618d2SMatt Madia 38429618d2SMatt Madia# If enabled, make sure that OpenSSL is added to the image. 3957190167SIngo Weinholdif [ FIsBuildFeatureEnabled openssl ] { 4098c6dfa4SIngo Weinhold AddHaikuImagePackages openssl ; 41429618d2SMatt Madia} 42a5c31cbbSMatt Madia 43*24796718SIngo Weinhold# add additionally requested packages 44*24796718SIngo WeinholdAddHaikuImagePackages $(HAIKU_IMAGE_ADDITIONAL_PACKAGES) ; 45*24796718SIngo Weinhold 4648d60fa6SIngo Weinhold# Optionally we allow not to include the "src" subdirectory. 4748d60fa6SIngo Weinholdif $(HAIKU_DONT_INCLUDE_SRC) { 4848d60fa6SIngo Weinhold # Don't include "src", but at least include the stuff needed for the 4948d60fa6SIngo Weinhold # build. 5048d60fa6SIngo Weinhold SubInclude HAIKU_TOP src build ; 5148d60fa6SIngo Weinhold SubInclude HAIKU_TOP src tools ; 5248d60fa6SIngo Weinhold} else { 53338b8dc3SIngo Weinhold SubInclude HAIKU_TOP src ; 5448d60fa6SIngo Weinhold} 55a7ec9c1dSFrançois Revolif $(HAIKU_INCLUDE_3RDPARTY) { 56a7ec9c1dSFrançois Revol SubInclude HAIKU_TOP 3rdparty ; 57a7ec9c1dSFrançois Revol} 5848d60fa6SIngo Weinhold 59be8a6e43SIngo Weinhold# Perform deferred SubIncludes. 60be8a6e43SIngo WeinholdExecuteDeferredSubIncludes ; 61be8a6e43SIngo Weinhold 62689e6794SIngo Weinhold# reset subdir 63689e6794SIngo WeinholdSubDir HAIKU_TOP ; 64ad27081fSIngo Weinhold 65ad27081fSIngo Weinhold# Execute post-build-target user config rules. 66ad27081fSIngo WeinholdUserBuildConfigRulePostBuildTargets ; 67689e6794SIngo Weinhold 68b39c8d37SIngo Weinhold# specify the Haiku image and network boot archive contents 6978f4c163SIngo Weinholdif $(HAIKU_BOOTSTRAP_BUILD) { 7078f4c163SIngo Weinhold include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImageBootstrap ] ; 7178f4c163SIngo Weinhold} else { 72e8c5236aSIngo Weinhold include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImage ] ; 7378f4c163SIngo Weinhold} 74e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images NetBootArchive ] ; 75e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images FloppyBootImage ] ; 76e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootImage ] ; 77e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootPPCImage ] ; 78e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuCD ] ; 79e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images AnybootImage ] ; 8037aefc9cSIngo Weinhold 8137aefc9cSIngo Weinhold# Check whether all requested optional packages do actually exist. 8237aefc9cSIngo Weinholdlocal package ; 8337aefc9cSIngo Weinholdlocal packageError ; 8437aefc9cSIngo Weinholdfor package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) { 8537aefc9cSIngo Weinhold if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] { 8637aefc9cSIngo Weinhold Echo "ERROR: Requested optional package \"$(package)\" does not" 8737aefc9cSIngo Weinhold "exist." ; 8837aefc9cSIngo Weinhold packageError = 1 ; 8937aefc9cSIngo Weinhold } 9037aefc9cSIngo Weinhold} 9137aefc9cSIngo Weinholdif $(packageError) { 9237aefc9cSIngo Weinhold Exit ; 9337aefc9cSIngo Weinhold} 9480ad173eSMatt Madia 9580ad173eSMatt Madia# Pseudo-target to build all targets that are localized. 96a8fcb885SMatt MadiaNotFile LocalizedTargets ; 97a8fcb885SMatt MadiaDepends LocalizedTargets : $(HAIKU_LOCALIZED_TARGETS) ; 989de5b022SMatt Madia 999de5b022SMatt MadiaNotFile catalogs ; 1009de5b022SMatt MadiaDepends catalogs : $(HAIKU_LOCALE_CATALOGS) ; 1019de5b022SMatt Madia 1029de5b022SMatt MadiaNotFile catkeys ; 1039de5b022SMatt MadiaDepends catkeys : $(HAIKU_LOCALE_OUTPUT_CATKEYS) ; 104