Home | History | Annotate | Download | only in libcore
      1 # -*- mode: makefile -*-
      2 # Copyright (C) 2007 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 # Definitions for building the Java library and associated tests.
     18 #
     19 
     20 #
     21 # Common definitions for host and target.
     22 #
     23 
     24 # libcore is divided into modules.
     25 #
     26 # The structure of each module is:
     27 #
     28 #   src/
     29 #       main/               # To be shipped on every device.
     30 #            java/          # Java source for library code.
     31 #            native/        # C++ source for library code.
     32 #            resources/     # Support files.
     33 #       test/               # Built only on demand, for testing.
     34 #            java/          # Java source for tests.
     35 #            native/        # C++ source for tests (rare).
     36 #            resources/     # Support files.
     37 #
     38 # All subdirectories are optional (hence the "2> /dev/null"s below).
     39 
     40 include $(LOCAL_PATH)/openjdk_java_files.mk
     41 include $(LOCAL_PATH)/non_openjdk_java_files.mk
     42 
     43 define all-test-java-files-under
     44 $(foreach dir,$(1),$(patsubst ./%,%,$(shell cd $(LOCAL_PATH) && (find $(dir)/src/test/java -name "*.java" 2> /dev/null) | grep -v -f java_tests_blacklist)))
     45 endef
     46 
     47 define all-core-resource-dirs
     48 $(shell cd $(LOCAL_PATH) && ls -d */src/$(1)/{java,resources} 2> /dev/null)
     49 endef
     50 
     51 # The Java files and their associated resources.
     52 core_resource_dirs := \
     53   luni/src/main/java \
     54   ojluni/src/main/resources/
     55 test_resource_dirs := $(filter-out ojluni/%,$(call all-core-resource-dirs,test))
     56 test_src_files := $(call all-test-java-files-under,dalvik dalvik/test-rules dom harmony-tests json luni xml)
     57 ojtest_src_files := $(call all-test-java-files-under,ojluni)
     58 ojtest_resource_dirs := $(filter ojluni/%,$(call all-core-resource-dirs,test))
     59 
     60 ifeq ($(EMMA_INSTRUMENT),true)
     61 ifneq ($(EMMA_INSTRUMENT_STATIC),true)
     62     nojcore_src_files += $(call all-java-files-under, ../external/emma/core ../external/emma/pregenerated)
     63     core_resource_dirs += ../external/emma/core/res ../external/emma/pregenerated/res
     64 endif
     65 endif
     66 
     67 local_javac_flags=-encoding UTF-8
     68 #local_javac_flags+=-Xlint:all -Xlint:-serial,-deprecation,-unchecked
     69 local_javac_flags+=-Xmaxwarns 9999999
     70 
     71 # For user / userdebug builds, strip the local variable table and the local variable
     72 # type table. This has no bearing on stack traces, but will leave less information
     73 # available via JDWP.
     74 #
     75 # TODO: Should this be conditioned on a PRODUCT_ flag or should we just turn this
     76 # on for all builds. Also, name of the flag TBD.
     77 ifneq (,$(PRODUCT_MINIMIZE_JAVA_DEBUG_INFO))
     78 ifneq (,$(filter userdebug user,$(TARGET_BUILD_VARIANT)))
     79 local_javac_flags+= -g:source,lines
     80 local_jack_flags+= -D jack.dex.debug.vars=false -D jack.dex.debug.vars.synthetic=false
     81 endif
     82 endif
     83 
     84 #
     85 # ICU4J related rules.
     86 #
     87 # We compile android_icu4j along with core-libart because we're implementing parts of core-libart
     88 # in terms of android_icu4j.
     89 android_icu4j_root := ../external/icu/android_icu4j/
     90 android_icu4j_src_files := $(call all-java-files-under,$(android_icu4j_root)/src/main/java)
     91 android_icu4j_resource_dirs := $(android_icu4j_root)/resources
     92 
     93 #
     94 # Build for the target (device).
     95 #
     96 
     97 include $(CLEAR_VARS)
     98 LOCAL_SRC_FILES := $(openjdk_java_files) $(non_openjdk_java_files) $(android_icu4j_src_files) $(openjdk_lambda_stub_files)
     99 LOCAL_JAVA_RESOURCE_DIRS := $(core_resource_dirs) $(android_icu4j_resource_dirs)
    100 LOCAL_NO_STANDARD_LIBRARIES := true
    101 LOCAL_JAVACFLAGS := $(local_javac_flags)
    102 LOCAL_JACK_FLAGS := $(local_jack_flags)
    103 LOCAL_DX_FLAGS := --core-library
    104 LOCAL_MODULE_TAGS := optional
    105 LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    106 LOCAL_MODULE := core-all
    107 LOCAL_REQUIRED_MODULES := tzdata tzlookup.xml
    108 LOCAL_CORE_LIBRARY := true
    109 LOCAL_UNINSTALLABLE_MODULE := true
    110 include $(BUILD_JAVA_LIBRARY)
    111 
    112 include $(CLEAR_VARS)
    113 LOCAL_SRC_FILES := $(openjdk_java_files)
    114 LOCAL_JAVA_RESOURCE_DIRS := $(core_resource_dirs)
    115 LOCAL_NO_STANDARD_LIBRARIES := true
    116 LOCAL_JAVACFLAGS := $(local_javac_flags)
    117 LOCAL_JACK_FLAGS := $(local_jack_flags)
    118 LOCAL_DX_FLAGS := --core-library
    119 LOCAL_MODULE_TAGS := optional
    120 LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    121 LOCAL_MODULE := core-oj
    122 LOCAL_JAVA_LIBRARIES := core-all
    123 LOCAL_NOTICE_FILE := $(LOCAL_PATH)/ojluni/NOTICE
    124 LOCAL_REQUIRED_MODULES := tzdata tzlookup.xml
    125 LOCAL_CORE_LIBRARY := true
    126 include $(BUILD_JAVA_LIBRARY)
    127 
    128 # Definitions to make the core library.
    129 include $(CLEAR_VARS)
    130 LOCAL_SRC_FILES := $(non_openjdk_java_files) $(android_icu4j_src_files)
    131 LOCAL_JAVA_RESOURCE_DIRS := $(android_icu4j_resource_dirs)
    132 LOCAL_NO_STANDARD_LIBRARIES := true
    133 LOCAL_JAVACFLAGS := $(local_javac_flags)
    134 LOCAL_JACK_FLAGS := $(local_jack_flags)
    135 LOCAL_DX_FLAGS := --core-library
    136 LOCAL_MODULE_TAGS := optional
    137 LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    138 LOCAL_MODULE := core-libart
    139 LOCAL_JAVA_LIBRARIES := core-all
    140 ifeq ($(EMMA_INSTRUMENT),true)
    141 ifneq ($(EMMA_INSTRUMENT_STATIC),true)
    142     # For instrumented build, include Jacoco classes into core-libart.
    143     LOCAL_STATIC_JAVA_LIBRARIES := jacocoagent
    144 endif # EMMA_INSTRUMENT_STATIC
    145 endif # EMMA_INSTRUMENT
    146 LOCAL_CORE_LIBRARY := true
    147 LOCAL_REQUIRED_MODULES := tzdata tzlookup.xml
    148 include $(BUILD_JAVA_LIBRARY)
    149 
    150 # A library that exists to satisfy javac when
    151 # compiling source code that contains lambdas.
    152 include $(CLEAR_VARS)
    153 LOCAL_SRC_FILES := $(openjdk_lambda_stub_files) $(openjdk_lambda_duplicate_stub_files)
    154 LOCAL_NO_STANDARD_LIBRARIES := true
    155 LOCAL_JAVACFLAGS := $(local_javac_flags)
    156 LOCAL_JACK_FLAGS := $(local_jack_flags)
    157 LOCAL_DX_FLAGS := --core-library
    158 LOCAL_MODULE_TAGS := optional
    159 LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    160 LOCAL_MODULE := core-lambda-stubs
    161 LOCAL_JAVA_LIBRARIES := core-all
    162 LOCAL_NOTICE_FILE := $(LOCAL_PATH)/ojluni/NOTICE
    163 LOCAL_CORE_LIBRARY := true
    164 LOCAL_UNINSTALLABLE_MODULE := true
    165 include $(BUILD_JAVA_LIBRARY)
    166 
    167 ifeq ($(LIBCORE_SKIP_TESTS),)
    168 # A guaranteed unstripped version of core-oj and core-libart.
    169 # The build system may or may not strip the core-oj and core-libart jars,
    170 # but these will not be stripped. See b/24535627.
    171 include $(CLEAR_VARS)
    172 LOCAL_SRC_FILES := $(openjdk_java_files)
    173 LOCAL_JAVA_RESOURCE_DIRS := $(core_resource_dirs)
    174 LOCAL_NO_STANDARD_LIBRARIES := true
    175 LOCAL_JAVACFLAGS := $(local_javac_flags)
    176 LOCAL_JACK_FLAGS := $(local_jack_flags)
    177 LOCAL_DX_FLAGS := --core-library
    178 LOCAL_MODULE_TAGS := optional
    179 LOCAL_DEX_PREOPT := false
    180 LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    181 LOCAL_MODULE := core-oj-testdex
    182 LOCAL_JAVA_LIBRARIES := core-all
    183 LOCAL_NOTICE_FILE := $(LOCAL_PATH)/ojluni/NOTICE
    184 LOCAL_REQUIRED_MODULES := tzdata tzlookup.xml
    185 LOCAL_CORE_LIBRARY := true
    186 include $(BUILD_JAVA_LIBRARY)
    187 
    188 # Build libcore test rules for target
    189 include $(CLEAR_VARS)
    190 LOCAL_SRC_FILES := $(call all-java-files-under, dalvik/test-rules/src/main test-rules/src/main)
    191 LOCAL_NO_STANDARD_LIBRARIES := true
    192 LOCAL_MODULE := core-test-rules
    193 LOCAL_JAVA_LIBRARIES := core-all
    194 LOCAL_STATIC_JAVA_LIBRARIES := junit
    195 include $(BUILD_STATIC_JAVA_LIBRARY)
    196 
    197 # Build libcore test rules for host
    198 include $(CLEAR_VARS)
    199 LOCAL_SRC_FILES := $(call all-java-files-under, dalvik/test-rules/src/main test-rules/src/main)
    200 LOCAL_NO_STANDARD_LIBRARIES := true
    201 LOCAL_MODULE := core-test-rules-hostdex
    202 LOCAL_JAVA_LIBRARIES := core-oj-hostdex core-libart-hostdex
    203 LOCAL_STATIC_JAVA_LIBRARIES := junit-hostdex
    204 include $(BUILD_HOST_DALVIK_STATIC_JAVA_LIBRARY)
    205 
    206 include $(CLEAR_VARS)
    207 LOCAL_SRC_FILES := $(non_openjdk_java_files) $(android_icu4j_src_files)
    208 LOCAL_JAVA_RESOURCE_DIRS := $(android_icu4j_resource_dirs)
    209 LOCAL_NO_STANDARD_LIBRARIES := true
    210 LOCAL_JAVACFLAGS := $(local_javac_flags)
    211 LOCAL_JACK_FLAGS := $(local_jack_flags)
    212 LOCAL_DX_FLAGS := --core-library
    213 LOCAL_MODULE_TAGS := optional
    214 LOCAL_DEX_PREOPT := false
    215 LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    216 LOCAL_MODULE := core-libart-testdex
    217 LOCAL_JAVA_LIBRARIES := core-all
    218 LOCAL_CORE_LIBRARY := true
    219 LOCAL_REQUIRED_MODULES := tzdata tzlookup.xml
    220 include $(BUILD_JAVA_LIBRARY)
    221 endif
    222 
    223 ifeq ($(LIBCORE_SKIP_TESTS),)
    224 # Build a library just containing files from luni/src/test/filesystems for use in tests.
    225 include $(CLEAR_VARS)
    226 LOCAL_SRC_FILES := $(call all-java-files-under, luni/src/test/filesystems/src)
    227 LOCAL_JAVA_RESOURCE_DIRS := luni/src/test/filesystems/resources
    228 LOCAL_NO_STANDARD_LIBRARIES := true
    229 LOCAL_MODULE := filesystemstest
    230 LOCAL_JAVA_LIBRARIES := core-oj core-libart
    231 LOCAL_DEX_PREOPT := false
    232 include $(BUILD_JAVA_LIBRARY)
    233 my_filesystemstest_jar := $(intermediates)/filesystemstest.jar
    234 $(my_filesystemstest_jar): $(LOCAL_BUILT_MODULE)
    235 	$(call copy-file-to-target)
    236 endif
    237 
    238 ifeq ($(LIBCORE_SKIP_TESTS),)
    239 # Make the core-tests library.
    240 include $(CLEAR_VARS)
    241 LOCAL_SRC_FILES := $(test_src_files)
    242 LOCAL_JAVA_RESOURCE_DIRS := $(test_resource_dirs)
    243 # Include individual dex.jar files (jars containing resources and a classes.dex) so that they
    244 # be loaded by tests using ClassLoaders but are not in the main classes.dex.
    245 LOCAL_JAVA_RESOURCE_FILES := $(my_filesystemstest_jar)
    246 LOCAL_NO_STANDARD_LIBRARIES := true
    247 LOCAL_JAVA_LIBRARIES := core-oj core-libart okhttp bouncycastle
    248 LOCAL_STATIC_JAVA_LIBRARIES := \
    249 	archive-patcher \
    250 	core-test-rules \
    251 	core-tests-support \
    252 	junit-params \
    253 	mockftpserver \
    254 	mockito-target \
    255 	mockwebserver \
    256 	nist-pkix-tests \
    257 	slf4j-jdk14 \
    258 	sqlite-jdbc \
    259 	tzdata-testing
    260 LOCAL_JAVACFLAGS := $(local_javac_flags)
    261 LOCAL_JACK_FLAGS := $(local_jack_flags)
    262 LOCAL_ERROR_PRONE_FLAGS := -Xep:TryFailThrowable:ERROR -Xep:ComparisonOutOfRange:ERROR
    263 LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    264 LOCAL_MODULE := core-tests
    265 include $(BUILD_STATIC_JAVA_LIBRARY)
    266 endif
    267 
    268 ifeq ($(LIBCORE_SKIP_TESTS),)
    269 # Make the core-tests-support library.
    270 include $(CLEAR_VARS)
    271 LOCAL_SRC_FILES := $(call all-test-java-files-under,support)
    272 LOCAL_JAVA_RESOURCE_DIRS := $(test_resource_dirs)
    273 LOCAL_NO_STANDARD_LIBRARIES := true
    274 LOCAL_JAVA_LIBRARIES := core-oj core-libart junit bouncycastle
    275 LOCAL_STATIC_JAVA_LIBRARIES := bouncycastle-bcpkix bouncycastle-ocsp
    276 LOCAL_JAVACFLAGS := $(local_javac_flags)
    277 LOCAL_JACK_FLAGS := $(local_jack_flags)
    278 LOCAL_MODULE := core-tests-support
    279 include $(BUILD_STATIC_JAVA_LIBRARY)
    280 endif
    281 
    282 ifeq ($(LIBCORE_SKIP_TESTS),)
    283 # Make the jsr166-tests library.
    284 include $(CLEAR_VARS)
    285 LOCAL_SRC_FILES :=  $(call all-test-java-files-under, jsr166-tests)
    286 LOCAL_JAVA_RESOURCE_DIRS := $(test_resource_dirs)
    287 LOCAL_NO_STANDARD_LIBRARIES := true
    288 LOCAL_JAVA_LIBRARIES := core-oj core-libart junit
    289 LOCAL_JAVACFLAGS := $(local_javac_flags)
    290 LOCAL_JACK_FLAGS := $(local_jack_flags)
    291 LOCAL_MODULE := jsr166-tests
    292 LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    293 include $(BUILD_STATIC_JAVA_LIBRARY)
    294 endif
    295 
    296 # Make the core-ojtests library.
    297 ifeq ($(LIBCORE_SKIP_TESTS),)
    298     include $(CLEAR_VARS)
    299     LOCAL_JAVA_RESOURCE_DIRS := $(ojtest_resource_dirs)
    300     LOCAL_NO_STANDARD_LIBRARIES := true
    301     LOCAL_JAVA_LIBRARIES := core-oj core-libart okhttp bouncycastle
    302     LOCAL_STATIC_JAVA_LIBRARIES := testng
    303     LOCAL_JAVACFLAGS := $(local_javac_flags)
    304     LOCAL_JACK_FLAGS := $(local_jack_flags)
    305     LOCAL_DX_FLAGS := --core-library
    306     LOCAL_MODULE_TAGS := optional
    307     LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    308     LOCAL_MODULE := core-ojtests
    309     # jack bug workaround: int[] java.util.stream.StatefulTestOp.-getjava-util-stream-StreamShapeSwitchesValues() is a private synthetic method in an interface which causes a hard verifier error
    310     LOCAL_DEX_PREOPT := false # disable AOT preverification which breaks the build. it will still throw VerifyError at runtime.
    311     include $(BUILD_JAVA_LIBRARY)
    312 endif
    313 
    314 # Make the core-ojtests-public library. Excludes any private API tests.
    315 ifeq ($(LIBCORE_SKIP_TESTS),)
    316     include $(CLEAR_VARS)
    317     # Filter out SerializedLambdaTest because it depends on stub classes and won't actually run.
    318     LOCAL_SRC_FILES := $(filter-out %/DeserializeMethodTest.java %/SerializedLambdaTest.java ojluni/src/test/java/util/stream/boot%,$(ojtest_src_files)) # Do not include anything from the boot* directories. Those directories need a custom bootclasspath to run.
    319     # Include source code as part of JAR
    320     LOCAL_JAVA_RESOURCE_DIRS := ojluni/src/test/dist $(ojtest_resource_dirs)
    321     LOCAL_NO_STANDARD_LIBRARIES := true
    322     LOCAL_JAVA_LIBRARIES := \
    323         bouncycastle \
    324         core-libart \
    325         core-oj \
    326         okhttp \
    327         testng
    328     LOCAL_JAVACFLAGS := $(local_javac_flags)
    329     LOCAL_JACK_FLAGS := $(local_jack_flags)
    330     LOCAL_DX_FLAGS := --core-library
    331     LOCAL_MODULE_TAGS := optional
    332     LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    333     LOCAL_MODULE := core-ojtests-public
    334     # jack bug workaround: int[] java.util.stream.StatefulTestOp.-getjava-util-stream-StreamShapeSwitchesValues() is a private synthetic method in an interface which causes a hard verifier error
    335     LOCAL_DEX_PREOPT := false # disable AOT preverification which breaks the build. it will still throw VerifyError at runtime.
    336     include $(BUILD_JAVA_LIBRARY)
    337 endif
    338 
    339 #
    340 # Build for the host.
    341 #
    342 
    343 ifeq ($(HOST_OS),linux)
    344 
    345 include $(CLEAR_VARS)
    346 LOCAL_SRC_FILES := $(non_openjdk_java_files) $(openjdk_java_files) $(android_icu4j_src_files) $(openjdk_lambda_stub_files)
    347 LOCAL_JAVA_RESOURCE_DIRS := $(core_resource_dirs)
    348 LOCAL_NO_STANDARD_LIBRARIES := true
    349 LOCAL_JAVACFLAGS := $(local_javac_flags)
    350 LOCAL_DX_FLAGS := --core-library
    351 LOCAL_MODULE_TAGS := optional
    352 LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    353 LOCAL_MODULE := core-all-hostdex
    354 LOCAL_REQUIRED_MODULES := tzdata-host tzlookup.xml-host
    355 LOCAL_CORE_LIBRARY := true
    356 LOCAL_UNINSTALLABLE_MODULE := true
    357 include $(BUILD_HOST_DALVIK_JAVA_LIBRARY)
    358 
    359 include $(CLEAR_VARS)
    360 LOCAL_SRC_FILES := $(openjdk_java_files)
    361 LOCAL_JAVA_RESOURCE_DIRS := $(core_resource_dirs)
    362 LOCAL_NO_STANDARD_LIBRARIES := true
    363 LOCAL_JAVACFLAGS := $(local_javac_flags)
    364 LOCAL_DX_FLAGS := --core-library
    365 LOCAL_MODULE_TAGS := optional
    366 LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    367 LOCAL_MODULE := core-oj-hostdex
    368 LOCAL_NOTICE_FILE := $(LOCAL_PATH)/ojluni/NOTICE
    369 LOCAL_JAVA_LIBRARIES := core-all-hostdex
    370 LOCAL_REQUIRED_MODULES := tzdata-host tzlookup.xml-host
    371 LOCAL_CORE_LIBRARY := true
    372 include $(BUILD_HOST_DALVIK_JAVA_LIBRARY)
    373 
    374 # Definitions to make the core library.
    375 include $(CLEAR_VARS)
    376 LOCAL_SRC_FILES := $(non_openjdk_java_files) $(android_icu4j_src_files)
    377 LOCAL_JAVA_RESOURCE_DIRS := $(android_icu4j_resource_dirs)
    378 LOCAL_NO_STANDARD_LIBRARIES := true
    379 LOCAL_JAVACFLAGS := $(local_javac_flags)
    380 LOCAL_DX_FLAGS := --core-library
    381 LOCAL_MODULE_TAGS := optional
    382 LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    383 LOCAL_MODULE := core-libart-hostdex
    384 LOCAL_JAVA_LIBRARIES := core-oj-hostdex
    385 LOCAL_REQUIRED_MODULES := tzdata-host tzlookup.xml-host
    386 include $(BUILD_HOST_DALVIK_JAVA_LIBRARY)
    387 
    388 # A library that exists to satisfy javac when
    389 # compiling source code that contains lambdas.
    390 include $(CLEAR_VARS)
    391 LOCAL_SRC_FILES := $(openjdk_lambda_stub_files) $(openjdk_lambda_duplicate_stub_files)
    392 LOCAL_NO_STANDARD_LIBRARIES := true
    393 LOCAL_JAVACFLAGS := $(local_javac_flags)
    394 LOCAL_DX_FLAGS := --core-library
    395 LOCAL_MODULE_TAGS := optional
    396 LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    397 LOCAL_MODULE := core-lambda-stubs-hostdex
    398 LOCAL_JAVA_LIBRARIES := core-all-hostdex
    399 LOCAL_CORE_LIBRARY := true
    400 include $(BUILD_HOST_DALVIK_JAVA_LIBRARY)
    401 
    402 # Make the core-tests-hostdex library.
    403 ifeq ($(LIBCORE_SKIP_TESTS),)
    404     include $(CLEAR_VARS)
    405     LOCAL_SRC_FILES := $(test_src_files)
    406     LOCAL_JAVA_RESOURCE_DIRS := $(test_resource_dirs)
    407     LOCAL_NO_STANDARD_LIBRARIES := true
    408     LOCAL_JAVA_LIBRARIES := \
    409         bouncycastle-hostdex \
    410         core-libart-hostdex \
    411         core-oj-hostdex \
    412         core-tests-support-hostdex \
    413         junit-hostdex \
    414         mockito-api-hostdex \
    415         okhttp-hostdex
    416     LOCAL_STATIC_JAVA_LIBRARIES := \
    417         archive-patcher-hostdex \
    418         core-test-rules-hostdex \
    419         junit-params-hostdex \
    420         mockftpserver-hostdex \
    421         mockwebserver-host \
    422         nist-pkix-tests-host \
    423         slf4j-jdk14-hostdex \
    424         sqlite-jdbc-host \
    425         tzdata-testing-hostdex
    426     LOCAL_JAVACFLAGS := $(local_javac_flags)
    427     LOCAL_MODULE_TAGS := optional
    428     LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    429     LOCAL_MODULE := core-tests-hostdex
    430     include $(BUILD_HOST_DALVIK_JAVA_LIBRARY)
    431 endif
    432 
    433 # Make the core-tests-support library.
    434 ifeq ($(LIBCORE_SKIP_TESTS),)
    435     include $(CLEAR_VARS)
    436     LOCAL_SRC_FILES := $(call all-test-java-files-under,support)
    437     LOCAL_JAVA_RESOURCE_DIRS := $(test_resource_dirs)
    438     LOCAL_NO_STANDARD_LIBRARIES := true
    439     LOCAL_JAVA_LIBRARIES := \
    440         bouncycastle-hostdex \
    441         core-libart-hostdex \
    442         core-oj-hostdex \
    443         junit-hostdex
    444     LOCAL_STATIC_JAVA_LIBRARIES := \
    445         bouncycastle-bcpkix-hostdex \
    446         bouncycastle-ocsp-hostdex
    447     LOCAL_JAVACFLAGS := $(local_javac_flags)
    448     LOCAL_MODULE_TAGS := optional
    449     LOCAL_MODULE := core-tests-support-hostdex
    450     include $(BUILD_HOST_DALVIK_JAVA_LIBRARY)
    451 endif
    452 
    453 # Make the core-ojtests-hostdex library.
    454 ifeq ($(LIBCORE_SKIP_TESTS),)
    455     include $(CLEAR_VARS)
    456     LOCAL_SRC_FILES := $(ojtest_src_files)
    457     LOCAL_NO_STANDARD_LIBRARIES := true
    458     LOCAL_JAVA_LIBRARIES := \
    459         bouncycastle-hostdex \
    460         core-libart-hostdex \
    461         core-oj-hostdex \
    462         okhttp-hostdex
    463     LOCAL_STATIC_JAVA_LIBRARIES := testng-hostdex
    464     LOCAL_JAVACFLAGS := $(local_javac_flags)
    465     LOCAL_DX_FLAGS := --core-library
    466     LOCAL_MODULE_TAGS := optional
    467     LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    468     LOCAL_MODULE := core-ojtests-hostdex
    469     include $(BUILD_HOST_DALVIK_JAVA_LIBRARY)
    470 endif
    471 
    472 endif # HOST_OS == linux
    473 
    474 #
    475 # Local droiddoc for faster libcore testing
    476 #
    477 #
    478 # Run with:
    479 #     mm -j32 libcore-docs
    480 #
    481 # Main output:
    482 #     ../out/target/common/docs/libcore/reference/packages.html
    483 #
    484 # All text for proofreading (or running tools over):
    485 #     ../out/target/common/docs/libcore-proofread.txt
    486 #
    487 # TODO list of missing javadoc, etc:
    488 #     ../out/target/common/docs/libcore-docs-todo.html
    489 #
    490 # Rerun:
    491 #     rm -rf ../out/target/common/docs/libcore-timestamp && mm -j32 libcore-docs
    492 #
    493 include $(CLEAR_VARS)
    494 
    495 # for shared defintion of libcore_to_document
    496 include $(LOCAL_PATH)/Docs.mk
    497 
    498 # The libcore_to_document paths are relative to $(TOPDIR). We are in libcore so we must prepend
    499 # ../ to make LOCAL_SRC_FILES relative to $(LOCAL_PATH).
    500 LOCAL_SRC_FILES := $(addprefix ../, $(libcore_to_document))
    501 # rerun doc generation without recompiling the java
    502 LOCAL_JAVACFLAGS := $(local_javac_flags)
    503 LOCAL_MODULE_CLASS:=JAVA_LIBRARIES
    504 
    505 LOCAL_MODULE := libcore
    506 
    507 LOCAL_DROIDDOC_OPTIONS := \
    508  -offlinemode \
    509  -title "libcore" \
    510  -proofread $(OUT_DOCS)/$(LOCAL_MODULE)-proofread.txt \
    511  -todo ../$(LOCAL_MODULE)-docs-todo.html \
    512  -knowntags ./libcore/known_oj_tags.txt \
    513  -hdf android.whichdoc offline
    514 
    515 LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk
    516 
    517 include $(BUILD_DROIDDOC)
    518 
    519 openjdk_java_files :=
    520 non_openjdk_java_files :=
    521