Move jacocoagent into the bootclasspath

Move jacocoagent out of core-libart and into its own jar on the
bootclasspath.

Test: m -j EMMA_INSTRUMENT=true
Test: https://android-build.googleplex.com/builds/view-workplan?viewType=Table&workplanId=L19400000103297394&nodeType=Trybot
Change-Id: I9e6e3dc59dba8b93685d59b258d4ebc7835eab8b
diff --git a/core/java.mk b/core/java.mk
index cc70368..8e6f90c 100644
--- a/core/java.mk
+++ b/core/java.mk
@@ -18,6 +18,19 @@
 LOCAL_NO_STANDARD_LIBRARIES:=$(strip $(LOCAL_NO_STANDARD_LIBRARIES))
 LOCAL_SDK_VERSION:=$(strip $(LOCAL_SDK_VERSION))
 
+ifneq ($(LOCAL_MODULE),jacocoagent)
+  ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
+    ifeq ($(EMMA_INSTRUMENT),true)
+      ifneq ($(EMMA_INSTRUMENT_STATIC),true)
+        # For instrumented build, if Jacoco is not being included statically
+        # in instrumented packages then include Jacoco classes into the
+        # bootclasspath.
+        LOCAL_JAVA_LIBRARIES := jacocoagent $(LOCAL_JAVA_LIBRARIES)
+      endif # EMMA_INSTRUMENT_STATIC
+    endif # EMMA_INSTRUMENT
+  endif # !LOCAL_NO_STANDARD_LIBRARIES
+endif # LOCAL_MODULE == jacocoagent
+
 ifneq ($(LOCAL_SDK_VERSION),)
   ifeq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
     $(error $(LOCAL_PATH): Must not define both LOCAL_NO_STANDARD_LIBRARIES and LOCAL_SDK_VERSION)