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. 7f0cacbb3SIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) BuildFeatures ] ; 8f4eb5cf7SMatt Madia 90e82d313SMatt Madia# Include packages that are required by all images. 1098c6dfa4SIngo WeinholdAddHaikuImagePackages 1198c6dfa4SIngo Weinhold bzip2 ctags ffmpeg freetype glu grep icu jpeg libpng libsolv mesa sed tar 1298c6dfa4SIngo Weinhold zlib 1398c6dfa4SIngo Weinhold : 1498c6dfa4SIngo Weinhold system 1598c6dfa4SIngo Weinhold ; 16429618d2SMatt Madia 17429618d2SMatt Madia# If enabled, make sure that OpenSSL is added to the image. 18f0cacbb3SIngo Weinholdif $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) { 1998c6dfa4SIngo Weinhold AddHaikuImagePackages openssl ; 20429618d2SMatt Madia} 21a5c31cbbSMatt Madia 2248d60fa6SIngo Weinhold# Optionally we allow not to include the "src" subdirectory. 2348d60fa6SIngo Weinholdif $(HAIKU_DONT_INCLUDE_SRC) { 2448d60fa6SIngo Weinhold # Don't include "src", but at least include the stuff needed for the 2548d60fa6SIngo Weinhold # build. 2648d60fa6SIngo Weinhold SubInclude HAIKU_TOP src build ; 2748d60fa6SIngo Weinhold SubInclude HAIKU_TOP src tools ; 2848d60fa6SIngo Weinhold} else { 29338b8dc3SIngo Weinhold SubInclude HAIKU_TOP src ; 3048d60fa6SIngo Weinhold} 31a7ec9c1dSFrançois Revolif $(HAIKU_INCLUDE_3RDPARTY) { 32a7ec9c1dSFrançois Revol SubInclude HAIKU_TOP 3rdparty ; 33a7ec9c1dSFrançois Revol} 3448d60fa6SIngo Weinhold 35be8a6e43SIngo Weinhold# Perform deferred SubIncludes. 36be8a6e43SIngo WeinholdExecuteDeferredSubIncludes ; 37be8a6e43SIngo Weinhold 38689e6794SIngo Weinhold# reset subdir 39689e6794SIngo WeinholdSubDir HAIKU_TOP ; 40ad27081fSIngo Weinhold 41ad27081fSIngo Weinhold# Execute post-build-target user config rules. 42ad27081fSIngo WeinholdUserBuildConfigRulePostBuildTargets ; 43689e6794SIngo Weinhold 44b39c8d37SIngo Weinhold# specify the Haiku image and network boot archive contents 45*e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImage ] ; 46*e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images NetBootArchive ] ; 47*e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images FloppyBootImage ] ; 48*e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootImage ] ; 49*e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootPPCImage ] ; 50*e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuCD ] ; 51*e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images AnybootImage ] ; 5237aefc9cSIngo Weinhold 5337aefc9cSIngo Weinhold# Check whether all requested optional packages do actually exist. 5437aefc9cSIngo Weinholdlocal package ; 5537aefc9cSIngo Weinholdlocal packageError ; 5637aefc9cSIngo Weinholdfor package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) { 5737aefc9cSIngo Weinhold if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] { 5837aefc9cSIngo Weinhold Echo "ERROR: Requested optional package \"$(package)\" does not" 5937aefc9cSIngo Weinhold "exist." ; 6037aefc9cSIngo Weinhold packageError = 1 ; 6137aefc9cSIngo Weinhold } 6237aefc9cSIngo Weinhold} 6337aefc9cSIngo Weinholdif $(packageError) { 6437aefc9cSIngo Weinhold Exit ; 6537aefc9cSIngo Weinhold} 6680ad173eSMatt Madia 6780ad173eSMatt Madia# Pseudo-target to build all targets that are localized. 68a8fcb885SMatt MadiaNotFile LocalizedTargets ; 69a8fcb885SMatt MadiaDepends LocalizedTargets : $(HAIKU_LOCALIZED_TARGETS) ; 709de5b022SMatt Madia 719de5b022SMatt MadiaNotFile catalogs ; 729de5b022SMatt MadiaDepends catalogs : $(HAIKU_LOCALE_CATALOGS) ; 739de5b022SMatt Madia 749de5b022SMatt MadiaNotFile catkeys ; 759de5b022SMatt MadiaDepends catkeys : $(HAIKU_LOCALE_OUTPUT_CATKEYS) ; 76