xref: /haiku/Jamfile (revision f0cacbb32ba55d1fb4bdbd71152e57a3da3f290e)
1338b8dc3SIngo WeinholdSubDir HAIKU_TOP ;
269b97469SIngo Weinhold
3f35b607dSJérôme DuvalNotFile doc_files ;
4f35b607dSJérôme DuvalDepends files : doc_files ;
5f35b607dSJérôme Duval
64e7ab2f1SPhilippe Houdoin# Pseudo-target to build the mail kit only
74e7ab2f1SPhilippe HoudoinNotFile MailKit ;
84e7ab2f1SPhilippe HoudoinDepends MailKit :
94e7ab2f1SPhilippe Houdoin	libmail.so
104e7ab2f1SPhilippe Houdoin	mail_daemon
114e7ab2f1SPhilippe Houdoin	E-mail
124e7ab2f1SPhilippe Houdoin	BeMail
134e7ab2f1SPhilippe Houdoin
144e7ab2f1SPhilippe Houdoin	# mail_daemon addons
154e7ab2f1SPhilippe Houdoin	Inbox
164e7ab2f1SPhilippe Houdoin	Outbox
174e7ab2f1SPhilippe Houdoin	Message\ Parser
184e7ab2f1SPhilippe Houdoin	New\ Mail\ Notification
194e7ab2f1SPhilippe Houdoin	Match\ Header
204e7ab2f1SPhilippe Houdoin	R5\ Daemon\ Filter
214e7ab2f1SPhilippe Houdoin	IMAP
224e7ab2f1SPhilippe Houdoin	POP3
234e7ab2f1SPhilippe Houdoin	SMTP
244e7ab2f1SPhilippe Houdoin	Fortune
251effc988SDarkWyrm	Spam\ Filter
261effc988SDarkWyrm	spamdbm
274e7ab2f1SPhilippe Houdoin;
284e7ab2f1SPhilippe Houdoin
29047625c2SPhilippe Houdoin# Pseudo-target to build the media stuffs only
300fdf2b41SMatt Madia# TODO: don't know how to make avcodec mp3_decoder mp3_reader ogg speex vorbis
31047625c2SPhilippe HoudoinNotFile MediaKit ;
32047625c2SPhilippe HoudoinDepends MediaKit :
3383abf055SPhilippe Houdoin	libmedia.so
34184dd027SMarcus Overhagen	libgame.so
35ed942695Sbeveloper
3628a06094Sbeveloper	# Servers
37ed942695Sbeveloper	media_addon_server
38ed942695Sbeveloper	media_server
3983abf055SPhilippe Houdoin
4028a06094Sbeveloper	# Preference
4128a06094Sbeveloper	Sounds
4228a06094Sbeveloper	Media
4328a06094Sbeveloper
4428a06094Sbeveloper	# Deskbar replicant
4528a06094Sbeveloper	desklink
4628a06094Sbeveloper
4783abf055SPhilippe Houdoin	# add-ons
4883abf055SPhilippe Houdoin	mixer.media_addon
4983abf055SPhilippe Houdoin	tone_producer_demo.media_addon
5083abf055SPhilippe Houdoin	video_producer_demo.media_addon
5183abf055SPhilippe Houdoin	legacy.media_addon
5283abf055SPhilippe Houdoin	multi_audio.media_addon
531b1b7ddfSbeveloper#	reader.media_addon
541b1b7ddfSbeveloper#	writer.media_addon
551b1b7ddfSbeveloper#	demultiplexer.media_addon
5683abf055SPhilippe Houdoin
5783abf055SPhilippe Houdoin	# codecs
584fed4f5eSbeveloper	ac3_decoder
594a687b07Sbeveloper	aiff_reader
604a687b07Sbeveloper	au_reader
614a687b07Sbeveloper	avcodec
624a687b07Sbeveloper	avi_reader
63dfac3f85Sbeveloper	matroska
6483abf055SPhilippe Houdoin	mp3_decoder
654a687b07Sbeveloper	mp3_reader
66df016bbaSbeveloper	musepack
674a687b07Sbeveloper	ogg
684a687b07Sbeveloper	raw_decoder
69df016bbaSbeveloper	speex
704a687b07Sbeveloper	vorbis
714a687b07Sbeveloper	wav_reader
72215c91dfSDavid McPaul	mov_reader
73047625c2SPhilippe Houdoin;
74047625c2SPhilippe Houdoin
75d3e72bf6SJérôme Duval# Pseudo-target to build the input kit only
76d3e72bf6SJérôme DuvalNotFile InputKit ;
77d3e72bf6SJérôme DuvalDepends InputKit :
78d3e72bf6SJérôme Duval	# Servers
79d3e72bf6SJérôme Duval	input_server
80d3e72bf6SJérôme Duval
81d3e72bf6SJérôme Duval	# Addons
82d3e72bf6SJérôme Duval	<input>keyboard
83d3e72bf6SJérôme Duval	<input>mouse
84d3e72bf6SJérôme Duval
85d3e72bf6SJérôme Duval	# Apps
86d3e72bf6SJérôme Duval	keymap
87d3e72bf6SJérôme Duval
88d3e72bf6SJérôme Duval	# Preferences
89d3e72bf6SJérôme Duval	Keymap
90d3e72bf6SJérôme Duval	Keyboard
91d3e72bf6SJérôme Duval	Mouse
92d3e72bf6SJérôme Duval;
93d3e72bf6SJérôme Duval
9499a77abfSPhilippe Houdoin# Pseudo-target to build the OpenGL kit only
9599a77abfSPhilippe HoudoinNotFile OpenGLKit ;
9699a77abfSPhilippe HoudoinDepends OpenGLKit :
9799a77abfSPhilippe Houdoin	libGL.so
9899a77abfSPhilippe Houdoin	GLTeapot
990fdf2b41SMatt Madia#	GLInfo
10099a77abfSPhilippe Houdoin;
10199a77abfSPhilippe Houdoin
1021559de12SJérôme Duval# Pseudo-target to build the screensaver kit only
1031559de12SJérôme DuvalNotFile ScreenSaverKit ;
1041559de12SJérôme DuvalDepends ScreenSaverKit :
1051559de12SJérôme Duval	libscreensaver.so
1061559de12SJérôme Duval	screen_saver
1071559de12SJérôme Duval	screen_blanker
1081559de12SJérôme Duval	ScreenSaver
1091559de12SJérôme Duval	Haiku
1101559de12SJérôme Duval;
1111559de12SJérôme Duval
112723383c0SOliver Tappe# Pseudo-target to build the locale kit only
1130fdf2b41SMatt Madia# TODO: src/add-ons/locale/collators/GermanDIN-2.cpp does not compile
114723383c0SOliver TappeNotFile LocaleKit ;
115723383c0SOliver TappeDepends LocaleKit :
116723383c0SOliver Tappe	Locale
117723383c0SOliver Tappe
118723383c0SOliver Tappe	# binaries for building localized software on haiku
119723383c0SOliver Tappe	collectcatkeys
120723383c0SOliver Tappe	dumpcatalog
121723383c0SOliver Tappe	linkcatkeys
122723383c0SOliver Tappe
123723383c0SOliver Tappe	# addons
124723383c0SOliver Tappe	LocaleKitCollatorAddons
125723383c0SOliver Tappe	LocaleKitCatalogAddons
126723383c0SOliver Tappe
127723383c0SOliver Tappe	# tests
128723383c0SOliver Tappe	LocaleKitTests
129723383c0SOliver Tappe;
130de490447SIngo Weinhold
131de490447SIngo Weinhold# Add optional packages given via HAIKU_ADD_OPTIONAL_PACKAGES.
132de490447SIngo Weinholdif $(HAIKU_ADD_OPTIONAL_PACKAGES) {
133de490447SIngo Weinhold	AddOptionalHaikuImagePackages
134de490447SIngo Weinhold		[ FSplitString $(HAIKU_ADD_OPTIONAL_PACKAGES) : / ] ;
135de490447SIngo Weinhold}
136723383c0SOliver Tappe
137f4eb5cf7SMatt Madia# Prepare the optional build features before parsing the Jamfile tree.
138*f0cacbb3SIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) BuildFeatures ] ;
139f4eb5cf7SMatt Madia
1400e82d313SMatt Madia# Include packages that are required by all images.
141a5c31cbbSMatt MadiaAddOptionalHaikuImagePackages MandatoryPackages ;
142429618d2SMatt Madia
143429618d2SMatt Madia# If enabled, make sure that OpenSSL is added to the image.
144*f0cacbb3SIngo Weinholdif $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) {
145429618d2SMatt Madia	AddOptionalHaikuImagePackages OpenSSL ;
146429618d2SMatt Madia}
147a5c31cbbSMatt Madia
1482a90ce53SAdrien DestuguesAddOptionalHaikuImagePackages ICU ;
1492a90ce53SAdrien Destugues
1500e82d313SMatt Madia# Evaluate optional package dependencies
151ff81d306SIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalPackageDependencies ] ;
152ff81d306SIngo Weinhold
15348d60fa6SIngo Weinhold# Optionally we allow not to include the "src" subdirectory.
15448d60fa6SIngo Weinholdif $(HAIKU_DONT_INCLUDE_SRC) {
15548d60fa6SIngo Weinhold	# Don't include "src", but at least include the stuff needed for the
15648d60fa6SIngo Weinhold	# build.
15748d60fa6SIngo Weinhold	SubInclude HAIKU_TOP src build ;
15848d60fa6SIngo Weinhold	SubInclude HAIKU_TOP src tools ;
15948d60fa6SIngo Weinhold} else {
160338b8dc3SIngo Weinhold	SubInclude HAIKU_TOP src ;
16148d60fa6SIngo Weinhold}
162a7ec9c1dSFrançois Revolif $(HAIKU_INCLUDE_3RDPARTY) {
163a7ec9c1dSFrançois Revol	SubInclude HAIKU_TOP 3rdparty ;
164a7ec9c1dSFrançois Revol}
16548d60fa6SIngo Weinhold
166be8a6e43SIngo Weinhold# Perform deferred SubIncludes.
167be8a6e43SIngo WeinholdExecuteDeferredSubIncludes ;
168be8a6e43SIngo Weinhold
169689e6794SIngo Weinhold# reset subdir
170689e6794SIngo WeinholdSubDir HAIKU_TOP ;
171ad27081fSIngo Weinhold
172ad27081fSIngo Weinhold# Execute post-build-target user config rules.
173ad27081fSIngo WeinholdUserBuildConfigRulePostBuildTargets	;
174689e6794SIngo Weinhold
175b39c8d37SIngo Weinhold# specify the Haiku image and network boot archive contents
176700c8d30SAlex Smithif $(TARGET_ARCH) = x86_64 {
177700c8d30SAlex Smith	include [ FDirName $(HAIKU_BUILD_RULES_DIR) Haiku64Image ] ;
178700c8d30SAlex Smith} else {
179a970df44SIngo Weinhold	include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuImage ] ;
180700c8d30SAlex Smith}
181b39c8d37SIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) NetBootArchive ] ;
18222ec1df3SFrançois Revolinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) FloppyBootImage ] ;
1839ed64004SFrançois Revolinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootImage ] ;
184c7d3cf5bSFrançois Revolinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootPPCImage ] ;
185e2c3dec9SMichael Lotzinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuCD ] ;
186100e9192SMichael Lotzinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) AnybootImage ] ;
18737aefc9cSIngo Weinhold
18837aefc9cSIngo Weinhold# Check whether all requested optional packages do actually exist.
18937aefc9cSIngo Weinholdlocal package ;
19037aefc9cSIngo Weinholdlocal packageError ;
19137aefc9cSIngo Weinholdfor package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) {
19237aefc9cSIngo Weinhold	if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] {
19337aefc9cSIngo Weinhold		Echo "ERROR: Requested optional package \"$(package)\" does not"
19437aefc9cSIngo Weinhold			"exist." ;
19537aefc9cSIngo Weinhold		packageError = 1 ;
19637aefc9cSIngo Weinhold	}
19737aefc9cSIngo Weinhold}
19837aefc9cSIngo Weinholdif $(packageError) {
19937aefc9cSIngo Weinhold	Exit ;
20037aefc9cSIngo Weinhold}
20180ad173eSMatt Madia
20280ad173eSMatt Madia# Pseudo-target to build all targets that are localized.
203a8fcb885SMatt MadiaNotFile LocalizedTargets ;
204a8fcb885SMatt MadiaDepends LocalizedTargets : $(HAIKU_LOCALIZED_TARGETS) ;
2059de5b022SMatt Madia
2069de5b022SMatt MadiaNotFile catalogs ;
2079de5b022SMatt MadiaDepends catalogs : $(HAIKU_LOCALE_CATALOGS) ;
2089de5b022SMatt Madia
2099de5b022SMatt MadiaNotFile catkeys ;
2109de5b022SMatt MadiaDepends catkeys : $(HAIKU_LOCALE_OUTPUT_CATKEYS) ;
211