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. 4 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# DevelopmentJava - JamVM, a Java Virtual machine, GNU Classpath, ECJ 11# DevelopmentMin - development headers, libs, tools, from sources only 12# DevelopmentPowerPC - Cross compiling environment for PowerPC 13# FFMpeg - audio/video library 14# FFMpeg-devel - FFMpeg development files 15# Git - the distributed version control system 16# NetFS - the native networked file system components 17# UserlandFS - aids native file system development (like FUSE) 18# WebPositive - native, WebKit-based web browser 19# Welcome - introductory documentation to Haiku 20# WifiFirmwareScriptData - data files needed by install-wifi-firmwares.sh 21 22 23# dependencies between optional packages 24OptionalPackageDependencies Development : DevelopmentBase ; 25OptionalPackageDependencies DevelopmentBase : DevelopmentMin ; 26OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ; 27OptionalPackageDependencies NetFS : UserlandFS ; 28 29 30local baseURL = http://haiku-files.org/files/optional-packages ; 31local hpkgBaseURL = http://haiku-files.org/files/hpkg ; 32local baseSourceURL = http://haiku-files.org/files/sources ; 33 34 35# BeBook 36if [ IsOptionalHaikuImagePackageAdded BeBook ] { 37 AddHaikuImagePackages be_book ; 38 AddSymlinkToHaikuImage home Desktop 39 : /boot/system/documentation/BeBook/index.html 40 : BeBook ; 41} 42 43 44# BeOSCompatibility 45if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] { 46 if $(TARGET_ARCH) != x86 { 47 Echo "No optional package BeOSCompatibility available for" 48 "$(TARGET_ARCH)" ; 49 } else if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) >= 4 { 50 Echo "No optional package BeOSCompatibility available for gcc4" ; 51 } else { 52 Echo "Warning: Adding BeOS compatibility symlinks. This will go away." 53 "Please fix your apps!" ; 54 AddSymlinkToHaikuImage beos : ../system/apps ; 55 AddSymlinkToHaikuImage beos : ../system/bin ; 56 AddSymlinkToHaikuImage beos 57 : ../system/documentation ; 58 AddSymlinkToHaikuImage beos : ../system/settings/etc ; 59 AddSymlinkToHaikuImage beos : ../system/preferences ; 60 AddSymlinkToHaikuImage beos : ../system ; 61 AddDirectoryToHaikuImage var ; 62 AddSymlinkToHaikuImage var : /boot/system/var/log ; 63 AddSymlinkToHaikuImage var : /boot/system/cache/tmp ; 64 } 65} 66 67 68# Bluetooth stack 69if [ IsOptionalHaikuImagePackageAdded Bluetooth ] { 70# TODO: Make this an actual package! 71# local bluetoothDrivers = h2generic ; 72# AddDriversToHaikuImage bluetooth : $(bluetoothDrivers) ; 73# AddFilesToHaikuImage system servers : bluetooth_server ; 74# AddFilesToHaikuImage system lib : libbluetooth.so ; 75# AddFilesToHaikuImage 76# system add-ons kernel network protocols : l2cap ; 77# AddFilesToHaikuImage system add-ons kernel bluetooth 78# : btCoreData hci ; 79# AddFilesToHaikuImage system preferences : Bluetooth ; 80# AddFilesToHaikuImage system bin : bt_dev_info bt_discovery ; 81# AddSymlinkToHaikuImage home config settings deskbar menu Preferences 82# : /boot/system/preferences/Bluetooth ; 83# if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] 84# && $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) in 2 4 { 85# local arch = $(TARGET_ARCH) ; 86# local abi = gcc$(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ; 87# AddSymlinkToHaikuImage system develop lib 88# : /system/lib libbluetooth.so ; 89# } 90} 91 92 93# Development 94if [ IsOptionalHaikuImagePackageAdded Development ] { 95 # auto tools and perl 96 AddHaikuImagePackages autoconf automake libtool perl texinfo ; 97 98 # some other build tools 99 AddHaikuImagePackages cmake pkgconfig scons ; 100 101 # devel packages for mandatory packages 102 local architectureObject ; 103 for architectureObject in [ MultiArchSubDirSetup ] { 104 on $(architectureObject) { 105 AddHaikuImagePackages curl_devel ffmpeg_devel freetype_devel 106 glu_devel jpeg_devel libpng_devel zlib_devel ; 107 } 108 } 109} 110 111 112# DevelopmentBase 113if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ] { 114 # gcc and binutils (for all target architectures) 115 local architectureObject ; 116 for architectureObject in [ MultiArchSubDirSetup ] { 117 on $(architectureObject) { 118 AddHaikuImagePackages binutils gcc ; 119 } 120 } 121 122 # other commonly used tools 123 AddHaikuImagePackages bison cdrtools flex jam m4 make mkdepend yasm ; 124} 125 126 127# DevelopmentJava 128if [ IsOptionalHaikuImagePackageAdded DevelopmentJava ] { 129# TODO: Build actual packages! 130# InstallOptionalHaikuImagePackage 131# $(baseURL)/gnu-classpath-0.98-r1a3-x86-gcc4-2011-06-08.zip ; 132# InstallOptionalHaikuImagePackage 133# $(baseURL)/jamvm-1.5.4-r1a3-x86-gcc4-2011-06-08.zip ; 134# AddSymlinkToHaikuImage common bin 135# : /boot/common/bin/jamvm : java ; 136# InstallOptionalHaikuImagePackage 137# $(baseURL)/ecj-3.6.2-haiku-2011-06-08.zip ; 138} 139 140 141# DevelopmentMin 142if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] 143 && ( $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 ) { 144 AddPackageFilesToHaikuImage system 145 : 146 haiku_devel.hpkg 147 haiku_$(TARGET_PACKAGING_ARCHS[2-])_devel.hpkg 148 makefile_engine.hpkg 149 : 150 nameFromMetaInfo 151 ; 152} 153 154 155# DevelopmentPowerPC 156if [ IsOptionalHaikuImagePackageAdded DevelopmentPowerPC ] { 157# TODO: Build actual packages! 158# InstallOptionalHaikuImagePackage 159# $(baseURL)/gcc-ppc-4.6.2-x86-gcc4-2012-03-17.zip ; 160# InstallOptionalHaikuImagePackage 161# $(baseURL)/haiku-devlibs-ppc-gcc4-2012-03-18.zip ; 162} 163 164 165# FFMpeg 166if [ IsOptionalHaikuImagePackageAdded FFMpeg ] { 167 local packages = ffmpeg speex libtheora libvorbis libogg libvpx ; 168 AddHaikuImagePackages $(packages) ; 169} 170 171 172# FFMpeg-devel 173if [ IsOptionalHaikuImagePackageAdded FFMpeg-devel ] { 174 local packages = ffmpeg speex libtheora libvorbis libogg libvpx ; 175 AddHaikuImagePackages $(packages)_devel ; 176} 177 178 179# Git 180if [ IsOptionalHaikuImagePackageAdded Git ] { 181 AddHaikuImagePackages git git_arch git_cvs git_daemon git_email git_svn ; 182} 183 184 185# NetFS network file system 186if [ IsOptionalHaikuImagePackageAdded NetFS ] { 187# TODO: Make this an actual package! 188# # userlandfs module 189# AddFilesToHaikuImage home config add-ons userlandfs 190# : netfs ; 191# 192# # servers 193# AddFilesToHaikuImage system servers : netfs_server ; 194# AddFilesToHaikuImage system servers 195# : authentication_server ; 196# 197# # tools 198# AddFilesToHaikuImage system bin : netfs_config ; 199# AddFilesToHaikuImage system bin : netfs_server_prefs ; 200# 201# #example settings for netfs_server 202# local netfsServerSettingsFiles = <driver-settings>netfs-server ; 203# SEARCH on $(netfsServerSettingsFiles) 204# = [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems netfs ] ; 205# AddFilesToHaikuImage home config settings kernel drivers 206# : $(netfsServerSettingsFiles) ; 207# 208# #userlandfs settings are needed for netfs_config to work (ioctls) 209# local userlandfsServerSettingsFiles = <driver-settings>userlandfs ; 210# SEARCH on $(userlandfsServerSettingsFiles) 211# = [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems userlandfs ] ; 212# AddFilesToHaikuImage home config settings kernel drivers 213# : $(userlandfsServerSettingsFiles) ; 214} 215 216 217# UserlandFS 218if [ IsOptionalHaikuImagePackageAdded UserlandFS ] { 219# TODO: Make this an actual package! 220# local arch = $(TARGET_ARCH) ; 221# local abi = gcc$(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ; 222# 223# # kernel module 224# AddFilesToHaikuImage system add-ons kernel file_systems 225# : userlandfs ; 226# 227# # server 228# AddFilesToHaikuImage system servers : userlandfs_server ; 229# 230# # libs 231# local userlandfsLibs = 232# libuserlandfs_beos_kernel.so 233# libuserlandfs_haiku_kernel.so 234# libuserlandfs_fuse.so 235# ; 236# AddFilesToHaikuImage system lib : $(userlandfsLibs) ; 237# 238# # development goodies 239# if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] { 240# if ! ( $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) in 2 4 ) { 241# Exit "Optional package UserlandFS: Unsupported GCC version:" 242# $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ; 243# } 244# 245# # library symlinks 246# local lib ; 247# for lib in $(userlandfsLibs) { 248# AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib 249# : /system/lib/$(lib:BS) ; 250# } 251# 252# # FUSE headers 253# local fuseHeaders = 254# fuse_common_compat.h 255# fuse_common.h 256# fuse_compat.h 257# fuse.h 258# fuse_lowlevel_compat.h 259# fuse_lowlevel.h 260# fuse_opt.h 261# ; 262# fuseHeaders = $(fuseHeaders:G=userlandfs!fuse) ; 263# SEARCH on $(fuseHeaders) 264# = [ FDirName $(HAIKU_TOP) headers private userlandfs fuse ] ; 265# AddFilesToHaikuImage develop headers userlandfs fuse : $(fuseHeaders) ; 266# } 267} 268 269 270# WebPositive 271if [ IsOptionalHaikuImagePackageAdded WebPositive ] { 272 local architectureObject ; 273 for architectureObject in [ MultiArchSubDirSetup ] { 274 on $(architectureObject) { 275 if [ FIsBuildFeatureEnabled webpositive ] { 276 AddPackageFilesToHaikuImage system : webpositive.hpkg 277 : nameFromMetaInfo ; 278 InstallOptionalHaikuImagePackage 279 $(baseURL)/WebPositiveBookmarks-2012-02-18.zip 280 : home config settings WebPositive ; 281 break ; 282 } 283 } 284 } 285} 286 287 288# Welcome 289if [ IsOptionalHaikuImagePackageAdded Welcome ] { 290 AddPackageFilesToHaikuImage system : haiku_userguide.hpkg 291 : nameFromMetaInfo ; 292 AddPackageFilesToHaikuImage system : haiku_welcome.hpkg : nameFromMetaInfo ; 293 294 AddSymlinkToHaikuImage home Desktop : /boot/system/bin/welcome 295 : Welcome ; 296 AddSymlinkToHaikuImage home Desktop : /boot/system/bin/userguide 297 : User\ Guide ; 298} 299 300 301# WifiFirmwareScriptData 302# This optional package is for people who build their own images & have wifi 303# hardware that requires install-wifi-firmwares.sh & have no active network 304# connection. This is not to be added to default images. 305if [ IsOptionalHaikuImagePackageAdded WifiFirmwareScriptData ] { 306# TODO: Make this an actual package! 307# if $(TARGET_ARCH) != x86 { 308# Echo "No optional package WifiFirmwareScriptData available for" 309# $(TARGET_ARCH) ; 310# } else { 311# # broadcom43xx 312# # firmware cutter 313# local broadcomFWCutterArchive = b43-fwcutter-012.tar.bz2 ; 314# local broadcomFWCutterURL = 315# http://www.haiku-files.org/files/wifi-firmwares/b43/fwcutter/$(broadcomFWCutterArchive) ; 316# local broadcomFWCutterFile = [ DownloadFile $(broadcomFWCutterArchive) 317# : $(broadcomFWCutterURL) ] ; 318# AddFilesToHaikuImage 319# system data firmware broadcom43xx b43-fwcutter 320# : $(broadcomFWCutterFile) ; 321# 322# # headers needed to compile firmware cutter 323# local glibcDir = [ FDirName 324# $(HAIKU_TOP) src system libroot posix glibc ] ; 325# local byteswapHeader = [ FDirName $(glibcDir) string byteswap.h ] ; 326# AddFilesToHaikuImage 327# system data firmware broadcom43xx b43-fwcutter 328# : $(byteswapHeader) ; 329# local bitByteswapHeader = [ FDirName 330# $(glibcDir) include arch x86 bits byteswap.h ] ; 331# AddFilesToHaikuImage 332# system data firmware broadcom43xx b43-fwcutter bits 333# : $(bitByteswapHeader) ; 334# 335# # file containing firmware 336# local broadcom43xxFile ; 337# broadcom43xxFile = [ DownloadFile wl_apsta-3.130.20.0.o 338# : http://www.haiku-files.org/files/wifi-firmwares/b43/wl_apsta-3.130.20.0.o ] ; 339# AddFilesToHaikuImage system data firmware broadcom43xx 340# : $(broadcom43xxFile) ; 341# 342# # marvell88w8335 343# local marvellArchive = malo-firmware-1.4.tgz ; 344# local marvellURL = http://www.haiku-files.org/files/wifi-firmwares/marvell/$(marvellArchive) ; 345# local marvellFile = [ DownloadFile $(marvellArchive) : $(marvellURL) ] ; 346# AddFilesToHaikuImage system data firmware marvell88w8335 347# : $(marvellFile) ; 348# } 349} 350