Android AOSP make sequence

来自个人维基
2019年9月26日 (四) 10:14free6d1823讨论 | 贡献的版本

跳转至: 导航搜索

Generic Android make sequence, let's trace aosp_arm64-eng defined in build/make/target/product/AndroidProducts.mk

TARGET_PRODUCT=aosp_arm64
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv8-a
TARGET_2ND_CPU_VARIANT=generic
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=PI
OUT_DIR=out


Makefile

Refer:https://blog.csdn.net/lizekun2010/article/details/52598105

+ build/core/main.mk
|---- build/make/core/config.mk
           $(BUILD_SYSTEM)=build/make/core
    |----  $(BUILD_SYSTEM_COMMON)/core.mk
    |----  $(BUILD_SYSTEM_COMMON)/math.mk
    |----  $(BUILD_SYSTEM_COMMON)/strings.mk
    |----  $(BUILD_SYSTEM_COMMON)/json.mk
    |----  $(BUILD_SYSTEM)/pathmap.mk
    |----  $(BUILD_SYSTEM)/project_definitions.mk
    |----  $(BUILD_SYSTEM)/deprecation.mk
    |----  -$(TOPDIR)buildspec.mk
    |----  $(BUILD_SYSTEM)/envsetup.mk
        |---- $(BUILD_SYSTEM)/version_defaults.mk
        |---- $(BUILD_SYSTEM)/combo/select.mk
        |---- $(BUILD_COMBOS)/select.mk
        |---- $(BUILD_SYSTEM)/product_config.mk
            |---- $(BUILD_SYSTEM)/node_fns.mk
            |---- $(BUILD_SYSTEM)/product.mk
            |---- $(BUILD_SYSTEM)/device.mk
                  $current_product_makefile =build/make/target/product/aosp_arm64.mk

        |---- $(BUILD_SYSTEM)/board_config.mk
        |---- $(BUILD_SYSTEM)/aux_config.mk
    |----  $(BUILD_SYSTEM)/ccache.mk
    |----  $(BUILD_SYSTEM)/goma.mk
    |----  $(BUILD_SYSTEM)/rbe.mk
    |----  $(BUILD_SYSTEM)/combo/javac.mk
    |----  $(BUILD_SYSTEM)/ninja_config.mk
    |----  $(BUILD_SYSTEM)/soong_config.mk
    |----  -external/linux-kselftest/android/kselftest_test_list.mk
    |----  -external/ltp/android/ltp_package_list.mk
    |----  $(BUILD_SYSTEM)/dumpvar.mk
|---- $(SOONG_MAKEVARS_MK)
|---- $(BUILD_SYSTEM)/clang/config.mk
|---- -cts/build/config.mk (- means ignore error)
|---- -test/vts/tools/vts-tradefed/build/config.mk
|---- -tools/tradefederation/build/suites/device-tests/config.mk
|---- -tools/tradefederation/build/suites/general-tests/config.mk
|---- -test/sts/tools/sts-tradefed/build/config.mk
|---- -test/suite_harness/tools/cts-instant-tradefed/build/config.mk
|---- -test/mts/tools/build/config.mk
|---- -vendor/google/build/config.mk (google-specifiec config)
|---- $(BUILD_SYSTEM)/definitions.mk
|---- $(BUILD_SYSTEM)/dex_preopt.mk
|---- build/make/core/pdk_config.mk
|---- $(BUILD_SYSTEM)/pdk_fusion_modules.mk

Note:

all_product_makefiles =  
  device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk 
  device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk 
  device/google/cuttlefish/vsoc_x86/auto/device.mk   
  device/google/cuttlefish/vsoc_x86/go_512_phone/device.mk 
  device/google/cuttlefish/vsoc_x86/go_phone/device.mk 
  device/google/cuttlefish/vsoc_x86/gsi/aosp_cf_x86_gsi.mk
  device/google/cuttlefish/vsoc_x86/pasan/aosp_cf.mk 
  device/google/cuttlefish/vsoc_x86/phone/aosp_cf.mk 
  device/google/cuttlefish/vsoc_x86_noapex/aosp_cf_noapex.mk 
  device/google/cuttlefish/vsoc_x86/tv/device.mk device/ti/beagle_x15/beagle_x15.mk 
  device/ti/beagle_x15/auto/beagle_x15.mk
  build/make/target/product/aosp_arm.mk  
  build/make/target/product/aosp_arm64.mk
  build/make/target/product/aosp_arm64_ab.mk  
  build/make/target/product/aosp_arm_ab.mk
  build/make/target/product/aosp_x86.mk
  build/make/target/product/aosp_x86_64.mk
  build/make/target/product/aosp_x86_64_ab.mk
  build/make/target/product/aosp_x86_ab.mk
  build/make/target/product/aosp_x86_arm.mk
  build/make/target/product/full.mk
  build/make/target/product/full_x86.mk
  build/make/target/product/generic.mk
  build/make/target/product/generic_x86.mk
  build/make/target/product/gsi_arm64.mk
  build/make/target/product/mainline_arm64.mk
  build/make/target/product/mainline_system_arm64.mk
  build/make/target/product/sdk.mk
  build/make/target/product/sdk_arm64.mk
  build/make/target/product/sdk_phone_arm64.mk
  build/make/target/product/sdk_phone_armv7.mk
  build/make/target/product/sdk_phone_x86.mk
  build/make/target/product/sdk_phone_x86_64.mk
  build/make/target/product/sdk_x86.mk
  build/make/target/product/sdk_x86_64.mk
  device/amlogic/yukawa/yukawa.mk
  device/amlogic/yukawa/yukawa32.mk
  device/generic/arm64/mini_arm64.mk
  device/generic/armv7-a-neon/mini_armv7a_neon.mk
  device/generic/car/aosp_car_arm.mk
  device/generic/car/aosp_car_arm64.mk
  device/generic/car/aosp_car_x86.mk
  device/generic/car/aosp_car_x86_64.mk
  device/generic/goldfish/kernel-tests/goldfish_kernel_tests_x86_64.mk
  device/generic/mini-emulator-arm64/mini_emulator_arm64.mk
  device/generic/mini-emulator-armv7-a-neon/m_e_arm.mk
  device/generic/mini-emulator-x86/mini_emulator_x86.mk
  device/generic/mini-emulator-x86_64/mini_emulator_x86_64.mk 
  device/generic/qemu/qemu_arm.mk device/generic/qemu/qemu_arm64.mk 
  device/generic/qemu/qemu_x86.mk device/generic/qemu/qemu_x86_64.mk
  device/generic/qemu/ranchu_arm64.mk device/generic/trusty/qemu_trusty_arm64.mk 
  device/generic/uml/uml.mk
  device/generic/x86/mini_x86.mk
  device/generic/x86_64/mini_x86_64.mk
  device/google/atv/products/aosp_atv_arm64_ab.mk
  device/google/atv/products/aosp_atv_arm_ab.mk
  device/google/bonito/aosp_bonito.mk
  device/google/bonito/aosp_sargo.mk
  device/google/crosshatch/aosp_blueline.mk 
  device/google/crosshatch/aosp_crosshatch.mk 
  device/google/fuchsia/fuchsia_arm64/fuchsia_arm64.mk 
  device/google/fuchsia/fuchsia_x86_64/fuchsia_x86_64.mk
  device/google/marlin/aosp_marlin.mk
  device/google/marlin/aosp_sailfish.mk
  device/google/muskie/aosp_walleye.mk
  device/google/muskie/aosp_walleye_test.mk
  device/google/taimen/aosp_taimen.mk
  device/linaro/hikey/hikey.mk
  device/linaro/hikey/hikey32.mk
  device/linaro/hikey/hikey64_only.mk
  device/linaro/hikey/hikey960.mk
  device/linaro/hikey/hikey960_car.mk
  device/linaro/hikey/hikey960_tv.mk
  device/linaro/hikey/hikey_tv.mk
  device/linaro/poplar/poplar.mk
  device/sample/products/sample_addon.mk


Building target dependency in build/core/main.mk

<DEFAULT_GOAL> droid
   |-- droid_targets
     |-- blueprint_tools
     |-- no_vendor_variant_vndk_check
     |-- apps_only
     |-- droidcore
       |-- $(modules_to_install) =
             $(ALL_DEFAULT_INSTALLED_MODULES) \
             $(product_target_FILES) \
             $(product_host_FILES) \
             $(CUSTOM_MODULES) \
       |-- $(INSTALLED_FILES_JSON_SYSTEM_EXT) 
       |-- $(INSTALLED_FILES_FILE_SYSTEMOTHER) 
       |-- $(INSTALLED_FILES_JSON_SYSTEMOTHER) \
       |-- $(INSTALLED_FILES_FILE_RAMDISK) \
       |-- $(INSTALLED_FILES_JSON_RAMDISK) \
       |-- $(INSTALLED_FILES_FILE_DEBUG_RAMDISK) \
       |-- $(INSTALLED_FILES_JSON_DEBUG_RAMDISK) \
       |-- $(INSTALLED_FILES_FILE_ROOT) \
       |-- $(INSTALLED_FILES_JSON_ROOT) \
       |-- $(INSTALLED_FILES_FILE_RECOVERY) \
       |-- $(INSTALLED_FILES_JSON_RECOVERY) \
       |-- $(INSTALLED_ANDROID_INFO_TXT_TARGET) \
       |-- auxiliary \
       |-- soong_docs
     |-- dist_files
   |-- checkbuild
     |-- $(module_to_check)
     |-- droid_targets
clean-dex-files:


$(SRC_TARGET_DIR)/product/aosp_arm64.mk sequence:

      |---+ core_64_bit.mk
          |---- <> init.zygote64_32.rc
      |---mainline_system.mk
      |---aosp_product.mk
      |---device/generic/goldfish/arm64-vendor.mk
      |---$(SRC_TARGET_DIR)/product/emulator_vendor.mk
      |---$(SRC_TARGET_DIR)/board/generic_arm64/device.mk
      |---$(SRC_TARGET_DIR)/product/gsi_release.mk
SRC_TARGET_DIR=build/make/target/product