mirror of
https://github.com/openwrt/openwrt.git
synced 2026-10-12 06:57:57 +04:00
build: use a separate staging directory per build variant
All variants of a package collect their InstallDev files in the same directory below $(TMP_DIR) and remove it before and after use. Add the build variant to its name, as for the staging file list, so that the variants of a package do not share it. Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
1 parent
fbd3048f21
commit
728fb15aff
1 file changed
+11
-10
+11
-10
@@ -131,6 +131,7 @@ STAMP_BUILT:=$(PKG_BUILD_DIR)/.built
|
||||
STAMP_INSTALLED:=$(STAGING_DIR)/stamp/.$(PKG_DIR_NAME)$(if $(BUILD_VARIANT),.$(BUILD_VARIANT),)_installed
|
||||
|
||||
STAGING_FILES_LIST:=$(PKG_DIR_NAME)$(if $(BUILD_VARIANT),.$(BUILD_VARIANT),).list
|
||||
STAGING_TMP_DIR:=$(TMP_DIR)/stage-$(PKG_DIR_NAME)$(if $(BUILD_VARIANT),.$(BUILD_VARIANT),)
|
||||
|
||||
define CleanStaging
|
||||
rm -f $(STAMP_INSTALLED)
|
||||
@@ -273,28 +274,28 @@ define Build/CoreTargets
|
||||
|
||||
$(STAMP_INSTALLED) : export PATH=$$(TARGET_PATH_PKG)
|
||||
$(STAMP_INSTALLED): $(STAMP_BUILT)
|
||||
rm -rf $(TMP_DIR)/stage-$(PKG_DIR_NAME)
|
||||
mkdir -p $(TMP_DIR)/stage-$(PKG_DIR_NAME)/host $(STAGING_DIR)/packages
|
||||
rm -rf $(STAGING_TMP_DIR)
|
||||
mkdir -p $(STAGING_TMP_DIR)/host $(STAGING_DIR)/packages
|
||||
$(foreach hook,$(Hooks/InstallDev/Pre),\
|
||||
$(call $(hook),$(TMP_DIR)/stage-$(PKG_DIR_NAME),$(TMP_DIR)/stage-$(PKG_DIR_NAME)/host)$(sep)\
|
||||
$(call $(hook),$(STAGING_TMP_DIR),$(STAGING_TMP_DIR)/host)$(sep)\
|
||||
)
|
||||
$(call Build/InstallDev,$(TMP_DIR)/stage-$(PKG_DIR_NAME),$(TMP_DIR)/stage-$(PKG_DIR_NAME)/host)
|
||||
$(call Build/InstallDev,$(STAGING_TMP_DIR),$(STAGING_TMP_DIR)/host)
|
||||
$(foreach hook,$(Hooks/InstallDev/Post),\
|
||||
$(call $(hook),$(TMP_DIR)/stage-$(PKG_DIR_NAME),$(TMP_DIR)/stage-$(PKG_DIR_NAME)/host)$(sep)\
|
||||
$(call $(hook),$(STAGING_TMP_DIR),$(STAGING_TMP_DIR)/host)$(sep)\
|
||||
)
|
||||
if [ -f $(STAGING_DIR)/packages/$(STAGING_FILES_LIST) ]; then \
|
||||
$(SCRIPT_DIR)/clean-package.sh \
|
||||
"$(STAGING_DIR)/packages/$(STAGING_FILES_LIST)" \
|
||||
"$(STAGING_DIR)"; \
|
||||
fi
|
||||
if [ -d $(TMP_DIR)/stage-$(PKG_DIR_NAME) ]; then \
|
||||
(cd $(TMP_DIR)/stage-$(PKG_DIR_NAME); find ./ > $(TMP_DIR)/stage-$(PKG_DIR_NAME).files); \
|
||||
if [ -d $(STAGING_TMP_DIR) ]; then \
|
||||
(cd $(STAGING_TMP_DIR); find ./ > $(STAGING_TMP_DIR).files); \
|
||||
$(call locked, \
|
||||
mv $(TMP_DIR)/stage-$(PKG_DIR_NAME).files $(STAGING_DIR)/packages/$(STAGING_FILES_LIST) && \
|
||||
$(CP) $(TMP_DIR)/stage-$(PKG_DIR_NAME)/* $(STAGING_DIR)/; \
|
||||
mv $(STAGING_TMP_DIR).files $(STAGING_DIR)/packages/$(STAGING_FILES_LIST) && \
|
||||
$(CP) $(STAGING_TMP_DIR)/* $(STAGING_DIR)/; \
|
||||
,staging-dir); \
|
||||
fi
|
||||
rm -rf $(TMP_DIR)/stage-$(PKG_DIR_NAME)
|
||||
rm -rf $(STAGING_TMP_DIR)
|
||||
touch $$@
|
||||
|
||||
ifdef Build/InstallDev
|
||||
|
||||
Reference in new issue
Block a user