[haiku-commits] r35635 - in haiku/trunk/build: jam scripts

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 27 Feb 2010 19:15:47 +0100 (CET)

Author: bonefish
Date: 2010-02-27 19:15:47 +0100 (Sat, 27 Feb 2010)
New Revision: 35635
Changeset: http://dev.haiku-os.org/changeset/35635/haiku

Modified:
   haiku/trunk/build/jam/ImageRules
   haiku/trunk/build/scripts/build_haiku_cd
   haiku/trunk/build/scripts/build_haiku_image
Log:
From: Matt Madia

* Added "extractedSubDir" parameter to ExtractArchiveTo{Container,HaikuImage}.
  If given it specified the path of the subdirectory in the archive that
  shall be extracted.
* Added AddWifiFirmwareToHaikuImage rule for extracting Wifi firmware
  archives onto the image.


Modified: haiku/trunk/build/jam/ImageRules
===================================================================
--- haiku/trunk/build/jam/ImageRules    2010-02-27 17:48:12 UTC (rev 35634)
+++ haiku/trunk/build/jam/ImageRules    2010-02-27 18:15:47 UTC (rev 35635)
@@ -273,15 +273,16 @@
        DIRECTORIES_TO_INSTALL on $(directory) += $(targetDir) ;
 }
 
-rule ExtractArchiveToContainer container : directoryTokens : archiveFile
+rule ExtractArchiveToContainer container : directoryTokens : archiveFile : 
extractedSubDir
 {
-       # ExtractArchiveToContainer <container> : <directory> : <archiveFile> ] 
;
+       # ExtractArchiveToContainer <container> : <directory> : <archiveFile> : 
<extractedSubDir> ;
        #
 
        local directory = [ AddDirectoryToContainer $(container)
                : $(directoryTokens) ] ;
 
        ARCHIVE_FILES_TO_INSTALL on $(directory) += $(archiveFile) ;
+       ARCHIVE_SUBDIR_TO_INSTALL_FROM on $(archiveFile) = $(extractedSubDir) ;
 }
 
 rule AddDriversToContainer container : relativeDirectoryTokens : targets
@@ -590,13 +591,17 @@
                        NotFile $(dummyTarget) ;
                        TARGET_DIR on $(dummyTarget) = $(dir:G=) ;
 
+                       local extractedSubDir = [ on $(archiveFile)
+                               return $(ARCHIVE_SUBDIR_TO_INSTALL_FROM) ] ;
+                       NotFile $(extractedSubDir) ;
+
                        Depends $(dummyTarget) : $(initScript) $(archiveFile)
                                $(serializationDependency) ;
                        Depends $(script) : $(dummyTarget) ;
                        serializationDependency = $(dummyTarget) ;
 
-                       AddExtractFileToContainerExtractFilesScript 
$(dummyTarget) 
-                               : $(initScript) $(archiveFile) ;
+                       AddExtractFileToContainerExtractFilesScript 
$(dummyTarget)
+                               : $(initScript) $(archiveFile) 
$(extractedSubDir) ;
                }
        }
 }
@@ -604,7 +609,7 @@
 
 actions AddExtractFileToContainerExtractFilesScript
 {
-       echo extractFile "\"$(2[2])\"" "\"$(TARGET_DIR)\"" >> $(2[1])
+       echo extractFile "\"$(2[2])\"" "\"$(TARGET_DIR)\"" "\"$(2[3])\"" >> 
$(2[1])
 }
 
 
@@ -691,15 +696,28 @@
                : $(dirName) : -x .svn : $(alwaysUpdate) ;
 }
 
-rule ExtractArchiveToHaikuImage dirTokens : archiveFile : alwaysUpdate
+rule AddWifiFirmwareToHaikuImage driver : package : archive
 {
-       # ExtractArchiveToHaikuImage <dirTokens> : <archiveFile> : 
<alwaysUpdate> ;
+       #AddWifiFirmwareToHaikuImage <driver> : <package> : <archive>
 
+       # complete location to wifi firmware archive
+       local firmwareArchive = [ FDirName
+               $(HAIKU_TOP) data system data firmware $(driver) $(archive) ] ;
+
+       local dirTokens = system data firmware $(driver) ;
+
+       ExtractArchiveToHaikuImage $(dirTokens) : $(firmwareArchive) : : 
$(package) ;
+}
+
+rule ExtractArchiveToHaikuImage dirTokens : archiveFile : alwaysUpdate : 
extractedSubDir
+{
+       # ExtractArchiveToHaikuImage <dirTokens> : <archiveFile> : 
<alwaysUpdate>  : <extractedSubDir> ;
+
        # If the image shall only be updated, we extract only, if explicitely
        # requested.
        if ! [ IsUpdateHaikuImageOnly ] || $(alwaysUpdate) {
                ExtractArchiveToContainer $(HAIKU_IMAGE_CONTAINER_NAME) : 
$(dirTokens)
-                       : $(archiveFile) ;
+                       : $(archiveFile) : $(extractedSubDir) ;
        }
 }
 

Modified: haiku/trunk/build/scripts/build_haiku_cd
===================================================================
--- haiku/trunk/build/scripts/build_haiku_cd    2010-02-27 17:48:12 UTC (rev 
35634)
+++ haiku/trunk/build/scripts/build_haiku_cd    2010-02-27 18:15:47 UTC (rev 
35635)
@@ -40,6 +40,7 @@
        # extractFile <archive> <directory>
        archiveFile=$1
        targetExtractDir=$2
+       extractedSubDir=$3
 
        echo "Extracting $archiveFile ..."
 
@@ -66,7 +67,7 @@
                rm $extractDir/.OptionalPackageDescription
        fi
 
-       $cp -r "$extractDir/." "${tPrefix}$targetExtractDir"
+       $cp -r "$extractDir/$extractedSubDir/." "${tPrefix}$targetExtractDir"
 
        $rmAttrs -rf "$extractDir"
 }

Modified: haiku/trunk/build/scripts/build_haiku_image
===================================================================
--- haiku/trunk/build/scripts/build_haiku_image 2010-02-27 17:48:12 UTC (rev 
35634)
+++ haiku/trunk/build/scripts/build_haiku_image 2010-02-27 18:15:47 UTC (rev 
35635)
@@ -79,6 +79,7 @@
        # extractFile <archive> <directory>
        archiveFile=$1
        targetExtractedDir=$2
+       extractedSubDir=$3
 
        echo "Extracting $archiveFile ..."
 
@@ -105,7 +106,7 @@
                rm $extractDir/.OptionalPackageDescription
        fi
 
-       $cp -r "${sPrefix}$extractDir/." "${tPrefix}$targetExtractedDir"
+       $cp -r "${sPrefix}$extractDir/$extractedSubDir/." 
"${tPrefix}$targetExtractedDir"
 
        $rmAttrs -rf "$extractDir"
 }


Other related posts:

  • » [haiku-commits] r35635 - in haiku/trunk/build: jam scripts - ingo_weinhold