You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sandy 5629dff5f1 PL280 release code 4 years ago
..
cmd/kati PL280 release code 4 years ago
make-c PL280 release code 4 years ago
testcase PL280 release code 4 years ago
.clang-format PL280 release code 4 years ago
.travis.yml PL280 release code 4 years ago
AUTHORS PL280 release code 4 years ago
Android.bp PL280 release code 4 years ago
CONTRIBUTING.md PL280 release code 4 years ago
CONTRIBUTORS PL280 release code 4 years ago
INTERNALS.md PL280 release code 4 years ago
LICENSE PL280 release code 4 years ago
Makefile PL280 release code 4 years ago
Makefile.ckati PL280 release code 4 years ago
Makefile.kati PL280 release code 4 years ago
OWNERS PL280 release code 4 years ago
README.md PL280 release code 4 years ago
affinity.cc PL280 release code 4 years ago
affinity.h PL280 release code 4 years ago
ast.go PL280 release code 4 years ago
bootstrap.go PL280 release code 4 years ago
buf.go PL280 release code 4 years ago
buf_test.go PL280 release code 4 years ago
clang-format-check PL280 release code 4 years ago
command.cc PL280 release code 4 years ago
command.h PL280 release code 4 years ago
dep.cc PL280 release code 4 years ago
dep.go PL280 release code 4 years ago
dep.h PL280 release code 4 years ago
depgraph.go PL280 release code 4 years ago
doc.go PL280 release code 4 years ago
eval.cc PL280 release code 4 years ago
eval.go PL280 release code 4 years ago
eval.h PL280 release code 4 years ago
evalcmd.go PL280 release code 4 years ago
exec.cc PL280 release code 4 years ago
exec.go PL280 release code 4 years ago
exec.h PL280 release code 4 years ago
expr.cc PL280 release code 4 years ago
expr.go PL280 release code 4 years ago
expr.h PL280 release code 4 years ago
expr_test.go PL280 release code 4 years ago
file.cc PL280 release code 4 years ago
file.h PL280 release code 4 years ago
file_cache.cc PL280 release code 4 years ago
file_cache.h PL280 release code 4 years ago
fileutil.cc PL280 release code 4 years ago
fileutil.go PL280 release code 4 years ago
fileutil.h PL280 release code 4 years ago
fileutil_bench.cc PL280 release code 4 years ago
find.cc PL280 release code 4 years ago
find.h PL280 release code 4 years ago
find_test.cc PL280 release code 4 years ago
flags.cc PL280 release code 4 years ago
flags.go PL280 release code 4 years ago
flags.h PL280 release code 4 years ago
func.cc PL280 release code 4 years ago
func.go PL280 release code 4 years ago
func.h PL280 release code 4 years ago
func_test.go PL280 release code 4 years ago
io.cc PL280 release code 4 years ago
io.h PL280 release code 4 years ago
loc.h PL280 release code 4 years ago
log.cc PL280 release code 4 years ago
log.go PL280 release code 4 years ago
log.h PL280 release code 4 years ago
m2n PL280 release code 4 years ago
main.cc PL280 release code 4 years ago
make-c.sh PL280 release code 4 years ago
ninja.cc PL280 release code 4 years ago
ninja.go PL280 release code 4 years ago
ninja.h PL280 release code 4 years ago
ninja_test.cc PL280 release code 4 years ago
ninja_test.go PL280 release code 4 years ago
pack.sh PL280 release code 4 years ago
parser.cc PL280 release code 4 years ago
parser.go PL280 release code 4 years ago
parser.h PL280 release code 4 years ago
pathutil.go PL280 release code 4 years ago
pathutil_test.go PL280 release code 4 years ago
query.go PL280 release code 4 years ago
regen.cc PL280 release code 4 years ago
regen.h PL280 release code 4 years ago
regen_dump.cc PL280 release code 4 years ago
rule.cc PL280 release code 4 years ago
rule.h PL280 release code 4 years ago
rule_parser.go PL280 release code 4 years ago
rule_parser_test.go PL280 release code 4 years ago
runtest.rb PL280 release code 4 years ago
serialize.go PL280 release code 4 years ago
shellutil.go PL280 release code 4 years ago
shellutil_test.go PL280 release code 4 years ago
stats.cc PL280 release code 4 years ago
stats.go PL280 release code 4 years ago
stats.h PL280 release code 4 years ago
stmt.cc PL280 release code 4 years ago
stmt.h PL280 release code 4 years ago
string_piece.cc PL280 release code 4 years ago
string_piece.h PL280 release code 4 years ago
string_piece_test.cc PL280 release code 4 years ago
stringprintf.cc PL280 release code 4 years ago
stringprintf.h PL280 release code 4 years ago
strutil.cc PL280 release code 4 years ago
strutil.go PL280 release code 4 years ago
strutil.h PL280 release code 4 years ago
strutil_bench.cc PL280 release code 4 years ago
strutil_test.cc PL280 release code 4 years ago
strutil_test.go PL280 release code 4 years ago
symtab.cc PL280 release code 4 years ago
symtab.go PL280 release code 4 years ago
symtab.h PL280 release code 4 years ago
testutil.h PL280 release code 4 years ago
thread_local.h PL280 release code 4 years ago
thread_pool.cc PL280 release code 4 years ago
thread_pool.h PL280 release code 4 years ago
timeutil.cc PL280 release code 4 years ago
timeutil.h PL280 release code 4 years ago
var.cc PL280 release code 4 years ago
var.go PL280 release code 4 years ago
var.h PL280 release code 4 years ago
version.go PL280 release code 4 years ago
version.h PL280 release code 4 years ago
version_unknown.cc PL280 release code 4 years ago
worker.go PL280 release code 4 years ago

README.md

kati

Build Status

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.

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.

How to use for Android (deprecated -- only for Android M or earlier)

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
% ./ninja.sh

You need ninja in your $PATH.

More usage examples (deprecated way)

"make clean"

% ./ninja.sh -t clean

Note ./ninja.sh passes all parameters to ninja.

Build a specific target

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