xref: /haiku/Jamfile (revision 57190167ef0cc0a413c011b445ad9e08b568b352)
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) {
1678f4c163SIngo Weinhold	AddHaikuImagePackages
1778f4c163SIngo Weinhold		bzip2 ctags ffmpeg freetype glu grep icu jpeg libpng libsolv mesa sed
1878f4c163SIngo Weinhold		tar zlib
1978f4c163SIngo Weinhold		:
2078f4c163SIngo Weinhold		system
2178f4c163SIngo Weinhold		;
2278f4c163SIngo Weinhold}
23429618d2SMatt Madia
24429618d2SMatt Madia# If enabled, make sure that OpenSSL is added to the image.
25*57190167SIngo Weinholdif [ FIsBuildFeatureEnabled openssl ] {
2698c6dfa4SIngo Weinhold	AddHaikuImagePackages openssl ;
27429618d2SMatt Madia}
28a5c31cbbSMatt Madia
2948d60fa6SIngo Weinhold# Optionally we allow not to include the "src" subdirectory.
3048d60fa6SIngo Weinholdif $(HAIKU_DONT_INCLUDE_SRC) {
3148d60fa6SIngo Weinhold	# Don't include "src", but at least include the stuff needed for the
3248d60fa6SIngo Weinhold	# build.
3348d60fa6SIngo Weinhold	SubInclude HAIKU_TOP src build ;
3448d60fa6SIngo Weinhold	SubInclude HAIKU_TOP src tools ;
3548d60fa6SIngo Weinhold} else {
36338b8dc3SIngo Weinhold	SubInclude HAIKU_TOP src ;
3748d60fa6SIngo Weinhold}
38a7ec9c1dSFrançois Revolif $(HAIKU_INCLUDE_3RDPARTY) {
39a7ec9c1dSFrançois Revol	SubInclude HAIKU_TOP 3rdparty ;
40a7ec9c1dSFrançois Revol}
4148d60fa6SIngo Weinhold
42be8a6e43SIngo Weinhold# Perform deferred SubIncludes.
43be8a6e43SIngo WeinholdExecuteDeferredSubIncludes ;
44be8a6e43SIngo Weinhold
45689e6794SIngo Weinhold# reset subdir
46689e6794SIngo WeinholdSubDir HAIKU_TOP ;
47ad27081fSIngo Weinhold
48ad27081fSIngo Weinhold# Execute post-build-target user config rules.
49ad27081fSIngo WeinholdUserBuildConfigRulePostBuildTargets	;
50689e6794SIngo Weinhold
51b39c8d37SIngo Weinhold# specify the Haiku image and network boot archive contents
5278f4c163SIngo Weinholdif $(HAIKU_BOOTSTRAP_BUILD) {
5378f4c163SIngo Weinhold	include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImageBootstrap ] ;
5478f4c163SIngo Weinhold} else {
55e8c5236aSIngo Weinhold	include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImage ] ;
5678f4c163SIngo Weinhold}
57e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images NetBootArchive ] ;
58e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images FloppyBootImage ] ;
59e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootImage ] ;
60e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootPPCImage ] ;
61e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuCD ] ;
62e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images AnybootImage ] ;
6337aefc9cSIngo Weinhold
6437aefc9cSIngo Weinhold# Check whether all requested optional packages do actually exist.
6537aefc9cSIngo Weinholdlocal package ;
6637aefc9cSIngo Weinholdlocal packageError ;
6737aefc9cSIngo Weinholdfor package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) {
6837aefc9cSIngo Weinhold	if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] {
6937aefc9cSIngo Weinhold		Echo "ERROR: Requested optional package \"$(package)\" does not"
7037aefc9cSIngo Weinhold			"exist." ;
7137aefc9cSIngo Weinhold		packageError = 1 ;
7237aefc9cSIngo Weinhold	}
7337aefc9cSIngo Weinhold}
7437aefc9cSIngo Weinholdif $(packageError) {
7537aefc9cSIngo Weinhold	Exit ;
7637aefc9cSIngo Weinhold}
7780ad173eSMatt Madia
7880ad173eSMatt Madia# Pseudo-target to build all targets that are localized.
79a8fcb885SMatt MadiaNotFile LocalizedTargets ;
80a8fcb885SMatt MadiaDepends LocalizedTargets : $(HAIKU_LOCALIZED_TARGETS) ;
819de5b022SMatt Madia
829de5b022SMatt MadiaNotFile catalogs ;
839de5b022SMatt MadiaDepends catalogs : $(HAIKU_LOCALE_CATALOGS) ;
849de5b022SMatt Madia
859de5b022SMatt MadiaNotFile catkeys ;
869de5b022SMatt MadiaDepends catkeys : $(HAIKU_LOCALE_OUTPUT_CATKEYS) ;
87