Android N Preview 4 (NPD56N)
Merge remote-tracking branch 'aosp/upstream' into master

390115c Handle nested define/endef
c15a824 Update findleaves.py and add a few testcases
af13468 Merge pull request #73 from colincross/findleaves
f0a6fdf [C++] Add support for multiple filenames to findleaves emulation
1c3a695 Support all kinds of command line variables
ac6f169 Allow NULL filename for -d flag
c58db9a [C++] Add -d flag to make debugging slightly easier
38892d8 Normalize log for recent ninja
9f6343c Always sort glob results
8082dcb Skip 3 tests which fail with make 4
1561f68 Skip shell_var_with_args.mk with GNU make 4
a1ded1c Use override in posix_var.mk to fix test with make 4
fc24bd2 Stop overwriting /bin/sh by bash on travis
913eb74 Normalize Unicode quotes for recent find
2d2ed95 Explicitly use SHELL=/bin/bash
d07e297 [C++] Stop using an uninitialized value
855fea4 Fix multi_implicit_output_patterns.mk for GNU make 4
dc258cb Clean up normalization in runtest.rb a bit
3009771 Merge pull request #66 from stefanb2/topic-issue-65
bfae810 Remove test output in ckati_clean
a24a7a0 Normalize GNU make 4.00 in runtest.rb
e4e56f3 Suppress GNU make jobserver magic in runtest.rb
2941ea0 [C++] Handle .POSIX at eval time
03fa345 Add testcase/posix_var.mk
a8fafa4 Remove Go related targets from test and clean
d8d43ea [C++] Reduce unnecessary string allocation
c6926b0 Add testcase/call_with_whitespace.mk
5dfb361 Add testcase/recursive_marker.mk
02e5ee3 [C++] Remove unnecessary #include
6823600 Add a test case to override_override.mk
4e60e5f Merge pull request #58 from stefanb2/topic-issue-57
952d445 [C++] Ignore recursive marker in recipes
786881c [C++] Replace erroneous return in EvalInclude()
d4f2871 [C++] Store SHELL value in command result
29b9b74 [C++] Honor "override" when setting global variable
167e1f7 [C++] Ignore white space around $(call) function name
187bf08 [C++] Add support for .POSIX:
cd060c5 add Stefan to CONTRIBUTORS

Change-Id: I7697703aa2a0eb37202645b1895899807e6426b2
tree: a00ee4a558330113761d89371b196614820e6d94
  1. cmd/
  2. make-c/
  3. testcase/
  4. .gitignore
  5. .travis.yml
  6. affinity.cc
  7. affinity.h
  8. Android.bp
  9. ast.go
  10. AUTHORS
  11. bootstrap.go
  12. buf.go
  13. buf_test.go
  14. command.cc
  15. command.h
  16. CONTRIBUTING.md
  17. CONTRIBUTORS
  18. dep.cc
  19. dep.go
  20. dep.h
  21. depgraph.go
  22. doc.go
  23. eval.cc
  24. eval.go
  25. eval.h
  26. evalcmd.go
  27. exec.cc
  28. exec.go
  29. exec.h
  30. expr.cc
  31. expr.go
  32. expr.h
  33. expr_test.go
  34. file.cc
  35. file.h
  36. file_cache.cc
  37. file_cache.h
  38. fileutil.cc
  39. fileutil.go
  40. fileutil.h
  41. find.cc
  42. find.h
  43. find_test.cc
  44. flags.cc
  45. flags.go
  46. flags.h
  47. func.cc
  48. func.go
  49. func.h
  50. func_test.go
  51. INTERNALS.md
  52. io.cc
  53. io.h
  54. LICENSE
  55. loc.h
  56. log.cc
  57. log.go
  58. log.h
  59. m2n
  60. main.cc
  61. make-c.sh
  62. Makefile
  63. Makefile.ckati
  64. Makefile.kati
  65. ninja.cc
  66. ninja.go
  67. ninja.h
  68. ninja_test.cc
  69. ninja_test.go
  70. pack.sh
  71. parser.cc
  72. parser.go
  73. parser.h
  74. pathutil.go
  75. pathutil_test.go
  76. query.go
  77. README.md
  78. regen.cc
  79. regen.h
  80. rule.cc
  81. rule.h
  82. rule_parser.go
  83. rule_parser_test.go
  84. runtest.rb
  85. serialize.go
  86. shellutil.go
  87. shellutil_test.go
  88. stats.cc
  89. stats.go
  90. stats.h
  91. stmt.cc
  92. stmt.h
  93. string_piece.cc
  94. string_piece.h
  95. string_piece_test.cc
  96. stringprintf.cc
  97. stringprintf.h
  98. strutil.cc
  99. strutil.go
  100. strutil.h
  101. strutil_bench.cc
  102. strutil_test.cc
  103. strutil_test.go
  104. symtab.cc
  105. symtab.go
  106. symtab.h
  107. testutil.h
  108. thread_local.h
  109. thread_pool.cc
  110. thread_pool.h
  111. timeutil.cc
  112. timeutil.h
  113. var.cc
  114. var.go
  115. var.h
  116. version.go
  117. version.h
  118. version_unknown.cc
  119. worker.go
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

Now AOSP has kati and ninja, so all you have to do is

% export USE_NINJA=true

All Android's build commands (m, mmm, mmma, etc.) should just work.

How to use for Android (deprecated way)

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 (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