diff --git a/build/jam/BuildSetup b/build/jam/BuildSetup index b416107de4..e36f954a56 100644 --- a/build/jam/BuildSetup +++ b/build/jam/BuildSetup @@ -20,6 +20,7 @@ HAIKU_INCLUDE_IN_CONTAINER_VAR on $(HAIKU_IMAGE_CONTAINER_NAME) = HAIKU_INCLUDE_IN_IMAGE ; HAIKU_INSTALL_TARGETS_VAR on $(HAIKU_IMAGE_CONTAINER_NAME) = HAIKU_IMAGE_INSTALL_TARGETS ; +HAIKU_CONTAINER_SYSTEM_DIR_TOKENS on $(HAIKU_IMAGE_CONTAINER_NAME) = system ; # network boot archive 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_INSTALL_TARGETS_VAR on $(HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME) = HAIKU_NET_BOOT_ARCHIVE_INSTALL_TARGETS ; +HAIKU_CONTAINER_SYSTEM_DIR_TOKENS on $(HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME) + = system ; # boot floppy 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_INSTALL_TARGETS_VAR on $(HAIKU_FLOPPY_BOOT_IMAGE_CONTAINER_NAME) = HAIKU_FLOPPY_BOOT_IMAGE_INSTALL_TARGETS ; +HAIKU_CONTAINER_SYSTEM_DIR_TOKENS on $(HAIKU_FLOPPY_BOOT_IMAGE_CONTAINER_NAME) + = system ; # boot CD image 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_INSTALL_TARGETS_VAR on $(HAIKU_CD_BOOT_IMAGE_CONTAINER_NAME) = HAIKU_CD_BOOT_IMAGE_INSTALL_TARGETS ; +HAIKU_CONTAINER_SYSTEM_DIR_TOKENS on $(HAIKU_CD_BOOT_IMAGE_CONTAINER_NAME) + = system ; # boot CD for PPC image 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_INSTALL_TARGETS_VAR on $(HAIKU_CD_BOOT_PPC_IMAGE_CONTAINER_NAME) = 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_DEFAULT_IMAGE_NAME = haiku.image ; diff --git a/build/jam/ImageRules b/build/jam/ImageRules index fd3f30758c..5b4975bc98 100644 --- a/build/jam/ImageRules +++ b/build/jam/ImageRules @@ -165,6 +165,8 @@ rule AddFilesToContainer container : directoryTokens : targets : destName local directory = [ AddDirectoryToContainer $(container) : $(directoryTokens) ] ; 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 # accordingly. @@ -201,8 +203,8 @@ rule AddFilesToContainer container : directoryTokens : targets : destName if $(catalogs) { local signature = [ on $(target) return $(HAIKU_CATALOG_SIGNATURE) ] ; - AddFilesToHaikuImage - system data locale catalogs $(signature) + AddFilesToContainer $(container) + : $(systemDirTokens) data locale catalogs $(signature) : $(catalogs) ; } } @@ -296,7 +298,10 @@ rule AddHeaderDirectoryToContainer container : dirTokens : dirName # AddHeaderDirectoryToContainer : : [ ] # : ; - 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) ] : $(dirName) : -x .svn : $(alwaysUpdate) ; } @@ -311,7 +316,10 @@ rule AddWifiFirmwareToContainer container : driver : package : archive : extract local firmwareArchive = [ FDirName $(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 { ExtractArchiveToContainer $(container) : $(dirTokens) : $(firmwareArchive) : $(package) ; @@ -338,11 +346,13 @@ rule AddDriversToContainer container : relativeDirectoryTokens : targets { # AddDriversToContainer : : ; # - 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) ; AddFilesToContainer $(container) - : system add-ons kernel drivers bin + : $(systemDirTokens) add-ons kernel drivers bin : $(targets) ; # If the image shall only be updated, we don't add any symlinks. @@ -371,7 +381,9 @@ rule AddNewDriversToContainer container : relativeDirectoryTokens { # AddNewDriversToContainer : : ; # - 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) ; AddFilesToContainer $(container) : $(directoryTokens) @@ -390,6 +402,9 @@ rule AddBootModuleSymlinksToContainer container : targets return ; } + local systemDirTokens + = [ on $(container) return $(HAIKU_CONTAINER_SYSTEM_DIR_TOKENS) ] ; + # add the symlinks local installTargetsVar = [ on $(container) return $(HAIKU_INSTALL_TARGETS_VAR) ] ; @@ -406,10 +421,10 @@ rule AddBootModuleSymlinksToContainer container : targets } local name = $(target:BS) ; - local linkTarget = [ FDirName /boot $(installDir:G=) $(name) ] ; + local linkTarget = [ FDirName ../../.. $(installDir:G=) $(name) ] ; AddSymlinkToContainer $(container) - : system add-ons kernel boot + : $(systemDirTokens) add-ons kernel boot : $(linkTarget) : $(name) ; } } @@ -1017,8 +1032,10 @@ rule AddLicenseToHaikuImage file : name : searchPath name = ; } - AddFilesToHaikuImage system data licenses : $(file) - : $(name) ; + local systemDirTokens + = [ on $(container) return $(HAIKU_CONTAINER_SYSTEM_DIR_TOKENS) ] ; + + AddFilesToHaikuImage $(systemDirTokens) data licenses : $(file) : $(name) ; } diff --git a/build/jam/PackageRules b/build/jam/PackageRules index 00a998bbe8..b6bf583e35 100644 --- a/build/jam/PackageRules +++ b/build/jam/PackageRules @@ -272,6 +272,7 @@ rule HaikuPackage package = $(grist)_HAIKU_INCLUDE_IN_PACKAGE ; HAIKU_INSTALL_TARGETS_VAR on $(package) = $(grist)_HAIKU_PACKAGE_INSTALL_TARGETS ; + HAIKU_CONTAINER_SYSTEM_DIR_TOKENS on $(package) = ; HAIKU_CURRENTLY_BUILT_HAIKU_PACKAGE = $(package) ; }