Generalize some image rules

Pulled generalized *ToContainer versions out of several *ToHaikuImage
rules.
This commit is contained in:
Ingo Weinhold
2011-07-17 16:54:11 +02:00
parent e272fb5dec
commit 9e3bdfb0ef
+74 -37
View File
@@ -283,6 +283,38 @@ rule CopyDirectoryToContainer container : directoryTokens : sourceDirectory
DIRECTORIES_TO_INSTALL on $(directory) += $(targetDir) ;
}
rule AddHeaderDirectoryToContainer container : dirTokens : dirName
: alwaysUpdate
{
# AddHeaderDirectoryToContainer <container> : <dirTokens> : [ <dirName> ]
# : <alwaysUpdate> ;
CopyDirectoryToContainer $(container) : system develop headers
: [ FDirName $(HAIKU_TOP) headers $(dirTokens) ]
: $(dirName) : -x .svn : $(alwaysUpdate) ;
}
rule AddWifiFirmwareToContainer container : driver : package : archive : extract
{
# AddWifiFirmwareToContainer <container> : <driver> : <package> : <archive>
# : <extract>
# 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 <container> : <targets> ;
#
# 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 <container> : <directory> : <libs>
#
# 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 <dirTokens> : [ <dirName> ]
# : <alwaysUpdate> ;
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 <driver> : <package> : <archive> : <extract>
# AddWifiFirmwareToHaikuImage <driver> : <package> : <archive> : <extract>
# 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 <directory> : <libs>
#
# 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 <directory> : <libs>
#
# 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