xref: /haiku/Jamfile (revision e8c5236a9ce57f3f8f0c879b734e2d2a64617743)
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.
1098c6dfa4SIngo WeinholdAddHaikuImagePackages
1198c6dfa4SIngo Weinhold	bzip2 ctags ffmpeg freetype glu grep icu jpeg libpng libsolv mesa sed tar
1298c6dfa4SIngo Weinhold	zlib
1398c6dfa4SIngo Weinhold	:
1498c6dfa4SIngo Weinhold	system
1598c6dfa4SIngo Weinhold	;
16429618d2SMatt Madia
17429618d2SMatt Madia# If enabled, make sure that OpenSSL is added to the image.
18f0cacbb3SIngo Weinholdif $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) {
1998c6dfa4SIngo Weinhold	AddHaikuImagePackages openssl ;
20429618d2SMatt Madia}
21a5c31cbbSMatt Madia
2248d60fa6SIngo Weinhold# Optionally we allow not to include the "src" subdirectory.
2348d60fa6SIngo Weinholdif $(HAIKU_DONT_INCLUDE_SRC) {
2448d60fa6SIngo Weinhold	# Don't include "src", but at least include the stuff needed for the
2548d60fa6SIngo Weinhold	# build.
2648d60fa6SIngo Weinhold	SubInclude HAIKU_TOP src build ;
2748d60fa6SIngo Weinhold	SubInclude HAIKU_TOP src tools ;
2848d60fa6SIngo Weinhold} else {
29338b8dc3SIngo Weinhold	SubInclude HAIKU_TOP src ;
3048d60fa6SIngo Weinhold}
31a7ec9c1dSFrançois Revolif $(HAIKU_INCLUDE_3RDPARTY) {
32a7ec9c1dSFrançois Revol	SubInclude HAIKU_TOP 3rdparty ;
33a7ec9c1dSFrançois Revol}
3448d60fa6SIngo Weinhold
35be8a6e43SIngo Weinhold# Perform deferred SubIncludes.
36be8a6e43SIngo WeinholdExecuteDeferredSubIncludes ;
37be8a6e43SIngo Weinhold
38689e6794SIngo Weinhold# reset subdir
39689e6794SIngo WeinholdSubDir HAIKU_TOP ;
40ad27081fSIngo Weinhold
41ad27081fSIngo Weinhold# Execute post-build-target user config rules.
42ad27081fSIngo WeinholdUserBuildConfigRulePostBuildTargets	;
43689e6794SIngo Weinhold
44b39c8d37SIngo Weinhold# specify the Haiku image and network boot archive contents
45*e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImage ] ;
46*e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images NetBootArchive ] ;
47*e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images FloppyBootImage ] ;
48*e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootImage ] ;
49*e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootPPCImage ] ;
50*e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuCD ] ;
51*e8c5236aSIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) images AnybootImage ] ;
5237aefc9cSIngo Weinhold
5337aefc9cSIngo Weinhold# Check whether all requested optional packages do actually exist.
5437aefc9cSIngo Weinholdlocal package ;
5537aefc9cSIngo Weinholdlocal packageError ;
5637aefc9cSIngo Weinholdfor package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) {
5737aefc9cSIngo Weinhold	if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] {
5837aefc9cSIngo Weinhold		Echo "ERROR: Requested optional package \"$(package)\" does not"
5937aefc9cSIngo Weinhold			"exist." ;
6037aefc9cSIngo Weinhold		packageError = 1 ;
6137aefc9cSIngo Weinhold	}
6237aefc9cSIngo Weinhold}
6337aefc9cSIngo Weinholdif $(packageError) {
6437aefc9cSIngo Weinhold	Exit ;
6537aefc9cSIngo Weinhold}
6680ad173eSMatt Madia
6780ad173eSMatt Madia# Pseudo-target to build all targets that are localized.
68a8fcb885SMatt MadiaNotFile LocalizedTargets ;
69a8fcb885SMatt MadiaDepends LocalizedTargets : $(HAIKU_LOCALIZED_TARGETS) ;
709de5b022SMatt Madia
719de5b022SMatt MadiaNotFile catalogs ;
729de5b022SMatt MadiaDepends catalogs : $(HAIKU_LOCALE_CATALOGS) ;
739de5b022SMatt Madia
749de5b022SMatt MadiaNotFile catkeys ;
759de5b022SMatt MadiaDepends catkeys : $(HAIKU_LOCALE_OUTPUT_CATKEYS) ;
76