1# TODO(b/69526027): DEPRECATE USE OF THIS.
2# USE BOARD_VNDK_VERSION:=current instead.
3
4LOCAL_PATH := $(call my-dir)
5
6# b/69526027: This VNDK-SP install routine must be removed. Instead, we must
7# build vendor variants of the VNDK-SP modules.
8
9ifndef BOARD_VNDK_VERSION
10# The libs with "vndk: {enabled: true, support_system_process: true}" will be
11# added VNDK_SP_LIBRARIES automatically. And the core variants of the VNDK-SP
12# libs will be copied to vndk-sp directory.
13# However, some of those libs need FWK-ONLY libs, which must be listed here
14# manually.
15VNDK_SP_LIBRARIES := \
16    libdexfile
17
18install_in_hw_dir := \
19   android.hidl.memory@1.0-impl
20
21vndk_sp_dir := vndk-sp-$(PLATFORM_VNDK_VERSION)
22
23define define-vndk-sp-lib
24include $$(CLEAR_VARS)
25LOCAL_MODULE := $1.vndk-sp-gen
26LOCAL_MODULE_CLASS := SHARED_LIBRARIES
27LOCAL_PREBUILT_MODULE_FILE := $$(call intermediates-dir-for,SHARED_LIBRARIES,$1,,,,)/$1.so
28LOCAL_STRIP_MODULE := false
29LOCAL_MULTILIB := first
30LOCAL_MODULE_TAGS := optional
31LOCAL_INSTALLED_MODULE_STEM := $1.so
32LOCAL_MODULE_SUFFIX := .so
33LOCAL_MODULE_RELATIVE_PATH := $(vndk_sp_dir)$(if $(filter $1,$(install_in_hw_dir)),/hw)
34include $$(BUILD_PREBUILT)
35
36ifneq ($$(TARGET_2ND_ARCH),)
37ifneq ($$(TARGET_TRANSLATE_2ND_ARCH),true)
38include $$(CLEAR_VARS)
39LOCAL_MODULE := $1.vndk-sp-gen
40LOCAL_MODULE_CLASS := SHARED_LIBRARIES
41LOCAL_PREBUILT_MODULE_FILE := $$(call intermediates-dir-for,SHARED_LIBRARIES,$1,,,$$(TARGET_2ND_ARCH_VAR_PREFIX),)/$1.so
42LOCAL_STRIP_MODULE := false
43LOCAL_MULTILIB := 32
44LOCAL_MODULE_TAGS := optional
45LOCAL_INSTALLED_MODULE_STEM := $1.so
46LOCAL_MODULE_SUFFIX := .so
47LOCAL_MODULE_RELATIVE_PATH := $(vndk_sp_dir)$(if $(filter $1,$(install_in_hw_dir)),/hw)
48include $$(BUILD_PREBUILT)
49endif # TARGET_TRANSLATE_2ND_ARCH is not true
50endif # TARGET_2ND_ARCH is not empty
51endef
52
53# Add VNDK-SP libs to the list if they are missing
54$(foreach lib,$(VNDK_SAMEPROCESS_LIBRARIES),\
55    $(if $(filter $(lib),$(VNDK_SP_LIBRARIES)),,\
56    $(eval VNDK_SP_LIBRARIES += $(lib))))
57
58# Remove libz from the VNDK-SP list (b/73296261)
59VNDK_SP_LIBRARIES := $(filter-out libz,$(VNDK_SP_LIBRARIES))
60
61$(foreach lib,$(VNDK_SP_LIBRARIES),\
62    $(eval $(call define-vndk-sp-lib,$(lib))))
63
64install_in_hw_dir :=
65
66include $(CLEAR_VARS)
67LOCAL_MODULE := vndk-sp
68LOCAL_MODULE_OWNER := google
69LOCAL_MODULE_TAGS := optional
70LOCAL_REQUIRED_MODULES := $(addsuffix .vndk-sp-gen,$(VNDK_SP_LIBRARIES))
71include $(BUILD_PHONY_PACKAGE)
72endif
73