summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/package-ipkg.mk7
-rw-r--r--package/Makefile2
-rw-r--r--rules.mk1
3 files changed, 8 insertions, 2 deletions
diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk
index 8b4c042a0..debed2dfe 100644
--- a/include/package-ipkg.mk
+++ b/include/package-ipkg.mk
@@ -38,7 +38,7 @@ ifeq ($(DUMP),)
ifdef Package/$(1)/install
ifneq ($(CONFIG_PACKAGE_$(1))$(SDK)$(DEVELOPER),)
- compile: $$(IPKG_$(1))
+ compile: $$(IPKG_$(1)) $(STAGING_DIR_ROOT)/stamp/.$(1)_installed
ifeq ($(CONFIG_PACKAGE_$(1)),y)
install: $$(INFO_$(1))
@@ -82,6 +82,11 @@ ifeq ($(DUMP),)
$($(1)_COMMANDS) \
)
+ $(STAGING_DIR_ROOT)/stamp/.$(1)_installed:
+ mkdir -p $(STAGING_DIR_ROOT)/stamp
+ $(call Package/$(1)/install,$(STAGING_DIR_ROOT))
+ touch $$@
+
$$(IPKG_$(1)): $(STAGING_DIR)/etc/ipkg.conf $(PKG_BUILD_DIR)/.built $$(IDIR_$(1))/CONTROL/control
$(call Package/$(1)/install,$$(IDIR_$(1)))
mkdir -p $(PACKAGE_DIR)
diff --git a/package/Makefile b/package/Makefile
index 5e2872043..b7337a684 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -23,7 +23,7 @@ endif
$(curdir)/install:=$(curdir)/install-cleanup
$(curdir)/cleanup: $(TMP_DIR)/.build
- rm -rf $(TARGET_DIR)
+ rm -rf $(TARGET_DIR) $(STAGING_DIR_ROOT)
$(curdir)/rootfs-prepare: $(TMP_DIR)/.build
@-$(MAKE) package/preconfig
diff --git a/rules.mk b/rules.mk
index 6ed82988a..9e27710e2 100644
--- a/rules.mk
+++ b/rules.mk
@@ -63,6 +63,7 @@ STAMP_DIR:=$(BUILD_DIR)/stamp
STAMP_DIR_HOST=$(BUILD_DIR_HOST)/stamp
TARGET_ROOTFS_DIR?=$(if $(call qstrip,$(CONFIG_TARGET_ROOTFS_DIR)),$(call qstrip,$(CONFIG_TARGET_ROOTFS_DIR)),$(BUILD_DIR))
TARGET_DIR:=$(TARGET_ROOTFS_DIR)/root-$(BOARD)
+STAGING_DIR_ROOT:=$(STAGING_DIR)/root-$(BOARD)
DEBUG_DIR:=$(BUILD_DIR)/debug-$(BOARD)
BUILD_LOG_DIR:=$(TOPDIR)/logs