haiku/Jamfile

82 lines
2.4 KiB
Plaintext
Raw Normal View History

SubDir HAIKU_TOP ;
NotFile doc_files ;
Depends files : doc_files ;
* 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
# Add optional packages given via HAIKU_ADD_OPTIONAL_PACKAGES.
if $(HAIKU_ADD_OPTIONAL_PACKAGES) {
AddOptionalHaikuImagePackages
[ FSplitString $(HAIKU_ADD_OPTIONAL_PACKAGES) : / ] ;
}
# Prepare the optional build features before parsing the Jamfile tree.
include [ FDirName $(HAIKU_BUILD_RULES_DIR) BuildFeatures ] ;
# Include packages that are required by all images.
AddOptionalHaikuImagePackages MandatoryPackages ;
# If enabled, make sure that OpenSSL is added to the image.
if $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) {
AddOptionalHaikuImagePackages OpenSSL ;
}
AddOptionalHaikuImagePackages ICU ;
# Evaluate optional package dependencies
include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalPackageDependencies ] ;
# Optionally we allow not to include the "src" subdirectory.
if $(HAIKU_DONT_INCLUDE_SRC) {
# Don't include "src", but at least include the stuff needed for the
# build.
SubInclude HAIKU_TOP src build ;
SubInclude HAIKU_TOP src tools ;
} else {
SubInclude HAIKU_TOP src ;
}
if $(HAIKU_INCLUDE_3RDPARTY) {
SubInclude HAIKU_TOP 3rdparty ;
}
# Perform deferred SubIncludes.
ExecuteDeferredSubIncludes ;
# reset subdir
SubDir HAIKU_TOP ;
# Execute post-build-target user config rules.
UserBuildConfigRulePostBuildTargets ;
# specify the Haiku image and network boot archive contents
include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuImage ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) NetBootArchive ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) FloppyBootImage ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootImage ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootPPCImage ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuCD ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) AnybootImage ] ;
# Check whether all requested optional packages do actually exist.
local package ;
local packageError ;
for package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) {
if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] {
Echo "ERROR: Requested optional package \"$(package)\" does not"
"exist." ;
packageError = 1 ;
}
}
if $(packageError) {
Exit ;
}
# Pseudo-target to build all targets that are localized.
NotFile LocalizedTargets ;
Depends LocalizedTargets : $(HAIKU_LOCALIZED_TARGETS) ;
NotFile catalogs ;
Depends catalogs : $(HAIKU_LOCALE_CATALOGS) ;
NotFile catkeys ;
Depends catkeys : $(HAIKU_LOCALE_OUTPUT_CATKEYS) ;