1# Copyright (C) 2009 The Android Open Source Project 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15# First we build an apk without the core-tests resource 16cts_ORIGINAL_PACKAGE_NAME := $(LOCAL_PACKAGE_NAME) 17 18LOCAL_PACKAGE_NAME := $(LOCAL_PACKAGE_NAME).no-core-tests-res 19# Make sure this apk won't get installed 20LOCAL_UNINSTALLABLE_MODULE := true 21 22LOCAL_JAVA_LIBRARIES := android.test.runner bouncycastle 23LOCAL_PROGUARD_ENABLED := disabled 24LOCAL_DEX_PREOPT := false 25 26include $(BUILD_PACKAGE) 27# Vars set by $(BUILD_PACKAGE) and needed by the below module definition. 28cts_no-core-tests-res_BUILT_MODULE := $(LOCAL_BUILT_MODULE) 29cts_no-core-tests-res_private_key := $(private_key) 30cts_no-core-tests-res_certificate := $(certificate) 31 32################################## 33# Now the rules to build the apk with core-tests resource 34include $(CLEAR_VARS) 35 36LOCAL_MODULE := $(cts_ORIGINAL_PACKAGE_NAME) 37LOCAL_MODULE_CLASS := APPS 38# don't include these packages in any target 39LOCAL_MODULE_TAGS := optional 40# and when built explicitly put them in the data partition 41LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS) 42LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) 43LOCAL_BUILT_MODULE_STEM := package.apk 44 45include $(BUILD_SYSTEM)/base_rules.mk 46 47CORETESTS_INTERMEDIATES := $(call intermediates-dir-for,JAVA_LIBRARIES,core-tests,,COMMON) 48 49$(LOCAL_BUILT_MODULE): PRIVATE_INTERMEDIATES_COMMON := $(intermediates.COMMON) 50$(LOCAL_BUILT_MODULE): PRIVATE_CORETESTS_INTERMEDIATES_COMMON := $(CORETESTS_INTERMEDIATES) 51$(LOCAL_BUILT_MODULE): PRIVATE_PRIVATE_KEY := $(cts_no-core-tests-res_private_key) 52$(LOCAL_BUILT_MODULE): PRIVATE_CERTIFICATE := $(cts_no-core-tests-res_certificate) 53$(LOCAL_BUILT_MODULE): $(cts_no-core-tests-res_BUILT_MODULE) $(CORETESTS_INTERMEDIATES)/javalib.jar 54 @echo "Add resources to package ($@)" 55 $(hide) mkdir -p $(dir $@) $(PRIVATE_INTERMEDIATES_COMMON) 56 $(hide) rm -rf $(PRIVATE_INTERMEDIATES_COMMON)/ctsclasses 57 # javalib.jar should only contain .dex files, but the harmony tests also include 58 # some .class files, so get rid of them 59 $(hide) unzip -qo $(PRIVATE_CORETESTS_INTERMEDIATES_COMMON)/javalib.jar \ 60 -d $(PRIVATE_INTERMEDIATES_COMMON)/ctsclasses 61 $(hide) find $(PRIVATE_INTERMEDIATES_COMMON)/ctsclasses -type f -name "*.class" -delete 62 $(hide) rm -f $(PRIVATE_INTERMEDIATES_COMMON)/ctsclasses/classes.dex 63 $(hide) cp $< $@ 64 $(hide) jar uf $@ -C $(PRIVATE_INTERMEDIATES_COMMON)/ctsclasses . 65 $(sign-package) 66 $(align-package) 67 68# some global vars set in $(BUILD_PACKAGE), not sure if we really need here 69PACKAGES.$(cts_ORIGINAL_PACKAGE_NAME).PRIVATE_KEY := $(cts_no-core-tests-res_private_key) 70PACKAGES.$(cts_ORIGINAL_PACKAGE_NAME).CERTIFICATE := $(cts_no-core-tests-res_certificate) 71PACKAGES := $(PACKAGES) $(cts_ORIGINAL_PACKAGE_NAME) 72