-%-prepare: $(STAMP_DIR) $(TARGET_DIR)
- $(MAKE) -C $(patsubst %-prepare,%,$@) prepare
-
-%-compile: $(STAMP_DIR) $(TARGET_DIR)
- $(MAKE) -C $(patsubst %-compile,%,$@) compile
-
-%-install: $(STAMP_DIR) $(TARGET_DIR)
- $(MAKE) -C $(patsubst %-install,%,$@) install
-
-%-clean: $(STAMP_DIR) $(TARGET_DIR)
- $(MAKE) -C $(patsubst %-clean,%,$@) clean
-
-ifeq ($(SDK),1)
-GENDEP_OPTS := -s
+curdir:=package
+
+include $(INCLUDE_DIR)/rootfs.mk
+
+-include $(TMP_DIR)/.packagedeps
+$(curdir)/builddirs:=$(sort $(package-) $(package-y) $(package-m))
+$(curdir)/builddirs-install:=.
+$(curdir)/builddirs-default:=. $(sort $(package-y) $(package-m))
+$(curdir)/builddirs-prereq:=. $(sort $(prereq-y) $(prereq-m))
+ifneq ($(IGNORE_ERRORS),)
+ package-y-filter := $(package-y)
+ package-m-filter := $(filter-out $(package-y),$(package-m))
+ package-n-filter := $(filter-out $(package-y) $(package-m),$(package-))
+ package-ignore-errors := $(filter n m y,$(IGNORE_ERRORS))
+ package-ignore-errors := $(if $(package-ignore-errors),$(package-ignore-errors),n m)
+ package-ignore-subdirs := $(sort $(foreach m,$(package-ignore-errors),$(package-$(m)-filter)))
+ $(curdir)/builddirs-ignore-download := $(package-ignore-subdirs)
+ $(curdir)/builddirs-ignore-compile := $(package-ignore-subdirs)
+ $(curdir)/builddirs-ignore-host-download := $(package-ignore-subdirs)
+ $(curdir)/builddirs-ignore-host-compile := $(package-ignore-subdirs)