blob: c26d51db685504f63a374125b2b6d629643d098e [file] [log] [blame]
Dan Willemsenbab0fa62016-11-18 14:05:39 -08001ifneq (,$(strip $(LOCAL_COPY_HEADERS)))
The Android Open Source Project88b60792009-03-03 19:28:42 -08002###########################################################
3## Copy headers to the install tree
4###########################################################
Dan Willemsen3bf15e72016-07-25 16:03:53 -07005$(call record-module-type,COPY_HEADERS)
The Android Open Source Project88b60792009-03-03 19:28:42 -08006ifneq ($(strip $(LOCAL_IS_HOST_MODULE)),)
Dan Willemsen6e51ef62016-11-22 16:17:38 -08007 $(shell echo $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): LOCAL_COPY_HEADERS may not be used with host modules >&2)
8 $(error done)
The Android Open Source Project88b60792009-03-03 19:28:42 -08009endif
10
Dan Willemsenbab0fa62016-11-18 14:05:39 -080011# Modules linking against the SDK do not have the include path to use
12# COPY_HEADERS, so prevent them from exporting any either.
13ifdef LOCAL_SDK_VERSION
14$(shell echo $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): Modules using LOCAL_SDK_VERSION may not use LOCAL_COPY_HEADERS >&2)
15$(error done)
16endif
17
18include $(BUILD_SYSTEM)/local_vndk.mk
19
20# If we're using the VNDK, only vendor modules using the VNDK may use
21# LOCAL_COPY_HEADERS. Platform libraries will not have the include path
22# present.
23ifdef BOARD_VNDK_VERSION
24ifndef LOCAL_USE_VNDK
25$(shell echo $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): Only vendor modules using LOCAL_USE_VNDK may use LOCAL_COPY_HEADERS >&2)
26$(error done)
27endif
28endif
29
The Android Open Source Project88b60792009-03-03 19:28:42 -080030# Create a rule to copy each header, and make the
31# all_copied_headers phony target depend on each
32# destination header. copy-one-header defines the
33# actual rule.
34#
35$(foreach header,$(LOCAL_COPY_HEADERS), \
36 $(eval _chFrom := $(LOCAL_PATH)/$(header)) \
37 $(eval _chTo := \
Colin Crossa6c4ebd2013-10-22 12:24:21 -070038 $(if $(LOCAL_COPY_HEADERS_TO),\
Dan Willemsen6e51ef62016-11-22 16:17:38 -080039 $(TARGET_OUT_HEADERS)/$(LOCAL_COPY_HEADERS_TO)/$(notdir $(header)),\
40 $(TARGET_OUT_HEADERS)/$(notdir $(header)))) \
Dan Willemsen6f60f022016-02-23 13:40:07 -080041 $(eval ALL_COPIED_HEADERS.$(_chTo).MAKEFILE += $(LOCAL_MODULE_MAKEFILE)) \
42 $(eval ALL_COPIED_HEADERS.$(_chTo).SRC += $(_chFrom)) \
43 $(if $(filter $(_chTo),$(ALL_COPIED_HEADERS)),, \
44 $(eval ALL_COPIED_HEADERS += $(_chTo))) \
The Android Open Source Project88b60792009-03-03 19:28:42 -080045 )
46_chFrom :=
47_chTo :=
Dan Willemsenbab0fa62016-11-18 14:05:39 -080048
49endif # LOCAL_COPY_HEADERS