1ifneq (,$(strip $(LOCAL_COPY_HEADERS))) 2########################################################### 3## Copy headers to the install tree 4########################################################### 5$(call record-module-type,COPY_HEADERS) 6ifneq ($(strip $(LOCAL_IS_HOST_MODULE)),) 7 $(call pretty-error,LOCAL_COPY_HEADERS may not be used with host modules) 8endif 9 10# Modules linking against the SDK do not have the include path to use 11# COPY_HEADERS, so prevent them from exporting any either. 12ifdef LOCAL_SDK_VERSION 13 $(call pretty-error,Modules using LOCAL_SDK_VERSION may not use LOCAL_COPY_HEADERS) 14endif 15 16include $(BUILD_SYSTEM)/local_vndk.mk 17 18# If we're using the VNDK, only vendor modules using the VNDK may use 19# LOCAL_COPY_HEADERS. Platform libraries will not have the include path 20# present. 21ifdef BOARD_VNDK_VERSION 22ifndef LOCAL_USE_VNDK 23 $(call pretty-error,Only vendor modules using LOCAL_USE_VNDK may use LOCAL_COPY_HEADERS) 24endif 25endif 26 27# Clean up LOCAL_COPY_HEADERS_TO, since soong_ui will be comparing cleaned 28# paths to figure out which headers are obsolete and should be removed. 29LOCAL_COPY_HEADERS_TO := $(call clean-path,$(LOCAL_COPY_HEADERS_TO)) 30ifneq ($(filter /% .. ../%,$(LOCAL_COPY_HEADERS_TO)),) 31 $(call pretty-error,LOCAL_COPY_HEADERS_TO may not start with / or ../ : $(LOCAL_COPY_HEADERS_TO)) 32endif 33ifeq ($(LOCAL_COPY_HEADERS_TO),.) 34 LOCAL_COPY_HEADERS_TO := 35endif 36 37# Create a rule to copy each header, and make the 38# all_copied_headers phony target depend on each 39# destination header. copy-one-header defines the 40# actual rule. 41# 42$(foreach header,$(LOCAL_COPY_HEADERS), \ 43 $(eval _chFrom := $(LOCAL_PATH)/$(header)) \ 44 $(eval _chTo := \ 45 $(if $(LOCAL_COPY_HEADERS_TO),\ 46 $(TARGET_OUT_HEADERS)/$(LOCAL_COPY_HEADERS_TO)/$(notdir $(header)),\ 47 $(TARGET_OUT_HEADERS)/$(notdir $(header)))) \ 48 $(eval ALL_COPIED_HEADERS.$(_chTo).MAKEFILE += $(LOCAL_MODULE_MAKEFILE)) \ 49 $(eval ALL_COPIED_HEADERS.$(_chTo).SRC += $(_chFrom)) \ 50 $(if $(filter $(_chTo),$(ALL_COPIED_HEADERS)),, \ 51 $(eval ALL_COPIED_HEADERS += $(_chTo))) \ 52 ) 53_chFrom := 54_chTo := 55 56endif # LOCAL_COPY_HEADERS 57