core: Make fake packages have real installed files for proper dependencies
Change-Id: I3145440eea0fbbd8ba22a2b3b0511f4c18f90eca
Signed-off-by: Dima Zavin <dima@android.com>
diff --git a/core/envsetup.mk b/core/envsetup.mk
index fe43529..729d933 100644
--- a/core/envsetup.mk
+++ b/core/envsetup.mk
@@ -234,6 +234,7 @@
TARGET_OUT_ETC := $(TARGET_OUT)/etc
TARGET_OUT_STATIC_LIBRARIES:= $(TARGET_OUT_INTERMEDIATES)/lib
TARGET_OUT_NOTICE_FILES:=$(TARGET_OUT_INTERMEDIATES)/NOTICE_FILES
+TARGET_OUT_FAKE := $(PRODUCT_OUT)/fake_packages
TARGET_OUT_DATA := $(PRODUCT_OUT)/data
TARGET_OUT_DATA_EXECUTABLES:= $(TARGET_OUT_EXECUTABLES)
diff --git a/core/main.mk b/core/main.mk
index a6d3f29..8172b22 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -571,8 +571,7 @@
$(eval r := $(ALL_MODULES.$(m).REQUIRED)) \
$(if $(r), \
$(eval r := $(call module-installed-files,$(r))) \
- $(eval i := $(ALL_MODULES.$(m).INSTALLED)) \
- $(eval $(if $(i), $(call add-required-deps,$(i),$(r)))) \
+ $(eval $(call add-required-deps,$(ALL_MODULES.$(m).INSTALLED),$(r))) \
) \
)
m :=
diff --git a/core/phony_package.mk b/core/phony_package.mk
index e6c0b6e..3644db8 100644
--- a/core/phony_package.mk
+++ b/core/phony_package.mk
@@ -1,5 +1,3 @@
-LOCAL_MODULE_CLASS := _FAKE_
-
ifneq ($(strip $(LOCAL_SRC_FILES)),)
$(error LOCAL_SRC_FILES are not allowed for phony packages)
endif
@@ -8,11 +6,12 @@
$(error LOCAL_REQUIRED_MODULES is required for phony packages)
endif
-.PHONY: $(LOCAL_MODULE)
+LOCAL_MODULE_CLASS := FAKE
+LOCAL_MODULE_SUFFIX := -timestamp
-$(LOCAL_MODULE): $(LOCAL_REQUIRED_MODULES)
+include $(BUILD_SYSTEM)/base_rules.mk
-ALL_MODULES += $(LOCAL_MODULE)
-ALL_MODULES.$(LOCAL_MODULE).CLASS := _FAKE_
-
-PACKAGES := $(PACKAGES) $(LOCAL_MODULE)
+$(LOCAL_BUILT_MODULE):
+ $(hide) echo "Fake: $@"
+ $(hide) mkdir -p $(dir $@)
+ $(hide) touch $@