[C++] Add performance stats for --regen
1 file changed
tree: e84a735194ef4c857329aa7d61552db70f0c7ee6
  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. io.cc
  47. io.h
  48. LICENSE
  49. loc.h
  50. log.cc
  51. log.go
  52. log.h
  53. m2n
  54. main.cc
  55. make-c.sh
  56. Makefile
  57. Makefile.ckati
  58. Makefile.kati
  59. ninja.cc
  60. ninja.go
  61. ninja.h
  62. ninja_test.cc
  63. ninja_test.go
  64. pack.sh
  65. parser.cc
  66. parser.go
  67. parser.h
  68. pathutil.go
  69. pathutil_test.go
  70. query.go
  71. README.md
  72. rule.cc
  73. rule.h
  74. rule_parser.go
  75. rule_parser_test.go
  76. run_integration_test.rb
  77. runtest.rb
  78. serialize.go
  79. shellutil.go
  80. shellutil_test.go
  81. stats.cc
  82. stats.go
  83. stats.h
  84. string_piece.cc
  85. string_piece.h
  86. string_piece_test.cc
  87. stringprintf.cc
  88. stringprintf.h
  89. strutil.cc
  90. strutil.go
  91. strutil.h
  92. strutil_test.cc
  93. strutil_test.go
  94. symtab.cc
  95. symtab.go
  96. symtab.h
  97. timeutil.cc
  98. timeutil.h
  99. value.cc
  100. value.h
  101. var.cc
  102. var.go
  103. var.h
  104. version.go
  105. version.h
  106. 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.