From 9e3bdfb0efe4133551f924157f2df541afbf6a4c Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 17 Jun 2011 14:56:35 +0200 Subject: [PATCH] Generalize some image rules Pulled generalized *ToContainer versions out of several *ToHaikuImage rules. --- build/jam/ImageRules | 111 ++++++++++++++++++++++++++++--------------- 1 file changed, 74 insertions(+), 37 deletions(-) diff --git a/build/jam/ImageRules b/build/jam/ImageRules index ebbe599f12..df2b81a0c9 100644 --- a/build/jam/ImageRules +++ b/build/jam/ImageRules @@ -283,6 +283,38 @@ rule CopyDirectoryToContainer container : directoryTokens : sourceDirectory DIRECTORIES_TO_INSTALL on $(directory) += $(targetDir) ; } + +rule AddHeaderDirectoryToContainer container : dirTokens : dirName + : alwaysUpdate +{ + # AddHeaderDirectoryToContainer : : [ ] + # : ; + + CopyDirectoryToContainer $(container) : system develop headers + : [ FDirName $(HAIKU_TOP) headers $(dirTokens) ] + : $(dirName) : -x .svn : $(alwaysUpdate) ; +} + + +rule AddWifiFirmwareToContainer container : driver : package : archive : extract +{ + # AddWifiFirmwareToContainer : : : + # : + + # complete location to wifi firmware archive + local firmwareArchive = [ FDirName + $(HAIKU_TOP) data system data firmware $(driver) $(archive) ] ; + + local dirTokens = system data firmware $(driver) ; + if $(extract) = true || $(extract) = 1 { + ExtractArchiveToContainer $(container) : $(dirTokens) + : $(firmwareArchive) : $(package) ; + } else { + AddFilesToContainer $(container) : $(dirTokens) : $(firmwareArchive) ; + } +} + + rule ExtractArchiveToContainer container : directoryTokens : archiveFile : extractedSubDir { @@ -345,7 +377,8 @@ rule AddBootModuleSymlinksToContainer container : targets # AddBootModuleSymlinksToContainer : ; # - # If the image shall only be updated, we don't add any symlinks. + # If the container shall only be updated, we don't add any symlinks. + if [ on $(container) return $(HAIKU_CONTAINER_UPDATE_ONLY) ] && ! [ IncludeAllTargetsInContainer $(container) ] { return ; @@ -376,6 +409,29 @@ rule AddBootModuleSymlinksToContainer container : targets } +rule AddLibrariesToContainer container : directory : libs +{ + # AddLibrariesToContainer : : + # + # Installs libraries with the appropriate links into the container. + # + + local lib ; + for lib in $(libs) { + local abiVersion = [ on $(lib) return $(HAIKU_LIB_ABI_VERSION) ] ; + if $(abiVersion) { + local abiVersionedLib = $(lib).$(abiVersion) ; + AddFilesToContainer $(container) : $(directory) : $(lib) + : $(abiVersionedLib) ; + AddSymlinkToContainer $(container) : $(directory) + : $(abiVersionedLib) : $(lib) ; + } else { + AddFilesToContainer $(container) : $(directory) : $(lib) ; + } + } +} + + rule CreateContainerMakeDirectoriesScript container : script { MakeLocate $(script) : $(HAIKU_OUTPUT_DIR) ; @@ -709,26 +765,16 @@ rule AddHeaderDirectoryToHaikuImage dirTokens : dirName : alwaysUpdate # AddHeaderDirectoryToHaikuImage : [ ] # : ; - CopyDirectoryToHaikuImage system develop headers - : [ FDirName $(HAIKU_TOP) headers $(dirTokens) ] - : $(dirName) : -x .svn : $(alwaysUpdate) ; + AddHeaderDirectoryToContainer $(HAIKU_IMAGE_CONTAINER_NAME) : $(dirTokens) + : $(dirName) : $(alwaysUpdate) ; } rule AddWifiFirmwareToHaikuImage driver : package : archive : extract { - #AddWifiFirmwareToHaikuImage : : : + # AddWifiFirmwareToHaikuImage : : : - # complete location to wifi firmware archive - local firmwareArchive = [ FDirName - $(HAIKU_TOP) data system data firmware $(driver) $(archive) ] ; - - local dirTokens = system data firmware $(driver) ; - if $(extract) = true || $(extract) = 1 { - ExtractArchiveToHaikuImage $(dirTokens) : $(firmwareArchive) : - : $(package) ; - } else { - AddFilesToHaikuImage $(dirTokens) : $(firmwareArchive) ; - } + AddWifiFirmwareToHaikuImage $(HAIKU_IMAGE_CONTAINER_NAME) : $(driver) + : $(package) : $(archive) : $(extract) ; } rule ExtractArchiveToHaikuImage dirTokens : archiveFile : alwaysUpdate @@ -978,6 +1024,18 @@ rule AddLicenseToHaikuImage file : name : searchPath } +rule AddLibrariesToHaikuImage directory : libs +{ + # AddLibraryToHaikuImage : + # + # Installs libraries with the appropriate links onto the image. + # + + AddLibrariesToContainer $(HAIKU_IMAGE_CONTAINER_NAME) : $(directory) + : $(libs) ; +} + + rule CreateHaikuImageMakeDirectoriesScript script { CreateContainerMakeDirectoriesScript $(HAIKU_IMAGE_CONTAINER_NAME) @@ -1133,27 +1191,6 @@ actions BuildNetBootArchive1 } -rule AddLibrariesToHaikuImage directory : libs -{ - # AddLibraryToHaikuImage : - # - # Installs libraries with the appropriate links onto the image. - # - - local lib ; - for lib in $(libs) { - local abiVersion = [ on $(lib) return $(HAIKU_LIB_ABI_VERSION) ] ; - if $(abiVersion) { - local abiVersionedLib = $(lib).$(abiVersion) ; - AddFilesToHaikuImage $(directory) : $(lib) : $(abiVersionedLib) ; - AddSymlinkToHaikuImage $(directory) : $(abiVersionedLib) : $(lib) ; - } else { - AddFilesToHaikuImage $(directory) : $(lib) ; - } - } -} - - #pragma mark - Floppy Boot Archive rules