OSDN Git Service

Update Security String to 2017-05-05 on nyc-dev
[android-x86/build.git] / core / install_jni_libs.mk
1 # Decides how to install the jni libraries needed by an apk.
2 # Input variables:
3 #   my_module_multilib, LOCAL_2ND_ARCH_VAR_PREFIX (from package.mk or prebuilt.mk)
4 #   rs_compatibility_jni_libs (from java.mk)
5 #   my_module_path (from base_rules.mk)
6 #   partition_tag (from base_rules.mk)
7 #   my_prebuilt_src_file (from prebuilt_internal.mk)
8 #
9 # Output variables:
10 #   jni_shared_libraries, jni_shared_libraries_abi, jni_shared_libraries_with_abis if we are going to embed the libraries into the apk;
11 #   embedded_prebuilt_jni_libs, prebuilt jni libs embedded in prebuilt apk.
12 #
13
14 my_embed_jni :=
15 ifneq ($(TARGET_BUILD_APPS),)
16 my_embed_jni := true
17 endif
18 ifneq ($(filter tests samples, $(LOCAL_MODULE_TAGS)),)
19 my_embed_jni := true
20 endif
21 ifeq ($(filter $(TARGET_OUT)/% $(TARGET_OUT_VENDOR)/% $(TARGET_OUT_OEM)/%, $(my_module_path)),)
22 # If this app isn't to be installed to system partitions.
23 my_embed_jni := true
24 endif
25
26 jni_shared_libraries :=
27 jni_shared_libraries_abis :=
28 # jni_shared_libraries_with_abis is a list of <abi>:<path-to-the-built-jni-lib>
29 jni_shared_libraries_with_abis :=
30 embedded_prebuilt_jni_libs :=
31
32 #######################################
33 # For TARGET_ARCH
34 my_2nd_arch_prefix :=
35 my_add_jni :=
36 # The module is built for TARGET_ARCH
37 ifeq ($(my_2nd_arch_prefix),$(LOCAL_2ND_ARCH_VAR_PREFIX))
38 my_add_jni := true
39 endif
40 # Or it explicitly requires both
41 ifeq ($(my_module_multilib),both)
42 my_add_jni := true
43 endif
44 ifeq ($(my_add_jni),true)
45 my_prebuilt_jni_libs := $(LOCAL_PREBUILT_JNI_LIBS_$(TARGET_ARCH))
46 ifndef my_prebuilt_jni_libs
47 my_prebuilt_jni_libs := $(LOCAL_PREBUILT_JNI_LIBS)
48 endif
49 include $(BUILD_SYSTEM)/install_jni_libs_internal.mk
50 jni_shared_libraries += $(my_jni_shared_libraries)
51 jni_shared_libraries_abis += $(my_jni_shared_libraries_abi)
52 jni_shared_libraries_with_abis += $(addprefix $(my_jni_shared_libraries_abi):,\
53     $(my_jni_shared_libraries))
54 embedded_prebuilt_jni_libs += $(my_embedded_prebuilt_jni_libs)
55
56 # Include RS dynamically-generated libraries as well
57 # TODO: Add multilib support once RS supports generating multilib libraries.
58 jni_shared_libraries += $(rs_compatibility_jni_libs)
59 jni_shared_libraries_with_abis += $(addprefix $(my_jni_shared_libraries_abi):,\
60     $(rs_compatibility_jni_libs))
61 endif  # my_add_jni
62
63 #######################################
64 # For TARGET_2ND_ARCH
65 ifdef TARGET_2ND_ARCH
66 my_2nd_arch_prefix := $(TARGET_2ND_ARCH_VAR_PREFIX)
67 my_add_jni :=
68 # The module is built for TARGET_2ND_ARCH
69 ifeq ($(my_2nd_arch_prefix),$(LOCAL_2ND_ARCH_VAR_PREFIX))
70 my_add_jni := true
71 endif
72 # Or it explicitly requires both
73 ifeq ($(my_module_multilib),both)
74 my_add_jni := true
75 endif
76 ifeq ($(my_add_jni),true)
77 my_prebuilt_jni_libs := $(LOCAL_PREBUILT_JNI_LIBS_$(TARGET_2ND_ARCH))
78 ifndef my_prebuilt_jni_libs
79 my_prebuilt_jni_libs := $(LOCAL_PREBUILT_JNI_LIBS)
80 endif
81 include $(BUILD_SYSTEM)/install_jni_libs_internal.mk
82 jni_shared_libraries += $(my_jni_shared_libraries)
83 jni_shared_libraries_abis += $(my_jni_shared_libraries_abi)
84 jni_shared_libraries_with_abis += $(addprefix $(my_jni_shared_libraries_abi):,\
85     $(my_jni_shared_libraries))
86 embedded_prebuilt_jni_libs += $(my_embedded_prebuilt_jni_libs)
87 endif  # my_add_jni
88 endif  # TARGET_2ND_ARCH
89
90 jni_shared_libraries := $(strip $(jni_shared_libraries))
91 jni_shared_libraries_abis := $(sort $(jni_shared_libraries_abis))
92 jni_shared_libraries_with_abis := $(strip $(jni_shared_libraries_with_abis))
93 embedded_prebuilt_jni_libs := $(strip $(embedded_prebuilt_jni_libs))