xref: /haiku/Jamfile (revision 24796718b99aff208846310dd982c5c41d5e7eff)
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