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. 10*78f4c163SIngo Weinholdif $(HAIKU_BOOTSTRAP_BUILD) { 1198c6dfa4SIngo Weinhold AddHaikuImagePackages 12*78f4c163SIngo Weinhold bzip2 freetype glu grep icu libsolv mesa sed tar zlib 1398c6dfa4SIngo Weinhold : 1498c6dfa4SIngo Weinhold system 1598c6dfa4SIngo Weinhold ; 16*78f4c163SIngo Weinhold} else { 17*78f4c163SIngo Weinhold AddHaikuImagePackages 18*78f4c163SIngo Weinhold bzip2 ctags ffmpeg freetype glu grep icu jpeg libpng libsolv mesa sed 19*78f4c163SIngo Weinhold tar zlib 20*78f4c163SIngo Weinhold : 21*78f4c163SIngo Weinhold system 22*78f4c163SIngo Weinhold ; 23*78f4c163SIngo Weinhold} 24429618d2SMatt Madia 25429618d2SMatt Madia# If enabled, make sure that OpenSSL is added to the image. 26f0cacbb3SIngo Weinholdif $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) { 2798c6dfa4SIngo Weinhold AddHaikuImagePackages openssl ; 28429618d2SMatt Madia} 29a5c31cbbSMatt Madia 3048d60fa6SIngo Weinhold# Optionally we allow not to include the "src" subdirectory. 3148d60fa6SIngo Weinholdif $(HAIKU_DONT_INCLUDE_SRC) { 3248d60fa6SIngo Weinhold # Don't include "src", but at least include the stuff needed for the 3348d60fa6SIngo Weinhold # build. 3448d60fa6SIngo Weinhold SubInclude HAIKU_TOP src build ; 3548d60fa6SIngo Weinhold SubInclude HAIKU_TOP src tools ; 3648d60fa6SIngo Weinhold} else { 37338b8dc3SIngo Weinhold SubInclude HAIKU_TOP src ; 3848d60fa6SIngo Weinhold} 39a7ec9c1dSFrançois Revolif $(HAIKU_INCLUDE_3RDPARTY) { 40a7ec9c1dSFrançois Revol SubInclude HAIKU_TOP 3rdparty ; 41a7ec9c1dSFrançois Revol} 4248d60fa6SIngo Weinhold 43be8a6e43SIngo Weinhold# Perform deferred SubIncludes. 44be8a6e43SIngo WeinholdExecuteDeferredSubIncludes ; 45be8a6e43SIngo Weinhold 46689e6794SIngo Weinhold# reset subdir 47689e6794SIngo WeinholdSubDir HAIKU_TOP ; 48ad27081fSIngo Weinhold 49ad27081fSIngo Weinhold# Execute post-build-target user config rules. 50ad27081fSIngo WeinholdUserBuildConfigRulePostBuildTargets ; 51689e6794SIngo Weinhold 52b39c8d37SIngo Weinhold# specify the Haiku image and network boot archive contents 53*78f4c163SIngo Weinholdif $(HAIKU_BOOTSTRAP_BUILD) { 54*78f4c163SIngo Weinhold include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImageBootstrap ] ; 55*78f4c163SIngo Weinhold} else { 56e8c5236aSIngo Weinhold include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImage ] ; 57*78f4c163SIngo Weinhold} 58e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images NetBootArchive ] ; 59e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images FloppyBootImage ] ; 60e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootImage ] ; 61e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootPPCImage ] ; 62e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuCD ] ; 63e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images AnybootImage ] ; 6437aefc9cSIngo Weinhold 6537aefc9cSIngo Weinhold# Check whether all requested optional packages do actually exist. 6637aefc9cSIngo Weinholdlocal package ; 6737aefc9cSIngo Weinholdlocal packageError ; 6837aefc9cSIngo Weinholdfor package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) { 6937aefc9cSIngo Weinhold if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] { 7037aefc9cSIngo Weinhold Echo "ERROR: Requested optional package \"$(package)\" does not" 7137aefc9cSIngo Weinhold "exist." ; 7237aefc9cSIngo Weinhold packageError = 1 ; 7337aefc9cSIngo Weinhold } 7437aefc9cSIngo Weinhold} 7537aefc9cSIngo Weinholdif $(packageError) { 7637aefc9cSIngo Weinhold Exit ; 7737aefc9cSIngo Weinhold} 7880ad173eSMatt Madia 7980ad173eSMatt Madia# Pseudo-target to build all targets that are localized. 80a8fcb885SMatt MadiaNotFile LocalizedTargets ; 81a8fcb885SMatt MadiaDepends LocalizedTargets : $(HAIKU_LOCALIZED_TARGETS) ; 829de5b022SMatt Madia 839de5b022SMatt MadiaNotFile catalogs ; 849de5b022SMatt MadiaDepends catalogs : $(HAIKU_LOCALE_CATALOGS) ; 859de5b022SMatt Madia 869de5b022SMatt MadiaNotFile catkeys ; 879de5b022SMatt MadiaDepends catkeys : $(HAIKU_LOCALE_OUTPUT_CATKEYS) ; 88