Merge "Use $(BUILD_MODULES_IN_PATHS) as a part of ninja suffix"
diff --git a/core/base_rules.mk b/core/base_rules.mk
index e252b95..87ef414 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -194,6 +194,17 @@
 # Assemble the list of targets to create PRIVATE_ variables for.
 LOCAL_INTERMEDIATE_TARGETS += $(LOCAL_BUILT_MODULE)
 
+###########################################################
+## logtags: Add .logtags files to global list
+###########################################################
+
+logtags_sources := $(filter %.logtags,$(LOCAL_SRC_FILES))
+
+ifneq ($(strip $(logtags_sources)),)
+event_log_tags := $(addprefix $(LOCAL_PATH)/,$(logtags_sources))
+else
+event_log_tags :=
+endif
 
 ###########################################################
 ## make clean- targets
@@ -336,6 +347,8 @@
 endif
 ALL_MODULES.$(my_register_name).REQUIRED := \
     $(strip $(ALL_MODULES.$(my_register_name).REQUIRED) $(my_required_modules))
+ALL_MODULES.$(my_register_name).EVENT_LOG_TAGS := \
+    $(ALL_MODULES.$(my_register_name).EVENT_LOG_TAGS) $(event_log_tags)
 ALL_MODULES.$(my_register_name).MAKEFILE := \
     $(ALL_MODULES.$(my_register_name).MAKEFILE) $(LOCAL_MODULE_MAKEFILE)
 ifdef LOCAL_MODULE_OWNER
diff --git a/core/host_executable.mk b/core/host_executable.mk
index 0091f3f..5601b01 100644
--- a/core/host_executable.mk
+++ b/core/host_executable.mk
@@ -1,4 +1,4 @@
-
+LOCAL_IS_HOST_MODULE := true
 my_prefix := HOST_
 include $(BUILD_SYSTEM)/multilib.mk
 
diff --git a/core/host_executable_internal.mk b/core/host_executable_internal.mk
index 0c0ac3d..c59f151 100644
--- a/core/host_executable_internal.mk
+++ b/core/host_executable_internal.mk
@@ -5,7 +5,6 @@
 ## None.
 ###########################################################
 
-LOCAL_IS_HOST_MODULE := true
 ifeq ($(strip $(LOCAL_MODULE_CLASS)),)
 LOCAL_MODULE_CLASS := EXECUTABLES
 endif
diff --git a/core/host_shared_library.mk b/core/host_shared_library.mk
index e840780..6964cc9 100644
--- a/core/host_shared_library.mk
+++ b/core/host_shared_library.mk
@@ -1,3 +1,4 @@
+LOCAL_IS_HOST_MODULE := true
 my_prefix := HOST_
 include $(BUILD_SYSTEM)/multilib.mk
 
diff --git a/core/host_shared_library_internal.mk b/core/host_shared_library_internal.mk
index 645098a..9da778a 100644
--- a/core/host_shared_library_internal.mk
+++ b/core/host_shared_library_internal.mk
@@ -7,8 +7,6 @@
 ## LOCAL_MODULE_SUFFIX will be set for you.
 ###########################################################
 
-LOCAL_IS_HOST_MODULE := true
-
 ifeq ($(strip $(LOCAL_MODULE_CLASS)),)
 LOCAL_MODULE_CLASS := SHARED_LIBRARIES
 endif
diff --git a/core/host_static_library.mk b/core/host_static_library.mk
index 52c42ef..dd7462d 100644
--- a/core/host_static_library.mk
+++ b/core/host_static_library.mk
@@ -1,3 +1,4 @@
+LOCAL_IS_HOST_MODULE := true
 my_prefix := HOST_
 include $(BUILD_SYSTEM)/multilib.mk
 
diff --git a/core/host_static_library_internal.mk b/core/host_static_library_internal.mk
index a533cf5..3946aa7 100644
--- a/core/host_static_library_internal.mk
+++ b/core/host_static_library_internal.mk
@@ -18,8 +18,6 @@
 endif
 LOCAL_UNINSTALLABLE_MODULE := true
 
-LOCAL_IS_HOST_MODULE := true
-
 include $(BUILD_SYSTEM)/binary.mk
 
 $(LOCAL_BUILT_MODULE): $(built_whole_libraries)
diff --git a/core/java.mk b/core/java.mk
index 8972bdc..f3b57b8 100644
--- a/core/java.mk
+++ b/core/java.mk
@@ -303,25 +303,6 @@
 aidl_java_sources :=
 endif
 
-###########################################################
-## logtags: Add .logtags files to global list, emit java source
-###########################################################
-logtags_sources := $(filter %.logtags,$(LOCAL_SRC_FILES))
-
-ifneq ($(strip $(logtags_sources)),)
-event_log_tags := $(addprefix $(LOCAL_PATH)/,$(logtags_sources))
-
-logtags_java_sources := $(patsubst %.logtags,%.java,$(addprefix $(intermediates.COMMON)/src/, $(logtags_sources)))
-logtags_sources := $(addprefix $(LOCAL_PATH)/, $(logtags_sources))
-
-$(logtags_java_sources): $(intermediates.COMMON)/src/%.java: $(LOCAL_PATH)/%.logtags $(TARGET_OUT_COMMON_INTERMEDIATES)/all-event-log-tags.txt
-	$(transform-logtags-to-java)
-
-else
-logtags_java_sources :=
-event_log_tags :=
-endif
-
 ##########################################
 
 # All of the rules after full_classes_compiled_jar are very unlikely
@@ -338,6 +319,21 @@
 include $(BUILD_SYSTEM)/base_rules.mk
 #######################################
 
+###########################################################
+## logtags: emit java source
+###########################################################
+ifneq ($(strip $(logtags_sources)),)
+
+logtags_java_sources := $(patsubst %.logtags,%.java,$(addprefix $(intermediates.COMMON)/src/, $(logtags_sources)))
+logtags_sources := $(addprefix $(LOCAL_PATH)/, $(logtags_sources))
+
+$(logtags_java_sources): $(intermediates.COMMON)/src/%.java: $(LOCAL_PATH)/%.logtags $(TARGET_OUT_COMMON_INTERMEDIATES)/all-event-log-tags.txt
+	$(transform-logtags-to-java)
+
+else
+logtags_java_sources :=
+endif
+
 ##########################################
 java_sources := $(addprefix $(LOCAL_PATH)/, $(filter %.java,$(LOCAL_SRC_FILES))) $(aidl_java_sources) $(logtags_java_sources) \
                 $(filter %.java,$(LOCAL_GENERATED_SOURCES))
diff --git a/core/java_common.mk b/core/java_common.mk
index f66a54d..2195691 100644
--- a/core/java_common.mk
+++ b/core/java_common.mk
@@ -237,10 +237,6 @@
 $(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_MANIFEST_PACKAGE_NAME := $(LOCAL_MANIFEST_PACKAGE_NAME)
 $(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_MANIFEST_INSTRUMENTATION_FOR := $(LOCAL_MANIFEST_INSTRUMENTATION_FOR)
 
-ifdef event_log_tags
-ALL_MODULES.$(my_register_name).EVENT_LOG_TAGS := \
-  $(ALL_MODULES.$(my_register_name).EVENT_LOG_TAGS) $(event_log_tags)
-endif
 ifdef aidl_sources
 ALL_MODULES.$(my_register_name).AIDL_FILES := $(aidl_sources)
 endif
diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py
index 7a11ba6..d686004 100755
--- a/tools/releasetools/ota_from_target_files.py
+++ b/tools/releasetools/ota_from_target_files.py
@@ -1072,11 +1072,13 @@
       script.FileCheck(tf.name, tf.sha1)
 
   def RemoveUnneededFiles(self, script, extras=()):
-    script.DeleteFiles(
-        ["/" + i[0] for i in self.verbatim_targets] +
-        ["/" + i for i in sorted(self.source_data)
-         if i not in self.target_data and i not in self.renames] +
-        list(extras))
+    file_list = ["/" + i[0] for i in self.verbatim_targets]
+    file_list += ["/" + i for i in self.source_data
+                  if i not in self.target_data and i not in self.renames]
+    file_list += list(extras)
+    # Sort the list in descending order, which removes all the files first
+    # before attempting to remove the folder. (Bug: 22960996)
+    script.DeleteFiles(sorted(file_list, reverse=True))
 
   def TotalPatchSize(self):
     return sum(i[1].size for i in self.patch_list)