RepositoryRules: RepositoryConfig does not need/use URL now.
[haiku.git] / build / jam / OptionalPackages
blobbbd6371898a3480154aeb8f629734f9f32fb4457
1 # This file defines the optional packages that can be added to the Haiku image.
2 # It is directly included from HaikuImage -- all variables defined there can
3 # be used.
5 # Available Optional Packages:
6 #       BeOSCompatibility               - creates links within the system to support old apps
7 #       Bluetooth                               - experimental Haiku components for Bluetooth
8 #       Development                             - more complete dev environment (including autotools)
9 #       DevelopmentBase                 - basic development environment (gcc, headers, libs,...)
10 #       DevelopmentMin                  - development headers, libs, tools, from sources only
11 #       FFMpeg                                  - audio/video library
12 #       FFMpeg-devel                    - FFMpeg development files
13 #       Git                                             - the distributed version control system
14 #       WebPositive                             - native, WebKit-based web browser
15 #       Welcome                                 - introductory documentation to Haiku
16 #       WifiFirmwareScriptData  - data files needed by install-wifi-firmwares.sh
19 # dependencies between optional packages
20 OptionalPackageDependencies Development : DevelopmentBase ;
21 OptionalPackageDependencies DevelopmentBase : DevelopmentMin ;
22 OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ;
23 OptionalPackageDependencies NetFS : UserlandFS ;
26 local baseURL = http://haiku-files.org/files/optional-packages ;
29 # BeBook
30 if [ IsOptionalHaikuImagePackageAdded BeBook ] {
31         AddHaikuImagePackages be_book ;
32         AddSymlinkToHaikuImage home Desktop
33                 : /boot/system/documentation/BeBook/index.html
34                 : BeBook ;
38 # BeOSCompatibility
39 if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] {
40         if $(TARGET_ARCH) != x86 {
41                 Echo "No optional package BeOSCompatibility available for"
42                         "$(TARGET_ARCH)" ;
43         } else if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) >= 4 {
44                 Echo "No optional package BeOSCompatibility available for gcc4" ;
45         } else {
46                 Echo "Warning: Adding BeOS compatibility symlinks. This will go away."
47                         "Please fix your apps!" ;
48                 AddSymlinkToHaikuImage beos : ../system/apps ;
49                 AddSymlinkToHaikuImage beos : ../system/bin ;
50                 AddSymlinkToHaikuImage beos
51                         : ../system/documentation ;
52                 AddSymlinkToHaikuImage beos : ../system/settings/etc ;
53                 AddSymlinkToHaikuImage beos : ../system/preferences ;
54                 AddSymlinkToHaikuImage beos : ../system ;
55                 AddDirectoryToHaikuImage var ;
56                 AddSymlinkToHaikuImage var : /boot/system/var/log ;
57                 AddSymlinkToHaikuImage var : /boot/system/cache/tmp ;
58         }
62 # Bluetooth stack
63 if [ IsOptionalHaikuImagePackageAdded Bluetooth ] {
64 # TODO: Make this an actual package!
65 #       local bluetoothDrivers = h2generic ;
66 #       AddDriversToHaikuImage bluetooth : $(bluetoothDrivers) ;
67 #       AddFilesToHaikuImage system servers : bluetooth_server ;
68 #       AddFilesToHaikuImage system lib : libbluetooth.so ;
69 #       AddFilesToHaikuImage
70 #               system add-ons kernel network protocols : l2cap ;
71 #       AddFilesToHaikuImage system add-ons kernel bluetooth
72 #               : btCoreData hci ;
73 #       AddFilesToHaikuImage system preferences : Bluetooth ;
74 #       AddFilesToHaikuImage system bin : bt_dev_info bt_discovery ;
75 #       AddSymlinkToHaikuImage home config settings deskbar menu Preferences
76 #               : /boot/system/preferences/Bluetooth ;
77 #       if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ]
78 #               && $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) in 2 4 {
79 #               local arch = $(TARGET_ARCH) ;
80 #               local abi = gcc$(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ;
81 #               AddSymlinkToHaikuImage system develop lib
82 #                       : /system/lib libbluetooth.so ;
83 #       }
87 # Development
88 if [ IsOptionalHaikuImagePackageAdded Development ] {
89         # auto tools and perl
90         AddHaikuImagePackages autoconf automake perl texinfo ;
92         # some other build tools
93         AddHaikuImagePackages pkgconfig scons ;
95         # devel packages for mandatory packages
96         local architectureObject ;
97         for architectureObject in [ MultiArchSubDirSetup ] {
98                 on $(architectureObject) {
99                         AddHaikuImagePackages curl_devel ffmpeg_devel fontconfig_devel
100                                 freetype_devel glu_devel jpeg_devel libpng16_devel zlib_devel ;
101                 }
102         }
106 # DevelopmentBase
107 if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ] {
108         # gcc and binutils (for all target architectures)
109         local architectureObject ;
110         for architectureObject in [ MultiArchSubDirSetup ] {
111                 on $(architectureObject) {
112                         AddHaikuImagePackages binutils gcc ;
113                 }
114         }
116         # other commonly used tools
117         AddHaikuImagePackages bison cdrtools flex jam m4 make mkdepend nasm patch ;
121 # DevelopmentMin
122 if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ]
123                 && ( $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 ) {
124         AddPackageFilesToHaikuImage system
125                 :
126                 haiku_devel.hpkg
127                 haiku_$(TARGET_PACKAGING_ARCHS[2-])_devel.hpkg
128                 makefile_engine.hpkg
129                 :
130                 nameFromMetaInfo
131                 ;
135 # FFmpeg
136 if [ IsOptionalHaikuImagePackageAdded FFMpeg ] {
137         local packages = ffmpeg speex libtheora libvorbis libogg libvpx3 ;
138         AddHaikuImagePackages $(packages) ;
142 # FFmpeg-devel
143 if [ IsOptionalHaikuImagePackageAdded FFMpeg-devel ] {
144         local packages = ffmpeg speex libtheora libvorbis libogg libvpx3 ;
145         AddHaikuImagePackages $(packages)_devel ;
149 # Git
150 if [ IsOptionalHaikuImagePackageAdded Git ] {
151         AddHaikuImagePackages git git_arch git_daemon git_email git_svn ;
155 # WebPositive
156 if [ IsOptionalHaikuImagePackageAdded WebPositive ] {
157         local architectureObject ;
158         for architectureObject in [ MultiArchSubDirSetup ] {
159                 on $(architectureObject) {
160                         if [ FIsBuildFeatureEnabled webpositive ] {
161                                 AddPackageFilesToHaikuImage system : webpositive.hpkg
162                                         : nameFromMetaInfo ;
163                                 InstallOptionalHaikuImagePackage
164                                         $(baseURL)/WebPositiveBookmarks-2017-01-08.zip
165                                         : home config settings WebPositive ;
166                                 break ;
167                         }
168                 }
169         }
173 # Welcome
174 if [ IsOptionalHaikuImagePackageAdded Welcome ] {
175         AddPackageFilesToHaikuImage system : haiku_userguide_ca.hpkg
176                 : nameFromMetaInfo ;
177         AddPackageFilesToHaikuImage system : haiku_userguide_de.hpkg
178                 : nameFromMetaInfo ;
179         AddPackageFilesToHaikuImage system : haiku_userguide_en.hpkg
180                 : nameFromMetaInfo ;
181         AddPackageFilesToHaikuImage system : haiku_userguide_es.hpkg
182                 : nameFromMetaInfo ;
183         AddPackageFilesToHaikuImage system : haiku_userguide_fi.hpkg
184                 : nameFromMetaInfo ;
185         AddPackageFilesToHaikuImage system : haiku_userguide_fr.hpkg
186                 : nameFromMetaInfo ;
187         AddPackageFilesToHaikuImage system : haiku_userguide_hu.hpkg
188                 : nameFromMetaInfo ;
189         AddPackageFilesToHaikuImage system : haiku_userguide_it.hpkg
190                 : nameFromMetaInfo ;
191         AddPackageFilesToHaikuImage system : haiku_userguide_jp.hpkg
192                 : nameFromMetaInfo ;
193         AddPackageFilesToHaikuImage system : haiku_userguide_pl.hpkg
194                 : nameFromMetaInfo ;
195         AddPackageFilesToHaikuImage system : haiku_userguide_pt_BR.hpkg
196                 : nameFromMetaInfo ;
197         AddPackageFilesToHaikuImage system : haiku_userguide_pt_PT.hpkg
198                 : nameFromMetaInfo ;
199         AddPackageFilesToHaikuImage system : haiku_userguide_ru.hpkg
200                 : nameFromMetaInfo ;
201         AddPackageFilesToHaikuImage system : haiku_userguide_sk.hpkg
202                 : nameFromMetaInfo ;
203         AddPackageFilesToHaikuImage system : haiku_userguide_sv_SE.hpkg
204                 : nameFromMetaInfo ;
205         AddPackageFilesToHaikuImage system : haiku_userguide_uk.hpkg
206                 : nameFromMetaInfo ;
207         AddPackageFilesToHaikuImage system : haiku_userguide_zh_CN.hpkg
208                 : nameFromMetaInfo ;
210         AddPackageFilesToHaikuImage system : haiku_welcome.hpkg : nameFromMetaInfo ;
212         AddSymlinkToHaikuImage home Desktop     : /boot/system/bin/welcome
213                 : Welcome ;
214         AddSymlinkToHaikuImage home Desktop     : /boot/system/bin/userguide
215                 : User\ Guide ;
219 # WifiFirmwareScriptData
220 # This optional package is for people who build their own images & have wifi
221 # hardware that requires install-wifi-firmwares.sh & have no active network
222 # connection. This is not to be added to default images.
223 if [ IsOptionalHaikuImagePackageAdded WifiFirmwareScriptData ] {
224 # TODO: Make this an actual package!
225 #       if $(TARGET_ARCH) != x86 {
226 #               Echo "No optional package WifiFirmwareScriptData available for"
227 #                       $(TARGET_ARCH) ;
228 #       } else {
229 #               # broadcom43xx
230 #               # firmware cutter
231 #               local broadcomFWCutterArchive = b43-fwcutter-012.tar.bz2 ;
232 #               local broadcomFWCutterURL =
233 #                       http://www.haiku-files.org/files/wifi-firmwares/b43/fwcutter/$(broadcomFWCutterArchive) ;
234 #               local broadcomFWCutterFile = [ DownloadFile $(broadcomFWCutterArchive)
235 #                       : $(broadcomFWCutterURL) ] ;
236 #               AddFilesToHaikuImage
237 #                       system data firmware broadcom43xx b43-fwcutter
238 #                       : $(broadcomFWCutterFile) ;
240 #               # headers needed to compile firmware cutter
241 #               local glibcDir = [ FDirName
242 #                       $(HAIKU_TOP) src system libroot posix glibc ] ;
243 #               local byteswapHeader = [ FDirName $(glibcDir) string byteswap.h ] ;
244 #               AddFilesToHaikuImage
245 #                       system data firmware broadcom43xx b43-fwcutter
246 #                       : $(byteswapHeader) ;
247 #               local bitByteswapHeader = [ FDirName
248 #                       $(glibcDir) include arch x86 bits byteswap.h ] ;
249 #               AddFilesToHaikuImage
250 #                       system data firmware broadcom43xx b43-fwcutter bits
251 #                       : $(bitByteswapHeader) ;
253 #               # file containing firmware
254 #               local broadcom43xxFile ;
255 #               broadcom43xxFile = [ DownloadFile wl_apsta-3.130.20.0.o
256 #                       : http://www.haiku-files.org/files/wifi-firmwares/b43/wl_apsta-3.130.20.0.o ] ;
257 #               AddFilesToHaikuImage system data firmware broadcom43xx
258 #                       : $(broadcom43xxFile) ;
260 #               # marvell88w8335
261 #               local marvellArchive = malo-firmware-1.4.tgz ;
262 #               local marvellURL = http://www.haiku-files.org/files/wifi-firmwares/marvell/$(marvellArchive) ;
263 #               local marvellFile = [ DownloadFile $(marvellArchive) : $(marvellURL) ] ;
264 #               AddFilesToHaikuImage system data firmware marvell88w8335
265 #                       : $(marvellFile) ;
266 #       }