commit | 8b551c5c20165711d8982a22b010c15ed1e819b0 | [log] [tgz] |
---|---|---|
author | Dan Willemsen <dwillemsen@google.com> | Fri Jun 08 16:39:23 2018 -0700 |
committer | Dan Willemsen <dwillemsen@google.com> | Mon Jun 11 14:52:17 2018 -0700 |
tree | f7ad21a73feb2bdaa998acb79c43a7345433ef09 | |
parent | 6aafee69b661d03dd53d88c55b1e3ec0b377b02b [diff] |
Add some simple sanity checks around PHONY targets These checks won't apply for all build systems, but for Android, we'd like to assert: * That .PHONY targets don't look like real files. This is mostly to prevent confusion, and just checks to see if any targets marked as phony have a '/' character in their name. * That real files don't depend on a PHONY target. If they do, the real file would be rebuilt on every build execution, potentially causing much of the build graph to be rebuilt on every execution. Change-Id: Ibc3023ddccfca5123be41a5124e7bc134e37d2d2
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