github.com/westcoastroms/westcoastroms-build@v0.0.0-20190928114312-2350e5a73030/build/make/core/pdk_fusion_modules.mk (about)

     1  # Auto-generate module defitions from platform.zip.
     2  # We use these rules to rebuild .odex files of the .jar/.apk inside the platform.zip.
     3  #
     4  
     5  ifdef PDK_FUSION_PLATFORM_ZIP
     6  pdk_dexpreopt_config_mk := $(TARGET_OUT_INTERMEDIATES)/pdk_dexpreopt_config.mk
     7  
     8  $(shell rm -f $(pdk_dexpreopt_config_mk) && mkdir -p $(dir $(pdk_dexpreopt_config_mk)) && \
     9          unzip -qo $(PDK_FUSION_PLATFORM_ZIP) -d $(dir $(pdk_dexpreopt_config_mk)) pdk_dexpreopt_config.mk 2>/dev/null)
    10  endif
    11  
    12  ifdef PDK_FUSION_PLATFORM_DIR
    13  pdk_dexpreopt_config_mk := $(PDK_FUSION_PLATFORM_DIR)/pdk_dexpreopt_config.mk
    14  endif
    15  
    16  -include $(pdk_dexpreopt_config_mk)
    17  
    18  # Define a PDK prebuilt module that comes from platform.zip.
    19  # Must be called with $(eval)
    20  define prebuilt-pdk-java-module
    21  include $(CLEAR_VARS)
    22  LOCAL_MODULE:=$(1)
    23  LOCAL_MODULE_CLASS:=$(2)
    24  # Use LOCAL_PREBUILT_MODULE_FILE instead of LOCAL_SRC_FILES so we don't need to deal with LOCAL_PATH.
    25  LOCAL_PREBUILT_MODULE_FILE:=$(3)
    26  LOCAL_DEX_PREOPT:=$(4)
    27  LOCAL_MULTILIB:=$(5)
    28  LOCAL_DEX_PREOPT_FLAGS:=$(6)
    29  LOCAL_BUILT_MODULE_STEM:=$(7)
    30  LOCAL_MODULE_SUFFIX:=$(suffix $(7))
    31  LOCAL_PRIVILEGED_MODULE:=$(8)
    32  LOCAL_VENDOR_MODULE:=$(9)
    33  LOCAL_MODULE_TARGET_ARCH:=$(10)
    34  LOCAL_REPLACE_PREBUILT_APK_INSTALLED:=$(11)
    35  LOCAL_CERTIFICATE:=PRESIGNED
    36  include $(BUILD_PREBUILT)
    37  
    38  # The source prebuilts are extracted in the rule of _pdk_fusion_stamp.
    39  # Use a touch rule to establish the dependency.
    40  $(3) $(11) : $(_pdk_fusion_stamp)
    41  	$(hide) if [ ! -f $$@ ]; then \
    42  	  echo 'Error: $$@ does not exist. Check your platform.zip.' 1>&2; \
    43  	  exit 1; \
    44  	fi
    45  	$(hide) touch $$@
    46  endef
    47  
    48  # We don't have a LOCAL_PATH for the auto-generated modules, so let it be the $(BUILD_SYSTEM).
    49  LOCAL_PATH := $(BUILD_SYSTEM)
    50  
    51  ##### Java libraries.
    52  # Only set up rules for modules that aren't built from source.
    53  pdk_prebuilt_libraries := $(foreach l,$(PDK.DEXPREOPT.JAVA_LIBRARIES),\
    54    $(if $(MODULE.TARGET.JAVA_LIBRARIES.$(l)),,$(l)))
    55  
    56  $(foreach l,$(pdk_prebuilt_libraries), $(eval \
    57    $(call prebuilt-pdk-java-module,\
    58      $(l),\
    59      JAVA_LIBRARIES,\
    60      $(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(l).SRC),\
    61      $(PDK.DEXPREOPT.$(l).DEX_PREOPT),\
    62      $(PDK.DEXPREOPT.$(l).MULTILIB),\
    63      $(PDK.DEXPREOPT.$(l).DEX_PREOPT_FLAGS),\
    64      javalib.jar,\
    65      )))
    66  
    67  ###### Apps.
    68  pdk_prebuilt_apps := $(foreach a,$(PDK.DEXPREOPT.APPS),\
    69    $(if $(MODULE.TARGET.APPS.$(a)),,$(a)))
    70  
    71  $(foreach a,$(pdk_prebuilt_apps), $(eval \
    72    $(call prebuilt-pdk-java-module,\
    73      $(a),\
    74      APPS,\
    75      $(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(a).SRC),\
    76      $(PDK.DEXPREOPT.$(a).DEX_PREOPT),\
    77      $(PDK.DEXPREOPT.$(a).MULTILIB),\
    78      $(PDK.DEXPREOPT.$(a).DEX_PREOPT_FLAGS),\
    79      package.apk,\
    80      $(PDK.DEXPREOPT.$(a).PRIVILEGED_MODULE),\
    81      $(PDK.DEXPREOPT.$(a).VENDOR_MODULE),\
    82      $(PDK.DEXPREOPT.$(a).TARGET_ARCH),\
    83      $(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(a).STRIPPED_SRC),\
    84      )))