* added support for minor ABI versions to the SharedLibrary rule, as otherwise updating libz.so

could prove to be a major PITA (because of all the dependencies that would need to be rebuilt)
* when adding a library to the image, its optional minor abi version is taken care of, too (i. e. a
corresponding link is created).
* the ABI-related links in /system/lib are now replicated in /boot/develop/lib/<arch>

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35362 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Oliver Tappe
2010-01-31 20:53:29 +00:00
parent f3c8afe886
commit 418b8758bf
4 changed files with 45 additions and 16 deletions
+6 -4
View File
@@ -84,14 +84,12 @@ SYSTEM_DEMOS = BSnow Chart Clock Cortex FontDemo
ICU_LIBS = libicu-common.so libicu-data.so libicu-i18n.so ICU_LIBS = libicu-common.so libicu-data.so libicu-i18n.so
; ;
SYSTEM_LIBS = SYSTEM_LIBS =
libalm.so
libbe.so libbsd.so libbnetapi.so libbe.so libbsd.so libbnetapi.so
libdebug.so libdevice.so libdebug.so libdevice.so
libfluidsynth.so libfreetype.so libfreetype.so
libgame.so libGL.so libgnu.so libgame.so libGL.so libgnu.so
libilmimf.so
libjpeg.so libjpeg.so
liblinprog.so liblocale.so liblpsolve55.so liblocale.so
libmail.so libmedia.so libmidi.so libmidi2.so libmail.so libmedia.so libmidi.so libmidi2.so
libnetwork.so libnetwork.so
libpng.so libpng.so
@@ -102,6 +100,10 @@ SYSTEM_LIBS =
$(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++) $(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++)
; ;
PRIVATE_SYSTEM_LIBS = PRIVATE_SYSTEM_LIBS =
libalm.so
libfluidsynth.so
libilmimf.so
liblinprog.so liblpsolve55.so
$(ICU_LIBS) $(ICU_LIBS)
; ;
SYSTEM_SERVERS = app_server cddb_daemon debug_server input_server mail_daemon SYSTEM_SERVERS = app_server cddb_daemon debug_server input_server mail_daemon
+16 -5
View File
@@ -1136,13 +1136,24 @@ rule AddLibrariesToHaikuHybridImage directory : libs
local lib ; local lib ;
for lib in $(libs) { for lib in $(libs) {
local apiVersion = [ on $(lib) return $(HAIKU_LIB_API_VERSION) ] ; local abiMajor = [ on $(lib) return $(HAIKU_LIB_ABI_MAJOR) ] ;
if $(apiVersion) { if $(abiMajor) {
local apiLib = $(lib).$(apiVersion) ; local abiMajorLib = $(lib).$(abiMajor) ;
local abiMinor = [ on $(lib) return $(HAIKU_LIB_ABI_MINOR) ] ;
if $(abiMinor) {
local abiMinorLib = $(abiMajorLib).$(abiMinor) ;
AddFilesToHaikuHybridImage $(directory) AddFilesToHaikuHybridImage $(directory)
: $(lib) : $(apiLib) : true ; : $(lib) : $(abiMinorLib) : true ;
AddSymlinkToHaikuHybridImage $(directory) AddSymlinkToHaikuHybridImage $(directory)
: $(apiLib) : $(lib) : : true ; : $(abiMinorLib) : $(abiMajorLib) : : true ;
AddSymlinkToHaikuHybridImage $(directory)
: $(abiMinorLib) : $(lib) : : true ;
} else {
AddFilesToHaikuHybridImage $(directory)
: $(lib) : $(abiMajorLib) : true ;
AddSymlinkToHaikuHybridImage $(directory)
: $(abiMajorLib) : $(lib) : : true ;
}
} else { } else {
AddFilesToHaikuHybridImage $(directory) : $(lib) : : true ; AddFilesToHaikuHybridImage $(directory) : $(lib) : : true ;
} }
+9 -5
View File
@@ -424,20 +424,24 @@ rule SharedLibraryFromObjects
rule SharedLibrary rule SharedLibrary
{ {
# SharedLibrary <lib> : <sources> : <libraries> ; # SharedLibrary <lib> : <sources> : <libraries> : <abiMajor> : <abiMinor>;
local lib = $(1) ; local lib = $(1) ;
local sources = [ FGristFiles $(2) ] ; local sources = [ FGristFiles $(2) ] ;
local objects = $(sources:S=$(SUFOBJ)) ; local objects = $(sources:S=$(SUFOBJ)) ;
local libs = $(3) ; local libs = $(3) ;
local apiVersion = $(4) ; local abiMajor = $(4) ; # major ABI (soname) version for lib (if any)
local abiMinor = $(5) ; # additional minor suffix (optional)
if ! [ IsPlatformSupportedForTarget $(1) ] { if ! [ IsPlatformSupportedForTarget $(1) ] {
return ; return ;
} }
if $(apiVersion) { if $(abiMajor) {
HAIKU_SONAME on $(lib) = $(lib:BS).$(apiVersion) ; HAIKU_SONAME on $(lib) = $(lib:BS).$(abiMajor) ;
HAIKU_LIB_API_VERSION on $(lib) = $(apiVersion) ; HAIKU_LIB_ABI_MAJOR on $(lib) = $(abiMajor) ;
if $(abiMinor) {
HAIKU_LIB_ABI_MINOR on $(lib) = $(abiMinor) ;
}
} }
InheritPlatform $(objects) : $(lib) ; InheritPlatform $(objects) : $(lib) ;
+12
View File
@@ -403,6 +403,18 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && $(TARGET_ARCH) = x86 {
for lib in $(SYSTEM_LIBS) $(SYSTEM_LIBS_LIBGL_ALIASES) $(developmentLibs) { for lib in $(SYSTEM_LIBS) $(SYSTEM_LIBS_LIBGL_ALIASES) $(developmentLibs) {
AddSymlinkToHaikuHybridImage $(abiDirTokens) lib AddSymlinkToHaikuHybridImage $(abiDirTokens) lib
: /system/lib $(lib:BS) : : true ; : /system/lib $(lib:BS) : : true ;
local abiMajor = [ on $(lib) return $(HAIKU_LIB_ABI_MAJOR) ] ;
local abiMajorLib = $(lib:BS).$(abiMajor) ;
if $(abiMajor) {
local abiMinor = [ on $(lib) return $(HAIKU_LIB_ABI_MINOR) ] ;
if $(abiMinor) {
local abiMinorLib = $(abiMinorLib).$(abiMinor) ;
AddSymlinkToHaikuHybridImage $(abiDirTokens) lib
: /system/lib $(abiMinorLib) : : true ;
}
AddSymlinkToHaikuHybridImage $(abiDirTokens) lib
: /system/lib $(abiMajorLib) : : true ;
}
} }
# static libraries # static libraries