* 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:
@@ -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
|
||||||
|
|||||||
+18
-7
@@ -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) ;
|
||||||
AddFilesToHaikuHybridImage $(directory)
|
local abiMinor = [ on $(lib) return $(HAIKU_LIB_ABI_MINOR) ] ;
|
||||||
: $(lib) : $(apiLib) : true ;
|
if $(abiMinor) {
|
||||||
AddSymlinkToHaikuHybridImage $(directory)
|
local abiMinorLib = $(abiMajorLib).$(abiMinor) ;
|
||||||
: $(apiLib) : $(lib) : : true ;
|
AddFilesToHaikuHybridImage $(directory)
|
||||||
|
: $(lib) : $(abiMinorLib) : true ;
|
||||||
|
AddSymlinkToHaikuHybridImage $(directory)
|
||||||
|
: $(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 ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) ;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user