Fix image rules wrt system/ relative entries
* Introduce on-container jam variable HAIKU_CONTAINER_SYSTEM_DIR_TOKENS containing the directory tokens relative to the container root to refer to system. * Use the variable in *ToContainer rules that need to put something in system. * AddFilesToContainer: Fix overlooked reference to AddFilesToHaikuImage. * AddBootModuleSymlinksToContainer: Use relative symlinks. This avoids special-casing in the boot loader for packagefs.
This commit is contained in:
+11
-1
@@ -20,6 +20,7 @@ HAIKU_INCLUDE_IN_CONTAINER_VAR on $(HAIKU_IMAGE_CONTAINER_NAME)
|
|||||||
= HAIKU_INCLUDE_IN_IMAGE ;
|
= HAIKU_INCLUDE_IN_IMAGE ;
|
||||||
HAIKU_INSTALL_TARGETS_VAR on $(HAIKU_IMAGE_CONTAINER_NAME)
|
HAIKU_INSTALL_TARGETS_VAR on $(HAIKU_IMAGE_CONTAINER_NAME)
|
||||||
= HAIKU_IMAGE_INSTALL_TARGETS ;
|
= HAIKU_IMAGE_INSTALL_TARGETS ;
|
||||||
|
HAIKU_CONTAINER_SYSTEM_DIR_TOKENS on $(HAIKU_IMAGE_CONTAINER_NAME) = system ;
|
||||||
|
|
||||||
# network boot archive
|
# network boot archive
|
||||||
HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME = haiku-netboot-archive-container ;
|
HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME = haiku-netboot-archive-container ;
|
||||||
@@ -28,6 +29,8 @@ HAIKU_CONTAINER_GRIST on $(HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME)
|
|||||||
# HAIKU_INCLUDE_IN_CONTAINER_VAR -- update only mode not supported
|
# HAIKU_INCLUDE_IN_CONTAINER_VAR -- update only mode not supported
|
||||||
HAIKU_INSTALL_TARGETS_VAR on $(HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME)
|
HAIKU_INSTALL_TARGETS_VAR on $(HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME)
|
||||||
= HAIKU_NET_BOOT_ARCHIVE_INSTALL_TARGETS ;
|
= HAIKU_NET_BOOT_ARCHIVE_INSTALL_TARGETS ;
|
||||||
|
HAIKU_CONTAINER_SYSTEM_DIR_TOKENS on $(HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME)
|
||||||
|
= system ;
|
||||||
|
|
||||||
# boot floppy
|
# boot floppy
|
||||||
HAIKU_FLOPPY_BOOT_IMAGE_CONTAINER_NAME = haiku-boot-floppy-container ;
|
HAIKU_FLOPPY_BOOT_IMAGE_CONTAINER_NAME = haiku-boot-floppy-container ;
|
||||||
@@ -36,6 +39,8 @@ HAIKU_CONTAINER_GRIST on $(HAIKU_FLOPPY_BOOT_IMAGE_CONTAINER_NAME)
|
|||||||
# HAIKU_INCLUDE_IN_CONTAINER_VAR -- update only mode not supported
|
# HAIKU_INCLUDE_IN_CONTAINER_VAR -- update only mode not supported
|
||||||
HAIKU_INSTALL_TARGETS_VAR on $(HAIKU_FLOPPY_BOOT_IMAGE_CONTAINER_NAME)
|
HAIKU_INSTALL_TARGETS_VAR on $(HAIKU_FLOPPY_BOOT_IMAGE_CONTAINER_NAME)
|
||||||
= HAIKU_FLOPPY_BOOT_IMAGE_INSTALL_TARGETS ;
|
= HAIKU_FLOPPY_BOOT_IMAGE_INSTALL_TARGETS ;
|
||||||
|
HAIKU_CONTAINER_SYSTEM_DIR_TOKENS on $(HAIKU_FLOPPY_BOOT_IMAGE_CONTAINER_NAME)
|
||||||
|
= system ;
|
||||||
|
|
||||||
# boot CD image
|
# boot CD image
|
||||||
HAIKU_CD_BOOT_IMAGE_CONTAINER_NAME = haiku-boot-cd-container ;
|
HAIKU_CD_BOOT_IMAGE_CONTAINER_NAME = haiku-boot-cd-container ;
|
||||||
@@ -43,13 +48,18 @@ HAIKU_CONTAINER_GRIST on $(HAIKU_CD_BOOT_IMAGE_CONTAINER_NAME) = CDBootImage ;
|
|||||||
# HAIKU_INCLUDE_IN_CONTAINER_VAR -- update only mode not supported
|
# HAIKU_INCLUDE_IN_CONTAINER_VAR -- update only mode not supported
|
||||||
HAIKU_INSTALL_TARGETS_VAR on $(HAIKU_CD_BOOT_IMAGE_CONTAINER_NAME)
|
HAIKU_INSTALL_TARGETS_VAR on $(HAIKU_CD_BOOT_IMAGE_CONTAINER_NAME)
|
||||||
= HAIKU_CD_BOOT_IMAGE_INSTALL_TARGETS ;
|
= HAIKU_CD_BOOT_IMAGE_INSTALL_TARGETS ;
|
||||||
|
HAIKU_CONTAINER_SYSTEM_DIR_TOKENS on $(HAIKU_CD_BOOT_IMAGE_CONTAINER_NAME)
|
||||||
|
= system ;
|
||||||
|
|
||||||
# boot CD for PPC image
|
# boot CD for PPC image
|
||||||
HAIKU_CD_BOOT_PPC_IMAGE_CONTAINER_NAME = haiku-boot-cd-ppc-container ;
|
HAIKU_CD_BOOT_PPC_IMAGE_CONTAINER_NAME = haiku-boot-cd-ppc-container ;
|
||||||
HAIKU_CONTAINER_GRIST on $(HAIKU_CD_BOOT_PPC_IMAGE_CONTAINER_NAME) = CDBootPPCImage ;
|
HAIKU_CONTAINER_GRIST on $(HAIKU_CD_BOOT_PPC_IMAGE_CONTAINER_NAME)
|
||||||
|
= CDBootPPCImage ;
|
||||||
# HAIKU_INCLUDE_IN_CONTAINER_VAR -- update only mode not supported
|
# HAIKU_INCLUDE_IN_CONTAINER_VAR -- update only mode not supported
|
||||||
HAIKU_INSTALL_TARGETS_VAR on $(HAIKU_CD_BOOT_PPC_IMAGE_CONTAINER_NAME)
|
HAIKU_INSTALL_TARGETS_VAR on $(HAIKU_CD_BOOT_PPC_IMAGE_CONTAINER_NAME)
|
||||||
= HAIKU_CD_BOOT_PPC_IMAGE_INSTALL_TARGETS ;
|
= HAIKU_CD_BOOT_PPC_IMAGE_INSTALL_TARGETS ;
|
||||||
|
HAIKU_CONTAINER_SYSTEM_DIR_TOKENS on $(HAIKU_CD_BOOT_PPC_IMAGE_CONTAINER_NAME)
|
||||||
|
= system ;
|
||||||
|
|
||||||
# Haiku image/install defaults
|
# Haiku image/install defaults
|
||||||
HAIKU_DEFAULT_IMAGE_NAME = haiku.image ;
|
HAIKU_DEFAULT_IMAGE_NAME = haiku.image ;
|
||||||
|
|||||||
+28
-11
@@ -165,6 +165,8 @@ rule AddFilesToContainer container : directoryTokens : targets : destName
|
|||||||
local directory = [ AddDirectoryToContainer $(container)
|
local directory = [ AddDirectoryToContainer $(container)
|
||||||
: $(directoryTokens) ] ;
|
: $(directoryTokens) ] ;
|
||||||
local containerGrist = [ on $(container) return $(HAIKU_CONTAINER_GRIST) ] ;
|
local containerGrist = [ on $(container) return $(HAIKU_CONTAINER_GRIST) ] ;
|
||||||
|
local systemDirTokens
|
||||||
|
= [ on $(container) return $(HAIKU_CONTAINER_SYSTEM_DIR_TOKENS) ] ;
|
||||||
|
|
||||||
# If the image shall only be updated, we filter out all targets not marked
|
# If the image shall only be updated, we filter out all targets not marked
|
||||||
# accordingly.
|
# accordingly.
|
||||||
@@ -201,8 +203,8 @@ rule AddFilesToContainer container : directoryTokens : targets : destName
|
|||||||
if $(catalogs) {
|
if $(catalogs) {
|
||||||
local signature
|
local signature
|
||||||
= [ on $(target) return $(HAIKU_CATALOG_SIGNATURE) ] ;
|
= [ on $(target) return $(HAIKU_CATALOG_SIGNATURE) ] ;
|
||||||
AddFilesToHaikuImage
|
AddFilesToContainer $(container)
|
||||||
system data locale catalogs $(signature)
|
: $(systemDirTokens) data locale catalogs $(signature)
|
||||||
: $(catalogs) ;
|
: $(catalogs) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -296,7 +298,10 @@ rule AddHeaderDirectoryToContainer container : dirTokens : dirName
|
|||||||
# AddHeaderDirectoryToContainer <container> : <dirTokens> : [ <dirName> ]
|
# AddHeaderDirectoryToContainer <container> : <dirTokens> : [ <dirName> ]
|
||||||
# : <alwaysUpdate> ;
|
# : <alwaysUpdate> ;
|
||||||
|
|
||||||
CopyDirectoryToContainer $(container) : system develop headers
|
local systemDirTokens
|
||||||
|
= [ on $(container) return $(HAIKU_CONTAINER_SYSTEM_DIR_TOKENS) ] ;
|
||||||
|
|
||||||
|
CopyDirectoryToContainer $(container) : $(systemDirTokens) develop headers
|
||||||
: [ FDirName $(HAIKU_TOP) headers $(dirTokens) ]
|
: [ FDirName $(HAIKU_TOP) headers $(dirTokens) ]
|
||||||
: $(dirName) : -x .svn : $(alwaysUpdate) ;
|
: $(dirName) : -x .svn : $(alwaysUpdate) ;
|
||||||
}
|
}
|
||||||
@@ -311,7 +316,10 @@ rule AddWifiFirmwareToContainer container : driver : package : archive : extract
|
|||||||
local firmwareArchive = [ FDirName
|
local firmwareArchive = [ FDirName
|
||||||
$(HAIKU_TOP) data system data firmware $(driver) $(archive) ] ;
|
$(HAIKU_TOP) data system data firmware $(driver) $(archive) ] ;
|
||||||
|
|
||||||
local dirTokens = system data firmware $(driver) ;
|
local systemDirTokens
|
||||||
|
= [ on $(container) return $(HAIKU_CONTAINER_SYSTEM_DIR_TOKENS) ] ;
|
||||||
|
|
||||||
|
local dirTokens = $(systemDirTokens) data firmware $(driver) ;
|
||||||
if $(extract) = true || $(extract) = 1 {
|
if $(extract) = true || $(extract) = 1 {
|
||||||
ExtractArchiveToContainer $(container) : $(dirTokens)
|
ExtractArchiveToContainer $(container) : $(dirTokens)
|
||||||
: $(firmwareArchive) : $(package) ;
|
: $(firmwareArchive) : $(package) ;
|
||||||
@@ -338,11 +346,13 @@ rule AddDriversToContainer container : relativeDirectoryTokens : targets
|
|||||||
{
|
{
|
||||||
# AddDriversToContainer <container> : <relative directory> : <targets> ;
|
# AddDriversToContainer <container> : <relative directory> : <targets> ;
|
||||||
#
|
#
|
||||||
local directoryTokens = system add-ons kernel drivers dev
|
local systemDirTokens
|
||||||
|
= [ on $(container) return $(HAIKU_CONTAINER_SYSTEM_DIR_TOKENS) ] ;
|
||||||
|
local directoryTokens = $(systemDirTokens) add-ons kernel drivers dev
|
||||||
$(relativeDirectoryTokens) ;
|
$(relativeDirectoryTokens) ;
|
||||||
|
|
||||||
AddFilesToContainer $(container)
|
AddFilesToContainer $(container)
|
||||||
: system add-ons kernel drivers bin
|
: $(systemDirTokens) add-ons kernel drivers bin
|
||||||
: $(targets) ;
|
: $(targets) ;
|
||||||
|
|
||||||
# If the image shall only be updated, we don't add any symlinks.
|
# If the image shall only be updated, we don't add any symlinks.
|
||||||
@@ -371,7 +381,9 @@ rule AddNewDriversToContainer container : relativeDirectoryTokens
|
|||||||
{
|
{
|
||||||
# AddNewDriversToContainer <container> : <directory> : <targets> ;
|
# AddNewDriversToContainer <container> : <directory> : <targets> ;
|
||||||
#
|
#
|
||||||
local directoryTokens = system add-ons kernel drivers
|
local systemDirTokens
|
||||||
|
= [ on $(container) return $(HAIKU_CONTAINER_SYSTEM_DIR_TOKENS) ] ;
|
||||||
|
local directoryTokens = $(systemDirTokens) add-ons kernel drivers
|
||||||
$(relativeDirectoryTokens) ;
|
$(relativeDirectoryTokens) ;
|
||||||
|
|
||||||
AddFilesToContainer $(container) : $(directoryTokens)
|
AddFilesToContainer $(container) : $(directoryTokens)
|
||||||
@@ -390,6 +402,9 @@ rule AddBootModuleSymlinksToContainer container : targets
|
|||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
local systemDirTokens
|
||||||
|
= [ on $(container) return $(HAIKU_CONTAINER_SYSTEM_DIR_TOKENS) ] ;
|
||||||
|
|
||||||
# add the symlinks
|
# add the symlinks
|
||||||
local installTargetsVar
|
local installTargetsVar
|
||||||
= [ on $(container) return $(HAIKU_INSTALL_TARGETS_VAR) ] ;
|
= [ on $(container) return $(HAIKU_INSTALL_TARGETS_VAR) ] ;
|
||||||
@@ -406,10 +421,10 @@ rule AddBootModuleSymlinksToContainer container : targets
|
|||||||
}
|
}
|
||||||
|
|
||||||
local name = $(target:BS) ;
|
local name = $(target:BS) ;
|
||||||
local linkTarget = [ FDirName /boot $(installDir:G=) $(name) ] ;
|
local linkTarget = [ FDirName ../../.. $(installDir:G=) $(name) ] ;
|
||||||
|
|
||||||
AddSymlinkToContainer $(container)
|
AddSymlinkToContainer $(container)
|
||||||
: system add-ons kernel boot
|
: $(systemDirTokens) add-ons kernel boot
|
||||||
: $(linkTarget) : $(name) ;
|
: $(linkTarget) : $(name) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1017,8 +1032,10 @@ rule AddLicenseToHaikuImage file : name : searchPath
|
|||||||
name = ;
|
name = ;
|
||||||
}
|
}
|
||||||
|
|
||||||
AddFilesToHaikuImage system data licenses : $(file)
|
local systemDirTokens
|
||||||
: $(name) ;
|
= [ on $(container) return $(HAIKU_CONTAINER_SYSTEM_DIR_TOKENS) ] ;
|
||||||
|
|
||||||
|
AddFilesToHaikuImage $(systemDirTokens) data licenses : $(file) : $(name) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -272,6 +272,7 @@ rule HaikuPackage package
|
|||||||
= $(grist)_HAIKU_INCLUDE_IN_PACKAGE ;
|
= $(grist)_HAIKU_INCLUDE_IN_PACKAGE ;
|
||||||
HAIKU_INSTALL_TARGETS_VAR on $(package)
|
HAIKU_INSTALL_TARGETS_VAR on $(package)
|
||||||
= $(grist)_HAIKU_PACKAGE_INSTALL_TARGETS ;
|
= $(grist)_HAIKU_PACKAGE_INSTALL_TARGETS ;
|
||||||
|
HAIKU_CONTAINER_SYSTEM_DIR_TOKENS on $(package) = ;
|
||||||
|
|
||||||
HAIKU_CURRENTLY_BUILT_HAIKU_PACKAGE = $(package) ;
|
HAIKU_CURRENTLY_BUILT_HAIKU_PACKAGE = $(package) ;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user