commit | 07c44e0ab88177cbc9192886d306903075b1d38a | [log] [tgz] |
---|---|---|
author | Shinichiro Hamaji <hamaji@google.com> | Tue Dec 22 14:37:31 2015 +0900 |
committer | Shinichiro Hamaji <hamaji@google.com> | Wed Dec 23 16:57:35 2015 +0900 |
tree | 20ab8bf6c8fd1a7c34c773c72f13f33f476819c5 | |
parent | 5cba87b4b0dfd14374ea31f94d3730c9af1e5e55 [diff] | |
parent | b91fb6f10484468f2aafdb328cf97d4ce98e20d3 [diff] |
Merge remote-tracking branch 'aosp/upstream' $(eval $(shell ...)) will be an error by cbb801c. b91fb6f Show the location of unsupported automatic variables cbb801c Revert "[C++] Do not fail by $(shell) in functions for now" 5a5a7f6 Force regen if ninja file is missing b552df3 [C++] Fail early for unsupported automatic variables 29e4570 [C++] Regenerate build.ninja when PATH was changed bb28730 An attempt to fix failures on Travis-CI b25f8ab Show the failed reason in ninja_regen.sh ea54976 [C++] Fail for semicolons without a rule 97d8f1d [C++] Fail for newlines in expanded rule statement Bug: 25792240 Change-Id: I5c808c6a628c5dbfc0cf910052efb65f1e85d020
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.
Now AOSP has kati and ninja, so all you have to do is
% export USE_NINJA=true
All Android's build commands (m, mmm, mmma, etc.) should just work.
Set up kati:
% cd ~/src % git clone https://github.com/google/kati % cd kati % make
Build Android:
% cd <android-directory> % source build/envsetup.sh % lunch <your-choice> % ~/src/kati/m2n --kati_stats # Use --goma if you are a Googler. % ./ninja.sh
You need ninja in your $PATH.
% ./ninja.sh -t clean
Note ./ninja.sh passes all parameters to ninja.
For example, the following is equivalent to "make cts":
% ./ninja.sh cts
Or, if you know the path you want, you can do:
% ./ninja.sh out/host/linux-x86/bin/adb