Unbundled build has several meanings by the context. +Let me explain the meaning by the flags related to "unbundled build"
+The source tree might not have the full platform sources. It is always set if
+TARGET_BUILD_APPS
or TARGET_BUILD_UNBUNDLED_IMAGE
is set.
It is an internal flag. If it is set, prebuilt SDKs are used, even if a module's
+LOCAL_SDK_VERSION
is current
(including system_current
,
+core_current
, and so on). If it is unset, build current SDKs,
+and use them as usual.
It is an internal flag as well. If it is set, dexpreopt is disabled.
+It is always set if TARGET_BUILD_APPS
or TARGET_BUILD_UNBUNDLED_IMAGE
is set,
+because dexpreopt tightly depends on the platform.
Build the apps that can be distributed outside the platform, so it turns on
+TARGET_BUILD_UNBUNDLED
and DISABLE_PREOPT
.
+Also, it turns on TARGET_BUILD_USE_PREBUILT_SDKS
, unless
+UNBUNDLED_BUILD_SDKS_FROM_SOURCE
is set.
It is similar to TARGET_BUILD_APPS
, but its target is an unbundled partition
+(such as the vendor partition). Accordingly, it sets TARGET_BUILD_UNBUNDLED
and DISABLE_PREOPT
.
+We can call the partition unbundled, because the partition can be distributed outside the platform.
+And also, it turns on TARGET_BUILD_USE_PREBUILT_SDKS
, unless
+UNBUNDLED_BUILD_SDKS_FROM_SOURCE
is set.
Sometimes you need to set flags specifically for different platforms. Here is a list of which values the different build-system defined variables will be