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