xref: /haiku/Jamfile (revision 8a990d5228b2d1099e3062180532ba709dfeef6d)
1SubDir HAIKU_TOP ;
2
3NotFile doc_files ;
4Depends files : doc_files ;
5
6# Pseudo-target to build the mail kit only
7NotFile MailKit ;
8Depends MailKit :
9	libmail.so
10	mail_daemon
11	E-mail
12	BeMail
13
14	# mail_daemon addons
15	Inbox
16	Outbox
17	Message\ Parser
18	New\ Mail\ Notification
19	Match\ Header
20	R5\ Daemon\ Filter
21	IMAP
22	POP3
23	SMTP
24	Fortune
25	Spam\ Filter
26	spamdbm
27;
28
29# Pseudo-target to build the media stuffs only
30# TODO: don't know how to make avcodec mp3_decoder mp3_reader ogg speex vorbis
31NotFile MediaKit ;
32Depends MediaKit :
33	libmedia.so
34	libgame.so
35
36	# Servers
37	media_addon_server
38	media_server
39
40	# Preference
41	Sounds
42	Media
43
44	# Deskbar replicant
45	desklink
46
47	# add-ons
48	mixer.media_addon
49	tone_producer_demo.media_addon
50	video_producer_demo.media_addon
51	legacy.media_addon
52	multi_audio.media_addon
53#	reader.media_addon
54#	writer.media_addon
55#	demultiplexer.media_addon
56
57	# codecs
58	ac3_decoder
59	aiff_reader
60	au_reader
61	avcodec
62	avi_reader
63	matroska
64	mp3_decoder
65	mp3_reader
66	musepack
67	ogg
68	raw_decoder
69	speex
70	vorbis
71	wav_reader
72	mov_reader
73;
74
75# Pseudo-target to build the input kit only
76NotFile InputKit ;
77Depends InputKit :
78	# Servers
79	input_server
80
81	# Addons
82	<input>keyboard
83	<input>mouse
84
85	# Apps
86	keymap
87
88	# Preferences
89	Keymap
90	Keyboard
91	Mouse
92;
93
94# Pseudo-target to build the OpenGL kit only
95NotFile OpenGLKit ;
96Depends OpenGLKit :
97	libGL.so
98	GLTeapot
99#	GLInfo
100;
101
102# Pseudo-target to build the screensaver kit only
103NotFile ScreenSaverKit ;
104Depends ScreenSaverKit :
105	libscreensaver.so
106	screen_saver
107	screen_blanker
108	ScreenSaver
109	Haiku
110;
111
112# Pseudo-target to build the locale kit only
113# TODO: src/add-ons/locale/collators/GermanDIN-2.cpp does not compile
114NotFile LocaleKit ;
115Depends LocaleKit :
116	liblocale.so
117	Locale
118
119	# binaries for building localized software on haiku
120	collectcatkeys
121	dumpcatalog
122	linkcatkeys
123
124	# addons
125	LocaleKitCollatorAddons
126	LocaleKitCatalogAddons
127
128	# tests
129	LocaleKitTests
130;
131
132# Prepare the optional build features before parsing the Jamfile tree.
133include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalBuildFeatures ] ;
134
135# Add optional packages given via HAIKU_ADD_OPTIONAL_PACKAGES.
136if $(HAIKU_ADD_OPTIONAL_PACKAGES) {
137	AddOptionalHaikuImagePackages
138		[ FSplitString $(HAIKU_ADD_OPTIONAL_PACKAGES) : / ] ;
139}
140
141# Include packages that are required by all images.
142AddOptionalHaikuImagePackages MandatoryPackages ;
143
144# If enabled, make sure that OpenSSL is added to the image.
145if $(HAIKU_OPENSSL_ENABLED) {
146	AddOptionalHaikuImagePackages OpenSSL ;
147}
148
149AddOptionalHaikuImagePackages ICU ;
150
151# Evaluate optional package dependencies
152include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalPackageDependencies ] ;
153
154# Optionally we allow not to include the "src" subdirectory.
155if $(HAIKU_DONT_INCLUDE_SRC) {
156	# Don't include "src", but at least include the stuff needed for the
157	# build.
158	SubInclude HAIKU_TOP src build ;
159	SubInclude HAIKU_TOP src tools ;
160} else {
161	SubInclude HAIKU_TOP src ;
162}
163if $(HAIKU_INCLUDE_3RDPARTY) {
164	SubInclude HAIKU_TOP 3rdparty ;
165}
166
167# Perform deferred SubIncludes.
168ExecuteDeferredSubIncludes ;
169
170# reset subdir
171SubDir HAIKU_TOP ;
172
173# Execute post-build-target user config rules.
174UserBuildConfigRulePostBuildTargets	;
175
176# specify the Haiku image and network boot archive contents
177include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuImage ] ;
178include [ FDirName $(HAIKU_BUILD_RULES_DIR) NetBootArchive ] ;
179include [ FDirName $(HAIKU_BUILD_RULES_DIR) FloppyBootImage ] ;
180include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootImage ] ;
181include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootPPCImage ] ;
182include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuCD ] ;
183include [ FDirName $(HAIKU_BUILD_RULES_DIR) AnybootImage ] ;
184
185# Check whether all requested optional packages do actually exist.
186local package ;
187local packageError ;
188for package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) {
189	if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] {
190		Echo "ERROR: Requested optional package \"$(package)\" does not"
191			"exist." ;
192		packageError = 1 ;
193	}
194}
195if $(packageError) {
196	Exit ;
197}
198
199# Pseudo-target to build all targets that are localized.
200NotFile LocalizedTargets ;
201Depends LocalizedTargets : $(HAIKU_LOCALIZED_TARGETS) ;
202
203NotFile catalogs ;
204Depends catalogs : $(HAIKU_LOCALE_CATALOGS) ;
205
206NotFile catkeys ;
207Depends catkeys : $(HAIKU_LOCALE_OUTPUT_CATKEYS) ;
208