2016-03-30 31 views
3

Android Açık Kaynak Projesi makefilesine bakıyorum ve başka makefile dahil etmenin iki farklı yolu olduğunu düşünüyorum.AOSP maketlerinde "devralma ürünü" ile "dahil et" arasındaki fark nedir?

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 ...) hattı ve include ... hattı arasındaki fark (ler) ne: Örneğin, master/build/target/product/aosp_arm64.mk bu hatları vardır? Dosyayı sadece

+0

'$ (miras-ürün olarak adlandırdığımız Kayıtları , $ (SRC_TARGET_DIR) /product/core_64_bit.mk) başka bir makefile dahil etmenin bir yolu değildir. Bu argüman ile bir kullanıcı [ make-function] çağrısı (https://www.gnu.org/software/make/manual/html_node/Call-Function.html) ''inherit-product' ' (SRC_TARGET_DIR)/ürün/core_64_bit.mk'. Bu işlevin, tanımını aramak zorunda kalacağını bilmek. –

cevap

3

include dosyasında bulabilirsiniz. inherit-product bunu ve aşağıdaki üç bağlantıyı dosyaya bağlar:

  1. Tüm değişkenleri $ 1'den devralın.
  2. değişken .INHERITS_FROM içinde miras
  3. biz ALL_PRODUCTS içinde, bu düğüm ziyaret Kayıtlar

bakın Ayrıntılar için bu dosyada hat 113 core/product.mk