2016-03-30 4 views
3

私はAndroid Open Source Projectのmakefileを見ています。私は、別のmakefileを2つの異なる方法で使用しているように見えます。AOSPメイクファイルの `call inherit-product`と` include`の違いは?

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 ...ラインとの差(s)はどのようなものです:たとえば、master/build/target/product/aosp_arm64.mkは、これらの行を持っていますか?

+0

'$(継承する製品を呼び出しを記録します、$(SRC_TARGET_DIR)/product/core_64_bit.mk) ' は別のメイクファイルを含める方法ではありません。それは、引数 '$($$$$)を使用して、ユーザー定義の メイク関数への呼び出し '(https://www.gnu.org/software/make/manual/html_node/Call-Function.html) ' inherit-product'です。 (SRC_TARGET_DIR)/ product/core_64_bit.mk'を参照してください。 その機能を知るには、その定義を検索する必要があります。 –

答えて

3

includeファイルが含まれています。 inherit-productこれを実行すると、以下のリンクでファイルに3つ以上の条件が一致します。

  1. $ 1のすべての変数を継承します。
  2. は、変数.INHERITS_FROMでの継承
  3. 我々はALL_PRODUCTSで、このノードを訪れたレコード

を参照してください詳細については、このファイルの行113 core/product.mk

関連する問題