xref: /haiku/Jamfile (revision 429618d249dd14ab73931a7b2a876d2adc56cd64)
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
325c3a5204SPhilippe Houdoin# Pseudo-target to build the network kit only
335c3a5204SPhilippe HoudoinNotFile NetworkingKit ;
345c3a5204SPhilippe HoudoinDepends NetworkingKit :
3558f2dcabSPhilippe Houdoin	net_stack_driver net_server_driver
3658f2dcabSPhilippe Houdoin	core
37b82b832eSWaldemar Kornewald	ethernet loopback ppp
3879a14ca5SWaldemar Kornewald	raw route ipv4 icmp udp tcp
396c3f95cdSWaldemar Kornewald	libnet.so libnetapi.so libbind.so libsocket.so
4079a14ca5SWaldemar Kornewald	ping ifconfig <bin>route traceroute arp pppconfig
41ef0e9a6aSWaldemar Kornewald
42ef0e9a6aSWaldemar Kornewald	# network drivers:
434e7ab2f1SPhilippe Houdoin	sis900 rtl8139 rtl8169 via-rhine ipro1000 wb840 bcm440x bcm570x
44ef0e9a6aSWaldemar Kornewald
45ef0e9a6aSWaldemar Kornewald	# PPP devices:
466c3f95cdSWaldemar Kornewald	modem pppoe
47ef0e9a6aSWaldemar Kornewald	# PPP protocols:
48ef0e9a6aSWaldemar Kornewald	ipcp
49ef0e9a6aSWaldemar Kornewald	# PPP authenticators:
50ef0e9a6aSWaldemar Kornewald	pap
5158f2dcabSPhilippe Houdoin;
5258f2dcabSPhilippe Houdoin
53047625c2SPhilippe Houdoin# Pseudo-target to build the media stuffs only
54047625c2SPhilippe HoudoinNotFile MediaKit ;
55047625c2SPhilippe HoudoinDepends MediaKit :
5683abf055SPhilippe Houdoin	libmedia.so
57184dd027SMarcus Overhagen	libgame.so
58ed942695Sbeveloper
5928a06094Sbeveloper	# Servers
60ed942695Sbeveloper	media_addon_server
61ed942695Sbeveloper	media_server
6283abf055SPhilippe Houdoin
6328a06094Sbeveloper	# Preference
6428a06094Sbeveloper	Sounds
6528a06094Sbeveloper	Media
6628a06094Sbeveloper
6728a06094Sbeveloper	# Deskbar replicant
6828a06094Sbeveloper	desklink
6928a06094Sbeveloper
7083abf055SPhilippe Houdoin	# add-ons
7183abf055SPhilippe Houdoin	mixer.media_addon
7283abf055SPhilippe Houdoin	tone_producer_demo.media_addon
7383abf055SPhilippe Houdoin	video_producer_demo.media_addon
7483abf055SPhilippe Houdoin	legacy.media_addon
7583abf055SPhilippe Houdoin	multi_audio.media_addon
761b1b7ddfSbeveloper#	reader.media_addon
771b1b7ddfSbeveloper#	writer.media_addon
781b1b7ddfSbeveloper#	demultiplexer.media_addon
7983abf055SPhilippe Houdoin
8083abf055SPhilippe Houdoin	# codecs
814fed4f5eSbeveloper	ac3_decoder
824a687b07Sbeveloper	aiff_reader
834a687b07Sbeveloper	au_reader
844a687b07Sbeveloper	avcodec
854a687b07Sbeveloper	avi_reader
86dfac3f85Sbeveloper	matroska
8783abf055SPhilippe Houdoin	mp3_decoder
884a687b07Sbeveloper	mp3_reader
89df016bbaSbeveloper	musepack
904a687b07Sbeveloper	ogg
914a687b07Sbeveloper	raw_decoder
92df016bbaSbeveloper	speex
934a687b07Sbeveloper	vorbis
944a687b07Sbeveloper	wav_reader
95215c91dfSDavid McPaul	mov_reader
96047625c2SPhilippe Houdoin;
97047625c2SPhilippe Houdoin
98d3e72bf6SJérôme Duval# Pseudo-target to build the input kit only
99d3e72bf6SJérôme DuvalNotFile InputKit ;
100d3e72bf6SJérôme DuvalDepends InputKit :
101d3e72bf6SJérôme Duval	# Servers
102d3e72bf6SJérôme Duval	input_server
103d3e72bf6SJérôme Duval
104d3e72bf6SJérôme Duval	# Addons
105d3e72bf6SJérôme Duval	<input>keyboard
106d3e72bf6SJérôme Duval	<input>mouse
107d3e72bf6SJérôme Duval
108d3e72bf6SJérôme Duval	# Apps
109d3e72bf6SJérôme Duval	keymap
110d3e72bf6SJérôme Duval
111d3e72bf6SJérôme Duval	# Preferences
112d3e72bf6SJérôme Duval	Keymap
113d3e72bf6SJérôme Duval	Keyboard
114d3e72bf6SJérôme Duval	Mouse
115d3e72bf6SJérôme Duval;
116d3e72bf6SJérôme Duval
11799a77abfSPhilippe Houdoin# Pseudo-target to build the OpenGL kit only
11899a77abfSPhilippe HoudoinNotFile OpenGLKit ;
11999a77abfSPhilippe HoudoinDepends OpenGLKit :
12099a77abfSPhilippe Houdoin	libGL.so
12199a77abfSPhilippe Houdoin	GLTeapot
12299a77abfSPhilippe Houdoin	GLInfo
12399a77abfSPhilippe Houdoin;
12499a77abfSPhilippe Houdoin
1251559de12SJérôme Duval# Pseudo-target to build the screensaver kit only
1261559de12SJérôme DuvalNotFile ScreenSaverKit ;
1271559de12SJérôme DuvalDepends ScreenSaverKit :
1281559de12SJérôme Duval	libscreensaver.so
1291559de12SJérôme Duval	screen_saver
1301559de12SJérôme Duval	screen_blanker
1311559de12SJérôme Duval	ScreenSaver
1321559de12SJérôme Duval	Haiku
1331559de12SJérôme Duval;
1341559de12SJérôme Duval
135723383c0SOliver Tappe# Pseudo-target to build the locale kit only
136723383c0SOliver TappeNotFile LocaleKit ;
137723383c0SOliver TappeDepends LocaleKit :
138723383c0SOliver Tappe	liblocale.so
139723383c0SOliver Tappe	Locale
140723383c0SOliver Tappe
141723383c0SOliver Tappe	# binaries for building localized software on haiku
142723383c0SOliver Tappe	collectcatkeys
143723383c0SOliver Tappe	dumpcatalog
144723383c0SOliver Tappe	linkcatkeys
145723383c0SOliver Tappe
146723383c0SOliver Tappe	# addons
147723383c0SOliver Tappe	LocaleKitCollatorAddons
148723383c0SOliver Tappe	LocaleKitCatalogAddons
149723383c0SOliver Tappe
150723383c0SOliver Tappe	# tests
151723383c0SOliver Tappe	LocaleKitTests
152723383c0SOliver Tappe;
153de490447SIngo Weinhold
154de490447SIngo Weinhold# Add optional packages given via HAIKU_ADD_OPTIONAL_PACKAGES.
155de490447SIngo Weinholdif $(HAIKU_ADD_OPTIONAL_PACKAGES) {
156de490447SIngo Weinhold	AddOptionalHaikuImagePackages
157de490447SIngo Weinhold		[ FSplitString $(HAIKU_ADD_OPTIONAL_PACKAGES) : / ] ;
158de490447SIngo Weinhold}
159723383c0SOliver Tappe
160a5c31cbbSMatt Madia#include packages that are required by all images.
161a5c31cbbSMatt MadiaAddOptionalHaikuImagePackages MandatoryPackages ;
162*429618d2SMatt Madia
163*429618d2SMatt Madia# If enabled, make sure that OpenSSL is added to the image.
164*429618d2SMatt Madiaif $(HAIKU_OPENSSL_ENABLED) {
165*429618d2SMatt Madia	AddOptionalHaikuImagePackages OpenSSL ;
166*429618d2SMatt Madia}
167a5c31cbbSMatt Madia
168ff81d306SIngo Weinhold# Evaluate optional package dependencies and prepare the optional build
169ff81d306SIngo Weinhold# features before parsing the Jamfile tree.
170ff81d306SIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalPackageDependencies ] ;
171ff81d306SIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalBuildFeatures ] ;
172ff81d306SIngo Weinhold
17348d60fa6SIngo Weinhold# Optionally we allow not to include the "src" subdirectory.
17448d60fa6SIngo Weinholdif $(HAIKU_DONT_INCLUDE_SRC) {
17548d60fa6SIngo Weinhold	# Don't include "src", but at least include the stuff needed for the
17648d60fa6SIngo Weinhold	# build.
17748d60fa6SIngo Weinhold	SubInclude HAIKU_TOP src build ;
17848d60fa6SIngo Weinhold	SubInclude HAIKU_TOP src tools ;
17948d60fa6SIngo Weinhold} else {
180338b8dc3SIngo Weinhold	SubInclude HAIKU_TOP src ;
18148d60fa6SIngo Weinhold}
182a7ec9c1dSFrançois Revolif $(HAIKU_INCLUDE_3RDPARTY) {
183a7ec9c1dSFrançois Revol	SubInclude HAIKU_TOP 3rdparty ;
184a7ec9c1dSFrançois Revol}
18548d60fa6SIngo Weinhold
186be8a6e43SIngo Weinhold# Perform deferred SubIncludes.
187be8a6e43SIngo WeinholdExecuteDeferredSubIncludes ;
188be8a6e43SIngo Weinhold
189689e6794SIngo Weinhold# reset subdir
190689e6794SIngo WeinholdSubDir HAIKU_TOP ;
191ad27081fSIngo Weinhold
192ad27081fSIngo Weinhold# Execute post-build-target user config rules.
193ad27081fSIngo WeinholdUserBuildConfigRulePostBuildTargets	;
194689e6794SIngo Weinhold
195b39c8d37SIngo Weinhold# specify the Haiku image and network boot archive contents
196a970df44SIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuImage ] ;
197b39c8d37SIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) NetBootArchive ] ;
19822ec1df3SFrançois Revolinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) FloppyBootImage ] ;
1999ed64004SFrançois Revolinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootImage ] ;
200c7d3cf5bSFrançois Revolinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootPPCImage ] ;
201e2c3dec9SMichael Lotzinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuCD ] ;
202100e9192SMichael Lotzinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) AnybootImage ] ;
20337aefc9cSIngo Weinhold
20437aefc9cSIngo Weinhold# Check whether all requested optional packages do actually exist.
20537aefc9cSIngo Weinholdlocal package ;
20637aefc9cSIngo Weinholdlocal packageError ;
20737aefc9cSIngo Weinholdfor package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) {
20837aefc9cSIngo Weinhold	if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] {
20937aefc9cSIngo Weinhold		Echo "ERROR: Requested optional package \"$(package)\" does not"
21037aefc9cSIngo Weinhold			"exist." ;
21137aefc9cSIngo Weinhold		packageError = 1 ;
21237aefc9cSIngo Weinhold	}
21337aefc9cSIngo Weinhold}
21437aefc9cSIngo Weinholdif $(packageError) {
21537aefc9cSIngo Weinhold	Exit ;
21637aefc9cSIngo Weinhold}
217