[haiku-commits] r35323 - haiku/trunk/build/jam

  • From: zooey@xxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 28 Jan 2010 00:13:49 +0100 (CET)

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) ;


Other related posts:

  • » [haiku-commits] r35323 - haiku/trunk/build/jam - zooey