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# Add optional packages given via HAIKU_ADD_OPTIONAL_PACKAGES. 132if $(HAIKU_ADD_OPTIONAL_PACKAGES) { 133 AddOptionalHaikuImagePackages 134 [ FSplitString $(HAIKU_ADD_OPTIONAL_PACKAGES) : / ] ; 135} 136 137# Prepare the optional build features before parsing the Jamfile tree. 138include [ FDirName $(HAIKU_BUILD_RULES_DIR) BuildFeatures ] ; 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_BUILD_FEATURE_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 176if $(TARGET_ARCH) = x86_64 { 177 include [ FDirName $(HAIKU_BUILD_RULES_DIR) Haiku64Image ] ; 178} else { 179 include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuImage ] ; 180} 181include [ FDirName $(HAIKU_BUILD_RULES_DIR) NetBootArchive ] ; 182include [ FDirName $(HAIKU_BUILD_RULES_DIR) FloppyBootImage ] ; 183include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootImage ] ; 184include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootPPCImage ] ; 185include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuCD ] ; 186include [ FDirName $(HAIKU_BUILD_RULES_DIR) AnybootImage ] ; 187 188# Check whether all requested optional packages do actually exist. 189local package ; 190local packageError ; 191for package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) { 192 if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] { 193 Echo "ERROR: Requested optional package \"$(package)\" does not" 194 "exist." ; 195 packageError = 1 ; 196 } 197} 198if $(packageError) { 199 Exit ; 200} 201 202# Pseudo-target to build all targets that are localized. 203NotFile LocalizedTargets ; 204Depends LocalizedTargets : $(HAIKU_LOCALIZED_TARGETS) ; 205 206NotFile catalogs ; 207Depends catalogs : $(HAIKU_LOCALE_CATALOGS) ; 208 209NotFile catkeys ; 210Depends catkeys : $(HAIKU_LOCALE_OUTPUT_CATKEYS) ; 211