commit | 48d6e8cf10618a398a85f3728f7a9243b4c57090 | [log] [tgz] |
---|---|---|
author | Dan Willemsen <dwillemsen@google.com> | Wed Aug 05 14:38:34 2015 -0700 |
committer | Dan Willemsen <dwillemsen@google.com> | Wed Aug 05 15:05:50 2015 -0700 |
tree | 577c42b703ab141f4c1af42be947dbbc5ab7a7fd | |
parent | a06bee9cb929c2e0646154c6803c3c32565ca6eb [diff] |
[C++] Don't sort find/ls results These should only be sorted if explicitly requested, otherwise make-built binaries may be different from kati-built binaries. This resolves some binary-diff issues for Android between libc.a built with make vs kati/ninja. To be the same across multiple checkouts/machines, we should probably switch android to sorting these results, but then the kati ninja support will stop working.
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.
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
% ~/src/kati/m2n -j10 % ./ninja.sh
Or
% ./ninja.sh -j10
Note the latter kills the parallelism of goma.