Ticket #5455: ImageRules-ruleAddWifiFirmwareToHaikuImage.patch

File ImageRules-ruleAddWifiFirmwareToHaikuImage.patch, 4.0 KB (added by mmadia, 14 years ago)

updated to extract firmware archive via build_haiku_* script

  • haiku/build/jam/ImageRules

    diff -r 06aa7294f456 haiku/build/jam/ImageRules
    a b  
    273273    DIRECTORIES_TO_INSTALL on $(directory) += $(targetDir) ;
    274274}
    275275
    276 rule ExtractArchiveToContainer container : directoryTokens : archiveFile
     276rule ExtractArchiveToContainer container : directoryTokens : archiveFile : extractedSubDir
    277277{
    278     # ExtractArchiveToContainer <container> : <directory> : <archiveFile> ;
     278    # ExtractArchiveToContainer <container> : <directory> : <archiveFile> : <extractedSubDir> ;
    279279    #
    280280
    281281    local directory = [ AddDirectoryToContainer $(container)
    282282        : $(directoryTokens) ] ;
    283283
    284284    ARCHIVE_FILES_TO_INSTALL on $(directory) += $(archiveFile) ;
     285    ARCHIVE_SUBDIR_TO_INSTALL_FROM on $(archiveFile) = $(extractedSubDir) ;
    285286}
    286287
    287288rule AddDriversToContainer container : relativeDirectoryTokens : targets
     
    590591            NotFile $(dummyTarget) ;
    591592            TARGET_DIR on $(dummyTarget) = $(dir:G=) ;
    592593
     594            local extractedSubDir = [ on $(archiveFile)
     595                return $(ARCHIVE_SUBDIR_TO_INSTALL_FROM) ] ;
     596            NotFile $(extractedSubDir) ;
     597
    593598            Depends $(dummyTarget) : $(initScript) $(archiveFile)
    594599                $(serializationDependency) ;
    595600            Depends $(script) : $(dummyTarget) ;
    596601            serializationDependency = $(dummyTarget) ;
    597602
    598603            AddExtractFileToContainerExtractFilesScript $(dummyTarget)
    599                 : $(initScript) $(archiveFile) ;
     604                : $(initScript) $(archiveFile) $(extractedSubDir) ;
    600605        }
    601606    }
    602607}
     
    604609
    605610actions AddExtractFileToContainerExtractFilesScript
    606611{
    607     echo extractFile "\"$(2[2])\"" "\"$(TARGET_DIR)\"" >> $(2[1])
     612    echo extractFile "\"$(2[2])\"" "\"$(TARGET_DIR)\"" "\"$(2[3])\"" >> $(2[1])
    608613}
    609614
    610615
     
    691696        : $(dirName) : -x .svn : $(alwaysUpdate) ;
    692697}
    693698
    694 rule ExtractArchiveToHaikuImage dirTokens : archiveFile : alwaysUpdate
     699rule AddWifiFirmwareToHaikuImage driver : package : archive
    695700{
    696     # ExtractArchiveToHaikuImage <dirTokens> : <archiveFile> : <alwaysUpdate> ;
     701    #AddWifiFirmwareToHaikuImage <driver> : <package> : <archive>
     702   
     703    # complete location to wifi firmware archive
     704    local firmwareArchive = [ FDirName
     705        $(HAIKU_TOP) data system data firmware $(driver) $(archive) ] ;
     706   
     707    local dirTokens = system data firmware $(driver) ;
     708   
     709    ExtractArchiveToHaikuImage $(dirTokens) : $(firmwareArchive) : : $(package) ;
     710}
     711
     712rule ExtractArchiveToHaikuImage dirTokens : archiveFile : alwaysUpdate : extractedSubDir
     713{
     714    # ExtractArchiveToHaikuImage <dirTokens> : <archiveFile> : <alwaysUpdate>  : <extractedSubDir> ;
    697715
    698716    # If the image shall only be updated, we extract only, if explicitely
    699717    # requested.
    700718    if ! [ IsUpdateHaikuImageOnly ] || $(alwaysUpdate) {
    701719        ExtractArchiveToContainer $(HAIKU_IMAGE_CONTAINER_NAME) : $(dirTokens)
    702             : $(archiveFile) ;
     720            : $(archiveFile) : $(extractedSubDir) ;
    703721    }
    704722}
    705723
  • haiku/build/scripts/build_haiku_cd

    diff -r 06aa7294f456 haiku/build/scripts/build_haiku_cd
    a b  
    4040    # extractFile <archive> <directory>
    4141    archiveFile=$1
    4242    targetExtractDir=$2
     43    extractedSubDir=$3
    4344
    4445    echo "Extracting $archiveFile ..."
    4546
     
    6667        rm $extractDir/.OptionalPackageDescription
    6768    fi
    6869
    69     $cp -r "$extractDir/." "${tPrefix}$targetExtractDir"
     70    $cp -r "$extractDir/$extractedSubDir/." "${tPrefix}$targetExtractDir"
    7071
    7172    $rmAttrs -rf "$extractDir"
    7273}
  • haiku/build/scripts/build_haiku_image

    diff -r 06aa7294f456 haiku/build/scripts/build_haiku_image
    a b  
    7979    # extractFile <archive> <directory>
    8080    archiveFile=$1
    8181    targetExtractedDir=$2
     82    extractedSubDir=$3
    8283
    8384    echo "Extracting $archiveFile ..."
    8485
     
    105106        rm $extractDir/.OptionalPackageDescription
    106107    fi
    107108
    108     $cp -r "${sPrefix}$extractDir/." "${tPrefix}$targetExtractedDir"
     109    $cp -r "${sPrefix}$extractDir/$extractedSubDir/." "${tPrefix}$targetExtractedDir"
    109110
    110111    $rmAttrs -rf "$extractDir"
    111112}