@ -106,30 +106,37 @@ define get-all-product-makefiles
$( call get -product -makefiles ,$ ( _find -android -products -files ) )
e n d e f
_product_var_list :=
_product_var_list += PRODUCT_NAME
_product_var_list += PRODUCT_MODEL
# Variables that are meant to hold only a single value.
# - The value set in the current makefile takes precedence over inherited values
# - If multiple inherited makefiles set the var, the first-inherited value wins
_product_single_value_vars :=
# Variables that are lists of values.
_product_list_vars :=
_product_list_vars += PRODUCT_NAME
_product_list_vars += PRODUCT_MODEL
# The resoure configuration options to use for this product.
_product_var_list += PRODUCT_LOCALES
_product_var_list += PRODUCT_AAPT_CONFIG
_product_var_list += PRODUCT_AAPT_PREF_CONFIG
_product_var_list += PRODUCT_AAPT_PREBUILT_DPI
_product_var_list += PRODUCT_HOST_PACKAGES
_product_ var_li st += PRODUCT_PACKAGES
_product_ var_li st += PRODUCT_PACKAGES_DEBUG
_product_ var_li st += PRODUCT_PACKAGES_DEBUG_ASAN
_product_ var_li st += PRODUCT_PACKAGES_ENG
_product_ var_li st += PRODUCT_PACKAGES_TESTS
_product_ list_ vars += PRODUCT_LOCALES
_product_ list_ vars += PRODUCT_AAPT_CONFIG
_product_ list_ vars += PRODUCT_AAPT_PREF_CONFIG
_product_ list_ vars += PRODUCT_AAPT_PREBUILT_DPI
_product_ list_ vars += PRODUCT_HOST_PACKAGES
_product_ list_ vars += PRODUCT_PACKAGES
_product_ list_ vars += PRODUCT_PACKAGES_DEBUG
_product_ list_ vars += PRODUCT_PACKAGES_DEBUG_ASAN
_product_ list_ vars += PRODUCT_PACKAGES_ENG
_product_ list_ vars += PRODUCT_PACKAGES_TESTS
# The device that this product maps to.
_product_ var_li st += PRODUCT_DEVICE
_product_ var_li st += PRODUCT_MANUFACTURER
_product_ var_li st += PRODUCT_BRAND
_product_ list_ vars += PRODUCT_DEVICE
_product_ list_ vars += PRODUCT_MANUFACTURER
_product_ list_ vars += PRODUCT_BRAND
# These PRODUCT_SYSTEM_* flags, if defined, are used in place of the
# corresponding PRODUCT_* flags for the sysprops on /system.
_product_ var_li st += \
_product_ list_ vars += \
PRODUCT_SYSTEM_NAME \
PRODUCT_SYSTEM_MODEL \
PRODUCT_SYSTEM_DEVICE \
@ -138,24 +145,24 @@ _product_var_list += \
# A list of property assignments, like "key = value", with zero or more
# whitespace characters on either side of the '='.
_product_ var_li st += PRODUCT_PROPERTY_OVERRIDES
_product_ list_ vars += PRODUCT_PROPERTY_OVERRIDES
# A list of property assignments, like "key = value", with zero or more
# whitespace characters on either side of the '='.
# used for adding properties to default.prop
_product_ var_li st += PRODUCT_DEFAULT_PROPERTY_OVERRIDES
_product_ list_ vars += PRODUCT_DEFAULT_PROPERTY_OVERRIDES
# A list of property assignments, like "key = value", with zero or more
# whitespace characters on either side of the '='.
# used for adding properties to build.prop of product partition
_product_ var_li st += PRODUCT_PRODUCT_PROPERTIES
_product_ list_ vars += PRODUCT_PRODUCT_PROPERTIES
# A list of property assignments, like "key = value", with zero or more
# whitespace characters on either side of the '='.
# used for adding properties to build.prop of product partition
_product_ var_li st += PRODUCT_PRODUCT_SERVICES_PROPERTIES
_product_ var_li st += PRODUCT_ODM_PROPERTIES
_product_ var_li st += PRODUCT_CHARACTERISTICS
_product_ list_ vars += PRODUCT_PRODUCT_SERVICES_PROPERTIES
_product_ list_ vars += PRODUCT_ODM_PROPERTIES
_product_ list_ vars += PRODUCT_CHARACTERISTICS
# A list of words like <source path>:<destination path>[:<owner>].
# The file at the source path should be copied to the destination path
@ -163,157 +170,157 @@ _product_var_list += PRODUCT_CHARACTERISTICS
# $(PRODUCT_OUT), so it should look like, e.g., "system/etc/file.xml".
# The rules for these copy steps are defined in build/make/core/Makefile.
# The optional :<owner> is used to indicate the owner of a vendor file.
_product_ var_li st += PRODUCT_COPY_FILES
_product_ list_ vars += PRODUCT_COPY_FILES
# The OTA key(s) specified by the product config, if any. The names
# of these keys are stored in the target-files zip so that post-build
# signing tools can substitute them for the test key embedded by
# default.
_product_ var_li st += PRODUCT_OTA_PUBLIC_KEYS
_product_ var_li st += PRODUCT_EXTRA_RECOVERY_KEYS
_product_ list_ vars += PRODUCT_OTA_PUBLIC_KEYS
_product_ list_ vars += PRODUCT_EXTRA_RECOVERY_KEYS
# Should we use the default resources or add any product specific overlays
_product_ var_li st += PRODUCT_PACKAGE_OVERLAYS
_product_ var_li st += DEVICE_PACKAGE_OVERLAYS
_product_ list_ vars += PRODUCT_PACKAGE_OVERLAYS
_product_ list_ vars += DEVICE_PACKAGE_OVERLAYS
# Resource overlay list which must be excluded from enforcing RRO.
_product_ var_li st += PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS
_product_ list_ vars += PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS
# Package list to apply enforcing RRO.
_product_ var_li st += PRODUCT_ENFORCE_RRO_TARGETS
_product_ list_ vars += PRODUCT_ENFORCE_RRO_TARGETS
_product_ var_li st += PRODUCT_SDK_ATREE_FILES
_product_ var_li st += PRODUCT_SDK_ADDON_NAME
_product_ var_li st += PRODUCT_SDK_ADDON_COPY_FILES
_product_ var_li st += PRODUCT_SDK_ADDON_COPY_MODULES
_product_ var_li st += PRODUCT_SDK_ADDON_DOC_MODULES
_product_ var_li st += PRODUCT_SDK_ADDON_SYS_IMG_SOURCE_PROP
_product_ list_ vars += PRODUCT_SDK_ATREE_FILES
_product_ list_ vars += PRODUCT_SDK_ADDON_NAME
_product_ list_ vars += PRODUCT_SDK_ADDON_COPY_FILES
_product_ list_ vars += PRODUCT_SDK_ADDON_COPY_MODULES
_product_ list_ vars += PRODUCT_SDK_ADDON_DOC_MODULES
_product_ list_ vars += PRODUCT_SDK_ADDON_SYS_IMG_SOURCE_PROP
# which Soong namespaces to export to Make
_product_ var_li st += PRODUCT_SOONG_NAMESPACES
_product_ list_ vars += PRODUCT_SOONG_NAMESPACES
_product_ var_li st += PRODUCT_DEFAULT_WIFI_CHANNELS
_product_ var_li st += PRODUCT_DEFAULT_DEV_CERTIFICATE
_product_ var_li st += PRODUCT_RESTRICT_VENDOR_FILES
_product_ list_ vars += PRODUCT_DEFAULT_WIFI_CHANNELS
_product_ list_ vars += PRODUCT_DEFAULT_DEV_CERTIFICATE
_product_ list_ vars += PRODUCT_RESTRICT_VENDOR_FILES
# The list of product-specific kernel header dirs
_product_ var_li st += PRODUCT_VENDOR_KERNEL_HEADERS
_product_ list_ vars += PRODUCT_VENDOR_KERNEL_HEADERS
# A list of module names of BOOTCLASSPATH (jar files)
_product_ var_li st += PRODUCT_BOOT_JARS
_product_ var_li st += PRODUCT_SUPPORTS_BOOT_SIGNER
_product_ var_li st += PRODUCT_SUPPORTS_VBOOT
_product_ var_li st += PRODUCT_SUPPORTS_VERITY
_product_ var_li st += PRODUCT_SUPPORTS_VERITY_FEC
_product_ var_li st += PRODUCT_OEM_PROPERTIES
_product_ list_ vars += PRODUCT_BOOT_JARS
_product_ list_ vars += PRODUCT_SUPPORTS_BOOT_SIGNER
_product_ list_ vars += PRODUCT_SUPPORTS_VBOOT
_product_ list_ vars += PRODUCT_SUPPORTS_VERITY
_product_ list_ vars += PRODUCT_SUPPORTS_VERITY_FEC
_product_ list_ vars += PRODUCT_OEM_PROPERTIES
# A list of property assignments, like "key = value", with zero or more
# whitespace characters on either side of the '='.
# used for adding properties to default.prop of system partition
_product_ var_li st += PRODUCT_SYSTEM_DEFAULT_PROPERTIES
_product_ list_ vars += PRODUCT_SYSTEM_DEFAULT_PROPERTIES
_product_ var_li st += PRODUCT_SYSTEM_PROPERTY_BLACKLIST
_product_ var_li st += PRODUCT_VENDOR_PROPERTY_BLACKLIST
_product_ var_li st += PRODUCT_SYSTEM_SERVER_APPS
_product_ var_li st += PRODUCT_SYSTEM_SERVER_JARS
_product_ list_ vars += PRODUCT_SYSTEM_PROPERTY_BLACKLIST
_product_ list_ vars += PRODUCT_VENDOR_PROPERTY_BLACKLIST
_product_ list_ vars += PRODUCT_SYSTEM_SERVER_APPS
_product_ list_ vars += PRODUCT_SYSTEM_SERVER_JARS
# All of the apps that we force preopt, this overrides WITH_DEXPREOPT.
_product_ var_li st += PRODUCT_ALWAYS_PREOPT_EXTRACTED_APK
_product_ var_li st += PRODUCT_DEXPREOPT_SPEED_APPS
_product_ var_li st += PRODUCT_LOADED_BY_PRIVILEGED_MODULES
_product_ var_li st += PRODUCT_VBOOT_SIGNING_KEY
_product_ var_li st += PRODUCT_VBOOT_SIGNING_SUBKEY
_product_ var_li st += PRODUCT_VERITY_SIGNING_KEY
_product_ var_li st += PRODUCT_SYSTEM_VERITY_PARTITION
_product_ var_li st += PRODUCT_VENDOR_VERITY_PARTITION
_product_ var_li st += PRODUCT_PRODUCT_VERITY_PARTITION
_product_ var_li st += PRODUCT_PRODUCT_SERVICES_VERITY_PARTITION
_product_ var_li st += PRODUCT_ODM_VERITY_PARTITION
_product_ var_li st += PRODUCT_SYSTEM_SERVER_DEBUG_INFO
_product_ var_li st += PRODUCT_OTHER_JAVA_DEBUG_INFO
_product_ list_ vars += PRODUCT_ALWAYS_PREOPT_EXTRACTED_APK
_product_ list_ vars += PRODUCT_DEXPREOPT_SPEED_APPS
_product_ list_ vars += PRODUCT_LOADED_BY_PRIVILEGED_MODULES
_product_ list_ vars += PRODUCT_VBOOT_SIGNING_KEY
_product_ list_ vars += PRODUCT_VBOOT_SIGNING_SUBKEY
_product_ list_ vars += PRODUCT_VERITY_SIGNING_KEY
_product_ list_ vars += PRODUCT_SYSTEM_VERITY_PARTITION
_product_ list_ vars += PRODUCT_VENDOR_VERITY_PARTITION
_product_ list_ vars += PRODUCT_PRODUCT_VERITY_PARTITION
_product_ list_ vars += PRODUCT_PRODUCT_SERVICES_VERITY_PARTITION
_product_ list_ vars += PRODUCT_ODM_VERITY_PARTITION
_product_ list_ vars += PRODUCT_SYSTEM_SERVER_DEBUG_INFO
_product_ list_ vars += PRODUCT_OTHER_JAVA_DEBUG_INFO
# Per-module dex-preopt configs.
_product_ var_li st += PRODUCT_DEX_PREOPT_MODULE_CONFIGS
_product_ var_li st += PRODUCT_DEX_PREOPT_DEFAULT_COMPILER_FILTER
_product_ var_li st += PRODUCT_DEX_PREOPT_DEFAULT_FLAGS
_product_ var_li st += PRODUCT_DEX_PREOPT_BOOT_FLAGS
_product_ var_li st += PRODUCT_DEX_PREOPT_PROFILE_DIR
_product_ var_li st += PRODUCT_DEX_PREOPT_GENERATE_DM_FILES
_product_ var_li st += PRODUCT_DEX_PREOPT_NEVER_ALLOW_STRIPPING
_product_ var_li st += PRODUCT_DEX_PREOPT_RESOLVE_STARTUP_STRINGS
_product_ list_ vars += PRODUCT_DEX_PREOPT_MODULE_CONFIGS
_product_ list_ vars += PRODUCT_DEX_PREOPT_DEFAULT_COMPILER_FILTER
_product_ list_ vars += PRODUCT_DEX_PREOPT_DEFAULT_FLAGS
_product_ list_ vars += PRODUCT_DEX_PREOPT_BOOT_FLAGS
_product_ list_ vars += PRODUCT_DEX_PREOPT_PROFILE_DIR
_product_ list_ vars += PRODUCT_DEX_PREOPT_GENERATE_DM_FILES
_product_ list_ vars += PRODUCT_DEX_PREOPT_NEVER_ALLOW_STRIPPING
_product_ list_ vars += PRODUCT_DEX_PREOPT_RESOLVE_STARTUP_STRINGS
# Boot image options.
_product_ var_li st += \
_product_ list_ vars += \
PRODUCT_USE_PROFILE_FOR_BOOT_IMAGE \
PRODUCT_DEX_PREOPT_BOOT_IMAGE_PROFILE_LOCATION \
PRODUCT_USES_DEFAULT_ART_CONFIG \
_product_ var_li st += PRODUCT_SYSTEM_SERVER_COMPILER_FILTER
_product_ list_ vars += PRODUCT_SYSTEM_SERVER_COMPILER_FILTER
# Per-module sanitizer configs
_product_ var_li st += PRODUCT_SANITIZER_MODULE_CONFIGS
_product_ var_li st += PRODUCT_SYSTEM_BASE_FS_PATH
_product_ var_li st += PRODUCT_VENDOR_BASE_FS_PATH
_product_ var_li st += PRODUCT_PRODUCT_BASE_FS_PATH
_product_ var_li st += PRODUCT_PRODUCT_SERVICES_BASE_FS_PATH
_product_ var_li st += PRODUCT_ODM_BASE_FS_PATH
_product_ var_li st += PRODUCT_SHIPPING_API_LEVEL
_product_ var_li st += VENDOR_PRODUCT_RESTRICT_VENDOR_FILES
_product_ var_li st += VENDOR_EXCEPTION_MODULES
_product_ var_li st += VENDOR_EXCEPTION_PATHS
_product_ list_ vars += PRODUCT_SANITIZER_MODULE_CONFIGS
_product_ list_ vars += PRODUCT_SYSTEM_BASE_FS_PATH
_product_ list_ vars += PRODUCT_VENDOR_BASE_FS_PATH
_product_ list_ vars += PRODUCT_PRODUCT_BASE_FS_PATH
_product_ list_ vars += PRODUCT_PRODUCT_SERVICES_BASE_FS_PATH
_product_ list_ vars += PRODUCT_ODM_BASE_FS_PATH
_product_ list_ vars += PRODUCT_SHIPPING_API_LEVEL
_product_ list_ vars += VENDOR_PRODUCT_RESTRICT_VENDOR_FILES
_product_ list_ vars += VENDOR_EXCEPTION_MODULES
_product_ list_ vars += VENDOR_EXCEPTION_PATHS
# Whether the product wants to ship libartd. For rules and meaning, see art/Android.mk.
_product_ var_li st += PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD
_product_ list_ vars += PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD
# Make this art variable visible to soong_config.mk.
_product_ var_li st += PRODUCT_ART_USE_READ_BARRIER
_product_ list_ vars += PRODUCT_ART_USE_READ_BARRIER
# Whether the product is an Android Things variant.
_product_ var_li st += PRODUCT_IOT
_product_ list_ vars += PRODUCT_IOT
# Add reserved headroom to a system image.
_product_ var_li st += PRODUCT_SYSTEM_HEADROOM
_product_ list_ vars += PRODUCT_SYSTEM_HEADROOM
# Whether to save disk space by minimizing java debug info
_product_ var_li st += PRODUCT_MINIMIZE_JAVA_DEBUG_INFO
_product_ list_ vars += PRODUCT_MINIMIZE_JAVA_DEBUG_INFO
# Whether any paths are excluded from sanitization when SANITIZE_TARGET=integer_overflow
_product_ var_li st += PRODUCT_INTEGER_OVERFLOW_EXCLUDE_PATHS
_product_ list_ vars += PRODUCT_INTEGER_OVERFLOW_EXCLUDE_PATHS
_product_ var_li st += PRODUCT_ADB_KEYS
_product_ list_ vars += PRODUCT_ADB_KEYS
# Whether any paths should have CFI enabled for components
_product_ var_li st += PRODUCT_CFI_INCLUDE_PATHS
_product_ list_ vars += PRODUCT_CFI_INCLUDE_PATHS
# Whether any paths are excluded from sanitization when SANITIZE_TARGET=cfi
_product_ var_li st += PRODUCT_CFI_EXCLUDE_PATHS
_product_ list_ vars += PRODUCT_CFI_EXCLUDE_PATHS
# Whether the Scudo hardened allocator is disabled platform-wide
_product_ var_li st += PRODUCT_DISABLE_SCUDO
_product_ list_ vars += PRODUCT_DISABLE_SCUDO
# A flag to override PRODUCT_COMPATIBLE_PROPERTY
_product_ var_li st += PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE
_product_ list_ vars += PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE
# Whether the whitelist of actionable compatible properties should be disabled or not
_product_ var_li st += PRODUCT_ACTIONABLE_COMPATIBLE_PROPERTY_DISABLE
_product_ var_li st += PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS
_product_ var_li st += PRODUCT_ENFORCE_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT
_product_ var_li st += PRODUCT_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT_WHITELIST
_product_ var_li st += PRODUCT_ARTIFACT_PATH_REQUIREMENT_HINT
_product_ var_li st += PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST
_product_ list_ vars += PRODUCT_ACTIONABLE_COMPATIBLE_PROPERTY_DISABLE
_product_ list_ vars += PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS
_product_ list_ vars += PRODUCT_ENFORCE_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT
_product_ list_ vars += PRODUCT_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT_WHITELIST
_product_ list_ vars += PRODUCT_ARTIFACT_PATH_REQUIREMENT_HINT
_product_ list_ vars += PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST
# List of modules that should be forcefully unmarked from being LOCAL_PRODUCT_MODULE, and hence
# installed on /system directory by default.
_product_ var_li st += PRODUCT_FORCE_PRODUCT_MODULES_TO_SYSTEM_PARTITION
_product_ list_ vars += PRODUCT_FORCE_PRODUCT_MODULES_TO_SYSTEM_PARTITION
# When this is true, dynamic partitions is retrofitted on a device that has
# already been launched without dynamic partitions. Otherwise, the device
# is launched with dynamic partitions.
# This flag implies PRODUCT_USE_DYNAMIC_PARTITIONS.
_product_ var_li st += PRODUCT_RETROFIT_DYNAMIC_PARTITIONS
_product_ list_ vars += PRODUCT_RETROFIT_DYNAMIC_PARTITIONS
# Other dynamic partition feature flags.PRODUCT_USE_DYNAMIC_PARTITION_SIZE and
# PRODUCT_BUILD_SUPER_PARTITION default to the value of PRODUCT_USE_DYNAMIC_PARTITIONS.
_product_ var_li st += \
_product_ list_ vars += \
PRODUCT_USE_DYNAMIC_PARTITIONS \
PRODUCT_USE_DYNAMIC_PARTITION_SIZE \
PRODUCT_BUILD_SUPER_PARTITION \
@ -322,33 +329,35 @@ _product_var_list += \
# during OTA). Otherwise, kernel configuration requirements are enforced in VTS.
# Devices that checks the running kernel (instead of the kernel in OTA package) should not
# set this variable to prevent OTA failures.
_product_ var_li st += PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS
_product_ list_ vars += PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS
# If set to true, this product builds a generic OTA package, which installs generic system images
# onto matching devices. The product may only build a subset of system images (e.g. only
# system.img), so devices need to install the package in a system-only OTA manner.
_product_ var_li st += PRODUCT_BUILD_GENERIC_OTA_PACKAGE
_product_ list_ vars += PRODUCT_BUILD_GENERIC_OTA_PACKAGE
# Whether any paths are excluded from being set XOM when ENABLE_XOM=true
_product_ var_li st += PRODUCT_XOM_EXCLUDE_PATHS
_product_ var_li st += PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES
_product_ var_li st += PRODUCT_PACKAGE_NAME_OVERRIDES
_product_ var_li st += PRODUCT_CERTIFICATE_OVERRIDES
_product_ var_li st += PRODUCT_BUILD_SYSTEM_IMAGE
_product_ var_li st += PRODUCT_BUILD_SYSTEM_OTHER_IMAGE
_product_ var_li st += PRODUCT_BUILD_VENDOR_IMAGE
_product_ var_li st += PRODUCT_BUILD_PRODUCT_IMAGE
_product_ var_li st += PRODUCT_BUILD_PRODUCT_SERVICES_IMAGE
_product_ var_li st += PRODUCT_BUILD_ODM_IMAGE
_product_ var_li st += PRODUCT_BUILD_CACHE_IMAGE
_product_ var_li st += PRODUCT_BUILD_RAMDISK_IMAGE
_product_ var_li st += PRODUCT_BUILD_USERDATA_IMAGE
_product_ var_li st += PRODUCT_UPDATABLE_BOOT_MODULES
_product_ var_li st += PRODUCT_UPDATABLE_BOOT_LOCATIONS
_product_ list_ vars += PRODUCT_XOM_EXCLUDE_PATHS
_product_ list_ vars += PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES
_product_ list_ vars += PRODUCT_PACKAGE_NAME_OVERRIDES
_product_ list_ vars += PRODUCT_CERTIFICATE_OVERRIDES
_product_ list_ vars += PRODUCT_BUILD_SYSTEM_IMAGE
_product_ list_ vars += PRODUCT_BUILD_SYSTEM_OTHER_IMAGE
_product_ list_ vars += PRODUCT_BUILD_VENDOR_IMAGE
_product_ list_ vars += PRODUCT_BUILD_PRODUCT_IMAGE
_product_ list_ vars += PRODUCT_BUILD_PRODUCT_SERVICES_IMAGE
_product_ list_ vars += PRODUCT_BUILD_ODM_IMAGE
_product_ list_ vars += PRODUCT_BUILD_CACHE_IMAGE
_product_ list_ vars += PRODUCT_BUILD_RAMDISK_IMAGE
_product_ list_ vars += PRODUCT_BUILD_USERDATA_IMAGE
_product_ list_ vars += PRODUCT_UPDATABLE_BOOT_MODULES
_product_ list_ vars += PRODUCT_UPDATABLE_BOOT_LOCATIONS
# Whether the product would like to check prebuilt ELF files.
_product_var_list += PRODUCT_CHECK_ELF_FILES
.KATI_READONLY := _product_var_list
_product_list_vars += PRODUCT_CHECK_ELF_FILES
.KATI_READONLY := _product_single_value_vars _product_list_vars
_product_var_list := $= $( _product_single_value_vars) $( _product_list_vars)
d e f i n e d u m p - p r o d u c t
$(warning = = = = $( 1) = = = = ) \
@ -422,7 +431,7 @@ endef
#
#TODO: check to make sure that products have all the necessary vars defined
d e f i n e i m p o r t - p r o d u c t s
$( call import -nodes ,PRODUCTS ,$ ( 1) ,$ ( _product_var_list ) )
$( call import -nodes ,PRODUCTS ,$ ( 1) ,$ ( _product_var_list ) ,$ ( _product_single_value_vars ) )
e n d e f