xref: /aosp_15_r20/build/make/Deprecation.md (revision 9e94795a3d4ef5c1d47486f9a02bb378756cea8a)
1*9e94795aSAndroid Build Coastguard Worker# Deprecation of Make
2*9e94795aSAndroid Build Coastguard Worker
3*9e94795aSAndroid Build Coastguard WorkerWe've made significant progress converting AOSP from Make to Soong (Android.mk
4*9e94795aSAndroid Build Coastguard Workerto Android.bp), and we're ready to start turning off pieces of Make. If you
5*9e94795aSAndroid Build Coastguard Workerhave any problems converting, please contact us via:
6*9e94795aSAndroid Build Coastguard Worker
7*9e94795aSAndroid Build Coastguard Worker* The [[email protected]] group.
8*9e94795aSAndroid Build Coastguard Worker* Our [public bug tracker](https://issuetracker.google.com/issues/new?component=381517).
9*9e94795aSAndroid Build Coastguard Worker* Or privately through your existing contacts at Google.
10*9e94795aSAndroid Build Coastguard Worker
11*9e94795aSAndroid Build Coastguard Worker## Status
12*9e94795aSAndroid Build Coastguard Worker
13*9e94795aSAndroid Build Coastguard Worker[build/make/core/deprecation.mk] is the source of truth, but for easy browsing:
14*9e94795aSAndroid Build Coastguard Worker
15*9e94795aSAndroid Build Coastguard Worker| Module type                      | State     |
16*9e94795aSAndroid Build Coastguard Worker| -------------------------------- | --------- |
17*9e94795aSAndroid Build Coastguard Worker| `BUILD_AUX_EXECUTABLE`           | Obsolete  |
18*9e94795aSAndroid Build Coastguard Worker| `BUILD_AUX_STATIC_LIBRARY`       | Obsolete  |
19*9e94795aSAndroid Build Coastguard Worker| `BUILD_COPY_HEADERS`             | Error     |
20*9e94795aSAndroid Build Coastguard Worker| `BUILD_HOST_EXECUTABLE`          | Error     |
21*9e94795aSAndroid Build Coastguard Worker| `BUILD_HOST_FUZZ_TEST`           | Obsolete  |
22*9e94795aSAndroid Build Coastguard Worker| `BUILD_HOST_NATIVE_TEST`         | Obsolete  |
23*9e94795aSAndroid Build Coastguard Worker| `BUILD_HOST_SHARED_LIBRARY`      | Error     |
24*9e94795aSAndroid Build Coastguard Worker| `BUILD_HOST_SHARED_TEST_LIBRARY` | Obsolete  |
25*9e94795aSAndroid Build Coastguard Worker| `BUILD_HOST_STATIC_LIBRARY`      | Error     |
26*9e94795aSAndroid Build Coastguard Worker| `BUILD_HOST_STATIC_TEST_LIBRARY` | Obsolete  |
27*9e94795aSAndroid Build Coastguard Worker| `BUILD_HOST_TEST_CONFIG`         | Obsolete  |
28*9e94795aSAndroid Build Coastguard Worker| `BUILD_NATIVE_BENCHMARK`         | Obsolete  |
29*9e94795aSAndroid Build Coastguard Worker| `BUILD_SHARED_TEST_LIBRARY`      | Obsolete  |
30*9e94795aSAndroid Build Coastguard Worker| `BUILD_STATIC_TEST_LIBRARY`      | Obsolete  |
31*9e94795aSAndroid Build Coastguard Worker| `BUILD_TARGET_TEST_CONFIG`       | Obsolete  |
32*9e94795aSAndroid Build Coastguard Worker| `BUILD_*`                        | Available |
33*9e94795aSAndroid Build Coastguard Worker
34*9e94795aSAndroid Build Coastguard Worker## Module Type Deprecation Process
35*9e94795aSAndroid Build Coastguard Worker
36*9e94795aSAndroid Build Coastguard WorkerWe'll be turning off `BUILD_*` module types as all of the users are removed
37*9e94795aSAndroid Build Coastguard Workerfrom AOSP (and Google's internal trees). The process will go something like
38*9e94795aSAndroid Build Coastguard Workerthis, using `BUILD_PACKAGE` as an example:
39*9e94795aSAndroid Build Coastguard Worker
40*9e94795aSAndroid Build Coastguard Worker* Prerequisite: all common users of `BUILD_PACKAGE` have been removed (some
41*9e94795aSAndroid Build Coastguard Worker  device-specific ones may remain).
42*9e94795aSAndroid Build Coastguard Worker* `BUILD_PACKAGE` will be moved from `AVAILABLE_BUILD_MODULE_TYPES` to
43*9e94795aSAndroid Build Coastguard Worker  `DEFAULT_WARNING_BUILD_MODULE_TYPES` in [build/make/core/deprecation.mk]. This
44*9e94795aSAndroid Build Coastguard Worker  will make referring to `BUILD_PACKAGE` a warning.
45*9e94795aSAndroid Build Coastguard Worker* Any devices that still have warnings will have
46*9e94795aSAndroid Build Coastguard Worker  `BUILD_BROKEN_USES_BUILD_PACKAGE := true` added to their `BoardConfig.mk`.
47*9e94795aSAndroid Build Coastguard Worker* `BUILD_PACKAGE` will be switched from `DEFAULT_WARNING_BUILD_MODULE_TYPES` to
48*9e94795aSAndroid Build Coastguard Worker  `DEFAULT_ERROR_BUILD_MODULE_TYPES`, which will turn referring to
49*9e94795aSAndroid Build Coastguard Worker  `BUILD_PACKAGE` into an error unless the device has overridden it.
50*9e94795aSAndroid Build Coastguard Worker* At some later point, after all devices in AOSP no longer set
51*9e94795aSAndroid Build Coastguard Worker  `BUILD_BROKEN_USES_BUILD_PACKAGE`, `BUILD_PACKAGE` will be moved from
52*9e94795aSAndroid Build Coastguard Worker  `DEFAULT_ERROR_BUILD_MODULE_TYPES` to `OBSOLETE_BUILD_MODULE_TYPES` and the
53*9e94795aSAndroid Build Coastguard Worker  code will be removed. It will no longer be possible to use `BUILD_PACKAGE`.
54*9e94795aSAndroid Build Coastguard Worker
55*9e94795aSAndroid Build Coastguard WorkerIn most cases, we expect module types to stay in the default warning state for
56*9e94795aSAndroid Build Coastguard Workerabout two weeks before becoming an error by default. Then it will spend some
57*9e94795aSAndroid Build Coastguard Workeramount of time in the default error state before moving to obsolete -- we'll
58*9e94795aSAndroid Build Coastguard Workertry and keep that around for a while, but other development may cause those to
59*9e94795aSAndroid Build Coastguard Workerbreak, and the fix may to be to obsolete them. There is no expectation that the
60*9e94795aSAndroid Build Coastguard Worker`BUILD_BROKEN_USES_BUILD_*` workarounds will work in a future release, it's a
61*9e94795aSAndroid Build Coastguard Workershort-term workaround.
62*9e94795aSAndroid Build Coastguard Worker
63*9e94795aSAndroid Build Coastguard WorkerJust to be clear, the above process will happen on the AOSP master branch. So
64*9e94795aSAndroid Build Coastguard Workerif you're following Android releases, none of the deprecation steps will be in
65*9e94795aSAndroid Build Coastguard WorkerAndroid Q, and the 2020 release will have jumped directly to the end for many
66*9e94795aSAndroid Build Coastguard Workermodule types.
67*9e94795aSAndroid Build Coastguard Worker
68*9e94795aSAndroid Build Coastguard Worker[[email protected]]: https://groups.google.com/forum/#!forum/android-building
69*9e94795aSAndroid Build Coastguard Worker[build/make/core/deprecation.mk]: /core/deprecation.mk
70