xref: /haiku/Jamfile (revision adb0d19d561947362090081e81d90dde59142026)
1SubDir HAIKU_TOP ;
2
3NotFile alltests ;
4Depends alltests : r5tests obostests ;
5
6NotFile doc_files ;
7Depends files : doc_files ;
8
9# Pseudo-target to build the mail kit only
10NotFile MailKit ;
11Depends MailKit :
12	libmail.so
13	mail_daemon
14	E-mail
15	BeMail
16
17	# mail_daemon addons
18	Inbox
19	Outbox
20	Message\ Parser
21	New\ Mail\ Notification
22	Match\ Header
23	R5\ Daemon\ Filter
24	IMAP
25	POP3
26	SMTP
27	Fortune
28	Spam\ Filter
29	spamdbm
30;
31
32# Pseudo-target to build the network kit only
33NotFile NetworkingKit ;
34Depends NetworkingKit :
35	net_stack_driver net_server_driver
36	core
37	ethernet loopback ppp
38	raw route ipv4 icmp udp tcp
39	libnet.so libnetapi.so libbind.so libsocket.so
40	ping ifconfig <bin>route traceroute arp pppconfig
41
42	# network drivers:
43	sis900 rtl8139 rtl8169 via-rhine ipro1000 wb840 bcm440x bcm570x
44
45	# PPP devices:
46	modem pppoe
47	# PPP protocols:
48	ipcp
49	# PPP authenticators:
50	pap
51;
52
53# Pseudo-target to build the media stuffs only
54NotFile MediaKit ;
55Depends MediaKit :
56	libmedia.so
57	libgame.so
58
59	# Servers
60	media_addon_server
61	media_server
62
63	# Preference
64	Sounds
65	Media
66
67	# Deskbar replicant
68	desklink
69
70	# add-ons
71	mixer.media_addon
72	tone_producer_demo.media_addon
73	video_producer_demo.media_addon
74	legacy.media_addon
75	multi_audio.media_addon
76#	reader.media_addon
77#	writer.media_addon
78#	demultiplexer.media_addon
79
80	# codecs
81	ac3_decoder
82	aiff_reader
83	au_reader
84	avcodec
85	avi_reader
86	matroska
87	mp3_decoder
88	mp3_reader
89	musepack
90	ogg
91	raw_decoder
92	speex
93	vorbis
94	wav_reader
95	mov_reader
96;
97
98# Pseudo-target to build the input kit only
99NotFile InputKit ;
100Depends InputKit :
101	# Servers
102	input_server
103
104	# Addons
105	<input>keyboard
106	<input>mouse
107
108	# Apps
109	keymap
110
111	# Preferences
112	Keymap
113	Keyboard
114	Mouse
115;
116
117# Pseudo-target to build the OpenGL kit only
118NotFile OpenGLKit ;
119Depends OpenGLKit :
120	libGL.so
121	GLTeapot
122	GLInfo
123;
124
125# Pseudo-target to build the screensaver kit only
126NotFile ScreenSaverKit ;
127Depends ScreenSaverKit :
128	libscreensaver.so
129	screen_saver
130	screen_blanker
131	ScreenSaver
132	Haiku
133;
134
135# Evaluate optional package dependencies and prepare the optional build
136# features before parsing the Jamfile tree.
137include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalPackageDependencies ] ;
138include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalBuildFeatures ] ;
139
140# Optionally we allow not to include the "src" subdirectory.
141if $(HAIKU_DONT_INCLUDE_SRC) {
142	# Don't include "src", but at least include the stuff needed for the
143	# build.
144	SubInclude HAIKU_TOP src build ;
145	SubInclude HAIKU_TOP src tools ;
146} else {
147	SubInclude HAIKU_TOP src ;
148}
149if $(HAIKU_INCLUDE_3RDPARTY) {
150	SubInclude HAIKU_TOP 3rdparty ;
151}
152
153# Perform deferred SubIncludes.
154ExecuteDeferredSubIncludes ;
155
156# reset subdir
157SubDir HAIKU_TOP ;
158
159# Execute post-build-target user config rules.
160UserBuildConfigRulePostBuildTargets	;
161
162# specify the Haiku image and network boot archive contents
163include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuImage ] ;
164include [ FDirName $(HAIKU_BUILD_RULES_DIR) NetBootArchive ] ;
165include [ FDirName $(HAIKU_BUILD_RULES_DIR) FloppyBootImage ] ;
166include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootImage ] ;
167include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootPPCImage ] ;
168include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuCD ] ;
169
170# Check whether all requested optional packages do actually exist.
171local package ;
172local packageError ;
173for package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) {
174	if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] {
175		Echo "ERROR: Requested optional package \"$(package)\" does not"
176			"exist." ;
177		packageError = 1 ;
178	}
179}
180if $(packageError) {
181	Exit ;
182}
183