commit | 27de420ef55e982c9ea29a00c33bf7d1243cea4d | [log] [tgz] |
---|---|---|
author | LaMont Jones <[email protected]> | Thu Jun 22 01:42:31 2023 +0000 |
committer | LaMont Jones <[email protected]> | Thu Jun 22 01:48:52 2023 +0000 |
tree | f27c40c50d76a2b7920e3065a38bf5534115e319 | |
parent | 48d40d7519e8d55e658183f8bc39d12c50cc2723 [diff] | |
parent | 532b343f4be96abf0dec4c6f2a4785d671a985df [diff] |
Merge GitHub 'master' branch. * Already present on aosp/master (with clang-format errors): Add arbitrary metadata "tag" tracking. Add KATI_file_no_rerun function Add KATI_foreach_sep function * Newly arriving from GitHub/master: Delete the golang version of kati * One additional clang-format fixup in src/eval.cc Change-Id: Id4bcf87dd629b0384a80a4089bfcd90f94e10975
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 22.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.