Enable targets for EFI on binutils.
[haiku.git] / Jamfile
blob3ea234bde42db914901b8b670e32255ec783c09c
1 SubDir HAIKU_TOP ;
3 NotFile doc_files ;
4 Depends files : doc_files ;
6 # Pseudo-target to build the mail kit only
7 NotFile MailKit ;
8 Depends MailKit :
9         libmail.so
10         mail_daemon
11         E-mail
12         BeMail
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
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
31 NotFile MediaKit ;
32 Depends MediaKit :
33         libmedia.so
34         libgame.so
36         # Servers
37         media_addon_server
38         media_server
40         # Preference
41         Sounds
42         Media
44         # Deskbar replicant
45         desklink
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
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
75 # Pseudo-target to build the input kit only
76 NotFile InputKit ;
77 Depends InputKit :
78         # Servers
79         input_server
81         # Addons
82         <input>keyboard
83         <input>mouse
85         # Apps
86         keymap
88         # Preferences
89         Keymap
90         Keyboard
91         Mouse
94 # Pseudo-target to build the OpenGL kit only
95 NotFile OpenGLKit ;
96 Depends OpenGLKit :
97         libGL.so
98         GLTeapot
99 #       GLInfo
102 # Pseudo-target to build the screensaver kit only
103 NotFile ScreenSaverKit ;
104 Depends ScreenSaverKit :
105         libscreensaver.so
106         screen_saver
107         screen_blanker
108         ScreenSaver
109         Haiku
112 # Pseudo-target to build the locale kit only
113 # TODO: src/add-ons/locale/collators/GermanDIN-2.cpp does not compile
114 NotFile LocaleKit ;
115 Depends LocaleKit :
116         Locale
118         # binaries for building localized software on haiku
119         collectcatkeys
120         dumpcatalog
121         linkcatkeys
123         # addons
124         LocaleKitCollatorAddons
125         LocaleKitCatalogAddons
127         # tests
128         LocaleKitTests
131 # Add optional packages given via HAIKU_ADD_OPTIONAL_PACKAGES.
132 if $(HAIKU_ADD_OPTIONAL_PACKAGES) {
133         AddOptionalHaikuImagePackages
134                 [ FSplitString $(HAIKU_ADD_OPTIONAL_PACKAGES) : / ] ;
137 # Prepare the optional build features before parsing the Jamfile tree.
138 include [ FDirName $(HAIKU_BUILD_RULES_DIR) BuildFeatures ] ;
140 # Include packages that are required by all images.
141 AddOptionalHaikuImagePackages MandatoryPackages ;
143 # If enabled, make sure that OpenSSL is added to the image.
144 if $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) {
145         AddOptionalHaikuImagePackages OpenSSL ;
148 AddOptionalHaikuImagePackages ICU ;
150 # Evaluate optional package dependencies
151 include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalPackageDependencies ] ;
153 # Optionally we allow not to include the "src" subdirectory.
154 if $(HAIKU_DONT_INCLUDE_SRC) {
155         # Don't include "src", but at least include the stuff needed for the
156         # build.
157         SubInclude HAIKU_TOP src build ;
158         SubInclude HAIKU_TOP src tools ;
159 } else {
160         SubInclude HAIKU_TOP src ;
162 if $(HAIKU_INCLUDE_3RDPARTY) {
163         SubInclude HAIKU_TOP 3rdparty ;
166 # Perform deferred SubIncludes.
167 ExecuteDeferredSubIncludes ;
169 # reset subdir
170 SubDir HAIKU_TOP ;
172 # Execute post-build-target user config rules.
173 UserBuildConfigRulePostBuildTargets     ;
175 # specify the Haiku image and network boot archive contents
176 include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuImage ] ;
177 include [ FDirName $(HAIKU_BUILD_RULES_DIR) NetBootArchive ] ;
178 include [ FDirName $(HAIKU_BUILD_RULES_DIR) FloppyBootImage ] ;
179 include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootImage ] ;
180 include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootPPCImage ] ;
181 include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuCD ] ;
182 include [ FDirName $(HAIKU_BUILD_RULES_DIR) AnybootImage ] ;
184 # Check whether all requested optional packages do actually exist.
185 local package ;
186 local packageError ;
187 for package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) {
188         if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] {
189                 Echo "ERROR: Requested optional package \"$(package)\" does not"
190                         "exist." ;
191                 packageError = 1 ;
192         }
194 if $(packageError) {
195         Exit ;
198 # Pseudo-target to build all targets that are localized.
199 NotFile LocalizedTargets ;
200 Depends LocalizedTargets : $(HAIKU_LOCALIZED_TARGETS) ;
202 NotFile catalogs ;
203 Depends catalogs : $(HAIKU_LOCALE_CATALOGS) ;
205 NotFile catkeys ;
206 Depends catkeys : $(HAIKU_LOCALE_OUTPUT_CATKEYS) ;