X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=core%2Fproduct.mk;h=adc81c37092f0348c70add50cce852e1b1e315cd;hb=61a147e3a6b3e33567fc95f8f13abee7d9cb8a5d;hp=08019e8528bb93387befc7837e6505375dd4a286;hpb=0c2b8bfb87532631e9b3ecd1896ec30c01391b7e;p=android-x86%2Fbuild.git diff --git a/core/product.mk b/core/product.mk index 08019e852..adc81c370 100644 --- a/core/product.mk +++ b/core/product.mk @@ -23,14 +23,8 @@ # $(call ) isn't necessary. # define _find-android-products-files -$(foreach vendor,$(wildcard vendor/*), \ - $(if $(wildcard $(vendor)/AndroidProducts.mk), \ - $(vendor)/AndroidProducts.mk \ - , \ - $(wildcard $(vendor)/*/AndroidProducts.mk) \ - ) \ - ) \ - $(wildcard $(SRC_TARGET_DIR)/product/AndroidProducts.mk) +$(shell test -d vendor && find vendor -maxdepth 6 -name AndroidProducts.mk) \ + $(SRC_TARGET_DIR)/product/AndroidProducts.mk endef # @@ -67,7 +61,14 @@ _product_var_list := \ PRODUCT_COPY_FILES \ PRODUCT_OTA_PUBLIC_KEYS \ PRODUCT_POLICY \ - PRODUCT_PACKAGE_OVERLAYS + PRODUCT_PACKAGE_OVERLAYS \ + DEVICE_PACKAGE_OVERLAYS \ + PRODUCT_CONTRIBUTORS_FILE \ + PRODUCT_TAGS \ + PRODUCT_SDK_ADDON_NAME \ + PRODUCT_SDK_ADDON_COPY_FILES \ + PRODUCT_SDK_ADDON_COPY_MODULES \ + PRODUCT_SDK_ADDON_DOC_MODULE define dump-product $(info ==== $(1) ====)\ @@ -83,9 +84,19 @@ endef # # $(1): product to inherit # +# Does three things: +# 1. Inherits all of the variables from $1. +# 2. Records the inheritance in the .INHERITS_FROM variable +# 3. Records that we've visited this node, in ALL_PRODUCTS +# define inherit-product $(foreach v,$(_product_var_list), \ - $(eval $(v) := $($(v)) $(INHERIT_TAG)$(strip $(1)))) + $(eval $(v) := $($(v)) $(INHERIT_TAG)$(strip $(1)))) \ + $(eval inherit_var := \ + PRODUCTS.$(strip $(word 1,$(_include_stack))).INHERITS_FROM) \ + $(eval $(inherit_var) := $(sort $($(inherit_var)) $(strip $(1)))) \ + $(eval inherit_var:=) \ + $(eval ALL_PRODUCTS := $(sort $(ALL_PRODUCTS) $(word 1,$(_include_stack)))) endef #