1
2#Set LOCAL_USE_VNDK for modules going into product, vendor or odm partition, except for host modules
3#If LOCAL_SDK_VERSION is set, thats a more restrictive set, so they dont need LOCAL_USE_VNDK
4ifndef LOCAL_IS_HOST_MODULE
5ifndef LOCAL_SDK_VERSION
6  ifneq (,$(filter true,$(LOCAL_VENDOR_MODULE) $(LOCAL_ODM_MODULE) $(LOCAL_OEM_MODULE) $(LOCAL_PROPRIETARY_MODULE)))
7    LOCAL_USE_VNDK:=true
8    # Note: no need to check LOCAL_MODULE_PATH* since LOCAL_[VENDOR|ODM|OEM]_MODULE is already
9    # set correctly before this is included.
10  endif
11  ifdef PRODUCT_PRODUCT_VNDK_VERSION
12    # Product modules also use VNDK when PRODUCT_PRODUCT_VNDK_VERSION is defined.
13    ifeq (true,$(LOCAL_PRODUCT_MODULE))
14      LOCAL_USE_VNDK:=true
15      LOCAL_USE_VNDK_PRODUCT:=true
16    endif
17  endif
18endif
19endif
20
21# Verify LOCAL_USE_VNDK usage, and set LOCAL_SDK_VERSION if necessary
22
23ifdef LOCAL_IS_HOST_MODULE
24  ifdef LOCAL_USE_VNDK
25    $(shell echo $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): Do not use LOCAL_USE_VNDK with host modules >&2)
26    $(error done)
27  endif
28endif
29ifdef LOCAL_USE_VNDK
30  ifneq ($(LOCAL_USE_VNDK),true)
31    $(shell echo '$(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): LOCAL_USE_VNDK must be "true" or empty, not "$(LOCAL_USE_VNDK)"' >&2)
32    $(error done)
33  endif
34
35  ifdef LOCAL_SDK_VERSION
36    $(shell echo $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): LOCAL_USE_VNDK must not be used with LOCAL_SDK_VERSION >&2)
37    $(error done)
38  endif
39
40  # If we're not using the VNDK, drop all restrictions
41  ifndef BOARD_VNDK_VERSION
42    LOCAL_USE_VNDK:=
43    LOCAL_USE_VNDK_PRODUCT:=
44  endif
45endif
46
47