[go] build specified targets or first target if not given.
2 files changed
tree: 3db49fb14d190f28b4605cb8eb1cfdb89762b604
  1. cmd/
  2. make-c/
  3. testcase/
  4. .gitignore
  5. ast.cc
  6. ast.go
  7. ast.h
  8. AUTHORS
  9. bootstrap.go
  10. buf.go
  11. buf_test.go
  12. command.cc
  13. command.h
  14. CONTRIBUTING.md
  15. CONTRIBUTORS
  16. dep.cc
  17. dep.go
  18. dep.h
  19. depgraph.go
  20. doc.go
  21. eval.cc
  22. eval.go
  23. eval.h
  24. evalcmd.go
  25. exec.cc
  26. exec.go
  27. exec.h
  28. expr.go
  29. expr_test.go
  30. file.cc
  31. file.h
  32. file_cache.cc
  33. file_cache.h
  34. fileutil.cc
  35. fileutil.go
  36. fileutil.h
  37. find.cc
  38. find.h
  39. flags.cc
  40. flags.go
  41. flags.h
  42. func.cc
  43. func.go
  44. func.h
  45. func_test.go
  46. LICENSE
  47. loc.h
  48. log.cc
  49. log.go
  50. log.h
  51. m2n
  52. main.cc
  53. make-c.sh
  54. Makefile
  55. ninja.cc
  56. ninja.go
  57. ninja.h
  58. ninja_test.cc
  59. ninja_test.go
  60. pack.sh
  61. parser.cc
  62. parser.go
  63. parser.h
  64. pathutil.go
  65. query.go
  66. README.md
  67. rule.cc
  68. rule.h
  69. rule_parser.go
  70. rule_parser_test.go
  71. run_integration_test.rb
  72. runtest.rb
  73. serialize.go
  74. shellutil.go
  75. shellutil_test.go
  76. stats.cc
  77. stats.go
  78. stats.h
  79. string_piece.cc
  80. string_piece.h
  81. string_piece_test.cc
  82. stringprintf.cc
  83. stringprintf.h
  84. strutil.cc
  85. strutil.go
  86. strutil.h
  87. strutil_test.cc
  88. strutil_test.go
  89. symtab.cc
  90. symtab.go
  91. symtab.h
  92. timeutil.cc
  93. timeutil.h
  94. value.cc
  95. value.h
  96. var.cc
  97. var.go
  98. var.h
  99. version.go
  100. version.h
  101. worker.go
README.md

kati

kati is an experimental GNU make clone. The main goal of this tool is to speed-up incremental build of Android.

How to use for 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.

More usage examples

"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

Specify the number of default jobs used by ninja

% ~/src/kati/m2n -j10
% ./ninja.sh

Or

% ./ninja.sh -j10

Note the latter kills the parallelism of goma.