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

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

Or, if your target is built by “make”, your can specify the target of ninja.

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