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 : system ; 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 : ../common/settings/etc ; 59 AddSymlinkToHaikuImage beos : ../system/preferences ; 60 AddSymlinkToHaikuImage beos : ../system ; 61 AddDirectoryToHaikuImage var ; 62 AddSymlinkToHaikuImage var : /boot/common/var/log ; 63 AddSymlinkToHaikuImage var : /boot/common/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 ffmpeg_devel freetype_devel glu_devel 106 jpeg_devel libpng_devel zlib_devel : system ; 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 ; 149 AddPackageFilesToHaikuImage common : makefile_engine.hpkg ; 150} 151 152 153# DevelopmentPowerPC 154if [ IsOptionalHaikuImagePackageAdded DevelopmentPowerPC ] { 155# TODO: Build actual packages! 156# InstallOptionalHaikuImagePackage 157# $(baseURL)/gcc-ppc-4.6.2-x86-gcc4-2012-03-17.zip ; 158# InstallOptionalHaikuImagePackage 159# $(baseURL)/haiku-devlibs-ppc-gcc4-2012-03-18.zip ; 160} 161 162 163# FFMpeg 164if [ IsOptionalHaikuImagePackageAdded FFMpeg ] { 165 local packages = ffmpeg speex libtheora libvorbis libogg libvpx ; 166 AddHaikuImagePackages $(packages) ; 167} 168 169 170# FFMpeg-devel 171if [ IsOptionalHaikuImagePackageAdded FFMpeg-devel ] { 172 local packages = ffmpeg speex libtheora libvorbis libogg libvpx ; 173 AddHaikuImagePackages $(packages)_devel ; 174} 175 176 177# Git 178if [ IsOptionalHaikuImagePackageAdded Git ] { 179 AddHaikuImagePackages git git_arch git_cvs git_daemon git_email git_svn ; 180} 181 182 183# NetFS network file system 184if [ IsOptionalHaikuImagePackageAdded NetFS ] { 185# TODO: Make this an actual package! 186# # userlandfs module 187# AddFilesToHaikuImage home config add-ons userlandfs 188# : netfs ; 189# 190# # servers 191# AddFilesToHaikuImage system servers : netfs_server ; 192# AddFilesToHaikuImage system servers 193# : authentication_server ; 194# 195# # tools 196# AddFilesToHaikuImage system bin : netfs_config ; 197# AddFilesToHaikuImage system bin : netfs_server_prefs ; 198# 199# #example settings for netfs_server 200# local netfsServerSettingsFiles = <driver-settings>netfs-server ; 201# SEARCH on $(netfsServerSettingsFiles) 202# = [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems netfs ] ; 203# AddFilesToHaikuImage home config settings kernel drivers 204# : $(netfsServerSettingsFiles) ; 205# 206# #userlandfs settings are needed for netfs_config to work (ioctls) 207# local userlandfsServerSettingsFiles = <driver-settings>userlandfs ; 208# SEARCH on $(userlandfsServerSettingsFiles) 209# = [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems userlandfs ] ; 210# AddFilesToHaikuImage home config settings kernel drivers 211# : $(userlandfsServerSettingsFiles) ; 212} 213 214 215# UserlandFS 216if [ IsOptionalHaikuImagePackageAdded UserlandFS ] { 217# TODO: Make this an actual package! 218# local arch = $(TARGET_ARCH) ; 219# local abi = gcc$(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ; 220# 221# # kernel module 222# AddFilesToHaikuImage system add-ons kernel file_systems 223# : userlandfs ; 224# 225# # server 226# AddFilesToHaikuImage system servers : userlandfs_server ; 227# 228# # libs 229# local userlandfsLibs = 230# libuserlandfs_beos_kernel.so 231# libuserlandfs_haiku_kernel.so 232# libuserlandfs_fuse.so 233# ; 234# AddFilesToHaikuImage system lib : $(userlandfsLibs) ; 235# 236# # development goodies 237# if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] { 238# if ! ( $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) in 2 4 ) { 239# Exit "Optional package UserlandFS: Unsupported GCC version:" 240# $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ; 241# } 242# 243# # library symlinks 244# local lib ; 245# for lib in $(userlandfsLibs) { 246# AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib 247# : /system/lib/$(lib:BS) ; 248# } 249# 250# # FUSE headers 251# local fuseHeaders = 252# fuse_common_compat.h 253# fuse_common.h 254# fuse_compat.h 255# fuse.h 256# fuse_lowlevel_compat.h 257# fuse_lowlevel.h 258# fuse_opt.h 259# ; 260# fuseHeaders = $(fuseHeaders:G=userlandfs!fuse) ; 261# SEARCH on $(fuseHeaders) 262# = [ FDirName $(HAIKU_TOP) headers private userlandfs fuse ] ; 263# AddFilesToHaikuImage develop headers userlandfs fuse : $(fuseHeaders) ; 264# } 265} 266 267 268# WebPositive 269if [ IsOptionalHaikuImagePackageAdded WebPositive ] { 270 local architectureObject ; 271 for architectureObject in [ MultiArchSubDirSetup ] { 272 on $(architectureObject) { 273 if [ FIsBuildFeatureEnabled webpositive ] { 274 AddPackageFilesToHaikuImage system : webpositive.hpkg ; 275 InstallOptionalHaikuImagePackage 276 $(baseURL)/WebPositiveBookmarks-2012-02-18.zip 277 : home config settings WebPositive ; 278 break ; 279 } 280 } 281 } 282} 283 284 285# Welcome 286if [ IsOptionalHaikuImagePackageAdded Welcome ] { 287 AddPackageFilesToHaikuImage system : haiku_userguide.hpkg ; 288 AddPackageFilesToHaikuImage system : haiku_welcome.hpkg ; 289 290 AddSymlinkToHaikuImage home Desktop : /boot/system/bin/welcome 291 : Welcome ; 292 AddSymlinkToHaikuImage home Desktop : /boot/system/bin/userguide 293 : User\ Guide ; 294} 295 296 297# WifiFirmwareScriptData 298# This optional package is for people who build their own images & have wifi 299# hardware that requires install-wifi-firmwares.sh & have no active network 300# connection. This is not to be added to default images. 301if [ IsOptionalHaikuImagePackageAdded WifiFirmwareScriptData ] { 302# TODO: Make this an actual package! 303# if $(TARGET_ARCH) != x86 { 304# Echo "No optional package WifiFirmwareScriptData available for" 305# $(TARGET_ARCH) ; 306# } else { 307# # broadcom43xx 308# # firmware cutter 309# local broadcomFWCutterArchive = b43-fwcutter-012.tar.bz2 ; 310# local broadcomFWCutterURL = 311# http://www.haiku-files.org/files/wifi-firmwares/b43/fwcutter/$(broadcomFWCutterArchive) ; 312# local broadcomFWCutterFile = [ DownloadFile $(broadcomFWCutterArchive) 313# : $(broadcomFWCutterURL) ] ; 314# AddFilesToHaikuImage 315# system data firmware broadcom43xx b43-fwcutter 316# : $(broadcomFWCutterFile) ; 317# 318# # headers needed to compile firmware cutter 319# local glibcDir = [ FDirName 320# $(HAIKU_TOP) src system libroot posix glibc ] ; 321# local byteswapHeader = [ FDirName $(glibcDir) string byteswap.h ] ; 322# AddFilesToHaikuImage 323# system data firmware broadcom43xx b43-fwcutter 324# : $(byteswapHeader) ; 325# local bitByteswapHeader = [ FDirName 326# $(glibcDir) include arch x86 bits byteswap.h ] ; 327# AddFilesToHaikuImage 328# system data firmware broadcom43xx b43-fwcutter bits 329# : $(bitByteswapHeader) ; 330# 331# # file containing firmware 332# local broadcom43xxFile ; 333# broadcom43xxFile = [ DownloadFile wl_apsta-3.130.20.0.o 334# : http://www.haiku-files.org/files/wifi-firmwares/b43/wl_apsta-3.130.20.0.o ] ; 335# AddFilesToHaikuImage system data firmware broadcom43xx 336# : $(broadcom43xxFile) ; 337# 338# # marvell88w8335 339# local marvellArchive = malo-firmware-1.4.tgz ; 340# local marvellURL = http://www.haiku-files.org/files/wifi-firmwares/marvell/$(marvellArchive) ; 341# local marvellFile = [ DownloadFile $(marvellArchive) : $(marvellURL) ] ; 342# AddFilesToHaikuImage system data firmware marvell88w8335 343# : $(marvellFile) ; 344# } 345} 346