xref: /haiku/Jamfile (revision 2a90ce534c7dc60ca4060a5f6e7b60bc68b8d511)
1338b8dc3SIngo WeinholdSubDir HAIKU_TOP ;
269b97469SIngo Weinhold
307a49963SIngo WeinholdNotFile alltests ;
407a49963SIngo WeinholdDepends alltests : r5tests obostests ;
507a49963SIngo Weinhold
6f35b607dSJérôme DuvalNotFile doc_files ;
7f35b607dSJérôme DuvalDepends files : doc_files ;
8f35b607dSJérôme Duval
94e7ab2f1SPhilippe Houdoin# Pseudo-target to build the mail kit only
104e7ab2f1SPhilippe HoudoinNotFile MailKit ;
114e7ab2f1SPhilippe HoudoinDepends MailKit :
124e7ab2f1SPhilippe Houdoin	libmail.so
134e7ab2f1SPhilippe Houdoin	mail_daemon
144e7ab2f1SPhilippe Houdoin	E-mail
154e7ab2f1SPhilippe Houdoin	BeMail
164e7ab2f1SPhilippe Houdoin
174e7ab2f1SPhilippe Houdoin	# mail_daemon addons
184e7ab2f1SPhilippe Houdoin	Inbox
194e7ab2f1SPhilippe Houdoin	Outbox
204e7ab2f1SPhilippe Houdoin	Message\ Parser
214e7ab2f1SPhilippe Houdoin	New\ Mail\ Notification
224e7ab2f1SPhilippe Houdoin	Match\ Header
234e7ab2f1SPhilippe Houdoin	R5\ Daemon\ Filter
244e7ab2f1SPhilippe Houdoin	IMAP
254e7ab2f1SPhilippe Houdoin	POP3
264e7ab2f1SPhilippe Houdoin	SMTP
274e7ab2f1SPhilippe Houdoin	Fortune
281effc988SDarkWyrm	Spam\ Filter
291effc988SDarkWyrm	spamdbm
304e7ab2f1SPhilippe Houdoin;
314e7ab2f1SPhilippe Houdoin
32047625c2SPhilippe Houdoin# Pseudo-target to build the media stuffs only
33047625c2SPhilippe HoudoinNotFile MediaKit ;
34047625c2SPhilippe HoudoinDepends MediaKit :
3583abf055SPhilippe Houdoin	libmedia.so
36184dd027SMarcus Overhagen	libgame.so
37ed942695Sbeveloper
3828a06094Sbeveloper	# Servers
39ed942695Sbeveloper	media_addon_server
40ed942695Sbeveloper	media_server
4183abf055SPhilippe Houdoin
4228a06094Sbeveloper	# Preference
4328a06094Sbeveloper	Sounds
4428a06094Sbeveloper	Media
4528a06094Sbeveloper
4628a06094Sbeveloper	# Deskbar replicant
4728a06094Sbeveloper	desklink
4828a06094Sbeveloper
4983abf055SPhilippe Houdoin	# add-ons
5083abf055SPhilippe Houdoin	mixer.media_addon
5183abf055SPhilippe Houdoin	tone_producer_demo.media_addon
5283abf055SPhilippe Houdoin	video_producer_demo.media_addon
5383abf055SPhilippe Houdoin	legacy.media_addon
5483abf055SPhilippe Houdoin	multi_audio.media_addon
551b1b7ddfSbeveloper#	reader.media_addon
561b1b7ddfSbeveloper#	writer.media_addon
571b1b7ddfSbeveloper#	demultiplexer.media_addon
5883abf055SPhilippe Houdoin
5983abf055SPhilippe Houdoin	# codecs
604fed4f5eSbeveloper	ac3_decoder
614a687b07Sbeveloper	aiff_reader
624a687b07Sbeveloper	au_reader
634a687b07Sbeveloper	avcodec
644a687b07Sbeveloper	avi_reader
65dfac3f85Sbeveloper	matroska
6683abf055SPhilippe Houdoin	mp3_decoder
674a687b07Sbeveloper	mp3_reader
68df016bbaSbeveloper	musepack
694a687b07Sbeveloper	ogg
704a687b07Sbeveloper	raw_decoder
71df016bbaSbeveloper	speex
724a687b07Sbeveloper	vorbis
734a687b07Sbeveloper	wav_reader
74215c91dfSDavid McPaul	mov_reader
75047625c2SPhilippe Houdoin;
76047625c2SPhilippe Houdoin
77d3e72bf6SJérôme Duval# Pseudo-target to build the input kit only
78d3e72bf6SJérôme DuvalNotFile InputKit ;
79d3e72bf6SJérôme DuvalDepends InputKit :
80d3e72bf6SJérôme Duval	# Servers
81d3e72bf6SJérôme Duval	input_server
82d3e72bf6SJérôme Duval
83d3e72bf6SJérôme Duval	# Addons
84d3e72bf6SJérôme Duval	<input>keyboard
85d3e72bf6SJérôme Duval	<input>mouse
86d3e72bf6SJérôme Duval
87d3e72bf6SJérôme Duval	# Apps
88d3e72bf6SJérôme Duval	keymap
89d3e72bf6SJérôme Duval
90d3e72bf6SJérôme Duval	# Preferences
91d3e72bf6SJérôme Duval	Keymap
92d3e72bf6SJérôme Duval	Keyboard
93d3e72bf6SJérôme Duval	Mouse
94d3e72bf6SJérôme Duval;
95d3e72bf6SJérôme Duval
9699a77abfSPhilippe Houdoin# Pseudo-target to build the OpenGL kit only
9799a77abfSPhilippe HoudoinNotFile OpenGLKit ;
9899a77abfSPhilippe HoudoinDepends OpenGLKit :
9999a77abfSPhilippe Houdoin	libGL.so
10099a77abfSPhilippe Houdoin	GLTeapot
10199a77abfSPhilippe Houdoin	GLInfo
10299a77abfSPhilippe Houdoin;
10399a77abfSPhilippe Houdoin
1041559de12SJérôme Duval# Pseudo-target to build the screensaver kit only
1051559de12SJérôme DuvalNotFile ScreenSaverKit ;
1061559de12SJérôme DuvalDepends ScreenSaverKit :
1071559de12SJérôme Duval	libscreensaver.so
1081559de12SJérôme Duval	screen_saver
1091559de12SJérôme Duval	screen_blanker
1101559de12SJérôme Duval	ScreenSaver
1111559de12SJérôme Duval	Haiku
1121559de12SJérôme Duval;
1131559de12SJérôme Duval
114723383c0SOliver Tappe# Pseudo-target to build the locale kit only
115723383c0SOliver TappeNotFile LocaleKit ;
116723383c0SOliver TappeDepends LocaleKit :
117723383c0SOliver Tappe	liblocale.so
118723383c0SOliver Tappe	Locale
119723383c0SOliver Tappe
120723383c0SOliver Tappe	# binaries for building localized software on haiku
121723383c0SOliver Tappe	collectcatkeys
122723383c0SOliver Tappe	dumpcatalog
123723383c0SOliver Tappe	linkcatkeys
124723383c0SOliver Tappe
125723383c0SOliver Tappe	# addons
126723383c0SOliver Tappe	LocaleKitCollatorAddons
127723383c0SOliver Tappe	LocaleKitCatalogAddons
128723383c0SOliver Tappe
129723383c0SOliver Tappe	# tests
130723383c0SOliver Tappe	LocaleKitTests
131723383c0SOliver Tappe;
132de490447SIngo Weinhold
13369681c75SJérôme Duval# Prepare the optional build features before parsing the Jamfile tree.
1340e82d313SMatt Madiainclude [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalBuildFeatures ] ;
1350e82d313SMatt Madia
136de490447SIngo Weinhold# Add optional packages given via HAIKU_ADD_OPTIONAL_PACKAGES.
137de490447SIngo Weinholdif $(HAIKU_ADD_OPTIONAL_PACKAGES) {
138de490447SIngo Weinhold	AddOptionalHaikuImagePackages
139de490447SIngo Weinhold		[ FSplitString $(HAIKU_ADD_OPTIONAL_PACKAGES) : / ] ;
140de490447SIngo Weinhold}
141723383c0SOliver Tappe
1420e82d313SMatt Madia# Include packages that are required by all images.
143a5c31cbbSMatt MadiaAddOptionalHaikuImagePackages MandatoryPackages ;
144429618d2SMatt Madia
145429618d2SMatt Madia# If enabled, make sure that OpenSSL is added to the image.
146429618d2SMatt Madiaif $(HAIKU_OPENSSL_ENABLED) {
147429618d2SMatt Madia	AddOptionalHaikuImagePackages OpenSSL ;
148429618d2SMatt Madia}
149a5c31cbbSMatt Madia
150*2a90ce53SAdrien DestuguesAddOptionalHaikuImagePackages ICU ;
151*2a90ce53SAdrien Destugues
1520e82d313SMatt Madia# Evaluate optional package dependencies
153ff81d306SIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalPackageDependencies ] ;
154ff81d306SIngo Weinhold
15548d60fa6SIngo Weinhold# Optionally we allow not to include the "src" subdirectory.
15648d60fa6SIngo Weinholdif $(HAIKU_DONT_INCLUDE_SRC) {
15748d60fa6SIngo Weinhold	# Don't include "src", but at least include the stuff needed for the
15848d60fa6SIngo Weinhold	# build.
15948d60fa6SIngo Weinhold	SubInclude HAIKU_TOP src build ;
16048d60fa6SIngo Weinhold	SubInclude HAIKU_TOP src tools ;
16148d60fa6SIngo Weinhold} else {
162338b8dc3SIngo Weinhold	SubInclude HAIKU_TOP src ;
16348d60fa6SIngo Weinhold}
164a7ec9c1dSFrançois Revolif $(HAIKU_INCLUDE_3RDPARTY) {
165a7ec9c1dSFrançois Revol	SubInclude HAIKU_TOP 3rdparty ;
166a7ec9c1dSFrançois Revol}
16748d60fa6SIngo Weinhold
168be8a6e43SIngo Weinhold# Perform deferred SubIncludes.
169be8a6e43SIngo WeinholdExecuteDeferredSubIncludes ;
170be8a6e43SIngo Weinhold
171689e6794SIngo Weinhold# reset subdir
172689e6794SIngo WeinholdSubDir HAIKU_TOP ;
173ad27081fSIngo Weinhold
174ad27081fSIngo Weinhold# Execute post-build-target user config rules.
175ad27081fSIngo WeinholdUserBuildConfigRulePostBuildTargets	;
176689e6794SIngo Weinhold
177b39c8d37SIngo Weinhold# specify the Haiku image and network boot archive contents
178a970df44SIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuImage ] ;
179b39c8d37SIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) NetBootArchive ] ;
18022ec1df3SFrançois Revolinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) FloppyBootImage ] ;
1819ed64004SFrançois Revolinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootImage ] ;
182c7d3cf5bSFrançois Revolinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootPPCImage ] ;
183e2c3dec9SMichael Lotzinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuCD ] ;
184100e9192SMichael Lotzinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) AnybootImage ] ;
18537aefc9cSIngo Weinhold
18637aefc9cSIngo Weinhold# Check whether all requested optional packages do actually exist.
18737aefc9cSIngo Weinholdlocal package ;
18837aefc9cSIngo Weinholdlocal packageError ;
18937aefc9cSIngo Weinholdfor package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) {
19037aefc9cSIngo Weinhold	if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] {
19137aefc9cSIngo Weinhold		Echo "ERROR: Requested optional package \"$(package)\" does not"
19237aefc9cSIngo Weinhold			"exist." ;
19337aefc9cSIngo Weinhold		packageError = 1 ;
19437aefc9cSIngo Weinhold	}
19537aefc9cSIngo Weinhold}
19637aefc9cSIngo Weinholdif $(packageError) {
19737aefc9cSIngo Weinhold	Exit ;
19837aefc9cSIngo Weinhold}
199