1SubDir HAIKU_TOP ; 2 3NotFile doc_files ; 4Depends files : doc_files ; 5 6# Prepare the optional build features before parsing the Jamfile tree. 7local architectureObject ; 8for architectureObject in [ MultiArchSubDirSetup ] { 9 on $(architectureObject) { 10 include [ FDirName $(HAIKU_BUILD_RULES_DIR) BuildFeatures ] ; 11 } 12} 13 14# Include packages that are required by all images. 15if ! $(HAIKU_BOOTSTRAP_BUILD) { 16 AddHaikuImagePackages 17 bzip2 ctags ffmpeg freetype glu grep icu jpeg libpng libsolv mesa sed 18 tar zlib 19 : 20 system 21 ; 22} 23 24# If enabled, make sure that OpenSSL is added to the image. 25if $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) { 26 AddHaikuImagePackages openssl ; 27} 28 29# Optionally we allow not to include the "src" subdirectory. 30if $(HAIKU_DONT_INCLUDE_SRC) { 31 # Don't include "src", but at least include the stuff needed for the 32 # build. 33 SubInclude HAIKU_TOP src build ; 34 SubInclude HAIKU_TOP src tools ; 35} else { 36 SubInclude HAIKU_TOP src ; 37} 38if $(HAIKU_INCLUDE_3RDPARTY) { 39 SubInclude HAIKU_TOP 3rdparty ; 40} 41 42# Perform deferred SubIncludes. 43ExecuteDeferredSubIncludes ; 44 45# reset subdir 46SubDir HAIKU_TOP ; 47 48# Execute post-build-target user config rules. 49UserBuildConfigRulePostBuildTargets ; 50 51# specify the Haiku image and network boot archive contents 52if $(HAIKU_BOOTSTRAP_BUILD) { 53 include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImageBootstrap ] ; 54} else { 55 include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImage ] ; 56} 57include [ FDirName $(HAIKU_BUILD_RULES_DIR) images NetBootArchive ] ; 58include [ FDirName $(HAIKU_BUILD_RULES_DIR) images FloppyBootImage ] ; 59include [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootImage ] ; 60include [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootPPCImage ] ; 61include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuCD ] ; 62include [ FDirName $(HAIKU_BUILD_RULES_DIR) images AnybootImage ] ; 63 64# Check whether all requested optional packages do actually exist. 65local package ; 66local packageError ; 67for package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) { 68 if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] { 69 Echo "ERROR: Requested optional package \"$(package)\" does not" 70 "exist." ; 71 packageError = 1 ; 72 } 73} 74if $(packageError) { 75 Exit ; 76} 77 78# Pseudo-target to build all targets that are localized. 79NotFile LocalizedTargets ; 80Depends LocalizedTargets : $(HAIKU_LOCALIZED_TARGETS) ; 81 82NotFile catalogs ; 83Depends catalogs : $(HAIKU_LOCALE_CATALOGS) ; 84 85NotFile catkeys ; 86Depends catkeys : $(HAIKU_LOCALE_OUTPUT_CATKEYS) ; 87