b0944c78b0
* All packaging architecture dependent variables do now have a respective suffix and are set up for each configured packaging architecture, save for the kernel and boot loader variables, which are still only set up for the primary architecture. For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++, and TARGET_LIBSTDC++ are set to the respective values for the primary packaging architecture by default. * Introduce a set of MultiArch* rules to help with building targets for multiple packaging architectures. Generally the respective targets are (additionally) gristed with the packaging architecture. For libraries the additional grist is usually omitted for the primary architecture (e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that Jamfiles for targets built only for the primary architecture don't need to be changed. * Add multi-arch build support for all targets needed for the stage 1 cross devel package as well as for libbe (untested).
343 lines
12 KiB
Plaintext
343 lines
12 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,...)
|
|
# DevelopmentJava - JamVM, a Java Virtual machine, GNU Classpath, ECJ
|
|
# DevelopmentMin - development headers, libs, tools, from sources only
|
|
# DevelopmentPowerPC - Cross compiling environment for PowerPC
|
|
# FFMpeg - audio/video library
|
|
# FFMpeg-devel - FFMpeg development files
|
|
# Git - the distributed version control system
|
|
# NetFS - the native networked file system components
|
|
# UserlandFS - aids native file system development (like FUSE)
|
|
# WebPositive - native, WebKit-based web browser
|
|
# WebPositiveBookmarks - bookmarks for WebPositive
|
|
# 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 ;
|
|
OptionalPackageDependencies WebPositive : WebPositiveBookmarks ;
|
|
|
|
|
|
local baseURL = http://haiku-files.org/files/optional-packages ;
|
|
local hpkgBaseURL = http://haiku-files.org/files/hpkg ;
|
|
local baseSourceURL = http://haiku-files.org/files/sources ;
|
|
|
|
|
|
# BeBook
|
|
if [ IsOptionalHaikuImagePackageAdded BeBook ] {
|
|
AddHaikuImagePackages be_book : system ;
|
|
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 : ../common/settings/etc ;
|
|
AddSymlinkToHaikuImage beos : ../system/preferences ;
|
|
AddSymlinkToHaikuImage beos : ../system ;
|
|
AddDirectoryToHaikuImage var ;
|
|
AddSymlinkToHaikuImage var : /boot/common/var/log ;
|
|
AddSymlinkToHaikuImage var : /boot/common/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 ;
|
|
|
|
# devel packages for mandatory packages
|
|
AddHaikuImagePackages ffmpeg_devel freetype_devel glu_devel jpeg_devel
|
|
libpng_devel zlib_devel : system ;
|
|
}
|
|
|
|
|
|
# DevelopmentBase
|
|
if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ] {
|
|
# gcc and binutils
|
|
AddHaikuImagePackages binutils gcc ;
|
|
|
|
# other commonly used tools
|
|
AddHaikuImagePackages bison cdrtools flex jam m4 make mkdepend yasm ;
|
|
}
|
|
|
|
|
|
# DevelopmentJava
|
|
if [ IsOptionalHaikuImagePackageAdded DevelopmentJava ] {
|
|
# TODO: Build actual packages!
|
|
# InstallOptionalHaikuImagePackage
|
|
# $(baseURL)/gnu-classpath-0.98-r1a3-x86-gcc4-2011-06-08.zip ;
|
|
# InstallOptionalHaikuImagePackage
|
|
# $(baseURL)/jamvm-1.5.4-r1a3-x86-gcc4-2011-06-08.zip ;
|
|
# AddSymlinkToHaikuImage common bin
|
|
# : /boot/common/bin/jamvm : java ;
|
|
# InstallOptionalHaikuImagePackage
|
|
# $(baseURL)/ecj-3.6.2-haiku-2011-06-08.zip ;
|
|
}
|
|
|
|
|
|
# DevelopmentMin
|
|
if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ]
|
|
&& ( $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 ) {
|
|
AddPackageFilesToHaikuImage system : haiku_devel.hpkg ;
|
|
AddPackageFilesToHaikuImage common : makefile_engine.hpkg ;
|
|
}
|
|
|
|
|
|
# DevelopmentPowerPC
|
|
if [ IsOptionalHaikuImagePackageAdded DevelopmentPowerPC ] {
|
|
# TODO: Build actual packages!
|
|
# InstallOptionalHaikuImagePackage
|
|
# $(baseURL)/gcc-ppc-4.6.2-x86-gcc4-2012-03-17.zip ;
|
|
# InstallOptionalHaikuImagePackage
|
|
# $(baseURL)/haiku-devlibs-ppc-gcc4-2012-03-18.zip ;
|
|
}
|
|
|
|
|
|
# FFMpeg
|
|
if [ IsOptionalHaikuImagePackageAdded FFMpeg ] {
|
|
local packages = ffmpeg speex libtheora libvorbis libogg libvpx ;
|
|
AddHaikuImagePackages $(packages) ;
|
|
}
|
|
|
|
|
|
# FFMpeg-devel
|
|
if [ IsOptionalHaikuImagePackageAdded FFMpeg-devel ] {
|
|
local packages = ffmpeg speex libtheora libvorbis libogg libvpx ;
|
|
AddHaikuImagePackages $(packages)_devel ;
|
|
}
|
|
|
|
|
|
# Git
|
|
if [ IsOptionalHaikuImagePackageAdded Git ] {
|
|
AddHaikuImagePackages git git_arch git_cvs git_daemon git_email git_svn ;
|
|
}
|
|
|
|
|
|
# NetFS network file system
|
|
if [ IsOptionalHaikuImagePackageAdded NetFS ] {
|
|
# TODO: Make this an actual package!
|
|
# # userlandfs module
|
|
# AddFilesToHaikuImage home config add-ons userlandfs
|
|
# : netfs ;
|
|
#
|
|
# # servers
|
|
# AddFilesToHaikuImage system servers : netfs_server ;
|
|
# AddFilesToHaikuImage system servers
|
|
# : authentication_server ;
|
|
#
|
|
# # tools
|
|
# AddFilesToHaikuImage system bin : netfs_config ;
|
|
# AddFilesToHaikuImage system bin : netfs_server_prefs ;
|
|
#
|
|
# #example settings for netfs_server
|
|
# local netfsServerSettingsFiles = <driver-settings>netfs-server ;
|
|
# SEARCH on $(netfsServerSettingsFiles)
|
|
# = [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems netfs ] ;
|
|
# AddFilesToHaikuImage home config settings kernel drivers
|
|
# : $(netfsServerSettingsFiles) ;
|
|
#
|
|
# #userlandfs settings are needed for netfs_config to work (ioctls)
|
|
# local userlandfsServerSettingsFiles = <driver-settings>userlandfs ;
|
|
# SEARCH on $(userlandfsServerSettingsFiles)
|
|
# = [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems userlandfs ] ;
|
|
# AddFilesToHaikuImage home config settings kernel drivers
|
|
# : $(userlandfsServerSettingsFiles) ;
|
|
}
|
|
|
|
|
|
# UserlandFS
|
|
if [ IsOptionalHaikuImagePackageAdded UserlandFS ] {
|
|
# TODO: Make this an actual package!
|
|
# local arch = $(TARGET_ARCH) ;
|
|
# local abi = gcc$(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ;
|
|
#
|
|
# # kernel module
|
|
# AddFilesToHaikuImage system add-ons kernel file_systems
|
|
# : userlandfs ;
|
|
#
|
|
# # server
|
|
# AddFilesToHaikuImage system servers : userlandfs_server ;
|
|
#
|
|
# # libs
|
|
# local userlandfsLibs =
|
|
# libuserlandfs_beos_kernel.so
|
|
# libuserlandfs_haiku_kernel.so
|
|
# libuserlandfs_fuse.so
|
|
# ;
|
|
# AddFilesToHaikuImage system lib : $(userlandfsLibs) ;
|
|
#
|
|
# # development goodies
|
|
# if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] {
|
|
# if ! ( $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) in 2 4 ) {
|
|
# Exit "Optional package UserlandFS: Unsupported GCC version:"
|
|
# $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ;
|
|
# }
|
|
#
|
|
# # library symlinks
|
|
# local lib ;
|
|
# for lib in $(userlandfsLibs) {
|
|
# AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib
|
|
# : /system/lib/$(lib:BS) ;
|
|
# }
|
|
#
|
|
# # FUSE headers
|
|
# local fuseHeaders =
|
|
# fuse_common_compat.h
|
|
# fuse_common.h
|
|
# fuse_compat.h
|
|
# fuse.h
|
|
# fuse_lowlevel_compat.h
|
|
# fuse_lowlevel.h
|
|
# fuse_opt.h
|
|
# ;
|
|
# fuseHeaders = $(fuseHeaders:G=userlandfs!fuse) ;
|
|
# SEARCH on $(fuseHeaders)
|
|
# = [ FDirName $(HAIKU_TOP) headers private userlandfs fuse ] ;
|
|
# AddFilesToHaikuImage develop headers userlandfs fuse : $(fuseHeaders) ;
|
|
# }
|
|
}
|
|
|
|
|
|
# WebPositive
|
|
if [ IsOptionalHaikuImagePackageAdded WebPositive ] {
|
|
# TODO: Make this an actual package!
|
|
# if $(TARGET_ARCH) != x86 && $(TARGET_ARCH) != x86_64 {
|
|
# Echo "No optional package WebPositive available for $(TARGET_ARCH)" ;
|
|
# } else if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) < 4 {
|
|
# Echo "No optional package WebPositive available for gcc2" ;
|
|
# } else if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) >= 4 {
|
|
# # TODO: Either we build a separate package for WebPositive or we
|
|
# # incorporate it in haiku.hpkg.
|
|
# AddFilesToHaikuHybridImage apps : WebPositive ;
|
|
# AddSymlinkToHaikuHybridImage
|
|
# home config settings deskbar menu Applications
|
|
# : /boot/common/apps/WebPositive ;
|
|
# }
|
|
#
|
|
# AddHaikuImagePackages curl libxml2 sqlite webkit ;
|
|
# TODO: Should be properly declared requires in the webpositive package.
|
|
}
|
|
|
|
|
|
# WebPositiveBookmarks
|
|
if [ IsOptionalHaikuImagePackageAdded WebPositiveBookmarks ] {
|
|
InstallOptionalHaikuImagePackage
|
|
$(baseURL)/WebPositiveBookmarks-2012-02-18.zip
|
|
: home config settings WebPositive ;
|
|
}
|
|
|
|
|
|
# Welcome
|
|
if [ IsOptionalHaikuImagePackageAdded Welcome ] {
|
|
AddPackageFilesToHaikuImage system : haiku_userguide.hpkg ;
|
|
AddPackageFilesToHaikuImage system : haiku_welcome.hpkg ;
|
|
|
|
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) ;
|
|
# }
|
|
}
|