70 lines
3.4 KiB
Markdown
70 lines
3.4 KiB
Markdown
|
# Deprecation of Make
|
||
|
|
||
|
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:
|
||
|
|
||
|
* The [android-building@googlegroups.com] group.
|
||
|
* Our [public bug tracker](https://issuetracker.google.com/issues/new?component=381517).
|
||
|
* Or privately through your existing contacts at Google.
|
||
|
|
||
|
## Status
|
||
|
|
||
|
[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 |
|
||
|
|
||
|
## Module Type Deprecation Process
|
||
|
|
||
|
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:
|
||
|
|
||
|
* Prerequisite: all common users of `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.
|
||
|
* Any devices that still have warnings will have
|
||
|
`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.
|
||
|
* At some later point, after all devices in AOSP no longer set
|
||
|
`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.
|
||
|
|
||
|
[android-building@googlegroups.com]: https://groups.google.com/forum/#!forum/android-building
|
||
|
[build/make/core/deprecation.mk]: /core/deprecation.mk
|