haiku/build/jam/OptionalPackages
2017-10-29 13:22:34 +01:00

274 lines
9.3 KiB
Plaintext

# This file defines the optional packages that can be added to the Haiku image.
# It is directly included from HaikuImage -- all variables defined there can
# be used.
# Available Optional Packages:
# BeOSCompatibility - creates links within the system to support old apps
# Bluetooth - experimental Haiku components for Bluetooth
# Development - more complete dev environment (including autotools)
# DevelopmentBase - basic development environment (gcc, headers, libs,...)
# DevelopmentMin - development headers, libs, tools, from sources only
# FFMpeg - audio/video library
# FFMpeg-devel - FFMpeg development files
# Git - the distributed version control system
# WebPositive - native, WebKit-based web browser
# Welcome - introductory documentation to Haiku
# WifiFirmwareScriptData - data files needed by install-wifi-firmwares.sh
# dependencies between optional packages
OptionalPackageDependencies Development : DevelopmentBase ;
OptionalPackageDependencies DevelopmentBase : DevelopmentMin ;
OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ;
OptionalPackageDependencies NetFS : UserlandFS ;
local baseURL = http://haiku-files.org/files/optional-packages ;
# BeBook
if [ IsOptionalHaikuImagePackageAdded BeBook ] {
AddHaikuImagePackages be_book ;
AddSymlinkToHaikuImage home Desktop
: /boot/system/documentation/BeBook/index.html
: BeBook ;
}
# BeOSCompatibility
if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package BeOSCompatibility available for"
"$(TARGET_ARCH)" ;
} else if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) >= 4 {
Echo "No optional package BeOSCompatibility available for gcc4" ;
} else {
Echo "Warning: Adding BeOS compatibility symlinks. This will go away."
"Please fix your apps!" ;
AddSymlinkToHaikuImage beos : ../system/apps ;
AddSymlinkToHaikuImage beos : ../system/bin ;
AddSymlinkToHaikuImage beos
: ../system/documentation ;
AddSymlinkToHaikuImage beos : ../system/settings/etc ;
AddSymlinkToHaikuImage beos : ../system/preferences ;
AddSymlinkToHaikuImage beos : ../system ;
AddDirectoryToHaikuImage var ;
AddSymlinkToHaikuImage var : /boot/system/var/log ;
AddSymlinkToHaikuImage var : /boot/system/cache/tmp ;
}
}
# Bluetooth stack
if [ IsOptionalHaikuImagePackageAdded Bluetooth ] {
# TODO: Make this an actual package!
# local bluetoothDrivers = h2generic ;
# AddDriversToHaikuImage bluetooth : $(bluetoothDrivers) ;
# AddFilesToHaikuImage system servers : bluetooth_server ;
# AddFilesToHaikuImage system lib : libbluetooth.so ;
# AddFilesToHaikuImage
# system add-ons kernel network protocols : l2cap ;
# AddFilesToHaikuImage system add-ons kernel bluetooth
# : btCoreData hci ;
# AddFilesToHaikuImage system preferences : Bluetooth ;
# AddFilesToHaikuImage system bin : bt_dev_info bt_discovery ;
# AddSymlinkToHaikuImage home config settings deskbar menu Preferences
# : /boot/system/preferences/Bluetooth ;
# if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ]
# && $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) in 2 4 {
# local arch = $(TARGET_ARCH) ;
# local abi = gcc$(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ;
# AddSymlinkToHaikuImage system develop lib
# : /system/lib libbluetooth.so ;
# }
}
# Development
if [ IsOptionalHaikuImagePackageAdded Development ] {
# auto tools and perl
AddHaikuImagePackages autoconf automake libtool perl texinfo ;
# some other build tools
AddHaikuImagePackages pkgconfig scons ;
# devel packages for mandatory packages
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
AddHaikuImagePackages curl_devel ffmpeg_devel fontconfig_devel
freetype_devel glu_devel jpeg_devel libpng16_devel zlib_devel ;
}
}
}
# DevelopmentBase
if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ] {
# gcc and binutils (for all target architectures)
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
AddHaikuImagePackages binutils gcc ;
}
}
# other commonly used tools
AddHaikuImagePackages bison cdrtools flex jam m4 make mkdepend nasm patch ;
}
# DevelopmentMin
if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ]
&& ( $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 ) {
AddPackageFilesToHaikuImage system
:
haiku_devel.hpkg
haiku_$(TARGET_PACKAGING_ARCHS[2-])_devel.hpkg
makefile_engine.hpkg
:
nameFromMetaInfo
;
}
# FFmpeg
if [ IsOptionalHaikuImagePackageAdded FFMpeg ] {
local packages = ffmpeg speex libtheora libvorbis libogg libvpx3 ;
AddHaikuImagePackages $(packages) ;
}
# FFmpeg-devel
if [ IsOptionalHaikuImagePackageAdded FFMpeg-devel ] {
local packages = ffmpeg speex libtheora libvorbis libogg libvpx3 ;
AddHaikuImagePackages $(packages)_devel ;
}
# Git
if [ IsOptionalHaikuImagePackageAdded Git ] {
AddHaikuImagePackages git git_arch git_daemon git_email git_svn ;
# git_cvs depends on cvsps, which does not build with gcc2. So it is not
# available on gcc2-only builds.
if $(TARGET_PACKAGING_ARCHS) != x86_gcc2 {
AddHaikuImagePackages git_cvs ;
}
}
# WebPositive
if [ IsOptionalHaikuImagePackageAdded WebPositive ] {
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
if [ FIsBuildFeatureEnabled webpositive ] {
AddPackageFilesToHaikuImage system : webpositive.hpkg
: nameFromMetaInfo ;
InstallOptionalHaikuImagePackage
$(baseURL)/WebPositiveBookmarks-2017-01-08.zip
: home config settings WebPositive ;
break ;
}
}
}
}
# Welcome
if [ IsOptionalHaikuImagePackageAdded Welcome ] {
AddPackageFilesToHaikuImage system : haiku_userguide_ca.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_de.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_en.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_es.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_fi.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_fr.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_hu.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_it.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_jp.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_pl.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_pt_BR.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_pt_PT.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_ru.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_sk.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_sv_SE.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_uk.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_userguide_zh_CN.hpkg
: nameFromMetaInfo ;
AddPackageFilesToHaikuImage system : haiku_welcome.hpkg : nameFromMetaInfo ;
AddSymlinkToHaikuImage home Desktop : /boot/system/bin/welcome
: Welcome ;
AddSymlinkToHaikuImage home Desktop : /boot/system/bin/userguide
: User\ Guide ;
}
# WifiFirmwareScriptData
# This optional package is for people who build their own images & have wifi
# hardware that requires install-wifi-firmwares.sh & have no active network
# connection. This is not to be added to default images.
if [ IsOptionalHaikuImagePackageAdded WifiFirmwareScriptData ] {
# TODO: Make this an actual package!
# if $(TARGET_ARCH) != x86 {
# Echo "No optional package WifiFirmwareScriptData available for"
# $(TARGET_ARCH) ;
# } else {
# # broadcom43xx
# # firmware cutter
# local broadcomFWCutterArchive = b43-fwcutter-012.tar.bz2 ;
# local broadcomFWCutterURL =
# http://www.haiku-files.org/files/wifi-firmwares/b43/fwcutter/$(broadcomFWCutterArchive) ;
# local broadcomFWCutterFile = [ DownloadFile $(broadcomFWCutterArchive)
# : $(broadcomFWCutterURL) ] ;
# AddFilesToHaikuImage
# system data firmware broadcom43xx b43-fwcutter
# : $(broadcomFWCutterFile) ;
#
# # headers needed to compile firmware cutter
# local glibcDir = [ FDirName
# $(HAIKU_TOP) src system libroot posix glibc ] ;
# local byteswapHeader = [ FDirName $(glibcDir) string byteswap.h ] ;
# AddFilesToHaikuImage
# system data firmware broadcom43xx b43-fwcutter
# : $(byteswapHeader) ;
# local bitByteswapHeader = [ FDirName
# $(glibcDir) include arch x86 bits byteswap.h ] ;
# AddFilesToHaikuImage
# system data firmware broadcom43xx b43-fwcutter bits
# : $(bitByteswapHeader) ;
#
# # file containing firmware
# local broadcom43xxFile ;
# broadcom43xxFile = [ DownloadFile wl_apsta-3.130.20.0.o
# : http://www.haiku-files.org/files/wifi-firmwares/b43/wl_apsta-3.130.20.0.o ] ;
# AddFilesToHaikuImage system data firmware broadcom43xx
# : $(broadcom43xxFile) ;
#
# # marvell88w8335
# local marvellArchive = malo-firmware-1.4.tgz ;
# local marvellURL = http://www.haiku-files.org/files/wifi-firmwares/marvell/$(marvellArchive) ;
# local marvellFile = [ DownloadFile $(marvellArchive) : $(marvellURL) ] ;
# AddFilesToHaikuImage system data firmware marvell88w8335
# : $(marvellFile) ;
# }
}