Home | History | Annotate | Download | only in core
      1 #
      2 # Copyright (C) 2014 The Android Open Source Project
      3 #
      4 # Licensed under the Apache License, Version 2.0 (the "License");
      5 # you may not use this file except in compliance with the License.
      6 # You may obtain a copy of the License at
      7 #
      8 #      http://www.apache.org/licenses/LICENSE-2.0
      9 #
     10 # Unless required by applicable law or agreed to in writing, software
     11 # distributed under the License is distributed on an "AS IS" BASIS,
     12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 # See the License for the specific language governing permissions and
     14 # limitations under the License.
     15 #
     16 
     17 # Set up variables and dependency for one odex file
     18 # Input variables: my_2nd_arch_prefix
     19 # Output(modified) variables: built_odex, installed_odex, built_installed_odex
     20 
     21 my_built_odex := $(call get-odex-file-path,$($(my_2nd_arch_prefix)DEX2OAT_TARGET_ARCH),$(LOCAL_BUILT_MODULE))
     22 ifdef LOCAL_DEX_PREOPT_IMAGE_LOCATION
     23 my_dex_preopt_image_location := $(LOCAL_DEX_PREOPT_IMAGE_LOCATION)
     24 else
     25 my_dex_preopt_image_location := $($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_LOCATION)
     26 endif
     27 my_dex_preopt_image_filename := $(call get-image-file-path,$($(my_2nd_arch_prefix)DEX2OAT_TARGET_ARCH),$(my_dex_preopt_image_location))
     28 $(my_built_odex): PRIVATE_2ND_ARCH_VAR_PREFIX := $(my_2nd_arch_prefix)
     29 $(my_built_odex): PRIVATE_DEX_LOCATION := $(patsubst $(PRODUCT_OUT)%,%,$(LOCAL_INSTALLED_MODULE))
     30 $(my_built_odex): PRIVATE_DEX_PREOPT_IMAGE_LOCATION := $(my_dex_preopt_image_location)
     31 $(my_built_odex) : $($(my_2nd_arch_prefix)DEXPREOPT_ONE_FILE_DEPENDENCY_BUILT_BOOT_PREOPT) \
     32     $(DEXPREOPT_ONE_FILE_DEPENDENCY_TOOLS) \
     33     $(my_dex_preopt_image_filename)
     34 
     35 my_installed_odex := $(call get-odex-installed-file-path,$($(my_2nd_arch_prefix)DEX2OAT_TARGET_ARCH),$(LOCAL_INSTALLED_MODULE))
     36 
     37 my_built_vdex := $(patsubst %.odex,%.vdex,$(my_built_odex))
     38 my_installed_vdex := $(patsubst %.odex,%.vdex,$(my_installed_odex))
     39 my_installed_art := $(patsubst %.odex,%.art,$(my_installed_odex))
     40 
     41 ifndef LOCAL_DEX_PREOPT_APP_IMAGE
     42 # Local override not defined, use the global one.
     43 ifeq (true,$(WITH_DEX_PREOPT_APP_IMAGE))
     44   LOCAL_DEX_PREOPT_APP_IMAGE := true
     45 endif
     46 endif
     47 
     48 ifeq (true,$(LOCAL_DEX_PREOPT_APP_IMAGE))
     49 my_built_art := $(patsubst %.odex,%.art,$(my_built_odex))
     50 $(my_built_odex): PRIVATE_ART_FILE_PREOPT_FLAGS := --app-image-file=$(my_built_art) \
     51     --image-format=lz4
     52 $(eval $(call copy-one-file,$(my_built_art),$(my_installed_art)))
     53 built_art += $(my_built_art)
     54 installed_art += $(my_installed_art)
     55 built_installed_art += $(my_built_art):$(my_installed_art)
     56 endif
     57 
     58 $(eval $(call copy-one-file,$(my_built_odex),$(my_installed_odex)))
     59 $(eval $(call copy-one-file,$(my_built_vdex),$(my_installed_vdex)))
     60 
     61 built_odex += $(my_built_odex)
     62 built_vdex += $(my_built_vdex)
     63 
     64 installed_odex += $(my_installed_odex)
     65 installed_vdex += $(my_installed_vdex)
     66 
     67 built_installed_odex += $(my_built_odex):$(my_installed_odex)
     68 built_installed_vdex += $(my_built_vdex):$(my_installed_vdex)
     69