我正在查看Android开源项目的makefile,我看到了包含另一个makefile的两种不同方式。例如,master/build/target/product/aosp_arm64.mk
有以下几行:
PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.xml
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/board/generic_arm64/device.mk)
include $(SRC_TARGET_DIR)/product/emulator.mk
PRODUCT_NAME := aosp_arm64
PRODUCT_DEVICE := generic_arm64
PRODUCT_BRAND := Android
PRODUCT_MODEL := AOSP on ARM arm64 Emulator
$(call inherit-product ...)
线路和include ...
线路有什么不同?
发布于 2016-12-08 00:57:18
include
只包含该文件。inherit-product
做到了这一点,并在下面的链接中向文件添加了另外三件事:
中
有关详细信息core/product.mk,请参阅此文件中的第113行
发布于 2019-05-06 18:12:16
假设在A.mk中有PRODUCT_VAR := a
,在B.mk中有PRODUCT_VAR := b
。
如果你把B.mk包含在A.mk中,你最终会得到PRODUCT_VAR := b
。
但是如果你在A.mk中inherit-product
B.mk,你会得到PRODUCT_VAR := a b
。
而且inherit-product
确保你不会包含两次makefile,因为它是Records that we've visited this node, in ALL_PRODUCTS
的。
https://stackoverflow.com/questions/36321050
复制相似问题