auto import from //depot/cupcake/@135843
diff --git a/core/copy_headers.mk b/core/copy_headers.mk
new file mode 100644
index 0000000..dac07d5
--- /dev/null
+++ b/core/copy_headers.mk
@@ -0,0 +1,23 @@
+###########################################################
+## Copy headers to the install tree
+###########################################################
+ifneq ($(strip $(LOCAL_IS_HOST_MODULE)),)
+  my_prefix := HOST_
+else
+  my_prefix := TARGET_
+endif
+
+# Create a rule to copy each header, and make the
+# all_copied_headers phony target depend on each
+# destination header.  copy-one-header defines the
+# actual rule.
+#
+$(foreach header,$(LOCAL_COPY_HEADERS), \
+  $(eval _chFrom := $(LOCAL_PATH)/$(header)) \
+  $(eval _chTo := \
+      $($(my_prefix)OUT_HEADERS)/$(LOCAL_COPY_HEADERS_TO)/$(notdir $(header))) \
+  $(eval $(call copy-one-header,$(_chFrom),$(_chTo))) \
+  $(eval all_copied_headers: $(_chTo)) \
+ )
+_chFrom :=
+_chTo :=