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.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35635 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
+25
-7
@@ -273,15 +273,16 @@ rule CopyDirectoryToContainer container : directoryTokens : sourceDirectory
|
|||||||
DIRECTORIES_TO_INSTALL on $(directory) += $(targetDir) ;
|
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)
|
local directory = [ AddDirectoryToContainer $(container)
|
||||||
: $(directoryTokens) ] ;
|
: $(directoryTokens) ] ;
|
||||||
|
|
||||||
ARCHIVE_FILES_TO_INSTALL on $(directory) += $(archiveFile) ;
|
ARCHIVE_FILES_TO_INSTALL on $(directory) += $(archiveFile) ;
|
||||||
|
ARCHIVE_SUBDIR_TO_INSTALL_FROM on $(archiveFile) = $(extractedSubDir) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
rule AddDriversToContainer container : relativeDirectoryTokens : targets
|
rule AddDriversToContainer container : relativeDirectoryTokens : targets
|
||||||
@@ -590,13 +591,17 @@ rule CreateContainerExtractFilesScript container : script
|
|||||||
NotFile $(dummyTarget) ;
|
NotFile $(dummyTarget) ;
|
||||||
TARGET_DIR on $(dummyTarget) = $(dir:G=) ;
|
TARGET_DIR on $(dummyTarget) = $(dir:G=) ;
|
||||||
|
|
||||||
|
local extractedSubDir = [ on $(archiveFile)
|
||||||
|
return $(ARCHIVE_SUBDIR_TO_INSTALL_FROM) ] ;
|
||||||
|
NotFile $(extractedSubDir) ;
|
||||||
|
|
||||||
Depends $(dummyTarget) : $(initScript) $(archiveFile)
|
Depends $(dummyTarget) : $(initScript) $(archiveFile)
|
||||||
$(serializationDependency) ;
|
$(serializationDependency) ;
|
||||||
Depends $(script) : $(dummyTarget) ;
|
Depends $(script) : $(dummyTarget) ;
|
||||||
serializationDependency = $(dummyTarget) ;
|
serializationDependency = $(dummyTarget) ;
|
||||||
|
|
||||||
AddExtractFileToContainerExtractFilesScript $(dummyTarget)
|
AddExtractFileToContainerExtractFilesScript $(dummyTarget)
|
||||||
: $(initScript) $(archiveFile) ;
|
: $(initScript) $(archiveFile) $(extractedSubDir) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -604,7 +609,7 @@ rule CreateContainerExtractFilesScript container : script
|
|||||||
|
|
||||||
actions AddExtractFileToContainerExtractFilesScript
|
actions AddExtractFileToContainerExtractFilesScript
|
||||||
{
|
{
|
||||||
echo extractFile "\"$(2[2])\"" "\"$(TARGET_DIR)\"" >> $(2[1])
|
echo extractFile "\"$(2[2])\"" "\"$(TARGET_DIR)\"" "\"$(2[3])\"" >> $(2[1])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -691,15 +696,28 @@ rule AddHeaderDirectoryToHaikuImage dirTokens : dirName : alwaysUpdate
|
|||||||
: $(dirName) : -x .svn : $(alwaysUpdate) ;
|
: $(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
|
# If the image shall only be updated, we extract only, if explicitely
|
||||||
# requested.
|
# requested.
|
||||||
if ! [ IsUpdateHaikuImageOnly ] || $(alwaysUpdate) {
|
if ! [ IsUpdateHaikuImageOnly ] || $(alwaysUpdate) {
|
||||||
ExtractArchiveToContainer $(HAIKU_IMAGE_CONTAINER_NAME) : $(dirTokens)
|
ExtractArchiveToContainer $(HAIKU_IMAGE_CONTAINER_NAME) : $(dirTokens)
|
||||||
: $(archiveFile) ;
|
: $(archiveFile) : $(extractedSubDir) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ extractFile()
|
|||||||
# extractFile <archive> <directory>
|
# extractFile <archive> <directory>
|
||||||
archiveFile=$1
|
archiveFile=$1
|
||||||
targetExtractDir=$2
|
targetExtractDir=$2
|
||||||
|
extractedSubDir=$3
|
||||||
|
|
||||||
echo "Extracting $archiveFile ..."
|
echo "Extracting $archiveFile ..."
|
||||||
|
|
||||||
@@ -66,7 +67,7 @@ extractFile()
|
|||||||
rm $extractDir/.OptionalPackageDescription
|
rm $extractDir/.OptionalPackageDescription
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$cp -r "$extractDir/." "${tPrefix}$targetExtractDir"
|
$cp -r "$extractDir/$extractedSubDir/." "${tPrefix}$targetExtractDir"
|
||||||
|
|
||||||
$rmAttrs -rf "$extractDir"
|
$rmAttrs -rf "$extractDir"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ extractFile()
|
|||||||
# extractFile <archive> <directory>
|
# extractFile <archive> <directory>
|
||||||
archiveFile=$1
|
archiveFile=$1
|
||||||
targetExtractedDir=$2
|
targetExtractedDir=$2
|
||||||
|
extractedSubDir=$3
|
||||||
|
|
||||||
echo "Extracting $archiveFile ..."
|
echo "Extracting $archiveFile ..."
|
||||||
|
|
||||||
@@ -105,7 +106,7 @@ extractFile()
|
|||||||
rm $extractDir/.OptionalPackageDescription
|
rm $extractDir/.OptionalPackageDescription
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$cp -r "${sPrefix}$extractDir/." "${tPrefix}$targetExtractedDir"
|
$cp -r "${sPrefix}$extractDir/$extractedSubDir/." "${tPrefix}$targetExtractedDir"
|
||||||
|
|
||||||
$rmAttrs -rf "$extractDir"
|
$rmAttrs -rf "$extractDir"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user