de49044796
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
58 lines
1.9 KiB
Plaintext
58 lines
1.9 KiB
Plaintext
# This file defines what ends up in the alternative GCC archive and it executes
|
|
# the rules building the archive. Included by HaikuImage.
|
|
|
|
|
|
#pragma mark - Build The Archive
|
|
|
|
|
|
# archive target
|
|
HAIKU_ALTERNATIVE_GCC_ARCHIVE = alternative_system_libs.zip ;
|
|
MakeLocate $(HAIKU_ALTERNATIVE_GCC_ARCHIVE) : $(HAIKU_OUTPUT_DIR) ;
|
|
|
|
# the pseudo target all archive contents is attached to
|
|
NotFile $(HAIKU_ALTERNATIVE_GCC_ARCHIVE_CONTAINER_NAME) ;
|
|
|
|
# prepare the script that initializes the shell variables
|
|
local initVarsScript = <AlternativeGCCArchive>haiku-alternative-gcc-init-vars ;
|
|
local script = $(initVarsScript) ;
|
|
MakeLocate $(script) : $(HAIKU_OUTPUT_DIR) ;
|
|
Always $(script) ;
|
|
|
|
AddVariableToScript $(script) : tmpDir : $(HAIKU_TMP_DIR) ;
|
|
AddVariableToScript $(script) : addBuildCompatibilityLibDir
|
|
: $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) ;
|
|
AddTargetVariableToScript $(script) : <build>copyattr ;
|
|
AddTargetVariableToScript $(script) : <build>zip ;
|
|
if $(HOST_RM_ATTRS_TARGET) {
|
|
AddTargetVariableToScript $(script) : $(HOST_RM_ATTRS_TARGET) : rmAttrs ;
|
|
} else {
|
|
AddVariableToScript $(script) : rmAttrs : rm ;
|
|
}
|
|
|
|
# create the other scripts
|
|
local makeDirsScript = <AlternativeGCCArchive>haiku-alternative-gcc-make-dirs ;
|
|
local copyFilesScript
|
|
= <AlternativeGCCArchive>haiku-alternative-gcc-copy-files ;
|
|
MakeLocate $(makeDirsScript) $(copyFilesScript) : $(HAIKU_OUTPUT_DIR) ;
|
|
|
|
CreateAlternativeGCCArchiveMakeDirectoriesScript $(makeDirsScript) ;
|
|
CreateAlternativeGCCArchiveCopyFilesScript $(copyFilesScript) ;
|
|
|
|
# build the archive
|
|
|
|
BuildAlternativeGCCArchive $(HAIKU_ALTERNATIVE_GCC_ARCHIVE) :
|
|
$(initVarsScript)
|
|
$(makeDirsScript)
|
|
$(copyFilesScript)
|
|
;
|
|
|
|
# remove the scripts we have generated
|
|
RmTemps $(HAIKU_ALTERNATIVE_GCC_ARCHIVE) :
|
|
$(initVarsScript)
|
|
$(makeDirsScript)
|
|
$(copyFilesScript)
|
|
;
|
|
|
|
NotFile haiku-alternative-gcc-archive ;
|
|
Depends haiku-alternative-gcc-archive : $(HAIKU_ALTERNATIVE_GCC_ARCHIVE) ;
|