Author: zooey Date: 2010-01-28 00:13:49 +0100 (Thu, 28 Jan 2010) New Revision: 35323 Changeset: http://dev.haiku-os.org/changeset/35323/haiku Modified: haiku/trunk/build/jam/HaikuImage haiku/trunk/build/jam/ImageRules haiku/trunk/build/jam/MainBuildRules Log: * 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) Modified: haiku/trunk/build/jam/HaikuImage =================================================================== --- haiku/trunk/build/jam/HaikuImage 2010-01-27 20:55:02 UTC (rev 35322) +++ haiku/trunk/build/jam/HaikuImage 2010-01-27 23:13:49 UTC (rev 35323) @@ -99,8 +99,11 @@ 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 print_server registrar syslog_daemon @@ -251,7 +254,8 @@ 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 Modified: haiku/trunk/build/jam/ImageRules =================================================================== --- haiku/trunk/build/jam/ImageRules 2010-01-27 20:55:02 UTC (rev 35322) +++ haiku/trunk/build/jam/ImageRules 2010-01-27 23:13:49 UTC (rev 35323) @@ -1127,7 +1127,29 @@ : $(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 Modified: haiku/trunk/build/jam/MainBuildRules =================================================================== --- haiku/trunk/build/jam/MainBuildRules 2010-01-27 20:55:02 UTC (rev 35322) +++ haiku/trunk/build/jam/MainBuildRules 2010-01-27 23:13:49 UTC (rev 35323) @@ -429,11 +429,17 @@ 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) ;