We‘ve made significant progress converting AOSP from Make to Soong (Android.mk to Android.bp), and we’re ready to start turning off pieces of Make. If you have any problems converting, please contact us via:
build/make/core/deprecation.mk is the source of truth, but for easy browsing:
Module type | State |
---|---|
BUILD_AUX_EXECUTABLE | Obsolete |
BUILD_AUX_STATIC_LIBRARY | Obsolete |
BUILD_COPY_HEADERS | Error |
BUILD_HOST_EXECUTABLE | Error |
BUILD_HOST_FUZZ_TEST | Obsolete |
BUILD_HOST_NATIVE_TEST | Obsolete |
BUILD_HOST_SHARED_LIBRARY | Error |
BUILD_HOST_SHARED_TEST_LIBRARY | Obsolete |
BUILD_HOST_STATIC_LIBRARY | Error |
BUILD_HOST_STATIC_TEST_LIBRARY | Obsolete |
BUILD_HOST_TEST_CONFIG | Obsolete |
BUILD_NATIVE_BENCHMARK | Obsolete |
BUILD_SHARED_TEST_LIBRARY | Obsolete |
BUILD_STATIC_TEST_LIBRARY | Obsolete |
BUILD_TARGET_TEST_CONFIG | Obsolete |
BUILD_* | Available |
We‘ll be turning off BUILD_*
module types as all of the users are removed from AOSP (and Google’s internal trees). The process will go something like this, using BUILD_PACKAGE
as an example:
BUILD_PACKAGE
have been removed (some device-specific ones may remain).BUILD_PACKAGE
will be moved from AVAILABLE_BUILD_MODULE_TYPES
to DEFAULT_WARNING_BUILD_MODULE_TYPES
in build/make/core/deprecation.mk. This will make referring to BUILD_PACKAGE
a warning.BUILD_BROKEN_USES_BUILD_PACKAGE := true
added to their BoardConfig.mk
.BUILD_PACKAGE
will be switched from DEFAULT_WARNING_BUILD_MODULE_TYPES
to DEFAULT_ERROR_BUILD_MODULE_TYPES
, which will turn referring to BUILD_PACKAGE
into an error unless the device has overridden it.BUILD_BROKEN_USES_BUILD_PACKAGE
, BUILD_PACKAGE
will be moved from DEFAULT_ERROR_BUILD_MODULE_TYPES
to OBSOLETE_BUILD_MODULE_TYPES
and the code will be removed. It will no longer be possible to use BUILD_PACKAGE
.In most cases, we expect module types to stay in the default warning state for about two weeks before becoming an error by default. Then it will spend some amount of time in the default error state before moving to obsolete -- we‘ll try and keep that around for a while, but other development may cause those to break, and the fix may to be to obsolete them. There is no expectation that the BUILD_BROKEN_USES_BUILD_*
workarounds will work in a future release, it’s a short-term workaround.
Just to be clear, the above process will happen on the AOSP master branch. So if you're following Android releases, none of the deprecation steps will be in Android Q, and the 2020 release will have jumped directly to the end for many module types.