17ee3a061452c5a7e5c8e661219a1f08a14171858Elliott Hughes# -*- mode: makefile -*-
26ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# Copyright (C) 2007 The Android Open Source Project
36ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein#
46ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# Licensed under the Apache License, Version 2.0 (the "License");
56ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# you may not use this file except in compliance with the License.
66ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# You may obtain a copy of the License at
76ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein#
86ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein#      http://www.apache.org/licenses/LICENSE-2.0
96ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein#
106ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# Unless required by applicable law or agreed to in writing, software
116ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# distributed under the License is distributed on an "AS IS" BASIS,
126ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# See the License for the specific language governing permissions and
146ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# limitations under the License.
156ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
166ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein#
176ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# Definitions for building the Java library and associated tests.
186ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein#
196ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
206ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein#
216ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# Common definitions for host and target.
226ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein#
236ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
24d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson# libcore is divided into modules.
25d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson#
26d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson# The structure of each module is:
27d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson#
28d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson#   src/
29d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson#       main/               # To be shipped on every device.
30d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson#            java/          # Java source for library code.
31d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson#            native/        # C++ source for library code.
32d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson#            resources/     # Support files.
33d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson#       test/               # Built only on demand, for testing.
34d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson#            java/          # Java source for tests.
35d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson#            native/        # C++ source for tests (rare).
36d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson#            resources/     # Support files.
37d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson#
38d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson# All subdirectories are optional (hence the "2> /dev/null"s below).
396ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
4032cfe9539e1cc988fa433c18c12a89a18afe1f55Jesse Wilsondefine all-main-java-files-under
4132cfe9539e1cc988fa433c18c12a89a18afe1f55Jesse Wilson$(foreach dir,$(1),$(patsubst ./%,%,$(shell cd $(LOCAL_PATH) && find $(dir)/src/main/java -name "*.java" 2> /dev/null)))
4232cfe9539e1cc988fa433c18c12a89a18afe1f55Jesse Wilsonendef
4332cfe9539e1cc988fa433c18c12a89a18afe1f55Jesse Wilson
4432cfe9539e1cc988fa433c18c12a89a18afe1f55Jesse Wilsondefine all-test-java-files-under
45302e330bfcd86f54e43c0d4d73c3fadfc334240aBrian Carlstrom$(foreach dir,$(1),$(patsubst ./%,%,$(shell cd $(LOCAL_PATH) && find $(dir)/src/test/java -name "*.java" 2> /dev/null)))
466ac43c29e4f1918d40441178c22bfca7409101beDan Bornsteinendef
476ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
486ac43c29e4f1918d40441178c22bfca7409101beDan Bornsteindefine all-core-resource-dirs
496ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein$(shell cd $(LOCAL_PATH) && ls -d */src/$(1)/{java,resources} 2> /dev/null)
506ac43c29e4f1918d40441178c22bfca7409101beDan Bornsteinendef
516ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
52d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilson# The Java files and their associated resources.
534616c7f802521312349adec76e10f4a5b612223eKenny Rootcommon_core_src_files := $(call all-main-java-files-under,dalvik dex dom json luni xml)
546ac43c29e4f1918d40441178c22bfca7409101beDan Bornsteincore_resource_dirs := $(call all-core-resource-dirs,main)
556ac43c29e4f1918d40441178c22bfca7409101beDan Bornsteintest_resource_dirs := $(call all-core-resource-dirs,test)
566ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
577898a917ea805abf9f320ed42285ff3adf79968dJesse Wilsonifeq ($(EMMA_INSTRUMENT),true)
58ff053c366fd8277f02773b1c0a6489ad67a794f1Ying Wangifneq ($(EMMA_INSTRUMENT_STATIC),true)
593711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrom    common_core_src_files += $(call all-java-files-under, ../external/emma/core ../external/emma/pregenerated)
607898a917ea805abf9f320ed42285ff3adf79968dJesse Wilson    core_resource_dirs += ../external/emma/core/res ../external/emma/pregenerated/res
617898a917ea805abf9f320ed42285ff3adf79968dJesse Wilsonendif
62ff053c366fd8277f02773b1c0a6489ad67a794f1Ying Wangendif
637898a917ea805abf9f320ed42285ff3adf79968dJesse Wilson
643711c2119dc25aed312081a77dc028504bd482e1Brian Carlstromlibdvm_core_src_files += $(common_core_src_files) $(call all-main-java-files-under,libdvm)
653711c2119dc25aed312081a77dc028504bd482e1Brian Carlstromlibart_core_src_files += $(common_core_src_files) $(call all-main-java-files-under,libart)
663711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrom
6748d0b3ffb83c2d9f08d9f4debb09e9798cf67c6aElliott Hugheslocal_javac_flags=-encoding UTF-8
6848d0b3ffb83c2d9f08d9f4debb09e9798cf67c6aElliott Hughes#local_javac_flags+=-Xlint:all -Xlint:-serial,-deprecation,-unchecked
6948d0b3ffb83c2d9f08d9f4debb09e9798cf67c6aElliott Hugheslocal_javac_flags+=-Xmaxwarns 9999999
706ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
716ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein#
726ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# Build for the target (device).
736ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein#
746ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
756ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# Definitions to make the core library.
766ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
776ac43c29e4f1918d40441178c22bfca7409101beDan Bornsteininclude $(CLEAR_VARS)
783711c2119dc25aed312081a77dc028504bd482e1Brian CarlstromLOCAL_SRC_FILES := $(libdvm_core_src_files)
796ac43c29e4f1918d40441178c22bfca7409101beDan BornsteinLOCAL_JAVA_RESOURCE_DIRS := $(core_resource_dirs)
806ac43c29e4f1918d40441178c22bfca7409101beDan BornsteinLOCAL_NO_STANDARD_LIBRARIES := true
8148d0b3ffb83c2d9f08d9f4debb09e9798cf67c6aElliott HughesLOCAL_JAVACFLAGS := $(local_javac_flags)
826ac43c29e4f1918d40441178c22bfca7409101beDan BornsteinLOCAL_DX_FLAGS := --core-library
8353fbc0a776feebcc04f6c24b34f2c7ba39e6b5a1Jesse WilsonLOCAL_MODULE_TAGS := optional
846ac43c29e4f1918d40441178c22bfca7409101beDan BornsteinLOCAL_MODULE := core
8573d3e262ecf514ef17f47da335fdad899aecc3dcElliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
86055fe87bc2435e657dfa6a443060a61665d6e0f3Elliott HughesLOCAL_REQUIRED_MODULES := tzdata
876ac43c29e4f1918d40441178c22bfca7409101beDan Bornsteininclude $(BUILD_JAVA_LIBRARY)
886ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
893711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrominclude $(CLEAR_VARS)
903711c2119dc25aed312081a77dc028504bd482e1Brian CarlstromLOCAL_SRC_FILES := $(libart_core_src_files)
913711c2119dc25aed312081a77dc028504bd482e1Brian CarlstromLOCAL_JAVA_RESOURCE_DIRS := $(core_resource_dirs)
923711c2119dc25aed312081a77dc028504bd482e1Brian CarlstromLOCAL_NO_STANDARD_LIBRARIES := true
933711c2119dc25aed312081a77dc028504bd482e1Brian CarlstromLOCAL_JAVACFLAGS := $(local_javac_flags)
943711c2119dc25aed312081a77dc028504bd482e1Brian CarlstromLOCAL_DX_FLAGS := --core-library
953711c2119dc25aed312081a77dc028504bd482e1Brian CarlstromLOCAL_MODULE_TAGS := optional
963711c2119dc25aed312081a77dc028504bd482e1Brian CarlstromLOCAL_MODULE := core-libart
973711c2119dc25aed312081a77dc028504bd482e1Brian CarlstromLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
983711c2119dc25aed312081a77dc028504bd482e1Brian CarlstromLOCAL_REQUIRED_MODULES := tzdata
993711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrominclude $(BUILD_JAVA_LIBRARY)
1006ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
10138375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root# Create the conscrypt library
10238375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Rootinclude $(CLEAR_VARS)
10338375a4d0b3d34e2babbd2f6a013976c7c439696Kenny RootLOCAL_SRC_FILES := $(call all-main-java-files-under,crypto)
10438375a4d0b3d34e2babbd2f6a013976c7c439696Kenny RootLOCAL_JAVA_LIBRARIES := core
10538375a4d0b3d34e2babbd2f6a013976c7c439696Kenny RootLOCAL_NO_STANDARD_LIBRARIES := true
10638375a4d0b3d34e2babbd2f6a013976c7c439696Kenny RootLOCAL_JAVACFLAGS := $(local_javac_flags)
10738375a4d0b3d34e2babbd2f6a013976c7c439696Kenny RootLOCAL_JARJAR_RULES := $(LOCAL_PATH)/crypto/jarjar-rules.txt
10838375a4d0b3d34e2babbd2f6a013976c7c439696Kenny RootLOCAL_MODULE_TAGS := optional
10938375a4d0b3d34e2babbd2f6a013976c7c439696Kenny RootLOCAL_MODULE := conscrypt
11061a124188040f84b5c237c338ec0ce7d3da75ed0Kenny RootLOCAL_REQUIRED_MODULES := libjavacrypto
11138375a4d0b3d34e2babbd2f6a013976c7c439696Kenny RootLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
11238375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Rootinclude $(BUILD_JAVA_LIBRARY)
11338375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root
11438375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root# Create the conscrypt library without jarjar for tests
11538375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Rootinclude $(CLEAR_VARS)
11638375a4d0b3d34e2babbd2f6a013976c7c439696Kenny RootLOCAL_SRC_FILES := $(call all-main-java-files-under,crypto)
11738375a4d0b3d34e2babbd2f6a013976c7c439696Kenny RootLOCAL_JAVA_LIBRARIES := core
11838375a4d0b3d34e2babbd2f6a013976c7c439696Kenny RootLOCAL_NO_STANDARD_LIBRARIES := true
11938375a4d0b3d34e2babbd2f6a013976c7c439696Kenny RootLOCAL_JAVACFLAGS := $(local_javac_flags)
12038375a4d0b3d34e2babbd2f6a013976c7c439696Kenny RootLOCAL_MODULE_TAGS := optional
12138375a4d0b3d34e2babbd2f6a013976c7c439696Kenny RootLOCAL_MODULE := conscrypt-nojarjar
12238375a4d0b3d34e2babbd2f6a013976c7c439696Kenny RootLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
123a7cf230b11ad925558d07674a768c8851a8d71bfKenny Rootinclude $(BUILD_STATIC_JAVA_LIBRARY)
12438375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root
12538375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root
126c5cd6e8f15ce352d009a0d12291e14f321b76d11Elliott Hughesifeq ($(LIBCORE_SKIP_TESTS),)
12738375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root# Make the core-tests library.
128d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse Wilsoninclude $(CLEAR_VARS)
12961a124188040f84b5c237c338ec0ce7d3da75ed0Kenny RootLOCAL_SRC_FILES := $(call all-test-java-files-under,dalvik dom harmony-tests json luni xml)
130d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse WilsonLOCAL_JAVA_RESOURCE_DIRS := $(test_resource_dirs)
131d5d3526b485a6d79ec06598540ce77c6f3698f01Jesse WilsonLOCAL_NO_STANDARD_LIBRARIES := true
132a7cf230b11ad925558d07674a768c8851a8d71bfKenny RootLOCAL_JAVA_LIBRARIES := bouncycastle core core-junit okhttp
13361a124188040f84b5c237c338ec0ce7d3da75ed0Kenny RootLOCAL_STATIC_JAVA_LIBRARIES := core-tests-support sqlite-jdbc mockwebserver nist-pkix-tests okhttp-tests
134d610834e0a53866778efdab2a529e7c2f9a75dc9Elliott HughesLOCAL_JAVACFLAGS := $(local_javac_flags)
135b094af3cdc9225356724ff4b4f431fb51f781594Brian CarlstromLOCAL_MODULE := core-tests
13673d3e262ecf514ef17f47da335fdad899aecc3dcElliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
137706d53593cd8841d378dbe298a8d1940db1e71dfJesse Wilsoninclude $(BUILD_STATIC_JAVA_LIBRARY)
138c5cd6e8f15ce352d009a0d12291e14f321b76d11Elliott Hughesendif
139706d53593cd8841d378dbe298a8d1940db1e71dfJesse Wilson
1404616c7f802521312349adec76e10f4a5b612223eKenny Rootifeq ($(LIBCORE_SKIP_TESTS),)
1414616c7f802521312349adec76e10f4a5b612223eKenny Root# Make the core-tests-support library.
1424616c7f802521312349adec76e10f4a5b612223eKenny Rootinclude $(CLEAR_VARS)
1434616c7f802521312349adec76e10f4a5b612223eKenny RootLOCAL_SRC_FILES := $(call all-test-java-files-under,support)
1444616c7f802521312349adec76e10f4a5b612223eKenny RootLOCAL_JAVA_RESOURCE_DIRS := $(test_resource_dirs)
1454616c7f802521312349adec76e10f4a5b612223eKenny RootLOCAL_NO_STANDARD_LIBRARIES := true
1464616c7f802521312349adec76e10f4a5b612223eKenny RootLOCAL_JAVA_LIBRARIES := bouncycastle core core-junit
1474616c7f802521312349adec76e10f4a5b612223eKenny RootLOCAL_JAVACFLAGS := $(local_javac_flags)
1484616c7f802521312349adec76e10f4a5b612223eKenny RootLOCAL_MODULE := core-tests-support
1494616c7f802521312349adec76e10f4a5b612223eKenny RootLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
1504616c7f802521312349adec76e10f4a5b612223eKenny Rootinclude $(BUILD_STATIC_JAVA_LIBRARY)
1514616c7f802521312349adec76e10f4a5b612223eKenny Rootendif
1524616c7f802521312349adec76e10f4a5b612223eKenny Root
15361a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Rootifeq ($(LIBCORE_SKIP_TESTS),)
15461a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root# Make the conscrypt-tests library.
15561a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Rootinclude $(CLEAR_VARS)
15661a124188040f84b5c237c338ec0ce7d3da75ed0Kenny RootLOCAL_SRC_FILES := $(call all-test-java-files-under,crypto)
15761a124188040f84b5c237c338ec0ce7d3da75ed0Kenny RootLOCAL_JAVA_RESOURCE_DIRS := $(test_resource_dirs)
15861a124188040f84b5c237c338ec0ce7d3da75ed0Kenny RootLOCAL_NO_STANDARD_LIBRARIES := true
15961a124188040f84b5c237c338ec0ce7d3da75ed0Kenny RootLOCAL_JAVA_LIBRARIES := bouncycastle core core-junit
16061a124188040f84b5c237c338ec0ce7d3da75ed0Kenny RootLOCAL_STATIC_JAVA_LIBRARIES := core-tests-support conscrypt-nojarjar
16161a124188040f84b5c237c338ec0ce7d3da75ed0Kenny RootLOCAL_JAVACFLAGS := $(local_javac_flags)
16261a124188040f84b5c237c338ec0ce7d3da75ed0Kenny RootLOCAL_MODULE_TAGS := optional
16361a124188040f84b5c237c338ec0ce7d3da75ed0Kenny RootLOCAL_MODULE := conscrypt-tests
16461a124188040f84b5c237c338ec0ce7d3da75ed0Kenny RootLOCAL_REQUIRED_MODULES := libjavacrypto
16561a124188040f84b5c237c338ec0ce7d3da75ed0Kenny RootLOCAL_JARJAR_RULES := $(LOCAL_PATH)/crypto/jarjar-rules.txt
16661a124188040f84b5c237c338ec0ce7d3da75ed0Kenny RootLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
16761a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Rootinclude $(BUILD_STATIC_JAVA_LIBRARY)
16861a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Rootendif
16961a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root
1706ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# This one's tricky. One of our tests needs to have a
1716ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# resource with a "#" in its name, but Perforce doesn't
1726ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# allow us to submit such a file. So we create it here
1736ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# on-the-fly.
17443624e7f4cfd03e0425ad4a4ce818e403900b0d1Ying WangTMP_RESOURCE_DIR := $(intermediates.COMMON)/tmp/
1756ac43c29e4f1918d40441178c22bfca7409101beDan BornsteinTMP_RESOURCE_FILE := org/apache/harmony/luni/tests/java/lang/test\#.properties
1766ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
1776ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein$(TMP_RESOURCE_DIR)$(TMP_RESOURCE_FILE):
1786ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein	@mkdir -p $(dir $@)
1796ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein	@echo "Hello, world!" > $@
1806ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
18143624e7f4cfd03e0425ad4a4ce818e403900b0d1Ying Wang$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_EXTRA_JAR_ARGS := $(extra_jar_args) -C "$(TMP_RESOURCE_DIR)" "$(TMP_RESOURCE_FILE)"
1826ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein$(LOCAL_INTERMEDIATE_TARGETS): $(TMP_RESOURCE_DIR)$(TMP_RESOURCE_FILE)
1836ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
1846ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
1856ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein#
1866ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein# Build for the host.
1876ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein#
1886ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
1896f567f2bcbd07375c723e03c994a7c7674f42c7eTsu Chiang Chuanginclude $(CLEAR_VARS)
1906f567f2bcbd07375c723e03c994a7c7674f42c7eTsu Chiang ChuangLOCAL_SRC_FILES := $(call all-main-java-files-under, dex)
1916f567f2bcbd07375c723e03c994a7c7674f42c7eTsu Chiang ChuangLOCAL_MODULE_TAGS := optional
1926f567f2bcbd07375c723e03c994a7c7674f42c7eTsu Chiang ChuangLOCAL_MODULE := dex-host
1936f567f2bcbd07375c723e03c994a7c7674f42c7eTsu Chiang Chuanginclude $(BUILD_HOST_JAVA_LIBRARY)
1946f567f2bcbd07375c723e03c994a7c7674f42c7eTsu Chiang Chuang
1956ac43c29e4f1918d40441178c22bfca7409101beDan Bornsteinifeq ($(WITH_HOST_DALVIK),true)
1966ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
1976ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein    # Definitions to make the core library.
1986ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein    include $(CLEAR_VARS)
1993711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrom    LOCAL_SRC_FILES := $(libdvm_core_src_files)
2006ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein    LOCAL_JAVA_RESOURCE_DIRS := $(core_resource_dirs)
2016ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein    LOCAL_NO_STANDARD_LIBRARIES := true
20248d0b3ffb83c2d9f08d9f4debb09e9798cf67c6aElliott Hughes    LOCAL_JAVACFLAGS := $(local_javac_flags)
2036ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein    LOCAL_DX_FLAGS := --core-library
2047898a917ea805abf9f320ed42285ff3adf79968dJesse Wilson    LOCAL_BUILD_HOST_DEX := true
205f2678961b60cfe08d8b9aa1210cb75291496f83fJean-Baptiste Queru    LOCAL_MODULE_TAGS := optional
20653fbc0a776feebcc04f6c24b34f2c7ba39e6b5a1Jesse Wilson    LOCAL_MODULE := core-hostdex
20773d3e262ecf514ef17f47da335fdad899aecc3dcElliott Hughes    LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
208055fe87bc2435e657dfa6a443060a61665d6e0f3Elliott Hughes    LOCAL_REQUIRED_MODULES := tzdata-host
2093711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrom    include $(BUILD_HOST_JAVA_LIBRARY)
2106ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
2113711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrom    include $(CLEAR_VARS)
2123711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrom    LOCAL_SRC_FILES := $(libart_core_src_files)
2133711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrom    LOCAL_JAVA_RESOURCE_DIRS := $(core_resource_dirs)
2143711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrom    LOCAL_NO_STANDARD_LIBRARIES := true
2153711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrom    LOCAL_JAVACFLAGS := $(local_javac_flags)
2163711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrom    LOCAL_DX_FLAGS := --core-library
2173711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrom    LOCAL_BUILD_HOST_DEX := true
2183711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrom    LOCAL_MODULE_TAGS := optional
2193711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrom    LOCAL_MODULE := core-libart-hostdex
2203711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrom    LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
2213711c2119dc25aed312081a77dc028504bd482e1Brian Carlstrom    LOCAL_REQUIRED_MODULES := tzdata-host
2226ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein    include $(BUILD_HOST_JAVA_LIBRARY)
2236ac43c29e4f1918d40441178c22bfca7409101beDan Bornstein
22438375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    # Make the conscrypt-hostdex library
22538375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    include $(CLEAR_VARS)
22638375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_SRC_FILES := $(call all-main-java-files-under,crypto)
22738375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_JAVA_LIBRARIES := core-hostdex
22838375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_NO_STANDARD_LIBRARIES := true
22938375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_JAVACFLAGS := $(local_javac_flags)
23038375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_JARJAR_RULES := $(LOCAL_PATH)/crypto/jarjar-rules.txt
23138375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_BUILD_HOST_DEX := true
23238375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_MODULE_TAGS := optional
23338375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_MODULE := conscrypt-hostdex
23461a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_REQUIRED_MODULES := libjavacrypto
23538375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
23638375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    include $(BUILD_HOST_JAVA_LIBRARY)
23738375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root
23838375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    # Make the conscrypt-hostdex-nojarjar for tests
23938375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    include $(CLEAR_VARS)
24038375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_SRC_FILES := $(call all-main-java-files-under,crypto)
24138375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_JAVA_LIBRARIES := core-hostdex
24238375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_NO_STANDARD_LIBRARIES := true
24338375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_JAVACFLAGS := $(local_javac_flags)
24438375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_BUILD_HOST_DEX := true
24538375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_MODULE_TAGS := optional
24638375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_MODULE := conscrypt-hostdex-nojarjar
24738375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
24838375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root    include $(BUILD_HOST_JAVA_LIBRARY)
24938375a4d0b3d34e2babbd2f6a013976c7c439696Kenny Root
250d39b1d6298afe1cf6364d4d118596045005c8688Brian Carlstrom    # Make the core-tests library.
251c5cd6e8f15ce352d009a0d12291e14f321b76d11Elliott Hughes    ifeq ($(LIBCORE_SKIP_TESTS),)
252d39b1d6298afe1cf6364d4d118596045005c8688Brian Carlstrom    include $(CLEAR_VARS)
25361a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_SRC_FILES := $(call all-test-java-files-under,dalvik dom json luni xml)
254d39b1d6298afe1cf6364d4d118596045005c8688Brian Carlstrom    LOCAL_JAVA_RESOURCE_DIRS := $(test_resource_dirs)
255d39b1d6298afe1cf6364d4d118596045005c8688Brian Carlstrom    LOCAL_NO_STANDARD_LIBRARIES := true
25661a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_JAVA_LIBRARIES := bouncycastle-hostdex core-hostdex core-junit-hostdex core-tests-support-hostdex okhttp-hostdex
25722a12c91eade02f4bbbead512a63a1c322adecb2Brian Carlstrom    LOCAL_STATIC_JAVA_LIBRARIES := sqlite-jdbc-host mockwebserver-host nist-pkix-tests-host
258d39b1d6298afe1cf6364d4d118596045005c8688Brian Carlstrom    LOCAL_JAVACFLAGS := $(local_javac_flags)
259e79ac583cf570e66762c93c9bdfea14fd5c6249aYing Wang    LOCAL_MODULE_TAGS := optional
260d39b1d6298afe1cf6364d4d118596045005c8688Brian Carlstrom    LOCAL_MODULE := core-tests-hostdex
26173d3e262ecf514ef17f47da335fdad899aecc3dcElliott Hughes    LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
262d39b1d6298afe1cf6364d4d118596045005c8688Brian Carlstrom    LOCAL_BUILD_HOST_DEX := true
263d39b1d6298afe1cf6364d4d118596045005c8688Brian Carlstrom    include $(BUILD_HOST_JAVA_LIBRARY)
264c5cd6e8f15ce352d009a0d12291e14f321b76d11Elliott Hughes    endif
26561a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root
26661a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    # Make the core-tests-support library.
26761a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    ifeq ($(LIBCORE_SKIP_TESTS),)
26861a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    include $(CLEAR_VARS)
26961a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_SRC_FILES := $(call all-test-java-files-under,support)
27061a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_JAVA_RESOURCE_DIRS := $(test_resource_dirs)
27161a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_NO_STANDARD_LIBRARIES := true
27261a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_JAVA_LIBRARIES := bouncycastle-hostdex core-hostdex core-junit-hostdex
27361a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_JAVACFLAGS := $(local_javac_flags)
27461a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_MODULE_TAGS := optional
27561a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_MODULE := core-tests-support-hostdex
27661a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
27761a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_BUILD_HOST_DEX := true
27861a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    include $(BUILD_HOST_JAVA_LIBRARY)
27961a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    endif
28061a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root
28161a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    # Make the conscrypt-tests library.
28261a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    ifeq ($(LIBCORE_SKIP_TESTS),)
28361a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    include $(CLEAR_VARS)
28461a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_SRC_FILES := $(call all-test-java-files-under,crypto)
28561a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_JAVA_RESOURCE_DIRS := $(test_resource_dirs)
28661a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_NO_STANDARD_LIBRARIES := true
28761a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_JAVA_LIBRARIES := bouncycastle-hostdex core-hostdex core-junit-hostdex core-tests-support-hostdex conscrypt-hostdex-nojarjar
28861a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_JAVACFLAGS := $(local_javac_flags)
28961a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_MODULE_TAGS := optional
29061a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_MODULE := conscrypt-tests-hostdex
29161a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_REQUIRED_MODULES := libjavacrypto
29261a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
29361a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    LOCAL_BUILD_HOST_DEX := true
29461a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    include $(BUILD_HOST_JAVA_LIBRARY)
29561a124188040f84b5c237c338ec0ce7d3da75ed0Kenny Root    endif
29667cc34b75c18ae7d02c90282cb8616b82e1d8fcbElliott Hughesendif
297dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom
298dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom#
299dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom# Local droiddoc for faster libcore testing
300dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom#
301dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom#
302dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom# Run with:
30392fc63ea7bdfcca72203ba0d183a43df0765cf79Elliott Hughes#     mm -j32 libcore-docs
304dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom#
305dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom# Main output:
30692fc63ea7bdfcca72203ba0d183a43df0765cf79Elliott Hughes#     ../out/target/common/docs/libcore/reference/packages.html
307dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom#
308dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom# All text for proofreading (or running tools over):
30992fc63ea7bdfcca72203ba0d183a43df0765cf79Elliott Hughes#     ../out/target/common/docs/libcore-proofread.txt
310dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom#
311dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom# TODO list of missing javadoc, etc:
31292fc63ea7bdfcca72203ba0d183a43df0765cf79Elliott Hughes#     ../out/target/common/docs/libcore-docs-todo.html
313dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom#
314dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom# Rerun:
31592fc63ea7bdfcca72203ba0d183a43df0765cf79Elliott Hughes#     rm -rf ../out/target/common/docs/libcore-timestamp && mm -j32 libcore-docs
316dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom#
317dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrominclude $(CLEAR_VARS)
318dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom
319dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom# for shared defintion of libcore_to_document
320dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrominclude $(LOCAL_PATH)/Docs.mk
321dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom
322cfa84a2aac159bb8a1763298882df7aa98f7fc6fBrian CarlstromLOCAL_SRC_FILES:=$(call libcore_to_document,$(LOCAL_PATH))
323dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom# rerun doc generation without recompiling the java
324dc3c15284f838a1330135249b7b8255b616b4670Brian CarlstromLOCAL_JAVA_LIBRARIES:=
325d610834e0a53866778efdab2a529e7c2f9a75dc9Elliott HughesLOCAL_JAVACFLAGS := $(local_javac_flags)
326dc3c15284f838a1330135249b7b8255b616b4670Brian CarlstromLOCAL_MODULE_CLASS:=JAVA_LIBRARIES
327dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom
328dc3c15284f838a1330135249b7b8255b616b4670Brian CarlstromLOCAL_MODULE := libcore
32973d3e262ecf514ef17f47da335fdad899aecc3dcElliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
330dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom
331b98632738dfc72ba32ae0160eada03a97a303288Elliott HughesLOCAL_DROIDDOC_OPTIONS := \
332dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom -offlinemode \
333dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom -title "libcore" \
334dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom -proofread $(OUT_DOCS)/$(LOCAL_MODULE)-proofread.txt \
335dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom -todo ../$(LOCAL_MODULE)-docs-todo.html \
336dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom -hdf android.whichdoc offline
337dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom
338dc3c15284f838a1330135249b7b8255b616b4670Brian CarlstromLOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
339dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrom
340dc3c15284f838a1330135249b7b8255b616b4670Brian Carlstrominclude $(BUILD_DROIDDOC)
341