xref: /haiku/Jamfile (revision 37aefc9c6f6dc3456d74dbccc3a606e30192baf4)
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
13548d60fa6SIngo Weinhold# Optionally we allow not to include the "src" subdirectory.
13648d60fa6SIngo Weinholdif $(HAIKU_DONT_INCLUDE_SRC) {
13748d60fa6SIngo Weinhold	# Don't include "src", but at least include the stuff needed for the
13848d60fa6SIngo Weinhold	# build.
13948d60fa6SIngo Weinhold	SubInclude HAIKU_TOP src build ;
14048d60fa6SIngo Weinhold	SubInclude HAIKU_TOP src tools ;
14148d60fa6SIngo Weinhold} else {
142338b8dc3SIngo Weinhold	SubInclude HAIKU_TOP src ;
14348d60fa6SIngo Weinhold}
144a7ec9c1dSFrançois Revolif $(HAIKU_INCLUDE_3RDPARTY) {
145a7ec9c1dSFrançois Revol	SubInclude HAIKU_TOP 3rdparty ;
146a7ec9c1dSFrançois Revol}
14748d60fa6SIngo Weinhold
148be8a6e43SIngo Weinhold# Perform deferred SubIncludes.
149be8a6e43SIngo WeinholdExecuteDeferredSubIncludes ;
150be8a6e43SIngo Weinhold
151689e6794SIngo Weinhold# reset subdir
152689e6794SIngo WeinholdSubDir HAIKU_TOP ;
153ad27081fSIngo Weinhold
154ad27081fSIngo Weinhold# Execute post-build-target user config rules.
155ad27081fSIngo WeinholdUserBuildConfigRulePostBuildTargets	;
156689e6794SIngo Weinhold
157b39c8d37SIngo Weinhold# specify the Haiku image and network boot archive contents
158a970df44SIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuImage ] ;
159b39c8d37SIngo Weinholdinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) NetBootArchive ] ;
16022ec1df3SFrançois Revolinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) FloppyBootImage ] ;
1619ed64004SFrançois Revolinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootImage ] ;
162c7d3cf5bSFrançois Revolinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootPPCImage ] ;
163e2c3dec9SMichael Lotzinclude [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuCD ] ;
164*37aefc9cSIngo Weinhold
165*37aefc9cSIngo Weinhold# Check whether all requested optional packages do actually exist.
166*37aefc9cSIngo Weinholdlocal package ;
167*37aefc9cSIngo Weinholdlocal packageError ;
168*37aefc9cSIngo Weinholdfor package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) {
169*37aefc9cSIngo Weinhold	if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] {
170*37aefc9cSIngo Weinhold		Echo "ERROR: Requested optional package \"$(package)\" does not"
171*37aefc9cSIngo Weinhold			"exist." ;
172*37aefc9cSIngo Weinhold		packageError = 1 ;
173*37aefc9cSIngo Weinhold	}
174*37aefc9cSIngo Weinhold}
175*37aefc9cSIngo Weinholdif $(packageError) {
176*37aefc9cSIngo Weinhold	Exit ;
177*37aefc9cSIngo Weinhold}
178