summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoe Onorato <joeo@google.com>2012-05-18 20:43:14 -0700
committerJoe Onorato <joeo@google.com>2012-08-16 22:45:55 -0700
commit918ee311f53d4128d753cca23b2b9a5212bd94f7 (patch)
tree1b6c2caf6fa17ce60ee823c687bacb623bf06d30
parent10649c632d7e4385909424473ad5a566177216b2 (diff)
downloadbuild-918ee311f53d4128d753cca23b2b9a5212bd94f7.zip
build-918ee311f53d4128d753cca23b2b9a5212bd94f7.tar.gz
build-918ee311f53d4128d753cca23b2b9a5212bd94f7.tar.bz2
Don't give the user tag to host modules automatically.
Change-Id: I12d0a84786e5bf2224efd8684526b6097e6105d7
-rw-r--r--core/base_rules.mk30
-rw-r--r--core/definitions.mk5
-rw-r--r--core/main.mk2
3 files changed, 30 insertions, 7 deletions
diff --git a/core/base_rules.mk b/core/base_rules.mk
index 09c2586..5f7634e 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -58,15 +58,19 @@ endif
LOCAL_UNINSTALLABLE_MODULE := $(strip $(LOCAL_UNINSTALLABLE_MODULE))
LOCAL_MODULE_TAGS := $(sort $(LOCAL_MODULE_TAGS))
ifeq (,$(LOCAL_MODULE_TAGS))
-ifeq (true,$(LOCAL_UNINSTALLABLE_MODULE))
-LOCAL_MODULE_TAGS := optional
-else
-# Installable modules without tags fall back to user (which is changed to user eng below)
-LOCAL_MODULE_TAGS := user
-endif
-#$(warning default tags: $(lastword $(filter-out config/% out/%,$(MAKEFILE_LIST))))
+ ifeq (true,$(LOCAL_UNINSTALLABLE_MODULE))
+ LOCAL_MODULE_TAGS := optional
+ else
+ ifneq ($(LOCAL_IS_HOST_MODULE),true)
+ # Installable target modules without tags fall back to user (which is changed to user eng
+ # below)
+ LOCAL_MODULE_TAGS := user
+ endif
+ endif
+ #$(warning default tags: $(lastword $(filter-out config/% out/%,$(MAKEFILE_LIST))))
endif
+
# Only the tags mentioned in this test are expected to be set by module
# makefiles. Anything else is either a typo or a source of unexpected
# behaviors.
@@ -93,6 +97,7 @@ ifneq ($(filter $(LOCAL_MODULE_TAGS),user),)
$(warning * the LOCAL_MODULE value for that component)
$(warning * into the PRODUCT_PACKAGES section of product)
$(warning * makefile(s) where necessary, if appropriate.)
+ $(warning * appropriate.)
$(warning * )
$(warning * If the component should be in EVERY build of ALL)
$(warning * products, then add its LOCAL_MODULE value to the)
@@ -543,6 +548,17 @@ $(installed_odex) : $(built_odex) | $(ACP)
$(LOCAL_INSTALLED_MODULE) : $(installed_odex)
endif
+# All host modules that are not tagged with optional are automatically installed.
+# Save the installed files in ALL_HOST_INSTALLED_FILES.
+ifeq ($(LOCAL_IS_HOST_MODULE),true)
+ ifneq ($(filter optional,$(LOCAL_MODULE_TAGS)),optional)
+ ALL_HOST_INSTALLED_FILES += $(LOCAL_INSTALLED_MODULE)
+ endif
+ ifneq ($(filter user debug eng tests, $(LOCAL_MODULE_TAGS)),)
+ $(error $(LOCAL_MODULE_MAKEFILE): Module "$(LOCAL_MODULE)" has useless module tags: $(filter user debug eng tests, $(LOCAL_MODULE_TAGS)). It will be installed anyway.)
+ endif
+endif
+
endif # !LOCAL_UNINSTALLABLE_MODULE
diff --git a/core/definitions.mk b/core/definitions.mk
index 2ab366b..3bbc33f 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -55,6 +55,11 @@ ALL_MODULE_TAGS:=
# its sub-variables.)
ALL_MODULE_NAME_TAGS:=
+# All host modules are automatically installed (i.e. outside
+# of the product configuration scheme). This is a list of the
+# install targets (LOCAL_INSTALLED_MODULE).
+ALL_HOST_INSTALLED_FILES:=
+
# Full paths to all prebuilt files that will be copied
# (used to make the dependency on acp)
ALL_PREBUILT:=
diff --git a/core/main.mk b/core/main.mk
index 5f94c63..6713acd 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -679,6 +679,8 @@ ifdef is_sdk_build
$(error Module '$(m)' in PRODUCT_PACKAGES_TESTS has nothing to install!)))
endif
+# Install all of the host modules
+modules_to_install += $(sort $(modules_to_install) $(ALL_HOST_INSTALLED_FILES))
# build/core/Makefile contains extra stuff that we don't want to pollute this
# top-level makefile with. It expects that ALL_DEFAULT_INSTALLED_MODULES