# 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 # 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 ; local hpkgBaseURL = http://haiku-files.org/files/hpkg ; local baseSourceURL = http://haiku-files.org/files/sources ; # 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 cmake pkgconfig scons ; # devel packages for mandatory packages local architectureObject ; for architectureObject in [ MultiArchSubDirSetup ] { on $(architectureObject) { AddHaikuImagePackages curl_devel ffmpeg_devel freetype_devel glu_devel jpeg_devel libpng_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 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 haiku_$(TARGET_PACKAGING_ARCHS[2-])_devel.hpkg makefile_engine.hpkg : nameFromMetaInfo ; } # 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 = 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 = 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 ] { local architectureObject ; for architectureObject in [ MultiArchSubDirSetup ] { on $(architectureObject) { if [ FIsBuildFeatureEnabled webpositive ] { AddPackageFilesToHaikuImage system : webpositive.hpkg : nameFromMetaInfo ; InstallOptionalHaikuImagePackage $(baseURL)/WebPositiveBookmarks-2012-02-18.zip : home config settings WebPositive ; break ; } } } } # Welcome if [ IsOptionalHaikuImagePackageAdded Welcome ] { AddPackageFilesToHaikuImage system : haiku_userguide.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) ; # } }