* added support for library (API-)versioning and private system libraries to

build system
* declared ICU-libs as private system libraries, which causes them to no longer
  be available for building software (they no longer are linked from the 
  development lib folder, so the linker won't find them)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35323 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Oliver Tappe 2010-01-27 23:13:49 +00:00
parent d18eaf4c53
commit 291785f88f
3 changed files with 34 additions and 2 deletions

View File

@ -99,7 +99,10 @@ SYSTEM_LIBS =
libscreensaver.so
libtextencoding.so libtracker.so libtranslation.so
libz.so
$(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++) $(ICU_LIBS)
$(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++)
;
PRIVATE_SYSTEM_LIBS =
$(ICU_LIBS)
;
SYSTEM_SERVERS = app_server cddb_daemon debug_server input_server mail_daemon
media_addon_server media_server midi_server mount_server net_server
@ -251,7 +254,8 @@ AddDriversToHaikuImage net : $(SYSTEM_ADD_ONS_DRIVERS_NET) ;
AddFilesToHaikuImage system : <revisioned>kernel_$(TARGET_ARCH) ;
# libs
AddFilesToHaikuHybridImage system lib : $(SYSTEM_LIBS) : : true ;
AddLibrariesToHaikuHybridImage system lib
: $(SYSTEM_LIBS) $(PRIVATE_SYSTEM_LIBS) ;
# libnetwork.so replaces quite a few libraries
SYSTEM_LIBS_LIBNETWORK_ALIASES

View File

@ -1127,6 +1127,28 @@ rule AddSymlinkToHaikuHybridImage directoryTokens : linkTarget : linkName
: $(alternativeLinkTarget) : $(linkName) ;
}
rule AddLibrariesToHaikuHybridImage directory : libs
{
# AddLibraryToHaikuHybridImage <directory> : <libs>
#
# Installs libraries with the appropriate links onto the image.
#
local lib ;
for lib in $(libs) {
local apiVersion = [ on $(lib) return $(HAIKU_LIB_API_VERSION) ] ;
if $(apiVersion) {
local apiLib = $(lib).$(apiVersion) ;
AddFilesToHaikuHybridImage $(directory)
: $(lib) : $(apiLib) : true ;
AddSymlinkToHaikuHybridImage $(directory)
: $(apiLib) : $(lib) : : true ;
} else {
AddFilesToHaikuHybridImage $(directory) : $(lib) : : true ;
}
}
}
#pragma mark - Floppy Boot Archive rules

View File

@ -429,11 +429,17 @@ rule SharedLibrary
local sources = [ FGristFiles $(2) ] ;
local objects = $(sources:S=$(SUFOBJ)) ;
local libs = $(3) ;
local apiVersion = $(4) ;
if ! [ IsPlatformSupportedForTarget $(1) ] {
return ;
}
if $(apiVersion) {
HAIKU_SONAME on $(lib) = $(lib:BS).$(apiVersion) ;
HAIKU_LIB_API_VERSION on $(lib) = $(apiVersion) ;
}
InheritPlatform $(objects) : $(lib) ;
Objects $(sources) ;
SharedLibraryFromObjects $(lib) : $(objects) : $(libs) ;