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 Locale 117 118 # binaries for building localized software on haiku 119 collectcatkeys 120 dumpcatalog 121 linkcatkeys 122 123 # addons 124 LocaleKitCollatorAddons 125 LocaleKitCatalogAddons 126 127 # tests 128 LocaleKitTests 129; 130 131# Prepare the optional build features before parsing the Jamfile tree. 132include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalBuildFeatures ] ; 133 134# Add optional packages given via HAIKU_ADD_OPTIONAL_PACKAGES. 135if $(HAIKU_ADD_OPTIONAL_PACKAGES) { 136 AddOptionalHaikuImagePackages 137 [ FSplitString $(HAIKU_ADD_OPTIONAL_PACKAGES) : / ] ; 138} 139 140# Include packages that are required by all images. 141AddOptionalHaikuImagePackages MandatoryPackages ; 142 143# If enabled, make sure that OpenSSL is added to the image. 144if $(HAIKU_OPENSSL_ENABLED) { 145 AddOptionalHaikuImagePackages OpenSSL ; 146} 147 148AddOptionalHaikuImagePackages ICU ; 149 150# Evaluate optional package dependencies 151include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalPackageDependencies ] ; 152 153# Optionally we allow not to include the "src" subdirectory. 154if $(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 ; 161} 162if $(HAIKU_INCLUDE_3RDPARTY) { 163 SubInclude HAIKU_TOP 3rdparty ; 164} 165 166# Perform deferred SubIncludes. 167ExecuteDeferredSubIncludes ; 168 169# reset subdir 170SubDir HAIKU_TOP ; 171 172# Execute post-build-target user config rules. 173UserBuildConfigRulePostBuildTargets ; 174 175# specify the Haiku image and network boot archive contents 176include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuImage ] ; 177include [ FDirName $(HAIKU_BUILD_RULES_DIR) NetBootArchive ] ; 178include [ FDirName $(HAIKU_BUILD_RULES_DIR) FloppyBootImage ] ; 179include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootImage ] ; 180include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootPPCImage ] ; 181include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuCD ] ; 182include [ FDirName $(HAIKU_BUILD_RULES_DIR) AnybootImage ] ; 183 184# Check whether all requested optional packages do actually exist. 185local package ; 186local packageError ; 187for 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 } 193} 194if $(packageError) { 195 Exit ; 196} 197 198# Pseudo-target to build all targets that are localized. 199NotFile LocalizedTargets ; 200Depends LocalizedTargets : $(HAIKU_LOCALIZED_TARGETS) ; 201 202NotFile catalogs ; 203Depends catalogs : $(HAIKU_LOCALE_CATALOGS) ; 204 205NotFile catkeys ; 206Depends catkeys : $(HAIKU_LOCALE_OUTPUT_CATKEYS) ; 207