1# 2# Copyright (C) 2018 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 17LOCAL_PATH := $(call my-dir) 18 19# The veridex tool takes stub dex files as input, so we generate both the system and oahl 20# dex stubs. 21 22system_stub_dex := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/core_dex_intermediates/classes.dex 23$(system_stub_dex): PRIVATE_MIN_SDK_VERSION := 1000 24$(system_stub_dex): $(call resolve-prebuilt-sdk-jar-path,system_current) | $(ZIP2ZIP) $(DX) 25 $(transform-classes.jar-to-dex) 26 27 28oahl_stub_dex := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/oahl_dex_intermediates/classes.dex 29$(oahl_stub_dex): PRIVATE_MIN_SDK_VERSION := 1000 30$(oahl_stub_dex): $(call get-prebuilt-sdk-dir,current)/org.apache.http.legacy.jar | $(ZIP2ZIP) $(DX) 31 $(transform-classes.jar-to-dex) 32 33# Phony rule to create all dependencies of the appcompat.sh script. 34.PHONY: appcompat 35appcompat: $(system_stub_dex) $(oahl_stub_dex) $(HOST_OUT_EXECUTABLES)/veridex \ 36 $(INTERNAL_PLATFORM_HIDDENAPI_FLAGS) 37 38VERIDEX_FILES_PATH := \ 39 $(call intermediates-dir-for,PACKAGING,veridex,HOST)/veridex.zip 40 41VERIDEX_FILES := $(LOCAL_PATH)/appcompat.sh 42 43$(VERIDEX_FILES_PATH): PRIVATE_VERIDEX_FILES := $(VERIDEX_FILES) 44$(VERIDEX_FILES_PATH): PRIVATE_SYSTEM_STUBS_DEX_DIR := $(dir $(system_stub_dex)) 45$(VERIDEX_FILES_PATH): PRIVATE_SYSTEM_STUBS_ZIP := $(dir $(VERIDEX_FILES_PATH))/system-stubs.zip 46$(VERIDEX_FILES_PATH): PRIVATE_OAHL_STUBS_DEX_DIR := $(dir $(oahl_stub_dex)) 47$(VERIDEX_FILES_PATH): PRIVATE_OAHL_STUBS_ZIP := $(dir $(VERIDEX_FILES_PATH))/org.apache.http.legacy-stubs.zip 48$(VERIDEX_FILES_PATH) : $(SOONG_ZIP) $(VERIDEX_FILES) $(INTERNAL_PLATFORM_HIDDENAPI_FLAGS) \ 49 $(HOST_OUT_EXECUTABLES)/veridex $(system_stub_dex) $(oahl_stub_dex) 50 rm -rf $(dir $@)/* 51 ls -1 $(PRIVATE_SYSTEM_STUBS_DEX_DIR)/classes*.dex | sort >$(PRIVATE_SYSTEM_STUBS_ZIP).list 52 $(SOONG_ZIP) -o $(PRIVATE_SYSTEM_STUBS_ZIP) -C $(PRIVATE_SYSTEM_STUBS_DEX_DIR) -l $(PRIVATE_SYSTEM_STUBS_ZIP).list 53 rm $(PRIVATE_SYSTEM_STUBS_ZIP).list 54 ls -1 $(PRIVATE_OAHL_STUBS_DEX_DIR)/classes*.dex | sort >$(PRIVATE_OAHL_STUBS_ZIP).list 55 $(SOONG_ZIP) -o $(PRIVATE_OAHL_STUBS_ZIP) -C $(PRIVATE_OAHL_STUBS_DEX_DIR) -l $(PRIVATE_OAHL_STUBS_ZIP).list 56 rm $(PRIVATE_OAHL_STUBS_ZIP).list 57 $(SOONG_ZIP) -o $@ -C art/tools/veridex -f $(PRIVATE_VERIDEX_FILES) \ 58 -C $(dir $(INTERNAL_PLATFORM_HIDDENAPI_FLAGS)) \ 59 -f $(INTERNAL_PLATFORM_HIDDENAPI_FLAGS) \ 60 -C $(HOST_OUT_EXECUTABLES) -f $(HOST_OUT_EXECUTABLES)/veridex \ 61 -C $(dir $(PRIVATE_SYSTEM_STUBS_ZIP)) -f $(PRIVATE_SYSTEM_STUBS_ZIP) \ 62 -C $(dir $(PRIVATE_OAHL_STUBS_ZIP)) -f $(PRIVATE_OAHL_STUBS_ZIP) 63 rm -f $(PRIVATE_SYSTEM_STUBS_ZIP) 64 rm -f $(PRIVATE_OAHL_STUBS_ZIP) 65 66# Make the zip file available for prebuilts. 67$(call dist-for-goals,sdk,$(VERIDEX_FILES_PATH)) 68 69VERIDEX_FILES := 70system_stub_dex := 71oahl_stub_dex := 72