introduce evalWriter

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