haiku/build/jam/OptionalPackages

1020 lines
29 KiB
Plaintext
Raw Normal View History

# 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
# Detect a hybrid GCC2/GCC4 image and disable the checks for unavailable GCC4
# packages. (It does not matter if a package was built with either compiler,
# the system should have the respective other system libs.)
local isHybridBuild ;
if $(HAIKU_ADD_ALTERNATIVE_GCC_LIBS) && $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) {
isHybridBuild = 1 ;
}
# Available Optional Packages:
# APR - support libraries used for example by Subversion
# APR-util
# Beam - powerful native e-mail client
# BeBook - the classic BeOS API documentation
# BeHappy - special documentation (i.e. BeBook) browser
# BeOSCompatibility - creates links within the system to support old apps
# BePDF - native PDF reader
# Bluetooth - experimental Haiku components for Bluetooth
# CDRecord - the command line CD writing tools
# Clockwerk - native audio/video compositing
# CLucene - indexed file search
# Curl - a client that groks URLs
# CMake - cross platform make
# CVS - the version control system
# Development - more complete dev environment (including autotools)
# DevelopmentBase - basic development environment (gcc, headers, libs,...)
# DevelopmentMin - development headers, libs, tools, from sources only
# Expat - XML parsing libraries
# Firefox - the webbrowser
# Git - the distributed version control system
# KeymapSwitcher - Desktop utility
# LibIconv - text encoding conversion library
# LibLayout - GCC2 package needed by some BeOS apps to compile
# LibXML2 - the XML support libary
# Links - the web browser
# Mercurial - the distributed version control system
# Nano - the command line text editor
# Neon - support libraries used for example by SVN
# NetSurf - the web browser
# OCaml - the Objective Caml language
# OpenSound - additional audio driver package
# OpenSSH - the secure shell
# OpenSSL - secure sockets library
# P7zip - file archiving utility
# PCRE - the (Perl-compatible) regex engine
# Pe - the powerful native Programmer's Editor
# Perl - the scripting language
# Python - the scripting language
# Rsync - remote directory synchronization
# SQLite - the database implementation
# Subversion - the version control system
# Tar - archiving utility
# UserlandFS - aids native file system development (like FUSE)
# Vim - the command line text editor
# Vision - powerful native IRC client
# VLC - the multi media player with native interface
# Welcome - introductory documentation to Haiku
# WonderBrush - native graphics application
# Yasm - the assembler utility
local baseURL = http://haiku-files.org/files/optional-packages ;
# APR
if [ IsOptionalHaikuImagePackageAdded APR ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package APR available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage apr-1.3.9-x86-gcc2-2009-10-18
: $(baseURL)/apr-1.3.9-x86-gcc2-2009-10-18.zip
:
: true
;
}
}
# APR-util
if [ IsOptionalHaikuImagePackageAdded APR-util ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package APR-util available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29
: $(baseURL)/apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29.zip
:
: true
;
}
}
# Beam
if [ IsOptionalHaikuImagePackageAdded Beam ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Beam available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
Echo "No optional package Beam available for gcc4" ;
} else {
InstallOptionalHaikuImagePackage Beam-1.2alpha
: $(baseURL)/Beam-1.2alpha-x86-gcc2-2009-09-29.zip
: apps
;
AddSymlinkToHaikuImage home config be Applications
: /boot/apps/beam-1.2alpha-haiku/Beam ;
}
}
# BeBook
if [ IsOptionalHaikuImagePackageAdded BeBook ] {
InstallOptionalHaikuImagePackage bebook_20081026
: $(baseURL)/bebook_20081026.zip
: system documentation
;
AddSymlinkToHaikuImage home Desktop
: /boot/system/documentation/bebook/index.html : BeBook ;
}
# BeHappy
if [ IsOptionalHaikuImagePackageAdded BeHappy ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package BeHappy available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
Echo "No optional package BeHappy available for gcc4" ;
} else {
InstallOptionalHaikuImagePackage BeHappy-1.0.6-x86-gcc2-2008-10-16
: $(baseURL)/BeHappy-1.0.6-x86-gcc2-2008-10-16.zip
:
;
AddSymlinkToHaikuImage home config be Applications
: /boot/apps/BeHappy/BeHappy ;
}
}
# BeOSCompatibility
if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package BeOSCompatibility available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
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/etc ;
AddSymlinkToHaikuImage beos : ../system/preferences ;
AddSymlinkToHaikuImage beos : ../system ;
}
}
# BePDF
if [ IsOptionalHaikuImagePackageAdded BePDF ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package BePDF available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
Echo "No optional package BePDF available for gcc4" ;
} else {
InstallOptionalHaikuImagePackage BePDF-1.1.1b2-r1a1-x86-gcc2-2009-09-03
: $(baseURL)/BePDF-1.1.1b2-r1a1-x86-gcc2-2009-09-03.zip
: apps
;
AddSymlinkToHaikuImage home config be Applications
: /boot/apps/BePDF/BePDF ;
}
}
# Bluetooth stack
if [ IsOptionalHaikuImagePackageAdded Bluetooth ] {
local bluetoothDrivers = h2generic ;
AddDriversToHaikuImage bluetooth : $(bluetoothDrivers) ;
AddFilesToHaikuImage system servers : bluetooth_server ;
AddFilesToHaikuImage system lib : libbluetooth.so ;
AddFilesToHaikuImage system add-ons kernel network devices : bluetooth ;
AddFilesToHaikuImage system add-ons kernel network protocols : l2cap ;
AddFilesToHaikuImage system add-ons kernel bluetooth : btCoreData ;
AddFilesToHaikuImage system preferences : Bluetooth ;
AddFilesToHaikuImage system bin : bt_dev_info bt_discovery ;
AddSymlinkToHaikuImage home config be Preferences
: /boot/system/preferences/Bluetooth ;
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ]
&& $(HAIKU_GCC_VERSION[1]) in 2 4 {
local arch = $(TARGET_ARCH) ;
local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
: /system/lib libbluetooth.so : : true ;
}
}
# CDRecord
if [ IsOptionalHaikuImagePackageAdded CDRecord ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package CDRecord available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage cdrecord-2.01.01a63-r1a1-x86-gcc2-2009-08-28
: $(baseURL)/cdrecord-2.01.01a63-r1a1-x86-gcc2-2009-08-28.zip
:
;
}
}
# Clockwerk
if [ IsOptionalHaikuImagePackageAdded Clockwerk ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Clockwerk available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage Clockwerk-0.0.1-x86-gcc4-2009-08-06
: $(baseURL)/Clockwerk-0.0.1-x86-gcc4-2009-08-06.zip
:
;
AddSymlinkToHaikuImage home config be Applications
: /boot/apps/Clockwerk/Clockwerk ;
} else {
InstallOptionalHaikuImagePackage Clockwerk-0.0.1-x86-gcc2-2009-08-06
: $(baseURL)/Clockwerk-0.0.1-x86-gcc2-2009-08-06.zip
:
;
AddSymlinkToHaikuImage home config be Applications
: /boot/apps/Clockwerk/Clockwerk ;
}
}
# CLucene
if [ IsOptionalHaikuImagePackageAdded CLucene ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package CLucene available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
Echo "No optional package CLucene available for GCC2" ;
} else {
InstallOptionalHaikuImagePackage
clucene-0.9.21svn-x86-gcc4-haiku-2009-08-11
: $(baseURL)/clucene-0.9.21-x86-gcc4-haiku-2009-08-11.zip
:
: true
;
}
}
# CMake
if [ IsOptionalHaikuImagePackageAdded CMake ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package CMake available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage cmake-2.8.0-x86-gcc2-2009-11-15
: $(baseURL)/cmake-2.8.0-x86-gcc2-2009-11-15.zip
:
: true
;
}
}
# Curl
if [ IsOptionalHaikuImagePackageAdded Curl ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Curl available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage curl-7.19.6-r1a1-x86-gcc2-2009-08-30
: $(baseURL)/curl-7.19.6-r1a1-x86-gcc2-2009-08-30.zip
:
: true
;
}
}
# CVS
if [ IsOptionalHaikuImagePackageAdded CVS ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package CVS available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage cvs-1.12.13-r1a1-x86-gcc2-2009-08-30
: $(baseURL)/cvs-1.12.13-r1a1-x86-gcc2-2009-08-30.zip
:
: true
;
}
}
# Development
if [ IsOptionalHaikuImagePackageAdded Development ] && $(TARGET_ARCH) = x86 {
# autotools
InstallOptionalHaikuImagePackage autoconf-2.64-r1a1-x86-gcc2-2009-08-27
: $(baseURL)/autoconf-2.64-r1a1-x86-gcc2-2009-08-27.zip
:
: true ;
InstallOptionalHaikuImagePackage automake-1.11-r1a1-x86-gcc2-2009-08-27
: $(baseURL)/automake-1.11-r1a1-x86-gcc2-2009-08-27.zip
:
: true ;
InstallOptionalHaikuImagePackage libtool-2.2.6b-x86-gcc2-2009-11-18
: $(baseURL)/libtool-2.2.6b-x86-gcc2-2009-11-18.zip
:
: true ;
InstallOptionalHaikuImagePackage texinfo-4.13a-r1a1-x86-gcc2-2009-08-30
: $(baseURL)/texinfo-4.13a-r1a1-x86-gcc2-2009-08-30.zip
:
: true ;
}
# DevelopmentBase
if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ]
&& $(TARGET_ARCH) = x86 {
# gcc and binutils
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
if $(HAIKU_GCC_VERSION[1]) = 2 || $(isHybridBuild) {
InstallOptionalHaikuImagePackage gcc-2.95.3-r1a1-x86-gcc2-2009-08-26
: $(baseURL)/gcc-2.95.3-r1a1-x86-gcc2-2009-08-26.zip ;
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
}
if $(HAIKU_GCC_VERSION[1]) = 4 || $(isHybridBuild) {
InstallOptionalHaikuImagePackage gcc-4.3.3-r1a1-x86-gcc4-2009-06-29
: $(baseURL)/gcc-4.3.3-r1a1-x86-gcc4-2009-06-29.zip ;
# symlink cpp to g++'s headers
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
AddSymlinkToHaikuImage develop abi x86 gcc4 headers
: ../tools/current/include/g++ : cpp ;
}
# other commonly used tools
InstallOptionalHaikuImagePackage bison-2.4.1-r1a1-x86-gcc2-2009-08-31
: $(baseURL)/bison-2.4.1-r1a1-x86-gcc2-2009-08-31.zip ;
InstallOptionalHaikuImagePackage m4-1.4.13-r1a1-x86-gcc2-2009-08-28
: $(baseURL)/m4-1.4.13-r1a1-x86-gcc2-2009-08-28.zip ;
InstallOptionalHaikuImagePackage flex-2.5.35-r1a1-x86-gcc2-2009-08-31
: $(baseURL)/flex-2.5.35-r1a1-x86-gcc2-2009-08-31.zip ;
InstallOptionalHaikuImagePackage jam-2.5-r1a1-x86-gcc2-2009-08-31
: $(baseURL)/jam-2.5-r1a1-x86-gcc2-2009-08-31.zip ;
}
# DevelopmentMin
if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && $(TARGET_ARCH) = x86 {
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) {
Exit "Optional package DevelopmentMin: Unsupported GCC version:"
$(HAIKU_GCC_VERSION[1]) ;
}
local arch = $(TARGET_ARCH) ;
local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
local abiDirTokens = develop abi $(arch) $(abi) ;
# glue code
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
AddFilesToHaikuHybridImage $(abiDirTokens) lib :
<src!system!glue!arch!$(arch)>crti.o
<src!system!glue!arch!$(arch)>crtn.o
<src!system!glue>init_term_dyn.o
<src!system!glue>start_dyn.o
<src!system!glue>haiku_version_glue.o
;
# kernel
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
AddFilesToHaikuHybridImage $(abiDirTokens) lib : kernel.so : _KERNEL_ ;
# library symlinks
local lib ;
for lib in $(SYSTEM_LIBS) $(SYSTEM_LIBS_LIBGL_ALIASES) {
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
AddSymlinkToHaikuHybridImage $(abiDirTokens) lib
: /system/lib $(lib:BS) : : true ;
}
# static libraries
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
AddFilesToHaikuHybridImage $(abiDirTokens) lib : libncurses.a ;
Experimental approach to tackle the problem with Be's negative error codes and ported software: * If the macro B_USE_POSITIVE_POSIX_ERRORS is defined the POSIX error code constants (ENOMEM, EINTR,...) will have positive values. * Introduced the macros B_TO_{POSITIVE,NEGATIVE}_ERROR() which do convert a given error code to a positive/negative value. * Added static library libposix_error_mapper.a that overrides all POSIX functions (save the ones I forgot to add :-)) directly meddling with error codes (having them as parameter or returning them) dealing with the positive<->negative error code conversions. The functions have hidden visibility, so they affect only the shared object they are linked into. * So ideally all one has to do is to build a ported software with -DB_USE_POSITIVE_POSIX_ERRORS and -lposix_error_mapper and be good with respect to error code problems. * Potential issues: - When mixing ported and Haiku native code, i.e. using Haiku native code in a ported software or using a ported library in a Haiku native application care must be taken to convert error codes where the two interface. That's what the B_TO_{POSITIVE,NEGATIVE}_ERROR() macros are supposed to be used for. - A ported static library can obviously not be linked directly against -lposix_error_mapper. The shared object linking a against the ported static library has to do that. The previous point applies when that causes mixing with Haiku native code. - When dependent ported libraries are used probably all of them should use the error mapping. Comments welcome. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29653 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-22 18:43:03 +03:00
# the POSIX error code mapper library
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
AddFilesToHaikuHybridImage $(abiDirTokens) lib : libposix_error_mapper.a ;
# symlinks for ABI abstraction
AddSymlinkToHaikuImage develop abi : $(arch)/$(abi) : current ;
AddSymlinkToHaikuImage develop lib : /boot/develop/abi/current/lib
: $(arch) ;
AddSymlinkToHaikuImage develop tools
: /boot/develop/abi/current/tools/current : gnupro ;
AddSymlinkToHaikuImage develop headers
: /boot/develop/abi/current/headers/cpp ;
AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
: /boot/common/lib : common : true ;
AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
: /boot/home/config/lib : home : true ;
# ABI independent stuff
# scripts: cc and c++ wrapper, freetype-config, setgcc
local scripts = cc c++ freetype-config setgcc ;
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
SEARCH on $(scripts) = [ FDirName $(HAIKU_TOP) data bin ] ;
AddFilesToHaikuImage system bin : $(scripts) ;
# make and mkdepend build tool, which are part of the Haiku source tree
# TODO: Both should be removed from the tree, made download packages
# and moved to the DevelopmentBase package.
AddFilesToHaikuImage system bin : make mkdepend ;
# skeleton makefile and makefile-engine
local makefileEngineFiles =
<makefile-engine>makefile
<makefile-engine>makefile-engine
;
SEARCH on $(makefileEngineFiles)
= [ FDirName $(HAIKU_TOP) data develop ] ;
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
AddFilesToHaikuImage develop etc : $(makefileEngineFiles) ;
# headers
AddHeaderDirectoryToHaikuImage config ;
AddHeaderDirectoryToHaikuImage glibc ;
AddHeaderDirectoryToHaikuImage os ;
AddHeaderDirectoryToHaikuImage posix ;
# create be -> os symlink for now
AddSymlinkToHaikuImage develop headers : os : be ;
# BSD and GNU compatibility headers
AddHeaderDirectoryToHaikuImage compatibility bsd : bsd ;
AddHeaderDirectoryToHaikuImage compatibility gnu : gnu ;
# third party libs headers
AddHeaderDirectoryToHaikuImage libs freetype2 : 3rdparty ;
AddHeaderDirectoryToHaikuImage libs jpeg : 3rdparty ;
AddHeaderDirectoryToHaikuImage libs ncurses : 3rdparty ;
AddHeaderDirectoryToHaikuImage libs png : 3rdparty ;
AddHeaderDirectoryToHaikuImage libs termcap : 3rdparty ;
AddHeaderDirectoryToHaikuImage libs zlib : 3rdparty ;
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
# cpp headers
if $(HAIKU_GCC_VERSION[1]) = 2 {
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
# GCC 2 only -- for GCC 4 they come with the DevelopmentBase package
CopyDirectoryToHaikuImage $(abiDirTokens) headers
: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
CopyDirectoryToAlternativeGCCArchive $(abiDirTokens) headers
: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
}
}
# Expat
if [ IsOptionalHaikuImagePackageAdded Expat ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Expat available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage expat-2.0.1-r1a1-x86-gcc2-2009-08-30
: $(baseURL)/expat-2.0.1-r1a1-x86-gcc2-2009-08-30.zip
:
: true
;
}
}
# Firefox web browser
if [ IsOptionalHaikuImagePackageAdded Firefox ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Firefox available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage
BeZillaBrowser-2.0.0.22pre-x86-gcc4-2009-09-28
: $(baseURL)/BeZillaBrowser-2.0.0.22pre-x86-gcc4-2009-09-28.zip
:
;
AddSymlinkToHaikuImage home config be Applications
: /boot/apps/BeZillaBrowser/BeZillaBrowser ;
} else {
InstallOptionalHaikuImagePackage
BeZillaBrowser-2.0.0.22pre-x86-gcc2-2009-09-27
: $(baseURL)/BeZillaBrowser-2.0.0.22pre-x86-gcc2-2009-09-27.zip
:
;
AddSymlinkToHaikuImage home config be Applications
: /boot/apps/BeZillaBrowser/BeZillaBrowser ;
}
}
# Git
if [ IsOptionalHaikuImagePackageAdded Git ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Git available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage git-1.6.4.2-r1a1-x86-gcc2-2009-08-30
: $(baseURL)/git-1.6.4.2-r1a1-x86-gcc2-2009-08-30.zip
:
: true
;
}
}
# KeymapSwitcher
if [ IsOptionalHaikuImagePackageAdded KeymapSwitcher ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package KeymapSwitcher available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage
KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31
: $(baseURL)/KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31.zip
:
;
AddSymlinkToHaikuImage home config be Desktop\ Applets
: /boot/common/bin/KeymapSwitcher ;
} else {
InstallOptionalHaikuImagePackage
KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06
: $(baseURL)/KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06.zip
:
;
AddSymlinkToHaikuImage home config be Desktop\ Applets
: /boot/common/bin/KeymapSwitcher ;
}
}
# LibIconv
if [ IsOptionalHaikuImagePackageAdded LibIconv ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package LibIconv available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage libiconv-1.13.1-r1a1-x86-gcc2-2009-09-08
: $(baseURL)/libiconv-1.13.1-r1a1-x86-gcc2-2009-09-08.zip
:
;
}
}
# LibLayout library
if [ IsOptionalHaikuImagePackageAdded LibLayout ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package LibLayout available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
Echo "No optional package LibLayout available for gcc4" ;
} else {
InstallOptionalHaikuImagePackage liblayout-1.4.0-gcc2-2009-03-08
: $(baseURL)/liblayout-1.4.0-gcc2-2009-03-08.zip
:
;
}
}
# LibXML2
if [ IsOptionalHaikuImagePackageAdded LibXML2 ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage libxml2-2.7.6-x86-gcc2-2009-10-19
: $(baseURL)/libxml2-2.7.6-x86-gcc2-2009-10-19.zip
:
: true
;
}
}
# Links web browser
if [ IsOptionalHaikuImagePackageAdded Links ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Links available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
Echo "No optional package Links available for gcc4" ;
} else {
InstallOptionalHaikuImagePackage Links
: $(baseURL)/links-x86-gcc2-2008-05-03.zip
:
;
AddSymlinkToHaikuImage home config be Applications
: /boot/home/config/bin/links ;
}
}
# Mercurial
if [ IsOptionalHaikuImagePackageAdded Mercurial ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Mercurial available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage mercurial-1.3.1-r1a1-x86-gcc2-2009-08-30
: $(baseURL)/mercurial-1.3.1-r1a1-x86-gcc2-2009-08-30.zip
:
: true
;
}
}
# Nano
if [ IsOptionalHaikuImagePackageAdded Nano ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Nano available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage nano-2.0.9-r1a1-x86-gcc2-2009-08-30
: $(baseURL)/nano-2.0.9-r1a1-x86-gcc2-2009-08-30.zip
:
;
}
}
# Neon
if [ IsOptionalHaikuImagePackageAdded Neon ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Neon available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage neon-0.29.0-r1a1-x86-gcc2-2009-10-11
: $(baseURL)/neon-0.29.0-r1a1-x86-gcc2-2009-10-11.zip
:
: true
;
}
}
# NetSurf web browser
if [ IsOptionalHaikuImagePackageAdded NetSurf ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package NetSurf available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
Echo "No optional package NetSurf available for gcc4" ;
} else {
InstallOptionalHaikuImagePackage NetSurf-r7117
: $(baseURL)/NetSurf-r7117-x86-gcc2-2009-04-17.zip
:
;
AddSymlinkToHaikuImage home config be Applications
: /boot/apps/netsurf/NetSurf ;
}
}
# OCaml
if [ IsOptionalHaikuImagePackageAdded OCaml ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package OCaml available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
Echo "No optional package OCaml available for gcc4" ;
} else {
InstallOptionalHaikuImagePackage ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06
: http://jerome.duval.free.fr/obos/ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06.zip
:
;
InstallOptionalHaikuImagePackage camlp5-5.12-r1a1-x86-gcc2-2009-09-06
: http://jerome.duval.free.fr/obos/camlp5-5.12-r1a1-x86-gcc2-2009-09-06.zip
:
;
}
}
# OpenSound drivers
if [ IsOptionalHaikuImagePackageAdded OpenSound ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package OpenSound available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage OpenSound
: $(baseURL)/OpenSound-x86-gcc2-2008-06-21.zip
:
;
}
#UnzipArchiveToHaikuImage home : data/vv.mp3.zip : 0 ;
}
# OpenSSH
if [ IsOptionalHaikuImagePackageAdded OpenSSH ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package OpenSSH available for $(TARGET_ARCH)" ;
} else {
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
if ! $(HAIKU_IMAGE_HOST_NAME) && ! $(HAIKU_IGNORE_USER_BUILD_CONFIG) {
Exit "Optional package OpenSSH requires the HAIKU_IMAGE_HOST_NAME"
"variable to be set!" ;
}
InstallOptionalHaikuImagePackage openssh-5.3p1-r1a1-x86-gcc2-2009-10-11
: $(baseURL)/openssh-5.3p1-r1a1-x86-gcc2-2009-10-11.zip
:
;
AddUserToHaikuImage sshd : 1001 : 100 : /var/empty : /bin/true
: "sshd user" ;
}
}
# OpenSSL
if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package OpenSSL available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage $(HAIKU_OPENSSL_PACKAGE)
: $(HAIKU_OPENSSL_URL)
:
;
}
}
# P7zip
if [ IsOptionalHaikuImagePackageAdded P7zip ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package P7zip available for $(TARGET_ARCH)" ;
} else {
if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage p7zip-9.04-x86-gcc4-2009-10-25
: $(baseURL)/p7zip-9.04-x86-gcc4-2009-10-25.zip
:
;
} else {
InstallOptionalHaikuImagePackage p7zip-9.04-x86-gcc2-2009-10-25
: $(baseURL)/p7zip-9.04-x86-gcc2-2009-10-25.zip
:
;
}
actions BuildHaikuImageExpanderRules
{
echo -e "\"application/x-7z-compressed\"\t.7z\t\"7za l \0045s\"\t\"7za x -y \0045s\"" > $(1)
}
Always expander.rules ;
MakeLocate expander.rules : $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) ;
BuildHaikuImageExpanderRules expander.rules ;
AddFilesToHaikuImage home config etc : expander.rules ;
}
}
# PCRE regex engine
if [ IsOptionalHaikuImagePackageAdded PCRE ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package PCRE available for $(TARGET_ARCH)" ;
} else {
if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage pcre-7.9-x86-gcc4-2009-09-30
: $(baseURL)/pcre-7.9-x86-gcc4-2009-09-30.zip
;
} else {
InstallOptionalHaikuImagePackage pcre-7.9-x86-gcc2-2009-09-30
: $(baseURL)/pcre-7.9-x86-gcc2-2009-09-30.zip
;
}
}
}
# Pe text editor
if [ IsOptionalHaikuImagePackageAdded Pe ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Pe available for $(TARGET_ARCH)" ;
} else {
if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage Pe-2.4.2-x86-gcc4-2009-08-04
: $(baseURL)/Pe-2.4.2-x86-gcc4-2009-08-04.zip
;
} else {
InstallOptionalHaikuImagePackage Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-08
: $(baseURL)/Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-08.zip
;
}
AddSymlinkToHaikuImage home config be Applications
: /boot/apps/Pe/Pe ;
AddSymlinkToHaikuImage common bin
: /boot/apps/Pe/lpe ;
}
}
# Perl
if [ IsOptionalHaikuImagePackageAdded Perl ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Perl available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage perl-5.10.1-r1a1-x86-gcc2-2009-09-08
: $(baseURL)/perl-5.10.1-r1a1-x86-gcc2-2009-09-08.zip
:
: true
;
}
}
# Python
if [ IsOptionalHaikuImagePackageAdded Python ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Python available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage python-2.6.4-x86-gcc2-2009-10-28
: $(baseURL)/python-2.6.4-x86-gcc2-2009-10-28.zip
:
: true
;
}
}
# Rsync
if [ IsOptionalHaikuImagePackageAdded Rsync ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Rsync available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage rsync-3.0.6-r1a1-x86-gcc2-2009-08-30
: $(baseURL)/rsync-3.0.6-r1a1-x86-gcc2-2009-08-30.zip
:
;
}
}
# SQLite
if [ IsOptionalHaikuImagePackageAdded SQLite ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package SQLite available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage sqlite-3.6.17-r1a1-x86-gcc2-2009-08-30
: $(baseURL)/sqlite-3.6.17-r1a1-x86-gcc2-2009-08-30.zip
:
: true
;
}
}
# Subversion
if [ IsOptionalHaikuImagePackageAdded Subversion ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Subversion available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage subversion-1.6.5-r1a1-x86-gcc2-2009-09-02
: $(baseURL)/subversion-1.6.5-r1a1-x86-gcc2-2009-09-02.zip
:
: true
;
}
}
# Tar
if [ IsOptionalHaikuImagePackageAdded Tar ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Tar available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage tar-1.21-gcc2-2009-02-08
: $(baseURL)/tar-1.21-gcc2-2009-02-08.zip
:
;
}
}
# UserlandFS
if [ IsOptionalHaikuImagePackageAdded UserlandFS ] {
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
local arch = $(TARGET_ARCH) ;
local abi = gcc$(HAIKU_GCC_VERSION[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
;
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
AddFilesToHaikuHybridImage system lib : $(userlandfsLibs) : : true ;
# development goodies
if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] {
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) {
Exit "Optional package UserlandFS: Unsupported GCC version:"
$(HAIKU_GCC_VERSION[1]) ;
}
# library symlinks
local lib ;
for lib in $(userlandfsLibs) {
* Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and OptionalPackages. This makes the content definition part in AlternativeGCCArchive superfluous. * Moved the cc and c++ wrapper scripts from src/bin to data/bin. * Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages -- the list can be separated by slashes to allow easier passing through the shell. * When invoking the sub-jam that builds the alternative GCC archive, we force it to ignore the UserBuildConfigs and we enable the optional packages enabled in the main jam. * Reorganized /boot/develop: - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory for each installed ABI-incompatible gcc version and a "current" symlink pointed to the currently selected one. - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp, tools/gnupro) symlink into /boot/develop/abi/current. - Changed BELIBRARIES to contain /boot/develop/abi/current/library-paths/common instead of /boot/common/lib. The former is a symlink to either /boot/common/lib or /boot/common/lib/<gccVersion>. There's also a respective "home" symlink. - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4 package. - The new structure allows to switch between compilers by changing the /boot/develop/abi/current symlink. Added script setgcc to do that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 05:12:34 +04:00
AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib
: /system/lib/$(lib:BS) ;
AddSymlinkToAlternativeGCCArchive develop abi $(arch) $(abi) lib
: /system/lib/$(arch)/$(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) ;
}
}
# Vim
if [ IsOptionalHaikuImagePackageAdded Vim ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Vim available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage vim-7.2-x86-gcc4-2009-05-31
: $(baseURL)/vim-7.2-x86-gcc4-2009-05-31.zip
:
;
AddSymlinkToHaikuImage home config be Applications
: /boot/common/bin/gvim ;
} else {
InstallOptionalHaikuImagePackage vim-7.2-r1a1-x86-gcc2-2009-09-06
: $(baseURL)/vim-7.2-r1a1-x86-gcc2-2009-09-06.zip
:
;
AddSymlinkToHaikuImage home config be Applications
: /boot/common/bin/gvim ;
}
}
# Vision
if [ IsOptionalHaikuImagePackageAdded Vision ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Vision available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage Vision-0.9.7-H-090423-1
: $(baseURL)/Vision-0.9.7-H-x86-gcc4-2009-04-23.zip
: apps
;
AddSymlinkToHaikuImage home config be Applications
: /boot/apps/Vision-0.9.7-H-090423/Vision ;
} else {
InstallOptionalHaikuImagePackage Vision-0.9.7-H-090423
: $(baseURL)/Vision-0.9.7-H-x86-gcc2-2009-04-23.zip
: apps
;
AddSymlinkToHaikuImage home config be Applications
: /boot/apps/Vision-0.9.7-H-090423/Vision ;
}
}
# VLC media player
if [ IsOptionalHaikuImagePackageAdded VLC ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package VLC available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
Echo "No optional package VLC available for gcc4" ;
} else {
InstallOptionalHaikuImagePackage VLC-0.8.6d
: $(baseURL)/vlc-0.8.6d-gcc2-2009-04-18.zip
: apps
;
AddSymlinkToHaikuImage home config be Applications
: "/boot/apps/vlc-0.8.6d/VLC media player" ;
AddSymlinkToHaikuImage common bin
: "/boot/apps/vlc-0.8.6d/VLC media player" : vlc ;
}
}
# Welcome
if [ IsOptionalHaikuImagePackageAdded Welcome ] {
CopyDirectoryToHaikuImage system documentation
: [ FDirName $(HAIKU_TOP) docs welcome ]
: welcome : -x .svn ;
CopyDirectoryToHaikuImage system documentation
: [ FDirName $(HAIKU_TOP) docs userguide ]
: userguide : -x .svn ;
AddFilesToHaikuImage system documentation
: [ FDirName $(HAIKU_TOP) docs Haiku-doc.css ]
: Haiku-doc.css ;
AddSymlinkToHaikuImage home Desktop
: /boot/system/documentation/welcome/welcome.html : Welcome ;
}
# WonderBrush
if [ IsOptionalHaikuImagePackageAdded WonderBrush ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package WonderBrush available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
Echo "No optional package WonderBrush available for gcc4" ;
} else {
InstallOptionalHaikuImagePackage WonderBrush-2.1.2
: $(baseURL)/WonderBrush-2.1.2-x86-gcc2-2008-11-08.zip
: apps
;
AddSymlinkToHaikuImage home config be Applications
: /boot/apps/WonderBrush/WonderBrush ;
}
}
# Yasm
if [ IsOptionalHaikuImagePackageAdded Yasm ] {
if $(TARGET_ARCH) != x86 {
Echo "No optional package Yasm available for $(TARGET_ARCH)" ;
} else {
InstallOptionalHaikuImagePackage yasm-0.8.0-r1a1-x86-gcc2-2009-08-30
: $(baseURL)/yasm-0.8.0-r1a1-x86-gcc2-2009-08-30.zip
:
;
}
}