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