Clone this repo:
  1. 577d567 Merge remote-tracking branch 'aosp/upstream' into work by Joe Onorato · 2 months ago master
  2. 3cd7ae4 Merge pull request #214 from onoratoj/kati_symbols by Joe Onorato · 2 months ago upstream
  3. 69bcc6b .VARIABLES and .KATI_SYMBOLS extension by Joe Onorato · 3 months ago
  4. 21c7e81 Merge remote-tracking branch 'upstream/master' by Jingwen Chen · 3 months ago
  5. d918954 Add .KATI_SYMLINK_OUTPUTS to support declared symlink_outputs in Ninja by Jingwen Chen · 4 months ago

kati

Build and Test

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.

Development

Building:

$ make ckati

The above command produces a ckati binary in the project root.

Testing (best ran in a Ubuntu 18.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

How to use for Android

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.