commit | 187a78b359e4422ae4d47edbe4b1e2b34c6027a3 | [log] [tgz] |
---|---|---|
author | Matthias Maennich <maennich@google.com> | Tue Jun 15 14:36:51 2021 +0100 |
committer | Matthias Maennich <maennich@google.com> | Tue Jun 15 16:37:50 2021 +0100 |
tree | 125bbadf1d5929573c8757856c32648b3ea4e2bb | |
parent | 3e6c016ad04449e1bc8e9dea77550f1a3b3ab6fd [diff] |
Bump GNU Make compatibility version Update the GNU Make compatibility version (MAKE_VERSION) to 4.2.1. The previously used version 3.81 had been released 2006 the latest 3.x version is 3.82, released in 2010. With today's toolchains it is quite a bit of work to still get a 3.81 compiled and odds are that Kati users are on newer systems anyway (Kati is compiled with C++17). Lastly, as of today we validate ckati against the GNU Make provided in Ubuntu 20.04 LTS, which is currently 4.2.1. So, the best we can say about compatibility is declaring MAKE_VERSION=4.2.1 In order to safeguard this, add explicit steps to use a 4.2.1 GNU Make for testing in the github actions and add some documentation to achieve the same result when testing locally. Signed-off-by: Matthias Maennich <maennich@google.com>
kati is an experimental GNU make clone. The main goal of this tool is to speed-up incremental build of Android.
Currently, kati does not offer a faster build by itself. It instead converts your Makefile to a ninja file.
Building:
$ make ckati
The above command produces a ckati
binary in the project root.
Testing (best ran in a Ubuntu 20.04 environment):
$ make test $ go test --ckati $ go test --ckati --ninja $ go test --ckati --ninja --all
The above commands run all cKati and Ninja tests in the testcases/
directory.
Alternatively, you can also run the tests in a Docker container in a prepared test enviroment:
$ docker build -t kati-test . && docker run kati-test
If you are working on a machine that does not provide make
in the same version as kati is currently compatible with, you might want to download a prebuilt version instead. For example to use the prebuilt version of Ubuntu 20.04 LTS:
$ mkdir tmp/ && cd tmp/ $ wget http://mirrors.kernel.org/ubuntu/pool/main/m/make-dfsg/make_4.2.1-1.2_amd64.deb $ ar xv make_4.2.1-1.2_amd64.deb $ tar xf data.tar.xz $ cd .. $ PATH=$(pwd)/tmp/usr/bin/:$PATH make test
For Android-N+, ckati and ninja is used automatically. There is a prebuilt checked in under prebuilts/build-tools that is used.
All Android's build commands (m, mmm, mmma, etc.) should just work.