188b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project########################################################### 288b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project## Standard rules for building a java library. 388b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project## 488b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project########################################################### 588b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 688b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectifdef LOCAL_IS_HOST_MODULE 788b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project$(error $(LOCAL_PATH): Host java libraries must use BUILD_HOST_JAVA_LIBRARY) 888b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectendif 988b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 1088b607994a148f4af5bffee163e39ce8296750c6The Android Open Source ProjectLOCAL_MODULE_SUFFIX := $(COMMON_JAVA_PACKAGE_SUFFIX) 1188b607994a148f4af5bffee163e39ce8296750c6The Android Open Source ProjectLOCAL_MODULE_CLASS := JAVA_LIBRARIES 1288b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 1388b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectifneq (,$(LOCAL_ASSET_DIR)) 1488b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project$(error $(LOCAL_PATH): Target java libraries may not set LOCAL_ASSET_DIR) 1588b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectendif 1688b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 1720e2083ea0f8bae57ace17f098e7fe71a9625f84Ying Wangifneq (true,$(LOCAL_IS_STATIC_JAVA_LIBRARY)) 1888b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectifneq (,$(LOCAL_RESOURCE_DIR)) 1988b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project$(error $(LOCAL_PATH): Target java libraries may not set LOCAL_RESOURCE_DIR) 2088b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectendif 21576e0146a91f0f092cf67208c864ab9635b42222Ying Wang# base_rules.mk looks at this 2288b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectall_res_assets := 23576e0146a91f0f092cf67208c864ab9635b42222Ying Wangendif 2488b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 2588b607994a148f4af5bffee163e39ce8296750c6The Android Open Source ProjectLOCAL_BUILT_MODULE_STEM := javalib.jar 2688b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 2730090e41e31e7db34a1092d8173c1413c036b49dYing Wangintermediates.COMMON := $(call local-intermediates-dir,COMMON) 2830090e41e31e7db34a1092d8173c1413c036b49dYing Wang 29a83940fa7851b35712e559be2246b56b5666b805Ying Wang# This file will be the one that other modules should depend on. 30a83940fa7851b35712e559be2246b56b5666b805Ying Wangcommon_javalib.jar := $(intermediates.COMMON)/$(LOCAL_BUILT_MODULE_STEM) 31a83940fa7851b35712e559be2246b56b5666b805Ying WangLOCAL_INTERMEDIATE_TARGETS += $(common_javalib.jar) 32a83940fa7851b35712e559be2246b56b5666b805Ying Wang 33ba71aba939dc58a3278646039337f13d17e65ef2Ying Wangifeq ($(LOCAL_PROGUARD_ENABLED),disabled) 34ba71aba939dc58a3278646039337f13d17e65ef2Ying Wang LOCAL_PROGUARD_ENABLED := 35ba71aba939dc58a3278646039337f13d17e65ef2Ying Wangendif 36ba71aba939dc58a3278646039337f13d17e65ef2Ying Wang 37af4800c8a6a9266ceb7269bd2c6b0bb2f0965beaYing Wangifeq (true,$(EMMA_INSTRUMENT)) 38af4800c8a6a9266ceb7269bd2c6b0bb2f0965beaYing Wangifeq (true,$(LOCAL_EMMA_INSTRUMENT)) 39af4800c8a6a9266ceb7269bd2c6b0bb2f0965beaYing Wangifeq (true,$(EMMA_INSTRUMENT_STATIC)) 40af4800c8a6a9266ceb7269bd2c6b0bb2f0965beaYing WangLOCAL_STATIC_JAVA_LIBRARIES += emma 41af4800c8a6a9266ceb7269bd2c6b0bb2f0965beaYing Wangendif # LOCAL_EMMA_INSTRUMENT 42af4800c8a6a9266ceb7269bd2c6b0bb2f0965beaYing Wangendif # EMMA_INSTRUMENT_STATIC 43af4800c8a6a9266ceb7269bd2c6b0bb2f0965beaYing Wangelse 44af4800c8a6a9266ceb7269bd2c6b0bb2f0965beaYing WangLOCAL_EMMA_INSTRUMENT := false 45af4800c8a6a9266ceb7269bd2c6b0bb2f0965beaYing Wangendif # EMMA_INSTRUMENT 46af4800c8a6a9266ceb7269bd2c6b0bb2f0965beaYing Wang 4788b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project################################# 4888b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectinclude $(BUILD_SYSTEM)/java.mk 4988b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project################################# 5088b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 5188b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectifeq ($(LOCAL_IS_STATIC_JAVA_LIBRARY),true) 52bb7c6d88c6dd5ee48e8b8ec85ee04c0aa7bc5979Brian Carlstrom# No dex; all we want are the .class files with resources. 53ba71aba939dc58a3278646039337f13d17e65ef2Ying Wang$(common_javalib.jar) : $(java_resource_sources) 54ba71aba939dc58a3278646039337f13d17e65ef2Ying Wangifdef LOCAL_PROGUARD_ENABLED 55ba71aba939dc58a3278646039337f13d17e65ef2Ying Wang$(common_javalib.jar) : $(full_classes_proguard_jar) 56ba71aba939dc58a3278646039337f13d17e65ef2Ying Wangelse 57ba71aba939dc58a3278646039337f13d17e65ef2Ying Wang$(common_javalib.jar) : $(full_classes_jar) 58ba71aba939dc58a3278646039337f13d17e65ef2Ying Wangendif 5988b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project @echo "target Static Jar: $(PRIVATE_MODULE) ($@)" 6088b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project $(copy-file-to-target) 61bb7c6d88c6dd5ee48e8b8ec85ee04c0aa7bc5979Brian Carlstromifneq ($(extra_jar_args),) 62bb7c6d88c6dd5ee48e8b8ec85ee04c0aa7bc5979Brian Carlstrom $(add-java-resources-to-package) 63bb7c6d88c6dd5ee48e8b8ec85ee04c0aa7bc5979Brian Carlstromendif 6488b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 65a83940fa7851b35712e559be2246b56b5666b805Ying Wang$(LOCAL_BUILT_MODULE): $(common_javalib.jar) 66a83940fa7851b35712e559be2246b56b5666b805Ying Wang $(copy-file-to-target) 67a83940fa7851b35712e559be2246b56b5666b805Ying Wang 6888b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectelse # !LOCAL_IS_STATIC_JAVA_LIBRARY 6988b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 70a83940fa7851b35712e559be2246b56b5666b805Ying Wang$(common_javalib.jar): PRIVATE_DEX_FILE := $(built_dex) 71c3ccfeee88c4b62e50c6ad8eb63cc963998c96f9-b master$(common_javalib.jar) : $(built_dex) $(java_resource_sources) 72e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang @echo "target Jar: $(PRIVATE_MODULE) ($@)" 73e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang $(create-empty-package) 74e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang $(add-dex-to-package) 7585480629220c9afb0d138ff1ce5ea1ccbe66c7f7Ying Wang $(add-carried-java-resources) 76e7874c430895b9a4e631c89f1e7729da9264d167Ying Wangifneq ($(extra_jar_args),) 77e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang $(add-java-resources-to-package) 78e7874c430895b9a4e631c89f1e7729da9264d167Ying Wangendif 79e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang 8079e3dec83ee012e94e34ed092cea5b9d60040e9dYing Wangifdef LOCAL_DEX_PREOPT 81ced4bff58e76a16ebce3a35ed24aadc8490ca39bBrian Carlstromifneq ($(dexpreopt_boot_jar_module),) # boot jar 82e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang# boot jar's rules are defined in dex_preopt.mk 83e7874c430895b9a4e631c89f1e7729da9264d167Ying Wangdexpreopted_boot_jar := $(DEXPREOPT_BOOT_JAR_DIR_FULL_PATH)/$(dexpreopt_boot_jar_module)_nodex.jar 84e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang$(LOCAL_BUILT_MODULE) : $(dexpreopted_boot_jar) | $(ACP) 85e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang $(call copy-file-to-target) 86e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang 87ced4bff58e76a16ebce3a35ed24aadc8490ca39bBrian Carlstrom# For libart boot jars, we don't have .odex files. 88ced4bff58e76a16ebce3a35ed24aadc8490ca39bBrian Carlstromifeq ($(DALVIK_VM_LIB),libdvm.so) 89e7874c430895b9a4e631c89f1e7729da9264d167Ying Wangdexpreopted_boot_odex := $(DEXPREOPT_BOOT_JAR_DIR_FULL_PATH)/$(dexpreopt_boot_jar_module).odex 90e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang$(built_odex) : $(dexpreopted_boot_odex) | $(ACP) 91e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang $(call copy-file-to-target) 92ced4bff58e76a16ebce3a35ed24aadc8490ca39bBrian Carlstromendif 93e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang 94ced4bff58e76a16ebce3a35ed24aadc8490ca39bBrian Carlstromelse # ! boot jar 95e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang$(built_odex): PRIVATE_MODULE := $(LOCAL_MODULE) 96b9aa5d43de114cecdf94fabb23d3f61f147b627dYing Wang# Use pattern rule - we may have multiple built odex files. 97b9aa5d43de114cecdf94fabb23d3f61f147b627dYing Wang$(built_odex) : $(dir $(LOCAL_BUILT_MODULE))% : $(common_javalib.jar) 98e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang @echo "Dexpreopt Jar: $(PRIVATE_MODULE) ($@)" 99b9aa5d43de114cecdf94fabb23d3f61f147b627dYing Wang $(call dexpreopt-one-file,$<,$@) 100e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang 101c3ccfeee88c4b62e50c6ad8eb63cc963998c96f9-b master$(LOCAL_BUILT_MODULE) : $(common_javalib.jar) | $(ACP) 102e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang $(call copy-file-to-target) 10379e3dec83ee012e94e34ed092cea5b9d60040e9dYing Wangifneq (nostripping,$(LOCAL_DEX_PREOPT)) 104e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang $(call dexpreopt-remove-classes.dex,$@) 10579e3dec83ee012e94e34ed092cea5b9d60040e9dYing Wangendif 106e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang 107ced4bff58e76a16ebce3a35ed24aadc8490ca39bBrian Carlstromendif # ! boot jar 108e7874c430895b9a4e631c89f1e7729da9264d167Ying Wang 109e7874c430895b9a4e631c89f1e7729da9264d167Ying Wangelse # LOCAL_DEX_PREOPT 110a83940fa7851b35712e559be2246b56b5666b805Ying Wang$(LOCAL_BUILT_MODULE) : $(common_javalib.jar) | $(ACP) 111a83940fa7851b35712e559be2246b56b5666b805Ying Wang $(call copy-file-to-target) 11288b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 113a83940fa7851b35712e559be2246b56b5666b805Ying Wangendif # LOCAL_DEX_PREOPT 11488b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectendif # !LOCAL_IS_STATIC_JAVA_LIBRARY 115