forked from openkylin/platform_build
Revert "Revert "resolve merge conflicts of fc16dca602
to nyc-dev-plus-aosp""
This reverts commit b7d33c0739
.
This commit is contained in:
parent
b7d33c0739
commit
09c306c705
|
@ -1206,16 +1206,53 @@ systemtarball-nodeps: $(FS_GET_STATS) \
|
|||
.PHONY: stnod
|
||||
stnod: systemtarball-nodeps
|
||||
|
||||
#######
|
||||
# -----------------------------------------------------------------
|
||||
## platform.zip: system, plus other files to be used in PDK fusion build,
|
||||
## in a zip file
|
||||
##
|
||||
## PDK_PLATFORM_ZIP_PRODUCT_BINARIES is used to store specified files to platform.zip.
|
||||
## The variable will be typically set from BoardConfig.mk.
|
||||
## Files under out dir will be rejected to prevent possible conflicts with other rules.
|
||||
pdk_odex_javalibs := $(strip $(foreach m,$(DEXPREOPT.MODULES.JAVA_LIBRARIES),\
|
||||
$(if $(filter $(DEXPREOPT.$(m).INSTALLED),$(ALL_DEFAULT_INSTALLED_MODULES)),$(m))))
|
||||
pdk_odex_apps := $(strip $(foreach m,$(DEXPREOPT.MODULES.APPS),\
|
||||
$(if $(filter $(DEXPREOPT.$(m).INSTALLED),$(ALL_DEFAULT_INSTALLED_MODULES)),$(m))))
|
||||
pdk_classes_dex := $(strip \
|
||||
$(foreach m,$(pdk_odex_javalibs),$(call intermediates-dir-for,JAVA_LIBRARIES,$(m),,COMMON)/javalib.jar) \
|
||||
$(foreach m,$(pdk_odex_apps),$(call intermediates-dir-for,APPS,$(m))/package.dex.apk))
|
||||
|
||||
pdk_odex_config_mk := $(PRODUCT_OUT)/pdk_dexpreopt_config.mk
|
||||
$(pdk_odex_config_mk): PRIVATE_JAVA_LIBRARIES := $(pdk_odex_javalibs)
|
||||
$(pdk_odex_config_mk): PRIVATE_APPS := $(pdk_odex_apps)
|
||||
$(pdk_odex_config_mk) :
|
||||
@echo "PDK odex config makefile: $@"
|
||||
$(hide) mkdir -p $(dir $@)
|
||||
$(hide) echo "# Auto-generated. Do not modify." > $@
|
||||
$(hide) echo "PDK.DEXPREOPT.JAVA_LIBRARIES:=$(PRIVATE_JAVA_LIBRARIES)" >> $@
|
||||
$(hide) echo "PDK.DEXPREOPT.APPS:=$(PRIVATE_APPS)" >> $@
|
||||
$(foreach m,$(PRIVATE_JAVA_LIBRARIES),\
|
||||
$(hide) echo "PDK.DEXPREOPT.$(m).SRC:=$(patsubst $(OUT_DIR)/%,%,$(call intermediates-dir-for,JAVA_LIBRARIES,$(m),,COMMON)/javalib.jar)" >> $@$(newline)\
|
||||
$(hide) echo "PDK.DEXPREOPT.$(m).DEX_PREOPT:=$(DEXPREOPT.$(m).DEX_PREOPT)" >> $@$(newline)\
|
||||
$(hide) echo "PDK.DEXPREOPT.$(m).MULTILIB:=$(DEXPREOPT.$(m).MULTILIB)" >> $@$(newline)\
|
||||
$(hide) echo "PDK.DEXPREOPT.$(m).DEX_PREOPT_FLAGS:=$(DEXPREOPT.$(m).DEX_PREOPT_FLAGS)" >> $@$(newline)\
|
||||
)
|
||||
$(foreach m,$(PRIVATE_APPS),\
|
||||
$(hide) echo "PDK.DEXPREOPT.$(m).SRC:=$(patsubst $(OUT_DIR)/%,%,$(call intermediates-dir-for,APPS,$(m))/package.dex.apk)" >> $@$(newline)\
|
||||
$(hide) echo "PDK.DEXPREOPT.$(m).DEX_PREOPT:=$(DEXPREOPT.$(m).DEX_PREOPT)" >> $@$(newline)\
|
||||
$(hide) echo "PDK.DEXPREOPT.$(m).MULTILIB:=$(DEXPREOPT.$(m).MULTILIB)" >> $@$(newline)\
|
||||
$(hide) echo "PDK.DEXPREOPT.$(m).DEX_PREOPT_FLAGS:=$(DEXPREOPT.$(m).DEX_PREOPT_FLAGS)" >> $@$(newline)\
|
||||
$(hide) echo "PDK.DEXPREOPT.$(m).PRIVILEGED_MODULE:=$(DEXPREOPT.$(m).PRIVILEGED_MODULE)" >> $@$(newline)\
|
||||
$(hide) echo "PDK.DEXPREOPT.$(m).PROPRIETARY_MODULE:=$(DEXPREOPT.$(m).PROPRIETARY_MODULE)" >> $@$(newline)\
|
||||
$(hide) echo "PDK.DEXPREOPT.$(m).TARGET_ARCH:=$(DEXPREOPT.$(m).TARGET_ARCH)" >> $@$(newline)\
|
||||
$(hide) echo "PDK.DEXPREOPT.$(m).STRIPPED_SRC:=$(patsubst $(PRODUCT_OUT)/%,%,$(DEXPREOPT.$(m).INSTALLED_STRIPPED))" >> $@$(newline)\
|
||||
)
|
||||
|
||||
PDK_PLATFORM_ZIP_PRODUCT_BINARIES := $(filter-out $(OUT_DIR)/%,$(PDK_PLATFORM_ZIP_PRODUCT_BINARIES))
|
||||
INSTALLED_PLATFORM_ZIP := $(PRODUCT_OUT)/platform.zip
|
||||
$(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_SYSTEMIMAGE_FILES)
|
||||
|
||||
$(INSTALLED_PLATFORM_ZIP): PRIVATE_DEX_FILES := $(pdk_classes_dex)
|
||||
$(INSTALLED_PLATFORM_ZIP): PRIVATE_ODEX_CONFIG := $(pdk_odex_config_mk)
|
||||
$(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_SYSTEMIMAGE_FILES) $(pdk_odex_config_mk)
|
||||
$(call pretty,"Platform zip package: $(INSTALLED_PLATFORM_ZIP)")
|
||||
$(hide) rm -f $@
|
||||
$(hide) cd $(dir $@) && zip -qryX $(notdir $@) \
|
||||
|
@ -1232,6 +1269,9 @@ endif
|
|||
ifneq ($(PDK_PLATFORM_ZIP_PRODUCT_BINARIES),)
|
||||
$(hide) zip -qryX $@ $(PDK_PLATFORM_ZIP_PRODUCT_BINARIES)
|
||||
endif
|
||||
@# Add dex-preopt files and config.
|
||||
$(if $(PRIVATE_DEX_FILES),$(hide) cd $(OUT_DIR) && zip -qryX $(patsubst $(OUT_DIR)/%,%,$@ $(PRIVATE_DEX_FILES)))
|
||||
$(hide) zip -qryXj $@ $(PRIVATE_ODEX_CONFIG)
|
||||
|
||||
.PHONY: platform
|
||||
platform: $(INSTALLED_PLATFORM_ZIP)
|
||||
|
@ -1244,7 +1284,7 @@ ifneq (,$(filter platform platform-java, $(MAKECMDGOALS)))
|
|||
$(call dist-for-goals, platform platform-java, $(INSTALLED_PLATFORM_ZIP))
|
||||
endif
|
||||
|
||||
#######
|
||||
# -----------------------------------------------------------------
|
||||
## boot tarball
|
||||
define build-boottarball-target
|
||||
$(hide) echo "Target boot fs tarball: $(INSTALLED_BOOTTARBALL_TARGET)"
|
||||
|
|
|
@ -195,6 +195,9 @@ LOCAL_NOTICE_FILE:=
|
|||
LOCAL_USE_AAPT2:=$(USE_AAPT2)
|
||||
LOCAL_STATIC_ANDROID_LIBRARIES:=
|
||||
LOCAL_SHARED_ANDROID_LIBRARIES:=
|
||||
# Used to replace the installed file of a presigned prebuilt apk in PDK fusion build,
|
||||
# to avoid installing the presigned apks with classes.dex unstripped.
|
||||
LOCAL_REPLACE_PREBUILT_APK_INSTALLED:=
|
||||
|
||||
# arch specific variables
|
||||
LOCAL_SRC_FILES_$(TARGET_ARCH):=
|
||||
|
|
|
@ -445,6 +445,8 @@ ifeq (,$(wildcard $(PDK_FUSION_PLATFORM_ZIP)))
|
|||
endif
|
||||
endif
|
||||
|
||||
BUILD_PLATFORM_ZIP := $(filter platform platform-java,$(MAKECMDGOALS))
|
||||
|
||||
#
|
||||
# Tools that are prebuilts for TARGET_BUILD_APPS
|
||||
#
|
||||
|
|
|
@ -2346,7 +2346,12 @@ endef
|
|||
|
||||
#TODO: update the manifest to point to the dex file
|
||||
define add-dex-to-package
|
||||
$(hide) find $(dir $(PRIVATE_DEX_FILE)) -maxdepth 1 -name "classes*.dex" | sort | xargs zip -qjX $@
|
||||
$(call add-dex-to-package-arg,$@)
|
||||
endef
|
||||
|
||||
# $(1): the package file.
|
||||
define add-dex-to-package-arg
|
||||
$(hide) find $(dir $(PRIVATE_DEX_FILE)) -maxdepth 1 -name "classes*.dex" | sort | xargs zip -qjX $(1)
|
||||
endef
|
||||
|
||||
# Add java resources added by the current module.
|
||||
|
@ -2385,12 +2390,17 @@ endef
|
|||
# Sign a package using the specified key/cert.
|
||||
#
|
||||
define sign-package
|
||||
$(hide) mv $@ $@.unsigned
|
||||
$(call sign-package-arg,$@)
|
||||
endef
|
||||
|
||||
# $(1): the package file we are signing.
|
||||
define sign-package-arg
|
||||
$(hide) mv $(1) $(1).unsigned
|
||||
$(hide) java -Djava.library.path=$(SIGNAPK_JNI_LIBRARY_PATH) -jar $(SIGNAPK_JAR) \
|
||||
--min-sdk-version $(call get-package-min-sdk-version-int,$@.unsigned) \
|
||||
$(PRIVATE_CERTIFICATE) $(PRIVATE_PRIVATE_KEY) \
|
||||
$(PRIVATE_ADDITIONAL_CERTIFICATES) $@.unsigned $@.signed
|
||||
$(hide) mv $@.signed $@
|
||||
$(PRIVATE_ADDITIONAL_CERTIFICATES) $(1).unsigned $(1).signed
|
||||
$(hide) mv $(1).signed $(1)
|
||||
endef
|
||||
|
||||
# Align STORED entries of a package on 4-byte boundaries to make them easier to mmap.
|
||||
|
|
|
@ -31,6 +31,12 @@ ifeq ($(HOST_OS),linux)
|
|||
endif
|
||||
endif
|
||||
|
||||
GLOBAL_DEXPREOPT_FLAGS :=
|
||||
ifeq ($(WITH_DEXPREOPT_PIC),true)
|
||||
# Compile boot.oat as position-independent code if WITH_DEXPREOPT_PIC=true
|
||||
GLOBAL_DEXPREOPT_FLAGS += --compile-pic
|
||||
endif
|
||||
|
||||
# $(1): the .jar or .apk to remove classes.dex
|
||||
define dexpreopt-remove-classes.dex
|
||||
$(hide) zip --quiet --delete $(1) classes.dex; \
|
||||
|
|
|
@ -105,5 +105,6 @@ $(hide) ANDROID_LOG_TAGS="*:e" $(DEX2OAT) \
|
|||
--include-patch-information --runtime-arg -Xnorelocate --no-generate-debug-info \
|
||||
--abort-on-hard-verifier-error \
|
||||
--no-inline-from=core-oj.jar \
|
||||
$(PRIVATE_DEX_PREOPT_FLAGS)
|
||||
$(PRIVATE_DEX_PREOPT_FLAGS) \
|
||||
$(GLOBAL_DEXPREOPT_FLAGS)
|
||||
endef
|
||||
|
|
|
@ -31,11 +31,6 @@ $(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_INSTALLED_IMAGE := $(PRODUCT_OUT)$($(my_
|
|||
$(my_2nd_arch_prefix)LIBART_TARGET_BOOT_ART_EXTRA_INSTALLED_FILES := $(addprefix $(dir $($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_INSTALLED_IMAGE)),\
|
||||
$(LIBART_TARGET_BOOT_ART_EXTRA_FILES))
|
||||
|
||||
# Compile boot.oat as position-independent code if WITH_DEXPREOPT_PIC=true
|
||||
ifeq (true,$(WITH_DEXPREOPT_PIC))
|
||||
PRODUCT_DEX_PREOPT_BOOT_FLAGS += --compile-pic
|
||||
endif
|
||||
|
||||
# If we have a compiled-classes file, create a parameter.
|
||||
COMPILED_CLASSES_FLAGS :=
|
||||
ifneq ($(COMPILED_CLASSES),)
|
||||
|
@ -77,4 +72,4 @@ $($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME) : $(LIBART_TARGE
|
|||
--instruction-set-features=$($(PRIVATE_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES) \
|
||||
--android-root=$(PRODUCT_OUT)/system --include-patch-information --runtime-arg -Xnorelocate --no-generate-debug-info \
|
||||
--multi-image --no-inline-from=core-oj.jar \
|
||||
$(PRODUCT_DEX_PREOPT_BOOT_FLAGS) $(COMPILED_CLASSES_FLAGS)
|
||||
$(PRODUCT_DEX_PREOPT_BOOT_FLAGS) $(GLOBAL_DEXPREOPT_FLAGS) $(COMPILED_CLASSES_FLAGS)
|
||||
|
|
|
@ -88,6 +88,9 @@ endif # TARGET_2ND_ARCH
|
|||
endif # LOCAL_MODULE_CLASS
|
||||
endif # boot jar
|
||||
|
||||
built_odex := $(strip $(built_odex))
|
||||
installed_odex := $(strip $(installed_odex))
|
||||
|
||||
ifdef built_odex
|
||||
ifndef LOCAL_DEX_PREOPT_FLAGS
|
||||
LOCAL_DEX_PREOPT_FLAGS := $(DEXPREOPT.$(TARGET_PRODUCT).$(LOCAL_MODULE).CONFIG)
|
||||
|
@ -96,11 +99,6 @@ LOCAL_DEX_PREOPT_FLAGS := $(PRODUCT_DEX_PREOPT_DEFAULT_FLAGS)
|
|||
endif
|
||||
endif
|
||||
|
||||
# Compile apps with position-independent code if WITH_DEXPREOPT_PIC=true
|
||||
ifeq (true,$(WITH_DEXPREOPT_PIC))
|
||||
LOCAL_DEX_PREOPT_FLAGS += --compile-pic
|
||||
endif
|
||||
|
||||
$(built_odex): PRIVATE_DEX_PREOPT_FLAGS := $(LOCAL_DEX_PREOPT_FLAGS)
|
||||
|
||||
# Use pattern rule - we may have multiple installed odex files.
|
||||
|
@ -115,6 +113,19 @@ endif
|
|||
ALL_MODULES.$(my_register_name).INSTALLED += $(installed_odex)
|
||||
ALL_MODULES.$(my_register_name).BUILT_INSTALLED += $(built_installed_odex)
|
||||
|
||||
# Record dex-preopt config.
|
||||
DEXPREOPT.$(LOCAL_MODULE).DEX_PREOPT := $(LOCAL_DEX_PREOPT)
|
||||
DEXPREOPT.$(LOCAL_MODULE).MULTILIB := $(LOCAL_MULTILIB)
|
||||
DEXPREOPT.$(LOCAL_MODULE).DEX_PREOPT_FLAGS := $(LOCAL_DEX_PREOPT_FLAGS)
|
||||
DEXPREOPT.$(LOCAL_MODULE).PRIVILEGED_MODULE := $(LOCAL_PRIVILEGED_MODULE)
|
||||
DEXPREOPT.$(LOCAL_MODULE).PROPRIETARY_MODULE := $(LOCAL_PROPRIETARY_MODULE)
|
||||
DEXPREOPT.$(LOCAL_MODULE).TARGET_ARCH := $(LOCAL_MODULE_TARGET_ARCH)
|
||||
DEXPREOPT.$(LOCAL_MODULE).INSTALLED := $(installed_odex)
|
||||
DEXPREOPT.$(LOCAL_MODULE).INSTALLED_STRIPPED := $(LOCAL_INSTALLED_MODULE)
|
||||
DEXPREOPT.MODULES.$(LOCAL_MODULE_CLASS) := $(sort \
|
||||
$(DEXPREOPT.MODULES.$(LOCAL_MODULE_CLASS)) $(LOCAL_MODULE))
|
||||
|
||||
|
||||
# Make sure to install the .odex when you run "make <module_name>"
|
||||
$(my_register_name): $(installed_odex)
|
||||
|
||||
|
|
|
@ -538,6 +538,11 @@ endif
|
|||
|
||||
$(foreach mk, $(subdir_makefiles), $(info including $(mk) ...)$(eval include $(mk)))
|
||||
|
||||
ifdef PDK_FUSION_PLATFORM_ZIP
|
||||
# Bring in the PDK platform.zip modules.
|
||||
include $(BUILD_SYSTEM)/pdk_fusion_modules.mk
|
||||
endif # PDK_FUSION_PLATFORM_ZIP
|
||||
|
||||
endif # dont_bother
|
||||
|
||||
endif # ONE_SHOT_MAKEFILE
|
||||
|
@ -781,7 +786,7 @@ overridden_packages := $(call get-package-overrides,$(modules_to_install))
|
|||
ifdef overridden_packages
|
||||
# old_modules_to_install := $(modules_to_install)
|
||||
modules_to_install := \
|
||||
$(filter-out $(foreach p,$(overridden_packages),$(p) %/$(p).apk), \
|
||||
$(filter-out $(foreach p,$(overridden_packages),$(p) %/$(p).apk %/$(p).odex), \
|
||||
$(modules_to_install))
|
||||
endif
|
||||
#$(error filtered out
|
||||
|
|
|
@ -541,13 +541,17 @@ endif
|
|||
ifeq ($(full_classes_jar),)
|
||||
# We don't build jar, need to add the Java resources here.
|
||||
$(if $(PRIVATE_EXTRA_JAR_ARGS),$(call add-java-resources-to,$@))
|
||||
else
|
||||
else # full_classes_jar
|
||||
$(add-dex-to-package)
|
||||
endif
|
||||
endif # full_classes_jar
|
||||
ifdef LOCAL_JACK_ENABLED
|
||||
$(add-carried-jack-resources)
|
||||
endif
|
||||
ifdef LOCAL_DEX_PREOPT
|
||||
ifneq ($(BUILD_PLATFORM_ZIP),)
|
||||
@# Keep a copy of apk with classes.dex unstripped
|
||||
$(hide) cp -f $@ $(dir $@)package.dex.apk
|
||||
endif # BUILD_PLATFORM_ZIP
|
||||
ifneq (nostripping,$(LOCAL_DEX_PREOPT))
|
||||
$(call dexpreopt-remove-classes.dex,$@)
|
||||
endif
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
# Auto-generate module defitions from platform.zip.
|
||||
# We use these rules to rebuild .odex files of the .jar/.apk inside the platform.zip.
|
||||
#
|
||||
|
||||
pdk_dexpreopt_config_mk := $(TARGET_OUT_INTERMEDIATES)/pdk_dexpreopt_config.mk
|
||||
|
||||
$(shell rm -f $(pdk_dexpreopt_config_mk) && mkdir -p $(dir $(pdk_dexpreopt_config_mk)) && \
|
||||
unzip -qo $(PDK_FUSION_PLATFORM_ZIP) -d $(dir $(pdk_dexpreopt_config_mk)) pdk_dexpreopt_config.mk 2>/dev/null)
|
||||
|
||||
-include $(pdk_dexpreopt_config_mk)
|
||||
|
||||
# Define a PDK prebuilt module that comes from platform.zip.
|
||||
# Must be called with $(eval)
|
||||
define prebuilt-pdk-java-module
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE:=$(1)
|
||||
LOCAL_MODULE_CLASS:=$(2)
|
||||
# Use LOCAL_PREBUILT_MODULE_FILE instead of LOCAL_SRC_FILES so we don't need to deal with LOCAL_PATH.
|
||||
LOCAL_PREBUILT_MODULE_FILE:=$(3)
|
||||
LOCAL_DEX_PREOPT:=$(4)
|
||||
LOCAL_MULTILIB:=$(5)
|
||||
LOCAL_DEX_PREOPT_FLAGS:=$(6)
|
||||
LOCAL_BUILT_MODULE_STEM:=$(7)
|
||||
LOCAL_MODULE_SUFFIX:=$(suffix $(7))
|
||||
LOCAL_PRIVILEGED_MODULE:=$(8)
|
||||
LOCAL_PROPRIETARY_MODULE:=$(9)
|
||||
LOCAL_MODULE_TARGET_ARCH:=$(10)
|
||||
LOCAL_REPLACE_PREBUILT_APK_INSTALLED:=$(11)
|
||||
LOCAL_CERTIFICATE:=PRESIGNED
|
||||
include $(BUILD_PREBUILT)
|
||||
|
||||
# The source prebuilts are extracted in the rule of _pdk_fusion_stamp.
|
||||
# Use a touch rule to establish the dependency.
|
||||
$(3) $(11) : $(_pdk_fusion_stamp)
|
||||
$(hide) if [ ! -f $$@ ]; then \
|
||||
echo 'Error: $$@ does not exist. Check your platform.zip.' 1>&2; \
|
||||
exit 1; \
|
||||
fi
|
||||
$(hide) touch $$@
|
||||
endef
|
||||
|
||||
##### Java libraries.
|
||||
# Only set up rules for modules that aren't built from source.
|
||||
pdk_prebuilt_libraries := $(foreach l,$(PDK.DEXPREOPT.JAVA_LIBRARIES),\
|
||||
$(if $(MODULE.TARGET.JAVA_LIBRARIES.$(l)),,$(l)))
|
||||
|
||||
$(foreach l,$(pdk_prebuilt_libraries), $(eval \
|
||||
$(call prebuilt-pdk-java-module,\
|
||||
$(l),\
|
||||
JAVA_LIBRARIES,\
|
||||
$(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(l).SRC),\
|
||||
$(PDK.DEXPREOPT.$(l).DEX_PREOPT),\
|
||||
$(PDK.DEXPREOPT.$(l).MULTILIB),\
|
||||
$(PDK.DEXPREOPT.$(l).DEX_PREOPT_FLAGS),\
|
||||
javalib.jar,\
|
||||
)))
|
||||
|
||||
###### Apps.
|
||||
pdk_prebuilt_apps := $(foreach a,$(PDK.DEXPREOPT.APPS),\
|
||||
$(if $(MODULE.TARGET.APPS.$(a)),,$(a)))
|
||||
|
||||
$(foreach a,$(pdk_prebuilt_apps), $(eval \
|
||||
$(call prebuilt-pdk-java-module,\
|
||||
$(a),\
|
||||
APPS,\
|
||||
$(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(a).SRC),\
|
||||
$(PDK.DEXPREOPT.$(a).DEX_PREOPT),\
|
||||
$(PDK.DEXPREOPT.$(a).MULTILIB),\
|
||||
$(PDK.DEXPREOPT.$(a).DEX_PREOPT_FLAGS),\
|
||||
package.apk,\
|
||||
$(PDK.DEXPREOPT.$(a).PRIVILEGED_MODULE),\
|
||||
$(PDK.DEXPREOPT.$(a).PROPRIETARY_MODULE),\
|
||||
$(PDK.DEXPREOPT.$(a).TARGET_ARCH),\
|
||||
$(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(a).STRIPPED_SRC),\
|
||||
)))
|
|
@ -77,6 +77,12 @@ ifeq (STATIC_LIBRARIES,$(LOCAL_MODULE_CLASS))
|
|||
endif
|
||||
endif
|
||||
|
||||
ifeq (JAVA_LIBRARIES,$(LOCAL_IS_HOST_MODULE)$(LOCAL_MODULE_CLASS)$(filter true,$(LOCAL_UNINSTALLABLE_MODULE)))
|
||||
prebuilt_module_is_dex_javalib := true
|
||||
else
|
||||
prebuilt_module_is_dex_javalib :=
|
||||
endif
|
||||
|
||||
ifeq ($(LOCAL_MODULE_CLASS),APPS)
|
||||
LOCAL_BUILT_MODULE_STEM := package.apk
|
||||
LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE).apk
|
||||
|
@ -203,16 +209,23 @@ else
|
|||
endif
|
||||
|
||||
# Disable dex-preopt of prebuilts to save space, if requested.
|
||||
ifndef LOCAL_DEX_PREOPT
|
||||
ifeq ($(DONT_DEXPREOPT_PREBUILTS),true)
|
||||
LOCAL_DEX_PREOPT := false
|
||||
endif
|
||||
endif
|
||||
|
||||
#######################################
|
||||
# defines built_odex along with rule to install odex
|
||||
include $(BUILD_SYSTEM)/dex_preopt_odex_install.mk
|
||||
#######################################
|
||||
# Sign and align non-presigned .apks.
|
||||
ifneq ($(LOCAL_REPLACE_PREBUILT_APK_INSTALLED),)
|
||||
# There is a replacement for the prebuilt .apk we can install without any processing.
|
||||
$(built_module) : $(LOCAL_REPLACE_PREBUILT_APK_INSTALLED)
|
||||
$(transform-prebuilt-to-target)
|
||||
|
||||
else # ! LOCAL_REPLACE_PREBUILT_APK_INSTALLED
|
||||
# Sign and align non-presigned .apks.
|
||||
# The embedded prebuilt jni to uncompress.
|
||||
ifeq ($(LOCAL_CERTIFICATE),PRESIGNED)
|
||||
# For PRESIGNED apks we must uncompress every .so file:
|
||||
|
@ -229,18 +242,25 @@ $(built_module): PRIVATE_EMBEDDED_JNI_LIBS := $(embedded_prebuilt_jni_libs)
|
|||
$(built_module) : $(my_prebuilt_src_file) | $(ZIPALIGN) $(SIGNAPK_JAR) $(AAPT)
|
||||
$(transform-prebuilt-to-target)
|
||||
$(uncompress-shared-libs)
|
||||
ifdef LOCAL_DEX_PREOPT
|
||||
ifneq ($(BUILD_PLATFORM_ZIP),)
|
||||
@# Keep a copy of apk with classes.dex unstripped
|
||||
$(hide) cp -f $@ $(dir $@)package.dex.apk
|
||||
endif # BUILD_PLATFORM_ZIP
|
||||
endif # LOCAL_DEX_PREOPT
|
||||
ifneq ($(LOCAL_CERTIFICATE),PRESIGNED)
|
||||
@# Only strip out files if we can re-sign the package.
|
||||
ifdef LOCAL_DEX_PREOPT
|
||||
ifneq (nostripping,$(LOCAL_DEX_PREOPT))
|
||||
$(call dexpreopt-remove-classes.dex,$@)
|
||||
endif
|
||||
endif
|
||||
endif # LOCAL_DEX_PREOPT != nostripping
|
||||
endif # LOCAL_DEX_PREOPT
|
||||
$(sign-package)
|
||||
# No need for align-package because sign-package takes care of alignment
|
||||
else
|
||||
else # LOCAL_CERTIFICATE == PRESIGNED
|
||||
$(align-package)
|
||||
endif
|
||||
endif # LOCAL_CERTIFICATE
|
||||
endif # ! LOCAL_REPLACE_PREBUILT_APK_INSTALLED
|
||||
|
||||
###############################
|
||||
## Rule to build the odex file
|
||||
|
@ -285,7 +305,40 @@ $(my_register_name): $(installed_apk_splits)
|
|||
endif # LOCAL_PACKAGE_SPLITS
|
||||
|
||||
else # LOCAL_MODULE_CLASS != APPS
|
||||
ifeq ($(prebuilt_module_is_dex_javalib),true)
|
||||
# This is a target shared library, i.e. a jar with classes.dex.
|
||||
#######################################
|
||||
# defines built_odex along with rule to install odex
|
||||
include $(BUILD_SYSTEM)/dex_preopt_odex_install.mk
|
||||
#######################################
|
||||
ifdef LOCAL_DEX_PREOPT
|
||||
ifneq ($(dexpreopt_boot_jar_module),) # boot jar
|
||||
# boot jar's rules are defined in dex_preopt.mk
|
||||
dexpreopted_boot_jar := $(DEXPREOPT_BOOT_JAR_DIR_FULL_PATH)/$(dexpreopt_boot_jar_module)_nodex.jar
|
||||
$(built_module) : $(dexpreopted_boot_jar)
|
||||
$(call copy-file-to-target)
|
||||
|
||||
# For libart boot jars, we don't have .odex files.
|
||||
else # ! boot jar
|
||||
$(built_odex): PRIVATE_MODULE := $(LOCAL_MODULE)
|
||||
# Use pattern rule - we may have multiple built odex files.
|
||||
$(built_odex) : $(dir $(LOCAL_BUILT_MODULE))% : $(my_prebuilt_src_file)
|
||||
@echo "Dexpreopt Jar: $(PRIVATE_MODULE) ($@)"
|
||||
$(call dexpreopt-one-file,$<,$@)
|
||||
|
||||
$(built_module) : $(my_prebuilt_src_file)
|
||||
$(call copy-file-to-target)
|
||||
ifneq (nostripping,$(LOCAL_DEX_PREOPT))
|
||||
$(call dexpreopt-remove-classes.dex,$@)
|
||||
endif
|
||||
endif # boot jar
|
||||
else # ! LOCAL_DEX_PREOPT
|
||||
$(built_module) : $(my_prebuilt_src_file)
|
||||
$(call copy-file-to-target)
|
||||
endif # LOCAL_DEX_PREOPT
|
||||
|
||||
else # ! prebuilt_module_is_dex_javalib
|
||||
ifneq ($(LOCAL_PREBUILT_STRIP_COMMENTS),)
|
||||
$(built_module) : $(my_prebuilt_src_file)
|
||||
ifneq ($(LOCAL_PREBUILT_STRIP_COMMENTS),)
|
||||
$(transform-prebuilt-to-target-strip-comments)
|
||||
|
@ -295,7 +348,7 @@ endif
|
|||
ifeq ($(LOCAL_MODULE_CLASS),EXECUTABLES)
|
||||
$(hide) chmod +x $@
|
||||
endif
|
||||
|
||||
endif # ! prebuilt_module_is_dex_javalib
|
||||
endif # LOCAL_MODULE_CLASS != APPS
|
||||
|
||||
ifeq ($(LOCAL_MODULE_CLASS),JAVA_LIBRARIES)
|
||||
|
@ -303,13 +356,18 @@ my_src_jar := $(my_prebuilt_src_file)
|
|||
ifeq ($(LOCAL_IS_HOST_MODULE),)
|
||||
# for target java libraries, the LOCAL_BUILT_MODULE is in a product-specific dir,
|
||||
# while the deps should be in the common dir, so we make a copy in the common dir.
|
||||
# For nonstatic library, $(common_javalib_jar) is the dependency file,
|
||||
# while $(common_classes_jar) is used to link.
|
||||
common_classes_jar := $(intermediates.COMMON)/classes.jar
|
||||
common_javalib_jar := $(intermediates.COMMON)/javalib.jar
|
||||
|
||||
$(common_classes_jar) $(common_javalib_jar): PRIVATE_MODULE := $(LOCAL_MODULE)
|
||||
|
||||
ifeq ($(prebuilt_module_is_dex_javalib),true)
|
||||
# For prebuilt shared Java library we don't have classes.jar.
|
||||
$(common_javalib_jar) : $(my_src_jar)
|
||||
$(transform-prebuilt-to-target)
|
||||
|
||||
else # ! prebuilt_module_is_dex_javalib
|
||||
|
||||
my_src_aar := $(filter %.aar, $(my_prebuilt_src_file))
|
||||
ifneq ($(my_src_aar),)
|
||||
# This is .aar file, archive of classes.jar and Android resources.
|
||||
|
@ -322,6 +380,7 @@ $(my_src_jar) : $(my_src_aar)
|
|||
$(hide) touch $@
|
||||
|
||||
endif
|
||||
|
||||
$(common_classes_jar) : $(my_src_jar)
|
||||
$(transform-prebuilt-to-target)
|
||||
|
||||
|
@ -362,8 +421,11 @@ endif # $(my_src_aar)
|
|||
endif # LOCAL_USE_AAPT2
|
||||
# make sure the classes.jar and javalib.jar are built before $(LOCAL_BUILT_MODULE)
|
||||
$(built_module) : $(common_javalib_jar)
|
||||
|
||||
endif # ! prebuilt_module_is_dex_javalib
|
||||
endif # LOCAL_IS_HOST_MODULE is not set
|
||||
|
||||
ifneq ($(prebuilt_module_is_dex_javalib),true)
|
||||
ifneq ($(LOCAL_JILL_FLAGS),)
|
||||
$(error LOCAL_JILL_FLAGS is not supported any more, please use jack options in LOCAL_JACK_FLAGS instead)
|
||||
endif
|
||||
|
@ -379,6 +441,7 @@ $(intermediates.COMMON)/classes.jack : $(my_src_jar) \
|
|||
$(intermediates.COMMON)/classes.dex.toc: $(intermediates.COMMON)/classes.jack
|
||||
touch $@
|
||||
|
||||
endif # ! prebuilt_module_is_dex_javalib
|
||||
endif # JAVA_LIBRARIES
|
||||
|
||||
$(built_module) : $(LOCAL_ADDITIONAL_DEPENDENCIES)
|
||||
|
|
Loading…
Reference in New Issue