History log of /build/core/definitions.mk
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
bdaada855f607821cc753b4afbf988f8d0771011 09-May-2018 Colin Cross <ccross@android.com> Fix zipped resources

Fix mismatch between output directory of zipsync and input
directory of aapt2.

Bug: 79481102
Test: m checkbuild
Change-Id: If012c943af0c04cc3f0dd5c4266126412ae0a759
Merged-In: If012c943af0c04cc3f0dd5c4266126412ae0a759
(cherry picked from commit 164a33f194ca6b89bec50404260637dab9a32074)
/build/make/core/definitions.mk
43641b5e1f9a9b2c7dcbe6fd2098a59f37511d9e 02-May-2018 Colin Cross <ccross@android.com> Regenerate R.java files from LOCAL_STATIC_ANDROID_LIBRARIES

If a static android library lib1 has LOCAL_STATIC_ANDROID_LIBRARIES
lib2, then the R.class files for packages in lib2 will be merged
into the jar for lib1. If an app has lib1 in its
LOCAL_STATIC_ANDROID_LIBRARIES it will get the R.class files from
lib2 through lib1, instead of regenerating the R.java files with
numbering that matches the resource table of the app.

This was worked around for support libraries by keeping a
fix_dependencies.mk that added transitive static support libraries
to the direct static dependencies of apps. Instead, propagate
the packages that aapt2 generated R.java files for up as
--extra-packages arguments to the next aapt2 invocation, which
will force aapt2 to regenerate the R.java files for those packages.

Bug: 78300023
Test: m checkbuild
Change-Id: I7375e13241b4c4f2933032409fb7935abe133bfc
Merged-In: I7375e13241b4c4f2933032409fb7935abe133bfc
(cherry picked from commit 43c247e181ca4f07992126f351355f1beb8c2a18)
/build/make/core/definitions.mk
4cfebe0ac4a78e9be97a6f5dc489d78f13d7b318 10-Apr-2018 Dan Willemsen <dwillemsen@google.com> Delay eval to save memory use in create-suite-dependencies

Instead of passing the entire contents of
$(COMPATIBILITY.$(suite).FILES) to eval, which may keep that string
around, delay the evaluation of that, and the new files until inside the
eval.

This saves ~2.8GB: 7.4GB -> 4.6GB of ckati max resident memory for a
relatively small internal build. It also saves ~10% of the makefile
loading time (81 -> 73 seconds).

Bug: 77879502
Test: build-aosp_arm.ninja is identical
Change-Id: If45a4796f1bbf6d67dff388ea877a6115a4e06f4
Merged-In: If45a4796f1bbf6d67dff388ea877a6115a4e06f4
(cherry picked from commit a4155e8512fa66e431833b1399be6c2c55ce8f65)
/build/make/core/definitions.mk
d809d369cb66aeba4d00192d552c8f4800f9951b 28-Mar-2018 Ryan Prichard <rprichard@google.com> Fix mini_debug_info stripping when no symbols should be kept.

If there are no symbols to keep (i.e. all function symbols are also in
the dynsym table), then the $@.keep_symbols file has size 0.
When objcopy parses a --keep-symbols file, it has a special case for
0-sized files where it silently fails (exits with status 1, no error
message). On the other hand, objcopy is happy with a file containing no
symbols, as long as there is some whitespace or a comment. Avoid the
special case by appending a newline to keep_symbols.

Bug: b/62815515
Bug: b/77242617
Test: manual
Change-Id: I348593164fe78ece5c85db3d28c7daccce3a52fb
(cherry picked from commit a45f5833c02634a70c76381bab308bd6745043f3)
/build/make/core/definitions.mk
a5b6b5021c2c026743af4067ea1a431faec1134b 21-Feb-2018 Colin Cross <ccross@android.com> Silence more duplicate path warnings

Silence warnings when merging header jars that were missed by
Ifb67dbf7734b5f53941d110f578c4fe642e36005.

Bug: 69316739
Test: m checkbuild
Change-Id: I5cfea62e46d99f9b315a589d8915bf62307220aa
Merged-In: I5cfea62e46d99f9b315a589d8915bf62307220aa
(cherry picked from commit f6799e859a3634b358271d530d1699591b6aa6c2)
/build/make/core/definitions.mk
ccf8992ac281ee1d58e117c46823b0ccef8583a3 09-Mar-2018 Colin Cross <ccross@android.com> Use a srcjar for aapt and aapt2 output

Dumping files in the *_intermediates/src causes incremental build
problems, because we don't know when to delete them if they are
no longer generated. Switch to outputting a srcjar instead, and
pass it in to the turbine and javac compiles.

Bug: 73885582
Test: m checkbuild
Change-Id: Ibef28507522339d930c09426d0c98372eb864cb6
Merged-In: Ibef28507522339d930c09426d0c98372eb864cb6
(cherry picked from commit 2d1cddd5674d88c07350a52fa656cc441be04418)
/build/make/core/definitions.mk
ec7be103d0068995d85fcd03fa6edec9d1b1ec97 13-Mar-2018 Colin Cross <ccross@android.com> Use srcjar and resource zip as output of renderscript rules

Replace RenderScript.stamp with a srcjar, with a resource zip as
an implicit output. This makes the renderscript rules self contained,
which will make it easier to move them before aapt.

Bug: 73885582
Test: m checkbuild
Change-Id: I12d33e52019aebac6ea33271939228e4690a4173
Merged-In: I12d33e52019aebac6ea33271939228e4690a4173
(cherry picked from commit e00e2fae52ea85c2e7f637d4760743363f9a0bcc)
/build/make/core/definitions.mk
a73ea16f9537246c0303ec919ab0b7fe2789a294 16-Mar-2018 Colin Cross <ccross@android.com> Replace extract_srcjars.sh with zipsync

Use zipsync instead of extract_srcjars.sh.

Also fixes an issue where unzipping a resource zip would
ignore anything that wasn't a *.java file.

Bug: 73885582
Test: m checkbuild
Change-Id: I1c25f65afa196614879071c8655866febebac185
Merged-In: I1c25f65afa196614879071c8655866febebac185
(cherry picked from commit 3f99cd5933952e08f2fc085f98b4d8eac7ae5ada)
/build/make/core/definitions.mk
ce99f050259bea74313cd0e1163c525f8a927089 15-Mar-2018 Colin Cross <ccross@android.com> Allow compiles with only srcjars

Some javac and turbine compiles have no source files but sources
from srcjars. Continue with compilation if the java source list
is empty but the srcjar source list is not.

Bug: 73885582
Test: m checkbuild
Change-Id: Ica412de2dd1b1bfc12c01c3eafca884220d42771
Merged-In: Ica412de2dd1b1bfc12c01c3eafca884220d42771
(cherry picked from commit 0c0adb993cf271c02462a3e15dc5f50525d21b2c)
/build/make/core/definitions.mk
0a717ccd3fea7c705948da482e6628952a948174 13-Mar-2018 Colin Cross <ccross@android.com> Allow aapt2 rules to take zipped resource files

Allow aapt2 rules to take zipped resource files similar to the
way the javac rules take srcjars. For now, unzip the files using
extract_srcjars.sh, and then use aapt2 compile --dir. Eventually
it could be done with aapt2 compile --zip.

Bug: 73885582
Bug: 74574557
Test: m checkbuild
Change-Id: I97ea3ff305e7a9ef2a908b4cf0bca903af62c6b1
Merged-In: I97ea3ff305e7a9ef2a908b4cf0bca903af62c6b1
(cherry picked from commit bc0c494d3af1bce637289e4aceaba90cbdadacba)
/build/make/core/definitions.mk
f13eb55448c9364c8c7a20d52d84438a1fed3deb 08-Mar-2018 Colin Cross <ccross@android.com> Add LOCAL_SRCJARS support

Allow java modules to take jars containing .java files as an input.
For turbine, pass them directly to turbine. For javac, extract them
to a directory and pass a list of the files to javac.

Bug: 73885582
Test: m checkbuild
Change-Id: Ib4351a5b4b165a55e5fb02ee2680466db368983a
Merged-In: Ib4351a5b4b165a55e5fb02ee2680466db368983a
(cherry picked from commit 11e2d55c0fc8a6c00820c3ae9fc0d2a4c5723c54)
/build/make/core/definitions.mk
35e31b65bd238f63577b9ab92e19fb6e500ae525 07-Mar-2018 Colin Cross <ccross@android.com> Remove sharding support from make

Sharding is not used in make any more, the large java modules
(libcore and framework) have moved to Soong. Keeping sharding
support complicates java compiling, so remove it.

Bug: 73885582
Test: m checkbuild
Change-Id: I2932f9e96bfc8f2ebf82095b16d6c0b3c51613f0
Merged-In: I2932f9e96bfc8f2ebf82095b16d6c0b3c51613f0
(cherry picked from commit 5ef6e79c21f33ce94c1f447e6551b167ac6b5c1e)
/build/make/core/definitions.mk
f65052640e67e82ab442ca317ac5a140e0530872 27-Feb-2018 Dan Willemsen <dwillemsen@google.com> Merge "Use xmllint built from source" am: 063e6b2939 am: 41d79327cd
am: 993655b8bf

Change-Id: I182feaff6e3db997407affd5520f57b421b8e433
4c36d45a2cc03ce76307c1183831e622e7325e26 27-Feb-2018 Dan Willemsen <dwillemsen@google.com> Use xmllint built from source

Instead of relying on whatever version of xmllint is on the host system,
build and use the version in external/libxml2.

Test: diff build_aosp-marlin.ninja, expected changes.
Test: m $(xmllint targets in build_aosp-marlin.ninja)
Test: introduce xml error, build fails
Change-Id: I39579f06db3777e3b5c8dda7c7541c25a35887b2
/build/make/core/definitions.mk
de2d9195ff9c3e7f7a18e4e9472d563dda812f53 09-Feb-2018 Colin Cross <ccross@android.com> Merge "Move to-upper and to-lower to definitions.mk" am: 74413198b7 am: 7209b4066b
am: 3c508d0b3d

Change-Id: I73f796d5a53f57210f5fad53ca47bbe8af1e59f2
74413198b736f7c4e4698546b5763907ed4e1643 09-Feb-2018 Treehugger Robot <treehugger-gerrit@google.com> Merge "Move to-upper and to-lower to definitions.mk"
06f66af4e33f25aa5920fed567bdf2c935e6d23c 09-Feb-2018 Victor Hsieh <victorhsieh@google.com> Merge "Don't use the same temp directory to uncompress dex" am: 9963b1af06 am: 4adb37dc4e
am: 7850bb0060

Change-Id: I3c2cea2b79615189e909a82fa003dc2fd91419af
18fae7a32ecfb26d2866b5c29e9c36cfd956d50b 09-Feb-2018 Colin Cross <ccross@android.com> Move to-upper and to-lower to definitions.mk

So they can be used by art/test/Android.run-test.mk.

Also remove the line wrapping, which was inserting extra characters
at the beginning of the result, and add a sanity check.

Bug: 26275726
Test: no change to out/build-hikey960-test-art.ninja
Change-Id: I35b54c258a1dc76bb1a8a758ec4a08915a2b226d
/build/make/core/definitions.mk
7aecf33efd238a0c83c702a454bfba0e7686e680 08-Feb-2018 Victor Hsieh <victorhsieh@google.com> Don't use the same temp directory to uncompress dex

This was ok for apk because they are in different parent directory.

Test: marlin built
Bug: 63920015
Bug: 30972906
Change-Id: I5ed00824fda9e7e0a99c825402753c21a06ba6c5
/build/make/core/definitions.mk
8c4d521d0dbc5dfb2e93ad914ebee0ad70efe0a5 02-Feb-2018 David Brazdil <dbrazdil@google.com> Merge "Revert "Revert "Apply hiddenapi build tool on boot jars""" am: edd4716ff9 am: bc05d3f846
am: 3264b568f3

Change-Id: I21ce7dc6f2d50a96722a197f52e48f13899ede7d
b8fa6dd104d758a32e08661b0f3315804a47d00d 29-Jan-2018 David Brazdil <dbrazdil@google.com> Revert "Revert "Apply hiddenapi build tool on boot jars""

This reverts commit 4a2926a44e5e9ff208f3a0290ebfc13bb6f26cfd.

Reason for revert: The original CL caused two issues:
1) Increased app startup because `profman` failed to verify boot
jars and created an empty profile for the boot image. All methods
in the framework therefore ran interpreted/JITed. New flag
"--skip-apk-verification" has been added to `profman` to fix
the issue in CL Iad614e47feada293218c11cff985a8012ca49a0f.
2) Caused a crash in Mockito CTS tests because jvmti did not
remove hiddenapi access flags from boot jars before using them.
This has been fixed with CL Ibc9a96a6b541c06844f276db009ac29514f7a3bb.

Bug: 64382372
Bug: 72550707
Test: make test-art-host
Change-Id: Ie8c58714455662f042f56b2977b01b75c5ec7d2f
/build/make/core/definitions.mk
bd2f15cd58a921025cbbe2d43e7255e6d0780f7b 30-Jan-2018 Dan Willemsen <dwillemsen@google.com> Merge "Clean up some kati warnings" am: 157fbf771b am: 6432cf64b6
am: 6597699c8d

Change-Id: If7fe1940d10ff759c4606c314f98030fad83b232
893bebc44b16421a1f6b7d4c65e9e3a6a9059ddd 30-Jan-2018 Dan Willemsen <dwillemsen@google.com> Clean up some kati warnings

Kati has a `--warn` option that adds some extra Kati-specific warnings
-- like using undefined make functions, undefined user functions, likely
bad variable lookups, etc. Some of these are bugs, others are fine doing
nothing. This fixes up all of them in the core build system.

It also complains about $(eval) usage in a recipe not being recommended.
Those aren't handled as part of this change.

Bug: 72661763
Test: build-aosp_arm.ninja is identical before and after
Change-Id: I8e00af142a7745236d3ad4efc9e91ec3ce71a511
/build/make/core/definitions.mk
ebbbb5b1a2877a128ce0f1bcea203f6be58d844f 29-Jan-2018 Tobias Thierer <tobiast@google.com> Merge "javac 9 -target 1.9: Move bootclasspath jars onto classpath." am: e1b94da7c8 am: 6f1cb62ed4
am: 57e6177293

Change-Id: I588c93bfaa3f39405118452d4aa401f84f28c3e4
e1b94da7c83ce94323c737d248ec131947fb2e2d 29-Jan-2018 Tobias Thierer <tobiast@google.com> Merge "javac 9 -target 1.9: Move bootclasspath jars onto classpath."
e66c468790231049db8d6b322aa540791b094fb1 26-Jan-2018 Alex Light <allight@google.com> Merge "Revert "Apply hiddenapi build tool on boot jars"" am: 9f1e629503 am: 67bf2d712a
am: 393453d761

Change-Id: I4e69247e2add400d6dad997cca04b1969384bb4f
4a2926a44e5e9ff208f3a0290ebfc13bb6f26cfd 26-Jan-2018 Alex Light <allight@google.com> Revert "Apply hiddenapi build tool on boot jars"

This reverts commit b7f00ed2afbd804906a8336dfef62ed10a74d0ef.

Bug: 72550707
Bug: 64382372
Test: atest CtsInlineMockingTestCases

Reason for revert: Causing invalid dex files to be passed to jvmti
agents. This causes CtsInlineMockingTestCases and
other tests to fail.

Change-Id: I50129e94791b9e2bef919fe398b4250ae461195b
/build/make/core/definitions.mk
0276db1ec7ffef5f1a52a9884920abbd126c6a91 01-Nov-2017 Tobias Thierer <tobiast@google.com> javac 9 -target 1.9: Move bootclasspath jars onto classpath.

When building with OpenJDK 9's javac with -source 1.9 -target 1.9,
a runtime image (with system modules) is used via the --system
command line flag, instead of --bootclasspath.
The runtime image only contains the default libraries (libcore)
but is missing other libraries that might be on the bootclasspath
for a particular build target.

This CL fixes compilation for this case by adding the missing
jars onto the classpath instead.

This already used to work but was broken by CL [1]. I attempted
to conditionally revert some of that CL's changes to java_common.mk
for the case of language level 1.9, but couldn't get it to work.
Therefore this CL follows a different approach.

[1] http://r.android.com/519552

Bug: 38177569
Test: Treehugger
Test: Ran "EXPERIMENTAL_USE_OPENJDK9=true make checkbuild docs"
and spot-checked some javac invocations to confirm that the
system modules libs were not included in the bootclasspath,
but other libs were.

Change-Id: I48fd11aac9b310bfa58dee0f9cfb3ef33f10bca8
/build/make/core/definitions.mk
5f97aef277cf25fbd7562881849fe549204f533f 26-Jan-2018 David Brazdil <dbrazdil@google.com> Merge "Apply hiddenapi build tool on boot jars" am: 221848b181 am: b1831cf27e
am: 74f173806b

Change-Id: I60a5482f2a04429e3dcbf47ed82441cb3c702cdc
b7f00ed2afbd804906a8336dfef62ed10a74d0ef 22-Jan-2018 David Brazdil <dbrazdil@google.com> Apply hiddenapi build tool on boot jars

Restrictions on usage of private APIs require encoding new information
into the dex files of the boot class path. ART now contains a new build
tool called `hiddenapi` which takes three lists of class member
signatures (blacklist, light and dark greylist), finds the class members
in their respective dex files and modifies their access flags in place.

This patch invokes the `hiddenapi` tool on all JARs in
PRODUCT_BOOT_JARS. For Java libraries built with Makefiles the tool is
invoked after the dexer directly on DEX files. For Soong-built
libraries, the build system has to unzip the JAR produced by Soong,
apply `hiddenapi` and rezip again. This is due to the fact that the
PRODUCT_BOOT_JARS variable is not available to Soong.

Bug: 64382372
Test: m
Change-Id: I6ce897d204459c8b6f46ed49e0909ff76c08a9ed
/build/make/core/definitions.mk
c218a41c207f6ef57b50a27407f5949c6d7df7c0 22-Jan-2018 Nicolas Geoffray <ngeoffray@google.com> Merge "Tighter control of stripping in dex_preopt_odex_install." am: ec1fdc8813 am: ef29a15ac4
am: aa9a2e4af9

Change-Id: I622998242a20d8f4f8ee9fb2e0856180db44efe0
ec1fdc881369f6413504e4b2dbbc12330f387f9f 22-Jan-2018 Nicolas Geoffray <ngeoffray@google.com> Merge "Tighter control of stripping in dex_preopt_odex_install."
1d160f630cbef78517939cd382b90d81c8041da5 22-Jan-2018 Tobias Thierer <tobiast@google.com> Merge "Experimental feature: LOCAL_PATCH_MODULE option in .mk files." am: 4bb18a8a2e am: 38d784f152
am: 33130f97e3

Change-Id: Idb30848c98b01a4fec8c6afdaac56899fb0f8d5f
f492ebdbd1ddbec152dcdba8ecd62eda06d3313b 10-Nov-2017 Paul Duffin <paulduffin@google.com> Revert "Filter JUnit and android.test classes from applications using proguard"

This reverts commit f22aca1e47a4cb7833afb42a90eee363a2258cb5.

Switching to use -systemjars instead of -libraryjars means that it is no longer
necessary to filter out the junit and android.test classes from jars to which
Proguard is being applied.

Bug: 30188076
Bug: 69156675
Test: make checkbuild
Change-Id: I36e14d28e01517927b458d69ade8ccb2c79a3340
/build/make/core/definitions.mk
3972a47e9f70806795e5545d4c27cbc66fc37a4d 09-Jan-2018 Nicolas Geoffray <ngeoffray@google.com> Tighter control of stripping in dex_preopt_odex_install.

- Move logic to uncompress dexs in an APK in dex_preopt_odex_install.mk
and definitions.mk.
- Explicitly mark nostripping cases where dexpreopt will not embed the dex
file in the APK.

bug: 63920015
Test: m
Test: verify priv-apps dexs are uncompressed and unstripped
Test: Verify a non priv-app APK with uncompressed dex doesn't get stripped.

Change-Id: I624a03e3d965cebc0cae43fd6f7a6260178e6b8a
/build/make/core/definitions.mk
f795dcb7673a74d0618ea7104e9fe1b04f690c11 09-Jan-2018 Tobias Thierer <tobiast@google.com> Experimental feature: LOCAL_PATCH_MODULE option in .mk files.

Specifying this option causes the make target's sources
and classpath dependencies to be patched into the specified
module via --patch-module (if the build toolchain implements
the module system, ie. when targeting 1.9). This allows tests
to compile that have classes in packages under test.

Currently, only java.base is on the module path (everything
else is on the classpath), and only when using -target 1.9
(ie. EXPERIMENTAL_USE_OPENJDK9=true).

Bug: 71699916
Test: Treehugger
Test: Checked that I was able to compile some ojluni & icu
test sources that had classes in (libcore) packages
under test.

Change-Id: I044fb9d904754ed281f574ab3dd52235cf0d7fec
/build/make/core/definitions.mk
aca57b6c8933934817e615204f8f5f614febc6e2 21-Dec-2017 Colin Cross <ccross@android.com> Remove --no-locals -> --release translation

--no-locals is never used any more, remove the translation.

Bug: 70886092
Test: m checkbuild
Change-Id: I5b0a512601b417c5a10001feed1fd9b8de8cb983
/build/make/core/definitions.mk
c8ef37dfd88e39721c6f6666574ebb43613eff59 13-Dec-2017 Alan Leung <acleung@google.com> Prep D8 default instead of CompatDX in build/core

Also use zip2zip to extract classes into another jar
to avoid hitting parameter limit in the shell invocations.

Bug: 69329508
Test: m checkbuild tests

Change-Id: Ic047aa699519b6b3fd100cb5395de945f96e4d0b
/build/make/core/definitions.mk
973301af79c9f53467dc2baebc02aee02021469a 13-Dec-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Replace build/tools with build/make/tools"
aff156bd49cba44392f93ec576ed8bb77cec9da5 12-Dec-2017 Alan Leung <acleung@google.com> Avoid feeding D8 with dex files.

Some test targets include dex files as resource to be loaded
at runtime. This is an issue since full D8 also take dex files
as input.

This CL extracts only the class files and feed that to D8 instead
of the whole jar.

Test: USE_D8_DESUGAR=true m checkbuild tests
Bug: 69329508

Change-Id: I52d80ec01933573f18eb497472a80b6a649c9dae
/build/make/core/definitions.mk
eaafb3cd37468eb048c52afd7b55f3ece1f307f0 01-Dec-2017 Alan Leung <acleung@google.com> Add USE_D8_DESUGAR option in build/core

Add an option to use D8's desugar instead of the standalone version.

USE_D8_DESUGAR=true m would trigger DCHECK in dex2oat unless
https://android-review.googlesource.com/c/platform/art/+/562595 is
patched in as well.

Bug: 69329508
Test: m && USE_D8_DESUGAR=false m

Change-Id: I601dada44c361e45bbc0e2227ae1544a7d9efa90
/build/make/core/definitions.mk
fdea893833ef823f69bb225c80adc2af5af6f383 06-Dec-2017 Colin Cross <ccross@android.com> Replace build/tools with build/make/tools

Test: m checkbuild
Change-Id: I8db6c27a6d2372f142d10568fe92d6f2e9a59252
/build/make/core/definitions.mk
5f03da0404bdc80c9435e02e87a51e80d9f31520 07-Dec-2017 Xin Li <delphij@google.com> Merge "DO NOT MERGE: Merge Oreo MR1 into master"
0765d532396c64303740b4cdccbd570367f40b4f 06-Dec-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Add build script to generate TF test XML file with filters"
f3e8302088e1338555abf7aaef786d5277b67b59 01-Dec-2017 Sundong Ahn <sundongahn@google.com> Add LOCAL_SDK_VERSION := system_$(VER)
am: 5a44d1f069

Change-Id: Ief08f78484b654502d356c07d61063a16aad0572
5a44d1f069ad8cfc9afd757e662fd47ee4ed02c3 16-Oct-2017 Sundong Ahn <sundongahn@google.com> Add LOCAL_SDK_VERSION := system_$(VER)

The system_$(VER) can be set in LOCAL_SDK_VERSION, and the apk will use
android_system.jar at build time.
If LOCAL_SDK_VERSION is not defined and this module is installed in
vendor.img, LOCAL_SDK_VERSION is set to system_current.

Bug: 67724799
Test: 1. build && run on taimen
2. LOCAL_SDK_VERSION:=system_27 in ims.apk && build ims.apk && check
the vsdk_v27_intermediates.

Merged-In: I5b11c78b8fcd4a2f2a5e3b141527cd34dbe80018
Change-Id: I5b11c78b8fcd4a2f2a5e3b141527cd34dbe80018
(cherry picked from commit ef212cbe8d6e628bfc40e2db75522b4f1d794766)
/build/make/core/definitions.mk
2338f237a33bbd179535fc5dfccf9587709bf26d 22-Nov-2017 Colin Cross <ccross@android.com> Merge "Tighten restrictions on LOCAL_JACK_COVERAGE_(INCLUDE|EXCLUDE)_FILTER"
am: 711bfabd50

Change-Id: If9f4d81504c26e3d752d4f10f161f9229fb68a8d
711bfabd50796d8378229177c0e9dc5174f2da38 22-Nov-2017 Colin Cross <ccross@android.com> Merge "Tighten restrictions on LOCAL_JACK_COVERAGE_(INCLUDE|EXCLUDE)_FILTER"
3c8d30ce60cc30c501b2b20cb2324db80a57380e 22-Nov-2017 Colin Cross <ccross@android.com> Tighten restrictions on LOCAL_JACK_COVERAGE_(INCLUDE|EXCLUDE)_FILTER

Jack supported '?' and '*' wildcards anywhere in a filter. Tighten
the restrictions to only support '*' at the end of a filter, and
to disallow '?'. This will allow jacoco support to be built on
top of the existing zip2zip tools.

Add checks that all filters meet the new requirements, and run
the checks outside the LOCAL_EMMA_INSTRUMENT==true check so that
mistakes can be caught without having to run a build with
coverage enabled.

Bug: 69629238
Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_STATIC=true
Test: m in internal master
Test: https://android-build.googleplex.com/builds/view-workplan?viewType=Table&workplanId=L67200000122054710&nodeType=Trybot
Change-Id: Ib78bd3c8685fbc6bdcdb517df874186efd1cff33
/build/make/core/definitions.mk
c792d08bd221e7c784f5efca28b60370290294fb 22-Nov-2017 Tomasz Wasilczyk <twasilczyk@google.com> Merge "Silence yet more superfluous build messages."
am: 01e1fe60b8

Change-Id: I5dc1676389d4b6fb062265fac86a9d77b37c5c7b
01e1fe60b8a0f3cba5efeb08146c062ce04f1cf5 22-Nov-2017 Tomasz Wasilczyk <twasilczyk@google.com> Merge "Silence yet more superfluous build messages."
4ffaa144785a53e311e1bd020105e1bf05fb6208 17-Nov-2017 Tobias Thierer <tobiast@google.com> Merge "Break EXPERIMENTAL_USE_OPENJDK9 into {USE,TARGET}_OPENJDK9."
am: 446c9ba370

Change-Id: I0254955fa16e8b35396f9f350c961031272c6583
f6bd4957283fa70771c53cbff7d3135bff661485 15-Nov-2017 Tobias Thierer <tobiast@google.com> Break EXPERIMENTAL_USE_OPENJDK9 into {USE,TARGET}_OPENJDK9.

This CL topic breaks the single flag value EXPERIMENTAL_USE_OPENJDK9
into two flags USE_OPENJDK9 and TARGET_OPENJDK9 which are computed
independently in config.mk and config.go; this means that later
build logic no longer depends on / duplicates the semantics of an
unset EXPERIMENTAL_USE_OPENJDK9, because that later build logic
can use USE_OPENJDK9 and TARGET_OPENJDK9 instead. Thus, it becomes
slightly easier to change this default in future CLs (touching
only config.mk and config.go).

It also makes it more straightforward to convert .mk files
to .bp.

This CL also introduces a new allowed value "false" for
EXPERIMENTAL_USE_OPENJDK9. This fourth possible value currently
has the same semantics as a default/unset
EXPERIMENTAL_USE_OPENJDK9, but allows people to explicitly
switch back to the old semantics when the default changes.

Test: make showcommands core-oj (in environments with
EXPERIMENTAL_USE_OPENJDK9 set to "", "1.8", and "true").
Bug: 38177295

Change-Id: Iaade9610b237722e5d175143808b8653b1e98996
/build/make/core/definitions.mk
4eee474504b695d077e053f6b26bf75dbda63262 17-Nov-2017 Alan Leung <acleung@google.com> Merge "Rename r8 to r8-compat-proguard"
am: 81eeb78200

Change-Id: Ibe7c114115f627ae3f061f8087b93891af475e40
7d6144d34b04cb45cf0ffc15718c4b0a6271c66e 17-Nov-2017 Alan Leung <acleung@google.com> Rename r8 to r8-compat-proguard

Test: USE_R8=false USE_D8=true m -j32 && USE_R8=true USE_D8=true m -j32

Change-Id: I2610340cf75f8db5920e33fac542f0dcf294ce29
/build/make/core/definitions.mk
1c26bc9b27f504076d7428ad0ecbac32341e991f 16-Nov-2017 Tomasz Wasilczyk <twasilczyk@google.com> Silence yet more superfluous build messages.

Bug: 69315492
Test: it builds
Change-Id: I89fcbf9f6435da7ff1c374020870c989b671af2a
/build/make/core/definitions.mk
44dd4881defd4589fad6fdd8596d6bc6f3f9dfb5 14-Nov-2017 Xin Li <delphij@google.com> Merge commit '66b8b530187b129934a685bf0c4349eef00e4b0c' from
oc-mr1-dev-plus-aosp-without-vendor into stage-aosp-master.

Change-Id: I7594bb72dd7e847292eb502edd918e41318aac29
Merged-In: Ide82473d358719f7e01cd2a4a85db954f3722f14
26efd3a8d18bd5d12b82f361da5042b7c1a059a4 13-Nov-2017 Dan Shi <dshi@google.com> Add build script to generate TF test XML file with filters

Bug: 68270274
Test: run 'atest' in frameworks/base
Change-Id: I99b741fae18997caa6aefbd3ab804e5d30e7ae36
/build/make/core/definitions.mk
c66d297e0a07230d69cd39d75f31e8f101ba4a6c 07-Nov-2017 Søren Gjesse <sgjesse@google.com> Use prebuild R8 for USE_R8=true

Instead of building R8 from external/r8 use the prebuild jar in
prebuilds/r8.

Test: m -j USE_R8=true

Change-Id: I9680ae430cdbc2b3beb910873c8eed27354f6af1
/build/make/core/definitions.mk
85e391b2a2eec2d552e3607bd0b5bb3611cb8694 06-Nov-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge changes I30a83721,I1094f213

* changes:
Validate args passed by jacoco.mk to rm -rf
Implement validate-paths-are-subdirs
96257655c5a7ebd54079dc73a60d70d3377cc603 02-Nov-2017 Tobias Thierer <tobiast@google.com> Merge "Skip Proguard for EXPERIMENTAL_USE_OPENJDK9=true"
fba0a560de3e0b15412437b7aa227c6d8630fb85 01-Nov-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Revert "Revert "CFI compatibility with static executables and nested archives"""
21a3aef7d7f8d51233bef84c93281052d3dede2f 01-Nov-2017 Nicolas Geoffray <ngeoffray@google.com> Merge "Add a product variable for priv-apps dependencies."
85f72449ae64869c5ddd5c4f6d8f0e034fe601ef 01-Nov-2017 Vishwath Mohan <vishwath@google.com> Revert "Revert "CFI compatibility with static executables and nested archives""

This reverts commit 8350c4c540b6ad8a5e5ea01b6aacb9e92fa3d7dc.

Reverting the revert so a proper fix can be applied.

Change-Id: I69f106dfd294198e03a62bcd88c8f18033410141
/build/make/core/definitions.mk
89740664a5e84a62a220bf577469bc0e2986d341 25-Oct-2017 Tobias Thierer <tobiast@google.com> Skip Proguard for EXPERIMENTAL_USE_OPENJDK9=true

Proguard doesn't support v53 class files. For now, this
CL simply replaces the Proguard step with a plain 'cp',
which is essentially a no-op.

To avoid apps exceeding the dex limit in this mode, this
CL also enables --multi-dex for those builds.

Test: Treehugger
Bug: 67673860
Change-Id: I17dc5d827360d606a0cac12e324f97e8dedbb630
/build/make/core/definitions.mk
8350c4c540b6ad8a5e5ea01b6aacb9e92fa3d7dc 31-Oct-2017 Orion Hodson <oth@google.com> Revert "CFI compatibility with static executables and nested archives"

This reverts commit 3d3e1cf26002ce91a47351cd456dfe680a32b8fe.

Rationale: part of a group of commits that left aosp_x86_64 not
building. (See https://android-build.googleplex.com/builds/
submitted/4426589/aosp_x86_64-eng/latest/logs/build_error.log)

Bug: 30227045
Test: builds
Change-Id: Ie22590abe3d1cdccb8d141baf6480d49dedf8789
/build/make/core/definitions.mk
22b6abc96d855dbc07772b7dee326a5eb0058955 31-Oct-2017 Vishwath Mohan <vishwath@google.com> Merge "CFI compatibility with static executables and nested archives"
c7bd540a6ecff3e80c7b5c620cb997d4de2710ce 31-Oct-2017 Colin Cross <ccross@android.com> Export AAPT-related variables to soong

Test: m checkbuild
Change-Id: I1816df9b9cc7b51e228d6d847cefa2d51a524897
/build/make/core/definitions.mk
3d3e1cf26002ce91a47351cd456dfe680a32b8fe 18-Jul-2017 Vishwath Mohan <vishwath@google.com> CFI compatibility with static executables and nested archives

This CL makes the following changes:
(a) It disables diagnostics for CFI which requires the runtime ubsan
library (which isn't included in static executables).

(b) It applies the ar flags for CFI correctly for nested .a
archives.

(c) Applies the version script to export CFI shadow for non-static
binaries

(d) Doesn't apply cross-dso CFI for static executables

Bug: 30227045
Test: Static executables build correctly and do not complain about
missing symbols from the ubsan runtime library.
Test: Nested .a files correctly use the gold plugin.

Change-Id: Id8fe3c13f6b76565aafbf1266e95f50d1447a790
/build/make/core/definitions.mk
3964db36da1ee691756b2bc67cff81e38145adb5 25-Oct-2017 Jeff Gaston <jeffrygaston@google.com> Implement validate-paths-are-subdirs

Test: m -j nothing # which runs unit tests
Bug: 68056327
Change-Id: I1094f2134af28695ea2376134ea463d34cd63676
/build/make/core/definitions.mk
5ea99d420b846602fcfc99f917f84aabb2357af2 21-Oct-2017 Colin Cross <ccross@android.com> Desugar default methods if required

Desugar default methods if requested by LOCAL_MIN_SDK_VERSION < 26.
Also remove --desugar_try_with_resources_if_needed=false, it is no
longer necessary if we always proguard against frameworks.jar.
Fixes d8 issues when it sees unexpected default methods that dx
was passing through.

This reapplies I81796b452d5a70a951e175727953d4295ca32c0c after
If30943efcaea44b2db1b38a6c1d558113324757f.

Test: m checkbuild
Change-Id: I3bafbb2d63de2a6b50bc8c7ff40259b54d24f128
/build/make/core/definitions.mk
98caed6e7fa2a3b26299d0b0005838900c63d064 26-Oct-2017 Colin Cross <ccross@android.com> Fix desugaring when LOCAL_SDK_VERSION is not set

When LOCAL_SDK_VERSION is not set, frameworks.jar is put
in the classpath for javac. If it is also in the classpath
(as opposed to the bootclasspath) for desugar then desugar
tries to rewrite classes that implement interfaces with
default methods to contain calls to the generated companion
classes for those interfaces. frameworks.jar will not
contain the companion classes, which causes proguard to
fail.

Move frameworks.jar to the bootclasspath, which matches more
closely with builds against the SDK stubs jars.

Also remove the static libraries from the classpath, they have
already been merged into the input jar.

Test: m checkbuild
Change-Id: If30943efcaea44b2db1b38a6c1d558113324757f
/build/make/core/definitions.mk
4d85d55e09ee46cf0f5cb779de907eb802e520c1 26-Oct-2017 Colin Cross <ccross@android.com> Merge "Revert "Desugar default methods if required""
53aa02d2d23262f514392c14d76e87b159369ae8 26-Oct-2017 Colin Cross <ccross@android.com> Revert "Desugar default methods if required"

This reverts commit 6548d2a98de91f42b0c34c84f9dd204ed08ebb5f.

Reason for revert: broke apps build

Change-Id: Ibc503fa89b51e1f64f78cb6cee3e3ad7bbd8f2eb
/build/make/core/definitions.mk
437bbed85846a06b0598b1978b5318f097bc0193 25-Oct-2017 Colin Cross <ccross@android.com> Merge changes I81796b45,Iaf585336

* changes:
Desugar default methods if required
Always raise proguard libraries
6548d2a98de91f42b0c34c84f9dd204ed08ebb5f 21-Oct-2017 Colin Cross <ccross@android.com> Desugar default methods if required

Desugar default methods if requested by LOCAL_MIN_SDK_VERSION < 26.
Also remove --desugar_try_with_resources_if_needed=false, it is no
longer necessary if we always proguard against frameworks.jar.
Fixes d8 issues when it sees unexpected default methods that dx
was passing through.

Test: m checkbuild
Change-Id: I81796b452d5a70a951e175727953d4295ca32c0c
/build/make/core/definitions.mk
9047dce21284fea2e37b4e56418b3e7325b7ccb5 24-Oct-2017 Søren Gjesse <sgjesse@google.com> Merge "Added support for using R8 instead of Proguard + dx"
d690ca5b8a21ac304623c66acc75ec00da9b5be0 24-Oct-2017 Tao Bao <tbao@google.com> Merge "Fix an issue in assert-max-image-size."
0c1fe64ce896fc8e367b405b3f99195bf81b83f9 12-Oct-2017 Søren Gjesse <sgjesse@google.com> Added support for using R8 instead of Proguard + dx

With this change building with USE_R8=true will run R8 instead of Proguard + dx
for all targets that have LOCAL_PROGUARD_ENABLED set. R8 (through the
compatproguard wrapper) will use the same options as Proguard for now.

Additional Proguard configurations for R8 can be added using LOCAL_R8_FLAG_FILES
on individual targets. This makes it possible to make configuration updates
without touching the Proguard + dx configuration

Test: m -j
Test: m -j USE_D8=true USE_R8=true
Test: m -j USE_D8=true USE_R8=false
Test: m -j USE_D8=true
Change-Id: I78e8a0fd17cc5cefedccffe95b93c94a60a727f1
/build/make/core/definitions.mk
1cba05bb390900b88c839a0abf6590defa8be8f8 20-Oct-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Slightly easier debugging of missing inputs to copy-file-to-target"
c5122aee9d01fbf25bb236feff43cecefc28f2f3 17-Oct-2017 Colin Cross <ccross@android.com> Merge "Use system modules generated by soong when using javac -target 1.9" am: 58cd98dc47 am: 7c381d8015
am: 3541a96d76

Change-Id: I70c1cabb3fe7f3c34c54d9b360259229d7bb6243
58cd98dc4777275efa2912dfaeeea8b7021b7c17 17-Oct-2017 Colin Cross <ccross@android.com> Merge "Use system modules generated by soong when using javac -target 1.9"
6730f9017eaef93ff7cec8514849e4d6e2047a5b 17-Oct-2017 Tao Bao <tbao@google.com> Fix an issue in assert-max-image-size.

When building the recovery image on marlin (m bootimage):
----- Making recovery image ------
Copying baseline ramdisk...
Modifying ramdisk contents...
/bin/bash: line 0: [: 0x02000000: integer expression expected
----- Made recovery image: out/target/product/marlin/boot.img --------

Because if -gt doesn't like hexadecimal numbers. Fix the issue by doing
a dummy arithmetic to get integer $$maxsize.

Test: `m bootimage` with aosp_marlin-userdebug. Also change the
BOARD_BOOTIMAGE_PARTITION_SIZE closer to the actual size to
trigger the different size check paths.
Change-Id: I75c7727664d7255b9c18f57ae38076ff90b8a957
/build/make/core/definitions.mk
af4998f62fc4076a1c7fa45a3dee5d2483cb2968 17-Oct-2017 Yoshisato Yanagisawa <yyanagisawa@google.com> Merge "Make SOONG_JAVAC_WRAPPER use JAVAC_WRAPPER to call javac." am: 51e7a0cca4 am: 5de0a22292
am: cf07f0dc22

Change-Id: I443f9e65ce46c5a834a420318f3629bc17f9e6cb
51e7a0cca47d60d358817a19e0e07f857e1653ad 17-Oct-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Make SOONG_JAVAC_WRAPPER use JAVAC_WRAPPER to call javac."
f960257c1445149aebbfde386e9330a0c82f2265 12-Oct-2017 Colin Cross <ccross@android.com> Use system modules generated by soong when using javac -target 1.9

Soong has support for building system modules. Use the directories
produced by Soong with --system to replace -bootclasspath arguments
when using javac -target 1.9.

Since soong can't generate current SDK stubs yet, and no existing
SDK stubs need -target, only use -target 1.9 for modules that are
not compiling against the SDK. That means in practice the only
system modules that will be used for now is the default one,
core-system-modules.

Bug: 63986449
Test: m -j EXPERIMENTAL_USE_OPENJDK9=true makes some progress
Change-Id: I350ef50aedf36fdd72458c23d4fe8a2edf1a9a02
/build/make/core/definitions.mk
29d28e58fb39526fdf3931f2fd78f225bd369126 13-Oct-2017 Nan Zhang <nanzhang@google.com> Merge "Support java compilation sharding for target side." am: 60e1f8ee27 am: 72165e0c29
am: bbc5a69fc5

Change-Id: I8c65cdeb4d1fc37f86a44c82f82bfe1a10440667
ad818dcbead1aad1404cfae2c5eb02538add5a9e 04-Oct-2017 Nan Zhang <nanzhang@google.com> Support java compilation sharding for target side.

Add "LOCAL_JAVAC_SHARD_SIZE" to represent the number of java
source path entries in each shard.

Sharding is not allowed when "LOCAL_JAVAC_SHARD_SIZE" and
"LOCAL_JAR_PROCESSORS" are both enabled.

Limitation:
1. 0 <= LOCAL_JAVAC_SHARD_SIZE <= 8192
1. 0 < NUM(java_sources) <= 8192
2. 0 <= NUM(shards) <= 100

Performance Compare:
<Unsharded Build------------------------------------------------>
1. Build from clean state
rm -r -f out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/
&& time m
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes-full-debug.jar

real 1m2.720s user 5m26.604s sys 0m39.552s

2. Incremental build
m out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes-full-debug.jar &&
touch frameworks/base/core/java/android/net/http/HttpResponseCache.java && time m
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes-full-debug.jar

real 0m37.586s user 5m47.804s sys 0m50.388s

<Sharded Build-------------------------------------------------->
1. Build from clean state
rm -r -f out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/
&& time m
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes-full-debug.jar

Javac Shard Size: 50----real 1m10.163s user 25m59.008s sys 1m58.460s
Javac Shard Size: 100---real 1m2.115s user 21m3.600s sys 1m15.964s
Javac Shard Size: 150---real 0m59.520s user 18m10.544s sys 1m12.628s
Javac Shard Size: 200---real 0m56.894s user 15m39.244s sys 1m11.608s
Javac Shard Size: 250---real 0m55.991s user 14m38.716s sys 1m2.292s
Javac Shard Size: 300---real 0m55.114s user 13m6.568s sys 1m8.200s
Javac Shard Size: 350---real 0m53.144s user 12m7.740s sys 1m3.836s
Javac Shard Size: 400---real 0m54.929s user 12m9.324s sys 1m4.340s
Javac Shard Size: 450---real 1m30.194s user 25m31.468s sys 1m52.416s
Javac Shard Size: 500---real 0m53.976s user 10m35.500s sys 0m55.160s

2. Incremental build
m out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes-full-debug.jar &&
touch frameworks/base/core/java/android/net/http/HttpResponseCache.java && time m
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes-full-debug.jar

Javac Shard Size: 50-----real 0m16.322s user 1m8.648s sys 0m31.700s
Javac Shard Size: 100----real 0m16.163s user 1m22.932s sys 0m29.440s
Javac Shard Size: 150----real 0m16.611s user 1m37.828s sys 0m21.168s
Javac Shard Size: 200----real 0m16.936s user 1m49.248s sys 0m28.636s
Javac Shard Size: 250----real 0m17.509s user 1m54.944s sys 0m32.768s
Javac Shard Size: 300----real 0m18.868s user 1m54.088s sys 0m28.824s
Javac Shard Size: 350----real 0m17.629s user 1m54.108s sys 0m31.056s
Javac Shard Size: 400----real 0m18.658s user 2m7.712s sys 0m30.636s
Javac Shard Size: 450----real 0m18.874s user 2m8.808s sys 0m33.540s
Javac Shard Size: 500----real 0m19.432s user 2m24.400s sys 0m30.368s

time m nothing:
real 0m5.799s user 0m7.236s sys 0m3.068s

Test: m clean && m -j checkbuild
Bug: b/67424047
Change-Id: Id0766d2b7de7c4546d29bbc7f8a0dd0e4b9ad45b
/build/make/core/definitions.mk
42b808b18efb789e96b2c0387b696d81b3a9ea6c 12-Oct-2017 Yoshisato Yanagisawa <yyanagisawa@google.com> Make SOONG_JAVAC_WRAPPER use JAVAC_WRAPPER to call javac.

JAVAC_WRAPPER seems not be used when SOONG_JAVAC_WRAPPER is used.
Since JAVAC_WRAPPER just wraps actual javac call, the result must
be the same.

Bug: 67723445
Change-Id: I944f9534587c00ffd1bc79806c534432467ba4a5
/build/make/core/definitions.mk
78bb63da914c8ab08d1248380ed8eb54335254fa 10-Oct-2017 Dan Willemsen <dwillemsen@google.com> Merge changes Id1d8ffb8,I20a6396d am: f398cc78fe am: 589471eb35
am: 7d00b5144d

Change-Id: I4db990ca8469fc6e71e74bb43a79b7188b26c78c
2d081b35d43c2572a7c0e41f9a28ccce00fc6363 10-Oct-2017 Dan Willemsen <dwillemsen@google.com> Fix broken foreach loop

This wasn't initializing the STATS.MODULE_TYPE.* variables, leading to
106kB of stack usage in ckati for sdk_x86_64-eng. With this fixed, the
next highest stack usage is 35kB.

Bug: 36182021
Test: Run $(flavor) over all the variables
Test: Check stack usage with custom ckati patches
Test: build-sdk_x86_64.ninja is identical before/after this change
Change-Id: Id1d8ffb8415ad6613d0093d31be5472d42d300fd
/build/make/core/definitions.mk
4442e1180f040d5e40112f84a6a34cf1ad63366a 07-Oct-2017 Colin Cross <ccross@android.com> Merge changes I06b8efa8,Id2fa2d18 am: 4d44c2dc12 am: 6fff4ee8de
am: a88ca0936f

Change-Id: I0e21e38f2135bb4fbb17ae3a44d84a769e685cbf
ea1629e788a0a32bc6eacfbdaa40c41e11903470 06-Oct-2017 Colin Cross <ccross@android.com> Refactor removing classes.dex for dexpreopt

Combining $(call dexpreopt-remove-classes.dex) into a
$(call copy-one-file) rule is hacky and error prone. Make a helper
dexpreopt-copy-jar function that takes LOCAL_DEX_PREOPT and copies
the jar, removing the dex files if necessary.

Test: only description message changes to out/build-${TARGET_PRODUCT}.ninja
Change-Id: Id2fa2d18571ca01bc81302c912b8de25f3dde7a1
/build/make/core/definitions.mk
a95fbd1ed57c7261788a354d1ca18821d1df483c 19-Sep-2017 Nicolas Geoffray <ngeoffray@google.com> Add a product variable for priv-apps dependencies.

Those dependencies are jars/apks on which we want to
uncompress their dexs.

bug: 30972906
bug: 63920015

Test: sailfish build

Change-Id: Ic96ffe9dbe39abc1c28e7de134892d689207c9ca
/build/make/core/definitions.mk
4b61a94f70f028092531e5853d127508cf3a1c1f 04-Oct-2017 Jiyong Park <jiyong@google.com> Don't reserve size for bad blocks when checking image size

When checking *.img size with the partition size, the build system
reserves additional bits for spare bits and spare bad blocks.

However, for emmc and ufs, the space bits and blocks are entirely
managed by the underlying controller and thus not visible from outside
of the controller. In fact the check routine was made for legacy MTD
storages where raw flash blocks are directly exposed.

This makes the size checking a little bit conservative in modern devices.
Builds were failed even though the *.img can actually fit into the
partition. To handle this problem, the additional size is no longer
reserved when checking *.img size with the partition size.

This change also removes following build flags that are meaningful
only for devices having MTD storages:
BOARD_NAND_PAGE_SIZE
BOARD_NAND_SPARE_SIZE
Further use of them breaks the build

Bug: 35790399
Bug: 66399382
Test: build

Merged-In: I954bf261441b53844e75d05788866f1692a2ad43
Change-Id: I954bf261441b53844e75d05788866f1692a2ad43
/build/make/core/definitions.mk
03eb06150b2c10cd317fb6b9767c6f1f938f49b5 04-Oct-2017 Jiyong Park <jiyong@google.com> Don't reserve size for bad blocks when checking image size

When checking *.img size with the partition size, the build system
reserves additional bits for spare bits and spare bad blocks.

However, for emmc and ufs, the space bits and blocks are entirely
managed by the underlying controller and thus not visible from outside
of the controller. In fact the check routine was made for legacy MTD
storages where raw flash blocks are directly exposed.

This makes the size checking a little bit conservative in modern devices.
Builds were failed even though the *.img can actually fit into the
partition. To handle this problem, the additional size is no longer
reserved when checking *.img size with the partition size.

This change also removes following build flags that are meaningful
only for devices having MTD storages:
BOARD_NAND_PAGE_SIZE
BOARD_NAND_SPARE_SIZE
Further use of them breaks the build

Bug: 35790399
Bug: 66399382
Test: build

Merged-In: I954bf261441b53844e75d05788866f1692a2ad43
Change-Id: I954bf261441b53844e75d05788866f1692a2ad43
/build/make/core/definitions.mk
b039cf792ff0b920b1ac33399f0bc52d8f71c941 03-Oct-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Delete jack support"
1fc5b81fd2e59260041e207b53d82702d39fc9f7 03-Oct-2017 Dan Willemsen <dwillemsen@google.com> Merge "Fix incremental aapt builds" am: 26cf972f50 am: cd82b18c8d
am: 9461ca528b

Change-Id: I53aa946b0e13976111e976096c63f6c74d5f249d
cd82b18c8dc3d4ecb95074df24d6ca5396171623 03-Oct-2017 Dan Willemsen <dwillemsen@google.com> Merge "Fix incremental aapt builds"
am: 26cf972f50

Change-Id: I7279d4662553a6f31ff2e4ff7d5a482972a2acfb
f439c334dafe900c58821302d8b6b015fa24da0b 02-Oct-2017 Dan Willemsen <dwillemsen@google.com> Fix incremental aapt builds

If a resource was moved / removed without any other timestamp updates,
ninja would not re-run aapt. To fix this, add a list of resource files
into the same command as aapt (echo ... >/dev/null). That way if the
list changes, ninja will recognize the command line changing and rerun
aapt.

Bug: 67315436
Test: mmma cts/tests/autofillservice
Test: mv cts/tests/autofillservice/res/layout/welcome_activity.xml \
cts/tests/autofillservice/res/layout/welcome_activity_test.xml
Test: mmma cts/tests/autofillservice

Change-Id: Ia93ac4ff48910fed74a1f1539ce4e1f5a9db023f
/build/make/core/definitions.mk
4def685881f85c50dce1f08910474f8f2becb0e4 02-Oct-2017 Dan Willemsen <dwillemsen@google.com> Merge changes I7b2fc184,I71f6fcaf am: ea655a138f am: cd4d0d4cc3
am: 6da385ffe4

Change-Id: I4f4059752411a213f84f51c2d11726f9b4fda1b2
cd4d0d4cc390261cb19cb7b25faca41d9edac00f 02-Oct-2017 Dan Willemsen <dwillemsen@google.com> Merge changes I7b2fc184,I71f6fcaf
am: ea655a138f

Change-Id: Icd7c2390a0a35777bda0a93af534d6a4254fff9b
69ced5de5ec848f781956885c9bae52ea0106918 02-Oct-2017 Colin Cross <ccross@android.com> Delete jack support am: a6bc3a8a4c
am: 37bf2b1250

Change-Id: I19133aedbfe91f7cd49588b33f517dc4bb17b91c
e673deb2801626acdf4fa7d3517c4fac0e6a3bc6 27-Sep-2017 Colin Cross <ccross@android.com> Delete jack support

Remove all support for running jack.

Bug: 65302138
Test: m -j checkbuild
Change-Id: I1ef87c88af3f2689f8b0dcf1a01c958b16159631
Merged-In: I1ef87c88af3f2689f8b0dcf1a01c958b16159631
(cherry picked from commit 5db5d31d732a04d07052217602790a3fec8208f8)
/build/make/core/definitions.mk
a6bc3a8a4cfaa272499503890bc73b82ba61d6cb 27-Sep-2017 Colin Cross <ccross@android.com> Delete jack support

Remove all support for running jack.

Bug: 65302138
Test: m -j checkbuild
Change-Id: I1ef87c88af3f2689f8b0dcf1a01c958b16159631
Merged-In: I1ef87c88af3f2689f8b0dcf1a01c958b16159631
(cherry picked from commit 5db5d31d732a04d07052217602790a3fec8208f8)
/build/make/core/definitions.mk
ba9b0fbc05917d8f35b4684c1e5940f0319270af 30-Sep-2017 Dan Willemsen <dwillemsen@google.com> Fix multiple output file generation for AAPT2

Make R.stamp actually part of the same rule that creates R.java.
Otherwise if the generated sources directory is removed, we don't
regenerate R.java / Manifest.java.

Also move the package-export.apk and proguard options file into the same
rule.

Test: m telephony-common; rm out/target/common/obj/*/*_intermediates/src; m telephony-common
Change-Id: I71f6fcaf20593ca23271d52d15537aaa9ef4cc77
/build/make/core/definitions.mk
e3248f5eefd870d29a483cf8a90cc827d4e3c946 29-Sep-2017 Colin Cross <ccross@android.com> Merge "Respect LOCAL_MIN_SDK_VERSION for dx" am: a426e0e974 am: bf7020608f
am: 01b57501d8

Change-Id: I7ac0abdd8ee4a0fe0d4d60f05a967efcbbc59688
9deb331f20bf643ebcdffae00f9512c5696c2b50 29-Sep-2017 Colin Cross <ccross@android.com> Respect LOCAL_MIN_SDK_VERSION for dx

Follow Jack's behavior for now and pass LOCAL_MIN_SDK_VERSION to
dx. Don't pass it to desugar for now, desugar with low
--min_sdk_version numbers enables features we haven't verified
yet, and existing apps won't be using the new language features
that require extra desugaring.

Test: examine classes.dex from an app with LOCAL_MIN_SDK_VERSION
Change-Id: Ic7d679b1b11fba98a33418a4f79d4762a91f1f9c
/build/make/core/definitions.mk
ec346cf1fd15718ec81c220568c31c0dd56b7711 27-Sep-2017 Colin Cross <ccross@android.com> Merge changes I06179fca,Ie48746c8,Ia47ebc95 am: b182ea7bcb am: 2c717745b2
am: 1e7f83bf49

Change-Id: I538de57657bfc334dc6d3d24b22baccb01d9b0d5
7dc9043546339649566a024d0f35154e731662ad 27-Sep-2017 Colin Cross <ccross@android.com> Allow disabling turbine

m -j TURBINE_ENABLED=false will build without turbine. This is
primarily useful for A/B comparisions of turbine builds, but will
also be used to temporarily disable turbine for unbundled builds
until we have turbine prebuilts.

Bug: 64308460
Test: m -j TURBINE_ENABLED=false java
Test: m -j java
Change-Id: Ie48746c8bfc60c361be9634cb1805ca1c09aa1fe
/build/make/core/definitions.mk
9b2e4c6950ed063156eb206ef359603d65d3ddaa 26-Sep-2017 Colin Cross <ccross@android.com> Simplify the *-lib-* functions

Simplify the java-lib-* type functions, three layers of abstraction
is a bit much for a single line function, and isn't reducing enough
duplication to be worth the complexity.

Add app-lib-* functions and use them.

Test: m -j checkbuild
Change-Id: Ia47ebc95e4af2073396233416f14fdee7d856844
/build/make/core/definitions.mk
b0d243f3366f60b7835b76cfdfa37b7ca08fa4de 26-Sep-2017 Colin Cross <ccross@android.com> Merge changes from topic "bootclasspath_default_libs" am: e58881ac38 am: df0c2fd298
am: 665dce738a

Change-Id: Ieb69b355cc0ad74af7ea58ccbbdb36254633f05d
8547be2e381b23fab9113609a6c21ffe834f0dfe 26-Sep-2017 Colin Cross <ccross@android.com> Add dependencies on bootclasspath libraries am: 1d1e5ef61b am: fa4d9fbfdd
am: c70fcc848c

Change-Id: I0572197334015acc14bc2f43031ba3467228171a
b541aae17c159e97555cd643e7eb3f57bb80cb5d 24-Sep-2017 Colin Cross <ccross@android.com> Remove duplication of bootclasspath in LOCAL_JAVA_LIBRARIES

The bootclasspath libraries have direct dependencies now, so
remove them from LOCAL_JAVA_LIBRARIES so they don't also end
up in the classpath.

Test: m -j checkbuild
Test: m -j ANDROID_COMPILE_WITH_JACK=true java
Test: manually inspection of build-${TARGET_PRODUCT}.ninja
only has expected changes
Test: no changes to system.img
Change-Id: Icbc8987468f237aa351708b33c3abe5ea3d1816e
/build/make/core/definitions.mk
1d1e5ef61b8923ec5ecec072267ddbb688a1f62f 24-Sep-2017 Colin Cross <ccross@android.com> Add dependencies on bootclasspath libraries

The libraries in the bootclasspath were getting their dependencies
because they were also in the default libraries list. Make the
dependencies explicit in preparation for rearranging the default
libraries.

Test: m -j checkbuild
Change-Id: I3ea004714a31cd648ec2ef57ed3099bce70bc6b9
/build/make/core/definitions.mk
1d6d78ef38026a21bf5d0501c3b08315ec2f7b49 23-Sep-2017 Miao Wang <miaowang@google.com> Merge "Correctly set the linker search path for libm and libc." am: b463cdc874 am: 6062710fed
am: e277ce63f8

Change-Id: Ib34fe4f4f47f68cbdf0271c61f5102b35a4db9f0
28e78f46003f7ea946d62ffcf90c1f1cf52db4af 17-Aug-2017 Miao Wang <miaowang@google.com> Correctly set the linker search path for libm and libc.

- ndk/r10 is removed, we need to use SOONG ndk stubs instead.
- Use MIN_SUPPORTED_SDK_VERSION instead of hard coded version 9 for
32 bit compilation.

Bug: 38342163
Test: mm
Test: make -j40 FORCE_BUILD_RS_COMPAT=true RSTest_Compat
Change-Id: I9549446cb7f8faee8842b06f096d035535dc7f3d
/build/make/core/definitions.mk
81008bec58c647e52149a4ab4f0cb80268c361ff 22-Sep-2017 Nan Zhang <nanzhang@google.com> Merge "Re-org the merge_zips logiic under Turbine rule." am: c9501f7d60 am: 849dc6c9d8
am: 4cc7071766

Change-Id: I5c63702223ea80d05931cbd2db82e0974ee7e3a6
fda45fdbe131248eddf49e1bf95d61d9d7bddc75 21-Sep-2017 Nan Zhang <nanzhang@google.com> Re-org the merge_zips logiic under Turbine rule.

Mac java build has flaky error for merge_zips. The error happend is
because both turbine.jar.premerged and static_java_libs are missing.

We allow one of them can be missing, but we don't allow both of them are
missing. So re-org the merge_zips logic to see if the input of Turbine is
empty or it is due to Turbine internal.

Bug: b/66441248
Test: m clean && m -j32
Change-Id: I3c4b15004fd67fef2b83eabc36841bc8c8ff6e4c
/build/make/core/definitions.mk
c1288945601ad133b1ed0066d7e8772f85e63764 21-Sep-2017 Nan Zhang <nanzhang@google.com> Merge "Move private_manifest file insertion to jars merging phase." am: 3d6aaa2f56 am: d43952b8f8
am: abbb6a1fa1

Change-Id: I3fa4dd88b143119aa5692a437a9da6e9aa535542
b88011768decee557d6e5a99564d96c569d39604 20-Sep-2017 Nan Zhang <nanzhang@google.com> Move private_manifest file insertion to jars merging phase.

By doing this, the change of private_manifest file won't trigger
Javac to re-run during re-build.

Bug: b/65455145
Test: m clean && m -j32
Change-Id: Ib90d56daf0be5f31b51e07b7714a933bc5cf4496
/build/make/core/definitions.mk
6cdb1f8bc7a0c6704847706df526c3fd235fc5e1 20-Sep-2017 Nan Zhang <nanzhang@google.com> Merge "Use merge_zips to merge jars during Java build in Make." am: 39bbfe217a am: d9001d2733
am: 177e7ffb20

Change-Id: I2178aa1eb4a0e74a3057758f4651ad569bdd6257
39bbfe217a62fc37e98faca2f8ec2e178cc309fd 20-Sep-2017 Nan Zhang <nanzhang@google.com> Merge "Use merge_zips to merge jars during Java build in Make."
95032843ba763a35e520d6c6dd77d8d3913610a4 20-Sep-2017 Nicolas Geoffray <ngeoffray@google.com> Merge "Revert "Revert "Make privileged apps always keep uncompressed dex files.""" am: 121fe5a80a am: 279df08f3b
am: 3c36897dbc

Change-Id: I2fe569b2d0f861a724f5a99139350c4d02e280ef
9bd540594d6ad11694145ed52b957cca5cd2c496 13-Sep-2017 Nan Zhang <nanzhang@google.com> Use merge_zips to merge jars during Java build in Make.

1. Use merge_zips to merge jars without unzipping/rezipping static Java
libraries. And seperate merging process as a independent Make target so
that Javac can only depend on Turbine.

2. Remove duplicate vars: "full_java_lib_deps" in droiddoc.mk

3. Also use classes-header.jar for link_apk & link_instr

Bug: b/65455145
Test: m clean && m -j32

Change-Id: I7b0307664a6b86075c983284fce099bd3946318c
/build/make/core/definitions.mk
b06c30b4803e01b96e60af5ef822d10ab101385a 19-Sep-2017 Nicolas Geoffray <ngeoffray@google.com> Revert "Revert "Make privileged apps always keep uncompressed dex files.""

bug: 30972906
bug: 63920015

Test: doing zipinfo on the produced apks after build.
Test: fugu build

This reverts commit f69441b76b3a7e44802e0f574debd1286da4fd85.

Change-Id: I6b029f2044385f3e3fa332091a9244cec79d2474
/build/make/core/definitions.mk
ad97c9d963042814dee280762f776b34a99b0526 18-Sep-2017 Nicolas Geoffray <ngeoffray@google.com> Merge "Revert "Make privileged apps always keep uncompressed dex files."" am: bb779a0c04 am: ed7dab7625
am: 7c1b5d08d4

Change-Id: I6c71407f2504ccb8bde2ad121dc9574afe32c02d
f69441b76b3a7e44802e0f574debd1286da4fd85 18-Sep-2017 Nicolas Geoffray <ngeoffray@google.com> Revert "Make privileged apps always keep uncompressed dex files."

Broke Fugu build. Will work on a workaround for it.

bug: 30972906
bug: 63920015

This reverts commit 09dfe6739ae4cac8728f9f769a35c8d0d259630e.

Change-Id: I5a8b8de4ec98ae44808762ca1ba974ce89bebb05
/build/make/core/definitions.mk
55c81cea3e5237032ce54575563e3c4aab2cf7f3 18-Sep-2017 Nicolas Geoffray <ngeoffray@google.com> Merge "Make privileged apps always keep uncompressed dex files." am: 3a5c65ef2f am: 65c8bc6695
am: 4ad5bbb35d

Change-Id: I669e96d79fc5dd7247ac75b6defe856ec74fe6d6
09dfe6739ae4cac8728f9f769a35c8d0d259630e 07-Sep-2017 Nicolas Geoffray <ngeoffray@google.com> Make privileged apps always keep uncompressed dex files.

To ensure the verified boot work does not make ART run
dex code uncompressed in memory, make the build system
generate uncompressed dex files in APKs.

The alignment of STORE files in an APK is already handled.

bug: 30972906
bug: 63920015

Test: doing zipinfo on the produced apks after build.
Change-Id: I0ccdeae5d674b2a409a1343c4a14699c7bf0defb
/build/make/core/definitions.mk
8e1c7e1455406bc73d91cdd1c09bdf9f38349859 02-Sep-2017 Nan Zhang <nanzhang@google.com> Merge "Fix the build breakage on git-wear-master/mirror-aosp-master-with-vendor" am: 99e44773ba am: e665010297
am: 4a03375cc7

Change-Id: I70f7b31f7e4e017f1358528d13e5bfe5e2ff7242
d05e19df41cadcb8e789e00f05ee10a29467d175 02-Sep-2017 Nan Zhang <nanzhang@google.com> Fix the build breakage on git-wear-master/mirror-aosp-master-with-vendor

The problem is that when I added .KATI_RESTAT for javalib.jar, I didn't
change the function: create-empty-package to generate javalib.jar.tmp.

The problem causes the build breakage on MacOS/Jack.

Bug: b/64308460

Test: download <git-wear-master> branch locally, and then do:
m -j out/target/product/angelfish/package-stats.txt

Change-Id: I9a5d74caaf164b44676e456050b4f8a5b3bdded0
/build/make/core/definitions.mk
d1bbc2b26c8264a9907a8139926f530835b65783 01-Sep-2017 Nan Zhang <nanzhang@google.com> Merge changes from topic "turbine" am: 872246de0f am: fa8b66f5cc
am: 5d52f85261

Change-Id: I6e71c2e2874bba64f2105c8cf26647ae5c9af25b
b3ec534bd1f9a7046172fbad33afb378e3622c84 31-Aug-2017 Nan Zhang <nanzhang@google.com> Revert "Revert "Add Turbine as part of java build toolchain in Make.""

This reverts commit 33dcd0c5ebd2a8d8022bfd4ed31ae674d4cfe77e.

Reason for revert: <stub.jar.toc needs classes.jar.toc which is no longer existed after Turbine was introduced. So use classes.jar to represent stub.jar.toc>

Bug: b/64308460
Test: m clean && time m -j32 ANDROID_COMPILE_WITH_JACK=true
Change-Id: If618993f1e0c789d93cc15664212603f994fd460
/build/make/core/definitions.mk
3b202bde3f43eb87a3ba529c04c4bf107422573b 31-Aug-2017 Nan Zhang <nanzhang@google.com> Merge "Revert "Add Turbine as part of java build toolchain in Make."" am: 91ffbf2fbe am: 2c82a22d96
am: 40403cdded

Change-Id: Ib9a5a8506bb85b6582421ed20fa1c11d9aba4375
33dcd0c5ebd2a8d8022bfd4ed31ae674d4cfe77e 31-Aug-2017 Nan Zhang <nanzhang@google.com> Revert "Add Turbine as part of java build toolchain in Make."

This reverts commit 0739155c864438f7f77b058c6a77dd35cbbfe5cd.

Reason for revert: <sdk_google_aw_x86-sdk (linux) build 4310016 in git_master is broken>

Change-Id: I525d48557bd0425917e61a85f596663ccc63c887
/build/make/core/definitions.mk
672898977f95d4e758f5a8f66bce7d36df9ff73d 31-Aug-2017 Nan Zhang <nanzhang@google.com> Merge "Add Turbine as part of java build toolchain in Make." am: 0b23748128 am: 2764a16085
am: 3c30f84e2d

Change-Id: I3e42a07747ffb09b10ab07785d761ddc84574ae0
0739155c864438f7f77b058c6a77dd35cbbfe5cd 30-Aug-2017 Nan Zhang <nanzhang@google.com> Add Turbine as part of java build toolchain in Make.

1. Bundle static_java_header_libs during turbine-classes.jar if
necessary. This can be improved if we have the ability to merge jars on
the fly.

2. Copy sdk/stubs-classes.jar to sdk/stubs-classes-header.jar, and Use
.KATI_RESTAT to cut un-necessary targets rebuilt.

3. Copy prebuilt-classes.jar to prebuilt-classes-header.jar since
Turbine doesn't apply to prebuilt.

4. Run jarjar after Turbine compilation, otherwise downstream targets
won't find corresponding symbols.

5. Change classes.jar in -classpath used in Desugar to
classes-header.jar.

6. Change legacy-libs in Proguard from classes.jar to
classes-header.jar.

7. Add .KATI_RESTAT for turbine-classes.jar, and remove IJAR.

8.boot.art is re-generated during the incremental rebuild since
javalib.jar got re-generated. Then boot.art re-triggered lots of
downstream targets to be rebuilt. So we add .KATI_RESTAT for javalib.jar
to prevent downstream to be rebuilt. The ziptime & commit-change-to-toc
operation for javalib.jar(small) didn't bring too much overhead when we build
from clean state.

Next step: specify static_java_header_libs in -classpath, and merge jars
at the end.

touch frameworks/base/core/java/com/google/android/util/Procedure.java &&
time m
time: 1m58s (794 -> 49 targets)

m clean && time m java
time: 9m34s

Bug: b/64308460

Test: m clean && m checkbuild

Change-Id: Iefcc234405b9f461b6882c06bba15e21fa783d28
/build/make/core/definitions.mk
c1ca2cfbf40b3b9bffeec63faf988171cf447743 30-Aug-2017 Colin Cross <ccross@android.com> Merge "Separate java source list generation into its own rule" am: f61712fbf1 am: bf386cafec
am: 1770c0cc2b

Change-Id: I4644762f6094922044c46be94ca5e368736db81a
dfc45ec33722730ef016163e8d9dd0a4320812ff 27-May-2017 Colin Cross <ccross@android.com> Separate java source list generation into its own rule

Move the java source list generation step into its own rule. This
has a couple of advantages. It consolidates the source list
generation so that it only has to run once for javac, jack, and
jack-check. It also massively reduces the length of the javac
command line, so that error messages are significantly shorter,
and allows easily rerunning the failing build command because
the file list is still on disk.

The primary disadvantage is that javac error messages no longer
include the list of files passed to javac, but the list is
available earlier in the build long when the file list was written,
and is still available on disk.

Test: m -j javac-check
Change-Id: I9730b352b33a060e08221b61c11c617d23320d67
/build/make/core/definitions.mk
4a18f97b9d3f5d53b35f46d4ec4f89c37f538cbf 17-Aug-2017 Colin Cross <ccross@android.com> Merge "Sort files in directories passed to jar" am: 966ed15a1d am: 604a2423b6 am: da54a77928
am: 18c92897a7

Change-Id: I59d5bcd8557bac4ff176c3354dab556254ca3b85
604a2423b6e6b06c024f9a9f69c0703e75b4e5b7 17-Aug-2017 Colin Cross <ccross@android.com> Merge "Sort files in directories passed to jar"
am: 966ed15a1d

Change-Id: If01ba7d294e4308a28580b157b9efdb6c860bb35
128800f2c8d3f27d6ae29b9cb8e62cb26bcf5f2f 11-Aug-2017 Colin Cross <ccross@android.com> Sort files in directories passed to jar

jar -C <dir> . produces a jar containing files in filesystem order,
which can vary between builds. Manually find and sort the list of
files, and convert them into a list of -C <dir> <file> pairs.

Fixes: 64634025
Test: m -j checkbuild
Test: m -j out/target/product/sailfish/system/framework/ext.jar, check
that entries are sorted
Test: m -j out/target/product/generic_arm64/system/framework/ext.jar on mac
Change-Id: I7dced6acbe621a60cd49daf17872941485602732
/build/make/core/definitions.mk
c4803f6d63cd3a0c8a4cd67c2766a1037f513edd 16-Aug-2017 Tobias Thierer <tobiast@google.com> Merge "Fix log spam in unzip-jar-files" am: 05ecd66557 am: 17f23f3837 am: f161741543
am: 345347f527

Change-Id: Icb086e4bd17314e881378bd6b54655ed787367b9
17f23f3837eb0e87359cb98ebc9c41ac272a5a93 16-Aug-2017 Tobias Thierer <tobiast@google.com> Merge "Fix log spam in unzip-jar-files"
am: 05ecd66557

Change-Id: I44836b434fabc250ea95dd7f3e5ce3572863be44
05ecd66557bebaaaa854f15693dbef214e3d8927 16-Aug-2017 Tobias Thierer <tobiast@google.com> Merge "Fix log spam in unzip-jar-files"
341ccb61617809e9d64377b297308b2b2be500bd 15-Aug-2017 Tobias Thierer <tobiast@google.com> Fix log spam in unzip-jar-files

Commit 2bdbb6e93522b525f0322863baf9aeb5fd879d78 added
command line flags to the unzip command in unzip-jar-files
to skip the path 'module-info.class', if present.

This has led to log spam because unzip warns when an
excluded file is not present in the zip/jar file, and
that warning cannot be suppressed via command line flags.
Therefore, this CL modifies the unzip-jar-files macro
to rm -f the module-info.class file after the fact, if
it was created, which does not lead to log spam.

Note that module-info.class will be filtered out of
.jar dependencies (such as ASM 6.0) regardless of
whether one is building with an OpenJDK 9+ toolchain.

Test: Treehugger.
Bug: 64719206
Change-Id: Ic6be806a50557b4ba13fc18da91a8af12d14586c
/build/make/core/definitions.mk
d41da2b7cfd4b6e1376ea3a5dc89bdbaf182cd99 14-Aug-2017 Alex Klyubin <klyubin@google.com> Merge "Revert "Let signapk access internal APIs under OpenJDK 9 toolchain"" am: 42ce465e83 am: 8191dfb49e am: d98708d71f
am: 66d2b8b185

Change-Id: Ie0348176ee8a1cab2552923dc38fd982de0e58bd
8191dfb49e8c8141726f04508f24f4c0fed9ed79 14-Aug-2017 Alex Klyubin <klyubin@google.com> Merge "Revert "Let signapk access internal APIs under OpenJDK 9 toolchain""
am: 42ce465e83

Change-Id: I9ac004ecfcb36b0cc947e1c6c820142771f6361b
4012e648eab5bfd2d401f2a58977d2e88dcdb884 30-Jun-2017 Alex Klyubin <klyubin@google.com> Revert "Let signapk access internal APIs under OpenJDK 9 toolchain"

This reverts commit 9cc3c76abd9c8fa159616883e06526d56b5136e5 which
added command-line parameters to the invocation of SignApk to permit
it to access sun.** classes which are not accessible by default in
Java 9. This hack is no longer needed because SignApk no longer needs
this access because of tools/apksig commit
b40d3e4821bc9cb094b0ff13153340e3a0da1b3f which switched APK JAR
signature generation logic away from directly using sun.** classes.

Test: find out -name CtsPkgInstallTinyApp* | xargs rm -Rf
mmma -j74 cts/hostsidetests/appsecurity/test-apps/tinyapp
Test: find out -name CtsPkgInstallTinyApp* | xargs rm -Rf
EXPERIMENTAL_USE_OPENJDK9=target1.8 \
OVERRIDE_ANDROID_JAVA_HOME=<path to Java 9 SDK> \
PATH=${OVERRIDE_ANDROID_JAVA_HOME}/bin:${PATH} \
mmma -j74 cts/hostsidetests/appsecurity/test-apps/tinyapp
Bug: 37137869
Change-Id: I389c366f8a5bed56c496293bc871458adbedb0e8
/build/make/core/definitions.mk
9ab835d4e53ee519bbffa7ff7bfeba2921cee702 11-Aug-2017 Tobias Thierer <tobiast@google.com> Merge "Omit module-info.class when unzipping jar files." am: 5ae6434575 am: 3e55981366 am: da8798f218
am: ab333afe68

Change-Id: I30700c24c900ef7cef3f24ab0eda911e7b86c91c
3e55981366a67b0abeff3662133c4bf065dc5f47 11-Aug-2017 Tobias Thierer <tobiast@google.com> Merge "Omit module-info.class when unzipping jar files."
am: 5ae6434575

Change-Id: If31f78c730339473cd5cd5e1bc83a3a3562bad3c
5ae643457557e35985a3121fa290bd378e6ba56d 11-Aug-2017 Tobias Thierer <tobiast@google.com> Merge "Omit module-info.class when unzipping jar files."
877a64c813e04d0849a6e55d837966abfde5f8cb 11-Aug-2017 Narayan Kamath <narayan@google.com> Merge "Implement LOCAL_COMPRESSED_MODULE." into oc-mr1-dev
am: 2f6b55266a

Change-Id: Ibe8746049242110b1f1c75bb5a5963039c875b40
7c205107ce47651f2252ab6d2f439c32aa965d77 07-Aug-2017 Narayan Kamath <narayan@google.com> Implement LOCAL_COMPRESSED_MODULE.

- Prebuilts with LOCAL_MODULE_CLASS == APPS and BUILD_PACKAGE that
define LOCAL_COMPRESSED_MODULE := true will be installed compressed
in the system partition.
- The compression algorithm is simple gzip for now.

In addition :
- Compressed modules are not dex-preopted.
- JNI shared libraries are always embedded inside compressed modules,
they are never installed as separate files on the FS.

Test: Manual
Bug: 63802184

Change-Id: Id12b1ff0b1d68791ec1178783f7e78910e122a33
/build/make/core/definitions.mk
4988fa2ffe005f68069b21c593b1370480a0357a 09-Aug-2017 Nan Zhang <nanzhang@google.com> Merge "Fix the typo: "desugar-classpath" to "desugar-bootclasspath""
am: 9758900b56

Change-Id: I72160219c0559e39b83df007f7c607cbed8db5a1
f4571792f739d650a0fd7b6a21873b5a838bbf47 08-Aug-2017 Nan Zhang <nanzhang@google.com> Fix the typo: "desugar-classpath" to "desugar-bootclasspath"

Test: runs "m -j checkbuild tests cts", and then --bootclasspath_entry
shows up in desugar command.

Change-Id: Ibcc8a3f51438723151c57f79e5a1184350efbd30
/build/make/core/definitions.mk
2bdbb6e93522b525f0322863baf9aeb5fd879d78 06-Aug-2017 Tobias Thierer <tobiast@google.com> Omit module-info.class when unzipping jar files.

During the Android build process, multiple .jar files are
unzipped into the same directory. If the .jar is an OpenJDK 9
modular jar (with a module-info.class in the root directory),
the last module-info.class extracted will overwrite any earlier
module-info.class files extracted, and will cause all extracted
class files to be considered part of that module.

Therefore, this would break compilation under OpenJDK 9 (with
-target 1.9 -source 1.9). This CL fixes this by omitting the
module-info.class file (if present) when extracting the .jar.

This essentially turns any modular jar into a regular jar,
replacing the module with corresponding classes on the classpath.
This is sufficient for now because Android does not currently
support module dependencies.

Test: Treehugger
Bug: 38177569
Change-Id: Ia184e64d2f24b8ca79aeab1c00bd5da0386530bf
/build/make/core/definitions.mk
a4e638689bec140ce536e7a32c846a69050e71a8 04-Aug-2017 Colin Cross <ccross@android.com> Merge "Revert "Revert "Copy resources from classes.jar when using AAPT2"""
am: e2b98ace94

Change-Id: Id0850fff121beab0920e06440c7271d7622387b0
303567c92285ca67ea5f50938637908766cfeac0 03-Aug-2017 Colin Cross <ccross@android.com> Revert "Revert "Copy resources from classes.jar when using AAPT2""

This reverts commit a7e336d17a4a59d908e4bae53da2a12f455b12dc.

Reapplies I6649f7f2fbf63ff5001f4731e22960f857726c70 with fix
for jack builds.

Bug: 64272170
Test: https://android-build.googleplex.com/builds/view-workplan?viewType=Table&workplanId=L93000000088657848&nodeType=Trybot
Change-Id: Id66aebfc2c26a4467e6cf25e4372080882f0b286
Merged-In: Id66aebfc2c26a4467e6cf25e4372080882f0b286
(cherry picked from commit 6fedebf9364e5af731aafc7c1a529f2e27c6725f)
/build/make/core/definitions.mk
e99de69665adb035ddbbe363c9f28884e83ee845 21-Jul-2017 Colin Cross <ccross@android.com> Merge "Disable desugaring try-with-resources"
am: 28794da1c0

Change-Id: I5a6d131e689922586482d950e933e5ea86e7729e
28794da1c065fad78286680353d00d022094d5db 21-Jul-2017 Colin Cross <ccross@android.com> Merge "Disable desugaring try-with-resources"
bf4ac7a82fd0747dfefcbbd517d3d0c52e0a34be 21-Jul-2017 Colin Cross <ccross@android.com> Disable desugaring try-with-resources

Desugaring try-with-resources is not necessary for platform builds,
and triggers some problems for apps built as part of the platform
that target SDK versions before 19. Disable all try-with-resource
desugaring.

Bug: 63180735
Bug: 63900665
Bug: 63901645
Test: m -j ANDROID_COMPILE_WITH_JACK=false checkbuild
Change-Id: I98b827aa1e80b43e6eb7b58254c23c7a4f7dc52d
/build/make/core/definitions.mk
3a88054509a455ff47c59412192d1e0340e230f4 20-Jul-2017 Tobias Thierer <tobiast@google.com> Merge "Drop obsolete javac -extdirs commandline arg."
am: 43440c22dd

Change-Id: I7d5736b6b5760341aca1a8810f13d999733bc68a
78d2983566f1f4ca23cf15c6694cac25a509a5b7 18-Jul-2017 Tobias Thierer <tobiast@google.com> Drop obsolete javac -extdirs commandline arg.

The extension directory defaults to lib/ext and does not
exist by default. Setting it to the empty string de facto
disables this obsolete feature.

AOSP is moving to a hermetic toolchain so this argument
will stop working soon. Further, OpenJDK 9 javac no longer
supports this command line argument when compiling for
-source 1.9 -target 1.9.

This command line argument has been around since the
earliest versions of Android, but is now obsolete.
This CL drops it.

Bug: 63746471
Test: Treehugger
Change-Id: Ia0214c1b192e3ffda10772d777557a81ce346c03
/build/make/core/definitions.mk
4cea760106122c594502c883dda738170520ded5 18-Jul-2017 Colin Cross <ccross@android.com> Merge "Revert "Use dx.jar directly""
am: c7e3e962f8

Change-Id: Icd5402f7cc789224753537c070a91cbf6267ee66
c7e3e962f82152c715d1a670eeb690d1c19abc93 18-Jul-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Revert "Use dx.jar directly""
e44e75aa8984b11d9bba5d5d8cb75dede686a4e1 18-Jul-2017 Colin Cross <ccross@android.com> Revert "Use dx.jar directly"

This reverts commit e37a3c959a833b9979f7e820cb037711c7453c16.

Reason for revert: breaks art test runner

Change-Id: Ice0cd3020ddec7f31eb789867a45f047a75a05d0
/build/make/core/definitions.mk
4828fcad419d8f49d6bddd36ca5b2e39d575193a 17-Jul-2017 Colin Cross <ccross@android.com> Merge "Use dx.jar directly"
am: c68434c971

Change-Id: Ief2c88d3ba0e93c7eb7bb9db0ac2b0a0b886bcea
6264b662f3ee7ff7b1addd980e88622aa65e1eb7 17-Jul-2017 Jeff Gaston <jeffrygaston@google.com> Merge "Update to latest jacoco usage"
am: 483fae7430

Change-Id: Ibc94d5ba6db7690441825dd655b6cb26d989b78d
c68434c971731d0ab902b751a3a79cc9172bf0f8 17-Jul-2017 Colin Cross <ccross@android.com> Merge "Use dx.jar directly"
0dbee7c936b3531bea965211564fd391b35bd53e 27-Jun-2017 Jeff Gaston <jeffrygaston@google.com> Slightly easier debugging of missing inputs to copy-file-to-target

Test: call copy-file-to-target without any inputs and read the quoted output
Bug: 36792868
Change-Id: I3a78f7ae4535ffe100b72458a3494ee398daf732
/build/make/core/definitions.mk
aaae43cd242a56124431d82e4ecae41b870e6653 12-Apr-2017 Jeff Gaston <jeffrygaston@google.com> Update to latest jacoco usage

Bug: 36792868
Test: EMMA_INSTRUMENT_STATIC=true m -j

Change-Id: I419b543283b52be9a72f5c6b10e4cbea68782174
/build/make/core/definitions.mk
e37a3c959a833b9979f7e820cb037711c7453c16 06-Jul-2017 Colin Cross <ccross@android.com> Use dx.jar directly

Use $(JAVA) to invoke dx.jar instead of the dx wrapper script.
Also allow the dx command line or the dx jar to be specified on
the command line. Allows better dependencies on dx.jar, and
doesn't rely on having java on the path.

Bug: 62956999
Test: m -j checkbuild
Change-Id: I5f265132690ad28b3139954fea44eb0c4a43393a
/build/make/core/definitions.mk
e885ccf0dffbbff2b9d4e813c3b1f4a56f298d0c 01-Jul-2017 Colin Cross <ccross@android.com> Merge "Provide make variables for java binaries"
am: 5e19557eb9

Change-Id: Ib1be7da98214e3b6c27867b80005e18cc68a0d33
0851df8c82d61ec6abab757b1102eb2a6e98ea37 30-Jun-2017 Colin Cross <ccross@android.com> Provide make variables for java binaries

Replace java -> $(JAVA), etc. to prepare for moving java binaries
out of the path and using full paths to them.

Test: builds
Bug: 62956999
Change-Id: I5dfcd0d4e855ecde69cd127169e9545e59723d12
/build/make/core/definitions.mk
8fb19697da9108e54f81c045d34191969aa2c5ec 02-Jun-2017 Steven Moreland <smoreland@google.com> Merge "Move math function definitions." am: b5e90583ef am: d1eab0ea46
am: a2f3561259

Change-Id: I86436840a6c5877901a13384faea6e699f0edfa9
b5e90583efcf8049fe984975f4cb428c9ed8c11c 02-Jun-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Move math function definitions."
9afb6563690439a61ffecf96110c5ee2f3d62aad 01-Jun-2017 Dan Willemsen <dwillemsen@google.com> Merge "Fix make warning/error colors on Mac" am: a46695c337 am: 6ee5e52f77
am: c9b89ad0fe

Change-Id: I2349136dcf43dd0336bbb8638bd03eab84082f2f
25f2d0ded720070b59e477d919f4f506adfe3665 01-Jun-2017 Dan Willemsen <dwillemsen@google.com> Fix make warning/error colors on Mac

Apparently the default bash echo doesn't support \e even though the man
page says it does. So use \033 instead.

Test: m -j nothing on mac, get colors
Test: m -j nothing on linux, still get colors
Change-Id: I608fa87e3c28bf8f99264d39f9b250008a81235a
/build/make/core/definitions.mk
a64f33668ebf489889ccc6933b408587d01142a3 31-May-2017 Steven Moreland <smoreland@google.com> Move math function definitions.

Created math.mk and moved all math function definitions there.
Then, included this file in config.mk. This allows the functions to be
used by whatever includes config.mk (envsetup and build).

Test: manually setting combinations of PRODUCT_SHIPPING_API_LEVEL
and PRODUCT_FULL_TREBLE_OVERRIDE and looking at values of
PRODUCT_FULL_TREBLE.
Bug: 62229856
Change-Id: Icdab4214a1e65ae202411613dbcb9c9ea5f43b09
/build/make/core/definitions.mk
b19c923c775dabbd7c6c6c3a62032dee6054634e 27-May-2017 Miao Wang <miaowang@google.com> Merge "Update RenderScript build config and definitions." am: dddd7738d0 am: 4751b9e700
am: 527eee8b8f

Change-Id: Ife66e15b0c458a9fb622e56b7ab348e345d780b0
dddd7738d0a81b42906e32b15499ab246db76635 27-May-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Update RenderScript build config and definitions."
a9fed83fae2b5fff36eb8ad1826df2cfd7cd7204 26-May-2017 Miao Wang <miaowang@google.com> Update RenderScript build config and definitions.

Bug: 38342163

- obj/lib is deprecated and TARGET_OUT_INTERMEDIATE_LIBRARIES will be
removed. We need to use per-module intermediates directory instead.
- prebuilts/ndk/current folder is gone. For libm and libc, we just
need ndk/r10 as stub libs for linking.

Test: mm and made sure this does not affect on device target.
Test: make -j50 FORCE_BUILD_RS_COMPAT=true RSTest_Compat works as
expected.

Change-Id: I8fbf5c10322707849a23c6b0dacc28b028db451e
/build/make/core/definitions.mk
206b85e3b2265fb9b22af9079cb307adf0b48de0 26-May-2017 Tobias Thierer <tobiast@google.com> Merge changes from topic 'bug_38177295_checkbuild' am: bc8f82ff25 am: 0556ad1a71
am: 3dd019b9c4

Change-Id: I7dd63314b4aace5f308aca6b28bf4af671f183fa
9cc3c76abd9c8fa159616883e06526d56b5136e5 09-May-2017 Tobias Thierer <tobiast@google.com> Let signapk access internal APIs under OpenJDK 9 toolchain

signapk relies on internal APIs sun.security.{pkcs,x509},
for example in com.android.apksig.internal.apk.v1.V1SchemeSigner.

This breaks at signapk runtime under OpenJDK 9 because those
packages are not exported by the java.base module.

This CL unbreaks signapk by allowing it to access these internal
packages. In the long term, signapk should migrate away from these
internal APIs (bug 37137869).

Test: make ANDROID_COMPILE_WITH_JACK=false checkbuild tests \
&& make checkbuild tests
(with OpenJDK 8u45 toolchain on the PATH)
Test: make EXPERIMENTAL_USE_OPENJDK9=true \
ANDROID_COMPILE_WITH_JACK=false checkbuild
(with jdk 9-ea+170 toolchain on the PATH)

Bug: 37137869
Bug: 38177295
Change-Id: I64cab83e6eb7b135cf2ad7b523736cb409aaae02
/build/make/core/definitions.mk
97479ccb7fa421762fca2f8ed8c73e1eba12e86a 24-May-2017 Tobias Thierer <tobiast@google.com> Desugar: allow reflection over internal APIs.

Desugar reflects over internal APIs at runtime, using the
java.lang.invoke.MethodHandles.Lookup API.

On OpenJDK 9 toolchains, such reflection is only allowed
to packages to which the java.lang.invoke module is opened.

This CL adds an override to open the module to all unnamed
modules (i.e., to Desugar) when running Desugar.

Test: make checkbuild
(with OpenJDK 8u45 toolchain on the PATH)
Test: make EXPERIMENTAL_USE_OPENJDK9=true checkbuild
(with OpenJDK 9-ea toolchain on the PATH)

Bug: 38177295

Change-Id: I2cf74a96ea17366dd50b8d92af8e41e812247ef7
/build/make/core/definitions.mk
4a05738a8e95f771ccd436296dddd162b43e07ec 24-May-2017 Dan Willemsen <dwillemsen@google.com> Merge "Fix override warnings when two test suites share an output" am: 5f4274609f am: a0d3365510
am: 9f64ca8413

Change-Id: I5e06436c54f8c6a1e2d90f6e5728604d8b2a3ff5
988a08d009aee8eac59c76bcd2b84f637c8bc4d3 24-May-2017 Dan Willemsen <dwillemsen@google.com> Fix override warnings when two test suites share an output

Test: (internal master); m -j nothing, check warnings
Test: Spot check differences in build-*.ninja
Change-Id: I160583faa69d090f9b97a8a600598a39a8b1ed9c
/build/make/core/definitions.mk
57fa914a79af3fd32a10b4d9332b477d64904c69 23-May-2017 Tobias Thierer <tobiast@google.com> Merge "Fix fragile assumptions about build toolchain. (attempt #2)" am: 48ee187e98 am: b9511c87b6
am: d7f60e4fbc

Change-Id: I7cff67ba4208293eacf7a9346c99b9f964ba270b
0ed47f7fd1e67876eb6280f21afcd2d6cfd77412 17-May-2017 Tobias Thierer <tobiast@google.com> Fix fragile assumptions about build toolchain. (attempt #2)

This CL resubmits a fixed version of commit
e2a8da26833be50489a82fed87d0896bd3496709.

This CL applies the following changes:

- explicitly set the path where desugar will dump temporary class files.
This ensures that the system property is set before it is read during
InnerClassLambdaMetafactory.<clinit>. Before this CL, the system
property was set by Desugar.createAndRegisterLambdaDumpDirectory(),
which may run too late.

- explicitly specify -source 1.8 for droiddoc's javadoc run.
Previously, the command used the language version of the build
toolchain, which might fail due the backward-incompatible restrictions
imposed by the proposed module system.

Some Android build targets use LOCAL_JAVA_LANGUAGE_VERSION 1.7,
but droiddoc combines sources from multiple build targets and there
where no backwards incompatible changes in 1.8, so it should be fine
to use 1.8 for code from either language level.

Bug: 38318052
Bug: 38225656
Bug: 38177295
Test: make clean && make ANDROID_COMPILE_WITH_JACK=false checkbuild tests \
&& make checkbuild tests
(using OpenJDK 8 toolchain)

Change-Id: I2fffe6668747f48be44e34c67332af9b8a996d2a
/build/make/core/definitions.mk
1a48fbca55a3354b0537498f872f3acfc9e9307f 18-May-2017 Tobias Thierer <tobiast@google.com> Merge "Revert "build/make/core: Fix fragile assumptions about build toolchain."" am: a0203a6544 am: 64517075a5
am: aadebe100d

Change-Id: I97126a25f703974f3829cb1b41c1f710e80cbd4e
a0203a65445c82e2a45474e1a9ac9d1b9e12195b 18-May-2017 Tobias Thierer <tobiast@google.com> Merge "Revert "build/make/core: Fix fragile assumptions about build toolchain.""
4c764abf37b257dd3519f297c1dd4b56a568e01d 18-May-2017 Tobias Thierer <tobiast@google.com> Revert "build/make/core: Fix fragile assumptions about build toolchain."

This reverts commit e2a8da26833be50489a82fed87d0896bd3496709.

Reason for revert: broke build.

Change-Id: I951cc070adbbbd784aa4f8e171e543c35d0249de
/build/make/core/definitions.mk
4c1d087d7e3fbb63c3fd4e2e088228be05737fa7 18-May-2017 Tobias Thierer <tobiast@google.com> Merge "build/make/core: Fix fragile assumptions about build toolchain." am: b371c7756a am: 68587c24a9
am: bbe4662305

Change-Id: I1cdcfa09a9bab0a519ff695a9b6eb86afa5d71bc
b371c7756a84bf5cc903d37e4946d5328af2cb53 18-May-2017 Tobias Thierer <tobiast@google.com> Merge "build/make/core: Fix fragile assumptions about build toolchain."
e2a8da26833be50489a82fed87d0896bd3496709 17-May-2017 Tobias Thierer <tobiast@google.com> build/make/core: Fix fragile assumptions about build toolchain.

- explicitly set the path where desugar will dump temporary class files.
This ensures that the system property is set before it is read during
InnerClassLambdaMetafactory.<clinit>. Before this CL, the system
property was set by Desugar.createAndRegisterLambdaDumpDirectory(),
which may run too late.

- explicitly specify -source 1.8 for droiddoc's javadoc run.
Previously, the command used the language version of the build
toolchain, which might fail due the backward-incompatible restrictions
imposed by the proposed module system.

Some Android build targets use LOCAL_JAVA_LANGUAGE_VERSION 1.7,
but droiddoc combines sources from multiple build targets and there
where no backwards incompatible changes in 1.8, so it should be fine
to use 1.8 for code from either language level.

Bug: 38318052
Bug: 38225656
Bug: 38177295
Test: make clean && make checkbuild docs
(using OpenJDK 8 toolchain)

Change-Id: Ie5fe0502dfe2f99fc58b1a723b7c18d5896a2646
/build/make/core/definitions.mk
1f5a362c9748a51dbc8cee93bbd6a98e625efffa 17-May-2017 Alan Leung <acleung@google.com> Merge "Allows DX alternative Jar." am: 26d769ea3f am: 16168c016d
am: 5065fe2130

Change-Id: I6763da75914cd41c1bf3f78593c276c171401d0b
83857b6cbdcb16aceb586063657dffcf031e136e 12-May-2017 Alan Leung <acleung@google.com> Allows DX alternative Jar.

Test: m -j20 ANDROID_COMPILE_WITH_JACK=false DX_ALT_JAR=/mnt/m02/dx_alt.jar

Change-Id: I6163280101ff973bc8202a82d2fed42cf0ce6209
(cherry picked from commit b147846b67b18e40f555c79befe143e8eda6e4cf)
/build/make/core/definitions.mk
0d1967d5717744e5e3d5f00629b303166c4df443 10-May-2017 Dan Willemsen <dwillemsen@google.com> Merge changes Id0d167e6,I290a02b0 am: 90573e75a8 am: 9efa174836
am: a4d4cf335c

Change-Id: Ia59d32b0d533c4d37ac6f8950fbfb179c34b5db3
5ec6bbc3d542989f7af40a0d01a37a9a44295801 27-Apr-2017 Dan Willemsen <dwillemsen@google.com> Implement clean-path

We shouldn't give non-clean paths to tools -- if a/b/../file was
specified, we can simplify that path to a/file, and not need to create
a/b just to make the path name work.

The testcases come from golang's filepath.Clean tests, this should be
compatible with that implementation.

Bug: 37716307
Test: TEST_MAKE_clean_path=true m -j blueprint_tools
Change-Id: I290a02b0a1e4a7c2b9255bca3c881589b521c402
/build/make/core/definitions.mk
0d32327f3e6e39592219ec1e4be019f13d1d0d49 04-May-2017 Andreas Gampe <agampe@google.com> Merge changes Idf48f45f,Id2a72fe7,If83e1df2 am: 2be7eb9161 am: 42ecd83de6
am: 6e43153ffd

Change-Id: I83e62e023e922a5283b0c70aaa403241bdeeae83
2be7eb9161c6dceb23c5881b8e7bc4884d598f02 04-May-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge changes Idf48f45f,Id2a72fe7,If83e1df2

* changes:
Build: Disable leak sanitizer for ijar
Build: Disable leak sanitizer for llvm-rs-cc
Build: Disable leak sanitizer for aapt
761d673df443d52ef2d297d391272158b69f17b5 02-May-2017 Colin Cross <ccross@android.com> Merge "Support LOCAL_JACK_ENABLED := javac_frontend" am: 64ed2f2478 am: d6a3273faa
am: eb2457b89e

Change-Id: I98104d161dcc709a764cb86750d3217538863fdb
b17f2851697e1cc81ef7c21052770404fdd7ac74 27-Apr-2017 Colin Cross <ccross@android.com> Support LOCAL_JACK_ENABLED := javac_frontend

Allow working around Jack bugs by using javac to compile *.java
to class files, and then pass through Jack for desugaring,
proguarding, and dexing.

Also make ANDROID_COMPILE_WITH_JACK=false override LOCAL_JACK_ENABLED.

Bug: 37483961
Test: m -j checkbuild
Test: Add LOCAL_JACK_ENABLED := javac_frontend to a target
Change-Id: I2189055aac9deccc36b8eab8e949796dddadf7a1
/build/make/core/definitions.mk
48d9a5c80b75e87620987cd5648956ab28f121a4 28-Apr-2017 Andreas Gampe <agampe@google.com> Build: Disable leak sanitizer for ijar

Temporary workaround.

Bug: 37756495
Test: ASAN_OPTIONS= SANITIZE_HOST=address mm
Change-Id: Idf48f45f0c33fc57af29574c8591a532144d4623
/build/make/core/definitions.mk
83c5c474b88238a70535db84ef16eb46cf7d8abb 28-Apr-2017 Andreas Gampe <agampe@google.com> Build: Disable leak sanitizer for llvm-rs-cc

Temporary workaround. Disable leak detection and container
overflow.

Bug: 37755219
Test: ASAN_OPTIONS= SANITIZE_HOST=address m
Change-Id: Id2a72fe7170123f8652f96a0fed29d03f99ae03b
/build/make/core/definitions.mk
c5bb0d736e6d7bc2b067fd2e4d6c3ca3efb4c77c 27-Apr-2017 Andreas Gampe <agampe@google.com> Build: Disable leak sanitizer for aapt

Temporary workaround.

Bug: 37750224
Test: SANITIZE_HOST=address m
Change-Id: If83e1df25890717d18b841fa65635427ba2ee36a
/build/make/core/definitions.mk
4e9e5d526c4df580bd38d75bc10a661ebab7f305 20-Apr-2017 Dan Willemsen <dwillemsen@google.com> Merge "Rewrite link type checking" am: e4d92ef568 am: d76aaed983
am: e834d5f059

Change-Id: I02342b80077a7e1e36e61d1f9384d3b104a982c1
e4d92ef568406b621c7ff71f460e6fbf7adc5e30 20-Apr-2017 Dan Willemsen <dwillemsen@google.com> Merge "Rewrite link type checking"
b47d4e9cf12f734fa592ca1f9d093556d253cd38 08-Apr-2017 Dan Willemsen <dwillemsen@google.com> Rewrite link type checking

All the new features are turned off for now, since multiple branches and
products need to be verified before they can be turned on. So everything
should behave the same as today, except for no partition-based
warnings.

Instead of the current link type checks that happen during the build,
run as many as possible immediately after loading all the Android.mk
files. If we're allowing missing dependencies ('mm',
ALLOW_MISSING_DEPENDENCIES, tapas, etc), we'll defer the link type
checks to during the build. If we're not allowing missing dependencies,
we'll produce a better error message to the user about the missing
dependencies.

See core/main.mk for a description of the storage format.

This also remove the partition-based type checking. It hasn't worked all
that well, particularly with ASAN builds. The new VNDK checks will
handle the most pressing cases.

Test: Verify all link_type files and dependencies are the same:
grep link_type: out/build-aosp_arm64.ninja | sed -E "s/ rule[0-9]+//" | sort
Change-Id: Id643658b9d9e84f99f5db0d526aad88c1f5d3417
/build/make/core/definitions.mk
bb7ba0403117cb9702cc2a11c641001b9677f662 19-Apr-2017 Colin Cross <ccross@android.com> Merge "Filter and colorize javac output V3" am: c8387929d1 am: f4ef1db272
am: 2f1488ae86

Change-Id: I73b5ca7a919c299aa062e5814f9f6b165f8c6527
5f89212e246b387d983987edf0bf514385d0fa71 17-Apr-2017 Colin Cross <ccross@android.com> Filter and colorize javac output V3

Add soong_javac_wrapper to all javac commands. soong_javac_wrapper
colorizes javac output, and hides noisy messages.

Previously attempted in I7e8fcd2e4e1ed3ff530a8ccfe931ceb7e411e0ad
and I449a61ed2c95b3e1afd51a31a11baab15d97e2f2.

Test: m -j ANDROID_COMPILE_WITH_JACK=false
Change-Id: I9d7a20d766fadab323a4cf95e5734741b3f578bb
/build/make/core/definitions.mk
eadaf3663c73e06acb5cc4ddddae93ba14d2ed8a 14-Apr-2017 Colin Cross <ccross@android.com> Merge "Make mini-debug-info stripping pass on already stripped binaries" am: dd63df89d5 am: 4b69a9632e
am: 5040efa694

Change-Id: I75921fd256b694bb4d606c7aee2b3206d9a92d5c
5e93057da4a67794e4f191f70ab20ad623a84589 13-Apr-2017 Colin Cross <ccross@android.com> Make mini-debug-info stripping pass on already stripped binaries

Prebuilts may already be stripped. Instead of requiring every stripped
prebuilt to be annotated with LOCAL_STRIP_MODULE := false, just make
the default (mini-debug-info) pass through already-stripped modules
without failing.

Bug: 36793128
Test: m -j checkbuild
Change-Id: Iafc4614ceb91bbbb2e5ff82caefd18753f8961b1
/build/make/core/definitions.mk
0b07a30ac82d1785768027662dfc5f34247464ae 12-Apr-2017 Simran Basi <sbasi@google.com> Merge "Common testcase directories: Clean up duplicates" am: 4d15a84fc0 am: dce141bce8
am: 6f9ebf3c98

Change-Id: I41e04a59620eaf09e7f0bfc4e388ac4f1bb933d1
4d15a84fc0e6cde763b0494c49f43f77742cf0c9 12-Apr-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Common testcase directories: Clean up duplicates"
e8ee68bb9b613d7c93c4836e0c90b5de31192dce 08-Apr-2017 Colin Cross <ccross@android.com> Support java annotation proccessors

The codebase is growing more uses of annotation processors,
through a mixture of LOCAL_ADDITIONAL_DEPENDENCIES and
LOCAL_JACK_FLAGS. Add LOCAL_ANNOTATION_PROCESSORS and handle
the rest in the build system.

For now we also need LOCAL_ANNOTATION_PROCESSOR_CLASSES to
work around bad behavior in grok (b/25860419).

Test: m -j java
Change-Id: I465b021e65d25ed3ea517333a82ec4ebd63fc038
(cherry picked from commit cde14987ba2a4a054ba4e2f711a4b714dfc54853)
/build/make/core/definitions.mk
cde14987ba2a4a054ba4e2f711a4b714dfc54853 08-Apr-2017 Colin Cross <ccross@android.com> Support java annotation proccessors

The codebase is growing more uses of annotation processors,
through a mixture of LOCAL_ADDITIONAL_DEPENDENCIES and
LOCAL_JACK_FLAGS. Add LOCAL_ANNOTATION_PROCESSORS and handle
the rest in the build system.

For now we also need LOCAL_ANNOTATION_PROCESSOR_CLASSES to
work around bad behavior in grok (b/25860419).

Test: m -j java
Change-Id: I465b021e65d25ed3ea517333a82ec4ebd63fc038
/build/make/core/definitions.mk
99c83f2bdaa3fd5f7fd5c59a1772f85250d377c1 06-Apr-2017 Colin Cross <ccross@android.com> Merge "Rearrange java library outputs" am: 7b7363fffb am: a4435a5025
am: 09018269a8

Change-Id: I35b5527c4142f9486c6d57498789ba2249d0a4a3
941b68209992f79128c66cbd3040ad63bba3d4ad 29-Mar-2017 Colin Cross <ccross@android.com> Rearrange java library outputs

Jack can silently handle using a java library as a static java
library by merging in the java library dex file. This causes
problems when switching to javac, because dex doesn't support
dex merging with multidex enabled?

Make the output files consistent between java libraries and static
java libraries. Java libraries will now produce:
classes-pre-proguard.jar: the classes before proguard processing
classes.jar: the final jar file containing classes before dexing
javalib.jar: a jar containing classes.dex

Static java libraries will eventually only produce
classes-pre-proguard.jar and classes.jar. All inter-library
linking is done with classes.jar, so a java library can be
used as a static java library.

There are too many dependencies outside the build system that
expect javalib.jar to exist for static and host java libraries,
so for now continue to build a javalib.jar that is a copy of
classes.jar.

Test: m -j ANDROID_COMPILE_WITH_JACK=false java
Test: m -j java
Bug: 36901093
Change-Id: I6730e2d3ec38004874265b2a690442dec57b33f4
/build/make/core/definitions.mk
8a431d9c7d48d53b1a4083d1e4f211931dd2054f 04-Apr-2017 Simran Basi <sbasi@google.com> Common testcase directories: Clean up duplicates

This CL addresses the problem that native tests build for multiple
architectures and also build for host.

First it restructures each testcase folder to the following layout:
<testcase>/<testcase>.config
<testcase>/<arch 1>/testcase
<testcase>/<arch 2>/testcase

Secondly it now uses the new soong-zip prefix capability to
separate out host and target testcases in the device-tests &
general-tests zip files.

Bug:36692141
Test: `make device-tests general-tests cts -j` &
ensured all built successfully.

Change-Id: I4e8b084ee56fa8940914911649ff35507d87eb27
/build/make/core/definitions.mk
39f97ae22a44adc1ce0542056ffa02cec1b21a48 01-Feb-2017 Jaekyun Seok <jaekyun@google.com> Enforce RROs for all the build-time ROs

This CL is to generate every static RRO package for its target package
automatically at build-time.

BOARD_ENFORCE_RRO build variable is added to specify whether enforcing
RRO is required or not.

BOARD_ENFORCE_RRO_EXEMPT_SOURCES build variable is added to specify
the module list of which item should be exempt from enforcing RRO.

Test: tested on bullhead and sailfish
Bug: 34097942
Change-Id: I455b2ce34e66c57a540c299b5e378b7c4e78d5b8
(cherry picked from commit 3070610b729e695668a9d93e546907903956a74d)
/build/make/core/definitions.mk
52573ac615c063332c061efa458b824e74eb94db 30-Mar-2017 Colin Cross <ccross@android.com> Merge "Revert "Revert "Revert "Add soong_javac_filter to all javac commands"""" am: df69a927d8 am: e088c648c7
am: af35fe9424

Change-Id: I067770d5129653c8502a5db020d963f1a0d8b43b
df69a927d86d7bddcb3ec4581736d0f837f8a7bb 30-Mar-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Revert "Revert "Revert "Add soong_javac_filter to all javac commands""""
fc8ead66094d048ea02e01d1e4de0883dda76c88 29-Mar-2017 Colin Cross <ccross@android.com> Revert "Revert "Revert "Add soong_javac_filter to all javac commands"""

This reverts commit 440079b84ba2e4d4bdf1b16725d239626c26379e.

Adding the pipe interferes with error codes, which results
in an empty classes-full-debug.jar output file being left
after the failure. The next build sees the output file with
an up-to-date timestamp and doesn't rerun the failing rule.

Bug: 36666657
Change-Id: I6658edb766d8ba3120f88e3d8d6eda6ea6c691da
/build/make/core/definitions.mk
09e82eb89a41039a2373ab86f2d6397f28ef70a9 21-Mar-2017 Colin Cross <ccross@android.com> Merge changes I0508b2cc,I3d6bbc36 am: 767cb900a1 am: 235e342639
am: 916de9606b

Change-Id: I824c89dc8f10912c60313023e5e1eecd610f36e3
d01997faa6463406222735f4a3aa81ae5b32afff 15-Mar-2017 Colin Cross <ccross@android.com> Use DEFAULT_APP_TARGET_SDK for dx and desugar

DEFAULT_APP_TARGET_SDK is PLATFORM_VERSION_CODENAME (for example 'P')
for non-release builds, and PLATFORM_SDK_VERSION (for example 25) for
release builds. Use it for dx and desugar, and translate
PLATFORM_VERSION_CODENAME to 10000 to enable features in the current
development version.

Bug: 36087246
Bug: 36118520
Test: m -j ANDROID_COMPILE_WITH_JACK=false
Change-Id: I3d6bbc36a8869e4ced6bb850bc32f37b4cba3f85
/build/make/core/definitions.mk
402a0aea77a169c1b0a465b70368cc2e90c66106 18-Mar-2017 Dan Willemsen <dwillemsen@google.com> Merge "Revert "install *.so in different paths for their types"" am: 8311d46c86 am: 7195fb8920
am: 235042e404

Change-Id: Ic898d748ad303e5b09321a6ee2f21267ecc3731e
de4e71b27b634cccf65078907c085db80ef20a08 17-Mar-2017 Dan Willemsen <dwillemsen@google.com> Revert "install *.so in different paths for their types"

This reverts commit 842a985f90497d9790954003e60faa7f0f7785d4. It's
causing test failures, warnings and complaints, so backing it out and
we'll resolve those before putting it back in.

This also bundles in the revert of a minor warning/error fixup for this
code, and does the correct thing with the CleanSpec.mk (which can't just
be reverted).

Bug: 33681361
Test: m -j
Change-Id: Ic889ce6a4737a497ad6bf633424ce1860713f7d0
/build/make/core/definitions.mk
15c6791d7628be696da19449900b0faeda2dc9a1 16-Mar-2017 Adam Lesinski <adamlesinski@google.com> Merge "Add LOCAL_ASSET_DIR support (-A) to aapt2"
981de838d4d352ef32de5ae69c58f2ae04fd39ed 16-Mar-2017 Adam Lesinski <adamlesinski@google.com> Add LOCAL_ASSET_DIR support (-A) to aapt2

Although performing the inclusion of assets/ at a later stage is
preferable, (since aapt just copies the files) do the easy thing and
support what aapt did. In the future perhaps we can zip up the
assets/ directories when also merging in the classes.dex.

Bug: 35461578
Change-Id: I7d7fde43333ea6455c4a1b9113bd25e1d88b7dd5
Test: manual
/build/make/core/definitions.mk
79326762158236f09c844d5ce241f4d93bfa2ca4 15-Mar-2017 Adam Lesinski <adamlesinski@google.com> Revert "Add LOCAL_ASSET_DIR support (-A) to aapt2"

This reverts commit 996bc3ce7b3d41982982c16ebe1afc7e387f7333.

Reason for revert: Need to update prebuilts, but prebuilts not built by server yet...

Change-Id: I87deb3ed9512278ff40c185059230dbd66524989
/build/make/core/definitions.mk
996bc3ce7b3d41982982c16ebe1afc7e387f7333 14-Mar-2017 Adam Lesinski <adamlesinski@google.com> Add LOCAL_ASSET_DIR support (-A) to aapt2

Although performing the inclusion of assets/ at a later stage is
preferable, (since aapt just copies the files) do the easy thing and
support what aapt did. In the future perhaps we can zip up the
assets/ directories when also merging in the classes.dex.

Bug: 35461578
Test: manual
Change-Id: I7cd36585e7c292e43b5528969900c6ead2b80c0b
/build/make/core/definitions.mk
3070610b729e695668a9d93e546907903956a74d 01-Feb-2017 Jaekyun Seok <jaekyun@google.com> Enforce RROs for all the build-time ROs

This CL is to generate every static RRO package for its target package
automatically at build-time.

BOARD_ENFORCE_RRO build variable is added to specify whether enforcing
RRO is required or not.

BOARD_ENFORCE_RRO_EXEMPT_SOURCES build variable is added to specify
the module list of which item should be exempt from enforcing RRO.

Test: tested on bullhead and sailfish
Bug: 34097942
Change-Id: I455b2ce34e66c57a540c299b5e378b7c4e78d5b8
/build/make/core/definitions.mk
3dd9a1fa0acc1998ce3a8bfa62581e1afb9766e7 14-Mar-2017 Jiyong Park <jiyong@google.com> Merge "install *.so in different paths for their types" am: 55b14bdaa4 am: a2b86b14a5
am: 5219726d7f

Change-Id: I68800d6dfd93d97a4c4b7eb0dbec239f734217ee
55b14bdaa44035b2cbb3e49033379076ab9ddd74 14-Mar-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "install *.so in different paths for their types"
842a985f90497d9790954003e60faa7f0f7785d4 20-Jan-2017 Jiyong Park <jiyong@google.com> install *.so in different paths for their types

Shared libraries are now installed to different directories depending on
their types.

* NDK libraries: /system/lib/ndk (with symlink from /system/lib)
* VNDK libraries: /system/lib/vndk
* VNDK-ext libraries: /system/lib/vndk-ext
* Framework-only libraries: /system/lib
* Vendor-only libraries: /vendor/lib
* Same-process HALs: /vendor/lib/sameprocess

However, if LOCAL_MODULE_PATH is explicitly set, then it is respected,
with a warning message. Module owners are highly encouraged to
investigate the warnings and use alternatives to LOCAL_MODULE_PATH;
combination of LOCAL_[PROPRIETARY|OEM|ODM]_MODULE, LOCAL_MODULE_CLASS
and LOCAL_RELATIVE_PATH will cover most of the cases.

Furthermore, for each shared libraries whose path is changed, a symolic
link from the original path to the new path is *temporarily* generated.
e.g. /system/lib/libbase.so -> vndk/libbase.so. This is
to prevent sudden breakage of the code expecting the lib from the old
path. This symbolic links will eventually be removed before O launch
(b/34917183).

Finally, BOARD_SAME_PROCESS_HAL_DEPS is added. It contains the list of
shared libraries implementing the same-process HALs and its internal sub
libraries. This is designed to be defined in BoardConfig.mk

Bug: 33681361
Test: build & run. Libraries must be in the correct directories.
Symlinks from the old path to the new path must exist.

Change-Id: I46130aac09ae65400fd4d0abbc2e12dddd154fb1
/build/make/core/definitions.mk
67b7aaab7d57f62ef04820aedb87a9adef647b20 03-Mar-2017 Sen Jiang <senj@google.com> Merge "Remove DBus support." am: cf858d873b am: efcda5173d
am: 3d6b408aea

Change-Id: I183f58049ef63ce8f6bfbd67554199878b7a69cb
cf858d873b171196e4a97f6cd695c904ff247334 03-Mar-2017 Sen Jiang <senj@google.com> Merge "Remove DBus support."
de308c19d42318747e9f59407a592adae8db6c82 03-Mar-2017 Vijay Venkatraman <vijaykv@google.com> Merge "Fix for compile error when BUILD_HEADER_LIBRARY is used" am: 69e8252aec am: e4f88be6ed
am: 2f2d4b79b5

Change-Id: I852d671b730978af3595fa5041689cc37bc3a53a
69e8252aec6c4931e1cad428aaa2323e6bceb439 03-Mar-2017 Vijay Venkatraman <vijaykv@google.com> Merge "Fix for compile error when BUILD_HEADER_LIBRARY is used"
d1f397e8b48641e39e04941fdefb9f29ffe8c51a 28-Sep-2016 Sen Jiang <senj@google.com> Remove DBus support.

external/dbus and external/dbus-binding-generator was removed from
the manifest.

Bug: 31602715
Test: make checkbuild
Change-Id: Iea0277720acad8ac0fa630b8745f90fb3c3b5f00
/build/make/core/definitions.mk
465b17fc3ce9d57c11842de8b04024503cf9de4f 02-Mar-2017 Vijay Venkatraman <vijaykv@google.com> Fix for compile error when BUILD_HEADER_LIBRARY is used

Test: include $(BUILD_HEADER_LIBRARY) in Android.mk and compile
Change-Id: If720be2d73b1c026961c75b65d82887b5dd41442
/build/make/core/definitions.mk
5a9cfecc8565d2ef8a442abe9c4c2e1927665feb 02-Mar-2017 Steven Moreland <smoreland@google.com> Merge "Add PRODUCT_FULL_TREBLE." am: 5236e11c54 am: 848e9430bc
am: e1de7cd45a

Change-Id: I335f68e8d49538a7539cfb2e751d2c34cb52e260
c10f1413d5b64e5c86eed8ac1dbe49add42160c8 01-Mar-2017 Steven Moreland <smoreland@google.com> Add PRODUCT_FULL_TREBLE.

PRODUCT_FULL_TREBLE: whether the device has Treble fully enabled (no
passthrough hals, vendor.img, split sepolicy, etc..)

PRODUCT_FULL_TREBLE_OVERRIDE: used if someone wants to consider a device
as full Treble even if it didn't launch with Android O.

Bug: 35809750
Test: PRODUCT_FULL_TREBLE set appropriately with
PRODUCT_FULL_TREBLE_OVERRIDE and PRODUCT_SHIPPING_API_LEVEL = 24/25

Change-Id: I069448beaf26c70acb6c45d4228d8fdfe9476410
/build/make/core/definitions.mk
fdf88008d7fe8cef8d573a983c6991a24877480a 01-Mar-2017 Simran Basi <sbasi@google.com> Merge "Add support for multiple LOCAL_COMPATIBILITY_SUITES & undefined testcase directories." am: 6abedc9b3e am: 22cc401165
am: 7fa662af82

Change-Id: I010caf27bae2b65f47c9d92c37f3d5b456fa6397
6abedc9b3e66a32e731168196d70167adf93a5f2 01-Mar-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Add support for multiple LOCAL_COMPATIBILITY_SUITES & undefined testcase directories."
6bea37c7fa775e5aa729d1c4f8792b39e9e7aaba 17-Feb-2017 Simran Basi <sbasi@google.com> Add support for multiple LOCAL_COMPATIBILITY_SUITES & undefined testcase directories.

1) Updates the LOCAL_COMPATIBILITY_SUITE line to allow for a
testcase to belong to multiple suites.
2) Building testcases no longer fails if
COMPATIBILITY_TESTCASES_OUT_<suite> is not defined. This
testcase will just not output to that directory.
This will be utilized by the device-tests and general-tests
suites that don't require any extra output besides the common
testcase directory.

Bug: 35394351
Test: 1) Added multiple *TS testcases to cts & vts and verified they
ended up in the common directory and each suite's testcase
directory. Specifically tested CtsSplitApp to ensure the
split usecase still works as well.
2) Added a CTS testcase to the device-tests suite, built
device-tests and verified the cts/android-cts/testcases
copy was not produced.

Change-Id: Ic4c4e87e62be4fc0c5e394d88cc359518346dffa
/build/make/core/definitions.mk
433e7e4d451a6b1f3db6334d47dfdbe714ae2954 24-Feb-2017 Dan Willemsen <dwillemsen@google.com> Merge "Add progress indicator to Android.mk includes" am: 353a659a31 am: 100edc4a4c
am: d2445ea0b2

Change-Id: Ib60190f62fc78e261b6d02287bf8f68891bd7d12
353a659a31fb3d4d366172304cb1c48b457631d1 24-Feb-2017 Dan Willemsen <dwillemsen@google.com> Merge "Add progress indicator to Android.mk includes"
8b0034c43526c8824a297d4941fc35697093c2dd 23-Feb-2017 Colin Cross <ccross@android.com> Merge "Pass min sdk version to dx and desugar" am: bbad7c3e1f am: 4a4325d313
am: 14fce4b072

Change-Id: If9ac3b69957689bd451fc97fe968d79f42a751e9
bbad7c3e1f9e6f91bf93a13ea1706e87a0d3751e 23-Feb-2017 Colin Cross <ccross@android.com> Merge "Pass min sdk version to dx and desugar"
33631b3580d4b63e72ab81f0790bb14aab2b7854 18-Feb-2017 Dan Willemsen <dwillemsen@google.com> Add progress indicator to Android.mk includes

Test: m -j
Change-Id: I1e6fd020a06b49c243be14953d9f417e64ac7b8b
/build/make/core/definitions.mk
536ef4e35a7355490670d285c1ab526d4da6f4e2 22-Feb-2017 Colin Cross <ccross@android.com> Pass min sdk version to dx and desugar

Test: make checkbuild
Change-Id: Idde9712508571ea623126c7d25d2fa67eccf4833
/build/make/core/definitions.mk
472055eebc106def946b889478e073061bbad0c3 22-Feb-2017 Paul Duffin <paulduffin@google.com> Merge "Filter JUnit and android.test classes from applications using proguard" am: 38a231d6c3 am: 3e93d553ec
am: 6c99b4bc49

Change-Id: If3985352b27f1de5ea1e9d8c6834c08f5dbcb34f
f22aca1e47a4cb7833afb42a90eee363a2258cb5 21-Feb-2017 Paul Duffin <paulduffin@google.com> Filter JUnit and android.test classes from applications using proguard

The new javac/desugar/proguard/dx based toolchain can fail if
there are duplicate classes in the -injars and -libraryjars
passed to proguard. That causes problems for b/30188076 which
is attempting to remove various junit and android.test classes
from the API because it requires the changes to add those
classes statically to applications are submitted simultaneously
with the change to remove the classes from the API which is not
feasible.

This change simply causes Proguard to ignore the classes from
the application JAR so it will always use them from the library.
That allows the changes to be done separately and only requires
that this change is reverted simultaneously with the change to
update the API.

Bug: 30188076
Test: make checkbuild and make -j ANDROID_FORCE_JACK_ENABLED=disabled checkbuild
Change-Id: I6ed6c45a159d6261d90245551aa2913cc82d2e8b
/build/make/core/definitions.mk
348522fabf360f005f036932d05fe5e4f7519fa6 20-Feb-2017 Colin Cross <ccross@android.com> Merge "Revert "Revert "Add soong_javac_filter to all javac commands""" am: 29f3642dd1 am: 58ffd38f97
am: 77b7e12e25

Change-Id: I7a62df5e9eca3304ec753ea887b8d7b01ce938f4
440079b84ba2e4d4bdf1b16725d239626c26379e 20-Feb-2017 Colin Cross <ccross@android.com> Revert "Revert "Add soong_javac_filter to all javac commands""

This reverts commit 52d2253ff9617e0c1ad767274e8627c39776198a.

Test: pipe the grok build output through soong_javac_filter
Change-Id: I449a61ed2c95b3e1afd51a31a11baab15d97e2f2
/build/make/core/definitions.mk
c957f4202c02189a266ce1311d409d3b73bf2787 18-Feb-2017 Colin Cross <ccross@android.com> Merge "Add a desugar step between javac and proguard" am: 9e92c2fd18 am: e4381dcac2
am: d48f9252d5

Change-Id: If02fc7dcd4bdc06aee3ca35b70da5568e41f0f62
0c89af6a6a6ca889a707a58cfb937bdf66d49fba 18-Feb-2017 Dan Willemsen <dwillemsen@google.com> Merge "Remove unused zipalign macros" am: 56183c2ee2 am: e4a0dd15cc
am: d20c5e2a81

Change-Id: Id3a7d0f64d581376dcb38bc324f252ed99332a1a
dc750c31ca96a833b2c2c5cdd5487d56dbe0bd7d 18-Feb-2017 Dan Willemsen <dwillemsen@google.com> Merge "Add Header Library support to Make" am: 4f794fdd50 am: ea2687fab6
am: 4a78c9e50f

Change-Id: I711c810cef8487c2d8e7b53deb9ccaad89592b1d
9e92c2fd1885117bb081dc35cd5c5c248217d198 18-Feb-2017 Colin Cross <ccross@android.com> Merge "Add a desugar step between javac and proguard"
56183c2ee257a5e1ab5495809540b8d6c55c7ab3 18-Feb-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Remove unused zipalign macros"
4f794fdd5020a532aa4dbffa24388fcf24c8f1af 18-Feb-2017 Dan Willemsen <dwillemsen@google.com> Merge "Add Header Library support to Make"
b176192db49539e453876825c4252fd6d52a5bc9 18-Feb-2017 Colin Cross <ccross@android.com> Merge "Revert "Add soong_javac_filter to all javac commands"" am: 6dd4debe74 am: cb78c50239
am: 4db7d2d72b

Change-Id: I131feafdee7549a1668f8a5ec220284d808cc608
eac5ce4e97410f74bf16af8189f66f01aafd2df2 22-Dec-2016 Colin Cross <ccross@android.com> Add a desugar step between javac and proguard

This enables support for lambdas by passing class files through the
desugar tool.

Test: m -j checkbuild tests cts
Change-Id: I14ec152355243fd67fe2f107ccbe67a1b4e7e262
/build/make/core/definitions.mk
52d2253ff9617e0c1ad767274e8627c39776198a 17-Feb-2017 Colin Cross <ccross@android.com> Revert "Add soong_javac_filter to all javac commands"

This reverts commit a341bf0f8636ec42bd87058d9ba31a482cea3b6d.

Breaks grok builds that replace javac with another tool:
reading standard input: bufio.Scanner: token too long

Change-Id: I825587c465b05c1fbddb7794dc1c84f5f2c883d1
/build/make/core/definitions.mk
9256be18220d76a50ff2f51b5b47208d160508ae 17-Feb-2017 Colin Cross <ccross@android.com> Merge changes I7e8fcd2e,Ie12d743c am: 547f7393d7 am: 8283b186be
am: 7d8a028cd3

Change-Id: Ife691c9e00e766293e3648348e3c86b92f96fd56
85acdfac5826611f396cac1a75b19ad9bcb05fc3 17-Feb-2017 Dan Willemsen <dwillemsen@google.com> Remove unused zipalign macros

Test: codesearch
Test: build-marlin.ninja is identical before/after (in internal master)
Change-Id: I1c5c39cabcc166b8e8608ace3290b7027d258624
/build/make/core/definitions.mk
a341bf0f8636ec42bd87058d9ba31a482cea3b6d 15-Feb-2017 Colin Cross <ccross@android.com> Add soong_javac_filter to all javac commands

soong_javac_filter colorizes javac output, and hides noisy messages.

Test: builds
Change-Id: I7e8fcd2e4e1ed3ff530a8ccfe931ceb7e411e0ad
/build/make/core/definitions.mk
79e2f73b6c47e89b60cae6b4b2b2bd2ab0a4992a 21-Dec-2016 Colin Cross <ccross@android.com> Re-enable dx support

This is a partial revert of commits:
858657366fa6 Remove support of disabling Jack.
3ae78612522e Remove javac support in host dex rules.
22313f2b2a4a Remove rules for building dex with dx

Test: builds
Change-Id: Ie12d743cbe978bdeb030910848b67f5945a4fec8
/build/make/core/definitions.mk
8dae49c5e11c380e03e95e5b265efd913425e543 16-Feb-2017 Dan Willemsen <dwillemsen@google.com> Add Header Library support to Make

We currently use static libraries without any source files to represent
header libraries, but Soong actually has cc_library_headers. So to
export those in a separate namespace from static libraries, implement
them in Make as well.

This also adds a nice pretty-warning / pretty-error macro that can be
used to print out standard warning messages pointing to the real source
file having the problem.

Test: Use a header library exported by Soong in a Make module
Change-Id: I3486539e247524cb82a20620745fc7be03014e14
/build/make/core/definitions.mk
6b1fedf60ed9f8ea52be89055f3a6e7f644543fa 06-Feb-2017 Colin Cross <ccross@android.com> Merge "Create static archives in temporary file" am: 2eca5d30df am: 0cbb3086de am: af87d8d1c5
am: b64f3908c1

Change-Id: I60386b77ad6cc61c465dc246df2ecbe41f81927a
e14d9b7f7e699fce137c6914cb61533c38812852 04-Feb-2017 Colin Cross <ccross@android.com> Create static archives in temporary file

Creating static archives is often a multi-command process due to
adding whole static libraires or hitting command line length limits.
If one of the intermediate commands fails, the output file may
already exist. Unlike make, ninja has no option to delete output
files on failed builds, instead assuming all build commands will
produce their output file atomically
(https://github.com/ninja-build/ninja/issues/1135).

Change the static library rules to generate to a temporary file
that is then atomically moved into place as the output file.

Test: m -j checkbuild tests cts
Change-Id: I4faf269f0c8e313c738154870a5aa0b4774a72bc
/build/make/core/definitions.mk
a620b36458a9e69a462bbc2a62524d874713801b 24-Jan-2017 Evgenii Stepanov <eugenis@google.com> Merge "Run $(AR) with LLVMgold.so plugin for CFI targets." am: 96c81711c1 am: e729e804fe am: 629002835a
am: d79d664dc9

Change-Id: Ia2d4f0a4748f3e7964d384e58c386c8678f810c4
e1b96f3ae5e6aed925fa94bda21d24ccd1d131c8 24-Jan-2017 Evgenii Stepanov <eugenis@google.com> Run $(AR) with LLVMgold.so plugin for CFI targets.

Bug: 34623182
Test: add LOCAL_SANITIZE:=cfi to some static libraries under libstagefright
Change-Id: I4f0d8cbd794e0ce4737c59a4617e93c7a5defec1
/build/make/core/definitions.mk
a006925a03b6e3ed854620257c9ab46547628820 22-Dec-2016 Dan Willemsen <dwillemsen@google.com> Merge "Remove generated java source post clean logic" am: f57aa792c3 am: 5208e4f473 am: 5ae5671a3b
am: b585264834

Change-Id: Ic9d89893213616a13df5530f382fa2ec4d4e964e
cf324af6b886a0d9f9ef8cff96be34b6927167f2 22-Dec-2016 Dan Willemsen <dwillemsen@google.com> Remove generated java source post clean logic

Just move the proto and renderscript sources into their own directories
-- the entire directory is wiped if the file list changes since the
command line will change. So we can just enable/disable pulling sources
from those directories based on whether there were files in the list or
not.

Bug: 30947985
Test: m -j java
Test: Remove a proto file from a java lib, ensure the generated source
is not included.
Change-Id: If7529979de6fa62a651933a3a974f47b033851d6
/build/make/core/definitions.mk
664cc31fd8922284ca44f4742f1cb49e8db33a75 15-Dec-2016 Alex Klyubin <klyubin@google.com> Remove unused get-package-min-sdk-version-int

The only user of get-package-min-sdk-version-int was signapk. signapk
no longer needs to be provided with the APK's minSdkVersion though.

(cherry picked from commit e185da21ca07006c5ced90e1577c0682566428de)
Test: make clean && make

Change-Id: I6867a004aec0f3752cbbc99cc30e02ca5404b3c4
/build/make/core/definitions.mk
e185da21ca07006c5ced90e1577c0682566428de 15-Dec-2016 Alex Klyubin <klyubin@google.com> Remove unused get-package-min-sdk-version-int

The only user of get-package-min-sdk-version-int was signapk. signapk
no longer needs to be provided with the APK's minSdkVersion though.

Test: make clean && make
Change-Id: Ibc0fb9c8e412f8b46b1761359c34b64c608a06b6
/build/make/core/definitions.mk
1ea326df0b1ab3e13bebdb979998d5a0f91fae8d 15-Dec-2016 Alex Klyubin <klyubin@google.com> Merge "Faster auto-detection of APK's minSdkVersion" am: 620686f3c6 am: 1f5e43cb6f am: 9d439f54b1
am: 25aa9cd031

Change-Id: I4f19a1550a43515bd77e63fd5745b01d40c6be50
9b75e272b6bbcc79dcdf8eef0524a30872c84ef6 13-Dec-2016 Alex Klyubin <klyubin@google.com> Faster auto-detection of APK's minSdkVersion

Prior to this change, when signing APKs, the build system invoked
'aapt dump badging' on each APK, to detect the value to pass into
signapk as --min-sdk-version. Now that signapk uses the apksig
library, it can auto-detect that value on its own, thus avoiding the
need to invoke 'aapt dump badging' and thus speeding up the build
process.

The semantics of signapk's --min-sdk-version flag is changed by this
commit from having the default value of 0 to having the default value
of "auto-detect from APK".

P.S. The get-package-min-sdk-version-int is not removed from
core/definitions.mk in this commnit, because this function is used in
another project's .mk file and thus that .mk file needs to be modified
first.

Test: rm -Rf out/ && make
Change-Id: I0972fcf0abbde9cbf6794e6c05c743c77c8a78f9
/build/make/core/definitions.mk
17f87953325726b142a2646e11260bff78d10998 14-Dec-2016 Dan Willemsen <dwillemsen@google.com> Merge "Implement LOCAL_TEST_DATA to ship data with tests" am: dd0e69d47f am: 04cf52edab am: 1f7aae0ac2
am: e31b1a81c9

Change-Id: I0f8912411e3bc2d1b501c4f39003bdf4ec004db6
d07ba4e2a625a8f000d042c1953adb612bccbbe2 10-Dec-2016 Dan Willemsen <dwillemsen@google.com> Implement LOCAL_TEST_DATA to ship data with tests

This can be used to ship source data as test artifacts next to native
tests. It works for both local builds and the test bundles using
package_modules.mk.

You just specify a file list relative to the local directory, and those
files will be copied next to the executable under
/data/nativetest*/<module>/...:

LOCAL_MODULE := mytest
LOCAL_TEST_DATA := data/file1 file2

/data/nativetest/mytest/mytest
/data/nativetest/mytest/data/file1
/data/nativetest/mytest/file2

If the data is in another directory, you may also specify a different
prefix for the source files:

LOCAL_TEST_DATA := external/skia:resources/f.xml

/data/nativetest/skia_test/resources/f.xml

And there's a new convenience macro to find a list of files in this
format:

LOCAL_TEST_DATA := $(call find-test-data-in-subdirs,external/skia,"*.xml",resources)

I'll expand this to native benchmarks and fuzz tests in a later change,
since they don't have their own module classes yet.

Bug: 30564705
Test: m -j minikin_tests; ls $OUT/data/nativetest*/minikin_tests
Test: m -j continuous_native_tests dist; zipinfo -1 out/dist/*continuous_native_tests*.zip
Change-Id: Ic76a7b62e7f567f259c4ab1510ee97d26600ba9a
/build/make/core/definitions.mk
d9aae72d14c1088e531ae6858433e4418e831964 02-Dec-2016 Colin Cross <ccross@android.com> Merge "Fix warning with AAPT2 and LOCAL_STATIC_ANDROID_LIBRARIES" am: 1498712a6b am: 51c1eeefb3 am: 04158fac7c
am: c2e68615e7

Change-Id: I883c75d41f89d19317fce27135d87de7eef0b6ba
1498712a6b2517b465e128560773c0a58aeb486b 02-Dec-2016 Colin Cross <ccross@android.com> Merge "Fix warning with AAPT2 and LOCAL_STATIC_ANDROID_LIBRARIES"
be6152d51a92f8530d92b0e57cb1339e01372471 29-Nov-2016 Dan Willemsen <dwillemsen@google.com> Remove GLOBAL_LD_DIRS am: e5836c4bb0 am: 28cf7d49ab am: 4d20d14143
am: 0351f5c988

Change-Id: I5a9bb51b92e02c8811b68bf043346ed6e72c5a1b
fe109634964ad75e1c35872eb6e37c55e76e44bc 29-Nov-2016 Colin Cross <ccross@android.com> Fix warning with AAPT2 and LOCAL_STATIC_ANDROID_LIBRARIES

Building with LOCAL_STATIC_ANDROID_LIBARIES and LOCAL_USE_APPT2
causes a warning:
build/core/package_internal.mk:143: Empty argument supplied to find-subdir-assets

Only call find-subdir-assets if my_res_dir is not empty.

Also improve the warning message to make it easier to find the module
that caused it.

Test: m -j
Change-Id: I9a71162c7e2ed82f64d6844baca256968ac77317
/build/make/core/definitions.mk
e5836c4bb0e71e409954e2e179b4c35c86c3d324 23-Nov-2016 Dan Willemsen <dwillemsen@google.com> Remove GLOBAL_LD_DIRS

The last user of this was the NDK, which has been using full paths in
binary.mk. So remove it.

Test: lunch aosp_arm-eng; m -j native
Change-Id: Ida2523a2d19131ee3ef005edb3e5bcf830710b11
/build/make/core/definitions.mk
2c0c8d89ace648b9de2b12b13dc2c63cddf46de8 13-Nov-2016 Dan Willemsen <dwillemsen@google.com> Merge "Use new -ninja flag to aidl-cpp" am: 7d4c926ed7 am: 676610e090 am: bcb8dfe2b2
am: 31488c301b

Change-Id: I779d280bf82171e2e4579ec2cdb0784eda596d79
fb84281342c3006013c1302a5919ce5d2dc60a4d 13-Nov-2016 Dan Willemsen <dwillemsen@google.com> Use new -ninja flag to aidl-cpp

This make aidl-cpp write out a dep file that ninja parses correctly.

Test: Manually inspect ninja depfile
Change-Id: I4890a91eb29a6388e17b1ffac23a3dc0ffe6c212
/build/make/core/definitions.mk
20a9e9f18e4ce998d2eeb4d4aee3196fd05227d5 11-Nov-2016 Dan Willemsen <dwillemsen@google.com> Merge "Remove transform-d-to-p" am: da85fecaf1 am: 39826d3cc7 am: 1551f77f83
am: db4c584a67

Change-Id: I85bdc0c4a30681078565be159b7d6b83737d6787
461d844a40a73aa98f08f1d0a8d80b183c6e0dff 11-Nov-2016 Dan Willemsen <dwillemsen@google.com> Remove transform-d-to-p

Ninja doesn't need the phony make targets, in fact, the parser doesn't
handle them correctly and ends up duplicating the dependencies. This
shrinks a `m native` deps file from 54M -> 35M on AOSP.

Test: Compare out/build-aosp_angler.ninja before/after
Test: wrote a tool to dump the .ninja_deps, added dedup feature, files
identical after dedup.
Change-Id: Iec7a9a0739e8678c1f4db79c68e423a39b9aad4b
/build/make/core/definitions.mk
eeb7ed6d9dca30f74e6f8f46c873669e78fd9779 22-Oct-2016 Dan Willemsen <dwillemsen@google.com> Merge "Cleanup NATIVE_COVERAGE, PRIVATE_ARFLAGS" am: fce41130cc am: 79feb28724
am: 083a6303c0

Change-Id: Ib82f58dc8846f080157a3f54bbccfdb6833c5dc3
9f95665022e78ebbc79637f835f3eafb0ff4cc55 22-Oct-2016 Dan Willemsen <dwillemsen@google.com> Cleanup NATIVE_COVERAGE, PRIVATE_ARFLAGS

Disable the NATIVE_COVERAGE code when not in use. Provide the proper
PRIVATE_ variables so that the $DISPLAY environment variable isn't
encoded into the ninja file.

Remove PRIVATE_ARFLAGS, which is never set.

Test: compare build-aosp_flounder.ninja
Test: NATIVE_COVERAGE=true build-aosp_flounder.ninja, inspect
Change-Id: I2a52de440fd991cdc5761ff8bd58a474892d2dfc
/build/make/core/definitions.mk
c05a8eec4bf110cdd2911a4d92e392d000613d6b 06-Oct-2016 Joe Onorato <joeo@google.com> Add streaming proto option to the build system.

Test: make w/ other prereq changes
Change-Id: Ie8711878e244074a9a3c128467eeb4908c2ef008
/build/make/core/definitions.mk
3fbe1f73274c01884c057155723979a75df48cc4 03-Oct-2016 Dan Willemsen <dwillemsen@google.com> Merge "Optimize rebuilds by reducing $(shell) usage" am: f009531772 am: 466f4f2b9e am: c1aff754c4
am: 09bd2ae7d8

Change-Id: I3250258380faa279e6533e0eed3d7f12b916a4d3
b011810c25f27081b36c809ce51ba1057bae2b5b 01-Oct-2016 Dan Willemsen <dwillemsen@google.com> Optimize rebuilds by reducing $(shell) usage

$(shell) isn't particularly fast in Kati, and they have to be executed
both when reading the makefiles and determining whether the ninja file
needs to be regenerated.

Right now, the regen time is mostly hidden because we run them in
parallel. We've also configured it to ignore any commands that contain
"echo", "date", or the output directory. That happens to remove most
commands that contain side effects, so running them in parallel is fine.

But the side effects contain some important things, like the clean up
necessary when switching products. So I'm removing those filters, and
then we'll need to run the shell commands in sequence, since there will
be side-effects. That makes regen take longer though, so use pure-Make
implementations instead of $(shell) where possible.

This set of changes reduces aosp/master aosp_arm64-eng build $(shell)
usage and time by 2/3:

*kati*: func shell time: 3.135095 / 709
*kati*: func shell time: 1.067331 / 236

Bug: 30947985
Test: Manual test lines for math functions
Test: Compare build-aosp_arm64.ninja before/after
Change-Id: I4fc9d6318957992921972994f277c17918e7e1eb
/build/make/core/definitions.mk
950266effc3536f15a7bc031042493deb1b8fd0f 23-Sep-2016 Dan Willemsen <dwillemsen@google.com> link_type check: Support modules installed into /data am: 3594cee467 am: 16448d0b27 am: 3888162616
am: d3a6a04324

Change-Id: I07635c6d3aa4252dbdc6b2dd05cb58aa0a2f0ca3
16448d0b27670fa397cd839c0e25f6c6f722fae7 23-Sep-2016 Dan Willemsen <dwillemsen@google.com> link_type check: Support modules installed into /data
am: 3594cee467

Change-Id: I3735c05d317aa5c125471c7e91124cd45ebe4a98
8870658397c5ce8cb1a617195f6838d726bc4774 23-Sep-2016 Treehugger Robot <treehugger-gerrit@google.com> Merge "link_type check: Support modules installed into /data"
646f2121be7dc0155eb68183d0565aaecdbb6992 23-Sep-2016 Yohann Roussel <yroussel@google.com> Add support for Jack plugin am: 53b7fbbe78 am: be50693fc1 am: 62e67d1bff
am: cf65679d9e

Change-Id: I341b3b1708589999bba3bb3d5c49a37f5747dcd0
3594cee467df0ce33e4bf17584afddafbb715036 22-Sep-2016 Dan Willemsen <dwillemsen@google.com> link_type check: Support modules installed into /data

Test: compare build.ninja before/after, look at warnings.html
Change-Id: I1b78748dd80b73d2601b2adf0aaac8a6b2b350d5
/build/make/core/definitions.mk
53b7fbbe78b6218962cc439c568533dd2c4e31c2 05-Aug-2016 Yohann Roussel <yroussel@google.com> Add support for Jack plugin

And ensure compatibility with coverage plugin.

(cherry picked from commit 862bb84d37e3e6ca61080de58f206e512e09d4e0)

Bug: 28876950
Test: Manually tested by some manual activations of the coverage plugin.
Change-Id: I804558a501825357bf0812de626d2957eedbdc13
/build/make/core/definitions.mk
98b277b9300b396246a75427f2bf48a7e13c2235 20-Sep-2016 Dan Willemsen <dwillemsen@google.com> Merge "Fix link_type checking" am: 665cda08f0 am: 1347d959de am: 8459bbca6f
am: 83aba3a7ab

Change-Id: I0cca5c1e262c8a8d92858ed5c927e4775c2e3a6e
121e284b460afc3603b88883563ad3156aa2de4d 15-Sep-2016 Dan Willemsen <dwillemsen@google.com> Fix link_type checking

This was printing "error:", but not actually triggering an error.
Instead of trying to write a single line bash script to handle this,
move the actual check into python. This allows us to print all of the
errors for a single module before triggering the failure.

Also updates the warning format and the warn.py script to properly parse
these warning. Many of the java:sdk -> java:platform warnings are false
positives due to the lack of LOCAL_SDK_VERSION markings on prebuilts.

Individual tags can be marked as warnings now, which lets us check for
system libraries linking against vendor libraries (which won't work on
AOSP). I'm not sure this is a completely valid check, which one reason
that it's just a warning.

Test: m all_link_types (with some missing libs commented out)
Change-Id: I333e418c9a4511b7c7e826891ae481da08fbf6f9
/build/make/core/definitions.mk
af2091b21767f5a53fcf64c3166856672b6cd0bc 14-Sep-2016 Ryan Campbell <ryanjcampbell@google.com> Merge "Implement path-based enabling of code coverage." am: 1e1ecd5d07 am: 6b92bb4ebb am: 577eab3323
am: 5a63fe6856

Change-Id: I264e7ee9d8139c79fb882f40f1cb6854d2e24a8b
81c9d29dad68618718b0418cb749c571ad362333 12-Sep-2016 Ryan Campbell <ryanjcampbell@google.com> Implement path-based enabling of code coverage.

Native coverage is enabled by setting NATIVE_COVERAGE to true
and specifying a list of paths in the COVERAGE_PATHS
environment variable. Files are exported to a zip file in the
target out directory.

Change-Id: I66a2ddd88e849bec1cc0cdae1b51fe18a007e2c3
/build/make/core/definitions.mk
d2e241892c93908122030e8f2b320b374d577b52 09-Sep-2016 Colin Cross <ccross@android.com> Merge "Remove global linker search paths" am: 39c1c9ae12 am: 01d1c0b442 am: 6b7762a458
am: b50e65d097

Change-Id: Id0abe4d5b0ee090ab53d999521bfc0f47e76afc6
067d7815302fa0eeb508e7f8f436392d8d719b10 09-Sep-2016 Colin Cross <ccross@android.com> Remove global linker search paths

Remove the global linker search path, as it can cause spurious build
failures. If a library with the same name as a system library is in the
process of being written to the directory in the global search path, and
the linker may try to read the partially-written built one instead of the
system one. We already use full paths to libraries for target builds,
do the same for host builds. Also remove the normalize library
functions, they are no longer necessary.

Test: m -j checkbuild
Bug: 31393456
Change-Id: If9fc631e111f568c700fd73e103445c30d7e9d11
/build/make/core/definitions.mk
7ec6abf2d28737e5fcc7cad75d7ace0384f46001 06-Aug-2016 Iliyan Malchev <malchev@google.com> Revert "Invoke HIDL for C++ files"

This reverts commit 55f704084bfb2bb9c2ae454afa89f45d4d375f4b.
/build/make/core/definitions.mk
5fd1d06433f0422872e4bba84b641a9cbf99d296 06-Aug-2016 Iliyan Malchev <malchev@google.com> Revert "rename .hidl --> .hal"

This reverts commit a3d33016afd7d080004668978157b873791a9f71.
/build/make/core/definitions.mk
2efc0340d3a777aa04aecad6b14be0f1c38a9a8c 03-Aug-2016 Alexey Polyudov <apolyudov@google.com> Merge "introduce AUX build class of targets" am: 556526bf95 am: 755391d77e am: 30937fbde2
am: 74140b99c4

Change-Id: I1b8940a33cc02840961dd22705561cc4101f5ba8
755391d77e248b238bf2412b045490a0d6db6835 03-Aug-2016 Alexey Polyudov <apolyudov@google.com> Merge "introduce AUX build class of targets"
am: 556526bf95

Change-Id: I52b4b3a561ceb9c1fbe71ce75a4ef4aa252a9665
697b2b9e676719cf7e4f0711f88d566b160213b9 03-Aug-2016 Alexey Polyudov <apolyudov@google.com> Merge "Make linking with libcompiler_rt conditional" am: 340c0c5701 am: 74e4a83d47 am: 0f7d3add7c
am: 30e2684177

Change-Id: I6a0309ed90d3ba6862c009275f80e883eeb6a651
3a08a9c0798eef3d340c6bb7c506ee0050a783e0 03-Aug-2016 Alexey Polyudov <apolyudov@google.com> Merge "report correct build target class"
am: 974f750661

Change-Id: Idad227e2ac7e5b871d2831d6ca17933129e4ce4f
a3d33016afd7d080004668978157b873791a9f71 02-Aug-2016 Iliyan Malchev <malchev@google.com> rename .hidl --> .hal

b/30506905 rename .hidl files to .hal ones

Change-Id: Ibf30e9c4d5a1e07718405402c3312fd47585d525
Signed-off-by: Iliyan Malchev <malchev@google.com>
/build/make/core/definitions.mk
ccdc311b3328166687b2b3098059d50f1e8ff6e9 02-Aug-2016 Alexey Polyudov <apolyudov@google.com> introduce AUX build class of targets

AUX is a new class, similar to TARGET
While TARGET defines toolchain for Application Processors
AUX is defining toolchains for arbitrary utility cores (DSPs, GPUs,
MCUs, etc). This allows building of non-android sources as part
of Android tree and avoid using prebuilts if source code is avaliable

Bug: 29635686
Change-Id: Ie755ea054b16c3e86369f5fb2ba6eb0b384af77f
Signed-off-by: Alexey Polyudov <apolyudov@google.com>
/build/make/core/definitions.mk
8b540fd5ba4bf9b9f65437d3c160767500a7c587 24-Jun-2016 Alexey Polyudov <apolyudov@google.com> report correct build target class

Use PRIVATE_PREFIX to tell us what is the target class

Bug: 29635686
Change-Id: Ia895e780f741b9cb00c7ee9633055b5363e675a1
Signed-off-by: Alexey Polyudov <apolyudov@google.com>
/build/make/core/definitions.mk
71a6a86f4eb258b448de67323712ae386f29f9f4 30-Jul-2016 Dan Willemsen <dwillemsen@google.com> Merge \\\\"Refactor LOCAL_INIT_RC\\\\" am: cc715fa5d4 am: f8b7ae9c14 am: 14d054a5ac
am: a8a43036a9

Change-Id: I0cd430287d27183092dc475b1b3069080adfb653
f8b7ae9c14b85b59ffbf93e0e0b5a40d4c56530c 30-Jul-2016 Dan Willemsen <dwillemsen@google.com> Merge \"Refactor LOCAL_INIT_RC\"
am: cc715fa5d4

Change-Id: I484480375235395fd55eb1cfbb0a50259c6d840e
435360a79095a4f3b84cea4df3aa44dd7144400a 28-Jul-2016 Dan Willemsen <dwillemsen@google.com> Refactor LOCAL_INIT_RC

We supported de-duplicating LOCAL_INIT_RC across multiple architecture
variants in a single module definition, but that didn't work if the
module was defined with two different BUILD_PREBUILT definitions. That's
how we're exporting modules from Soong to Make.

Change-Id: Ifc93b15ef78ea3d8e78005d428a3ec57d7e414e8
/build/make/core/definitions.mk
922ae6846ba2bf3ab3ede2969ad9e8ba19833614 29-Jul-2016 Dan Willemsen <dwillemsen@google.com> resolve merge conflicts of dd9aee1 to stage-aosp-master

Change-Id: I4278b9700c8729a06d38acc26e22ce7c340382f2
dd9aee166beed12e2f8f7c2afb4083146c2eefdb 29-Jul-2016 Dan Willemsen <dwillemsen@google.com> Merge "Record module type statistics"
3bf15e71d3e9f7d3512f44063fc8cdccc06834ce 26-Jul-2016 Dan Willemsen <dwillemsen@google.com> Record module type statistics

Creates a build_system_stats.txt build artifact that contains statistics
on how many BUILD_* modules are defined in a build. Also writes out
information about the Soong module types sent from the Soong build.

Merged-In: Iaf0c7062f542dc6942b5349854f3d49267cac4a5
Change-Id: Iaf0c7062f542dc6942b5349854f3d49267cac4a5
/build/make/core/definitions.mk
1684b32620fd565149e2377a879871af8b715510 26-Jul-2016 Dan Willemsen <dwillemsen@google.com> Record module type statistics

Creates a build_system_stats.txt build artifact that contains statistics
on how many BUILD_* modules are defined in a build. Also writes out
information about the Soong module types sent from the Soong build.

Change-Id: Iaf0c7062f542dc6942b5349854f3d49267cac4a5
/build/make/core/definitions.mk
b0a9b4ef53241c2f0a03f3b4c65e63c0ad7a99d9 27-Jul-2016 Dan Albert <danalbert@google.com> Merge \\\\"Link to shared libraries with the full paths.\\\\" am: b3389f4823 am: b3ef01d390 am: 50e79e1afd
am: e7c9da56c8

Change-Id: I83756a13f716b4c9f886c25e7fc20e1f92caba73
b3ef01d390b9db11c94ed14b0e186e48013bb9e4 27-Jul-2016 Dan Albert <danalbert@google.com> Merge \"Link to shared libraries with the full paths.\"
am: b3389f4823

Change-Id: Ie305ebfb68c3bba6b8120ce0be807906c029fe92
121aa60c465644ce752ce757d8bd83056368b0a1 26-Jul-2016 Dan Albert <danalbert@google.com> Link to shared libraries with the full paths.

This ensures that we're not accidentally linking the wrong version of
a library with the same name thanks to -L.

Test: Still builds.
Change-Id: I22e9e28412844ff4f8bda42ebbc300ea6574e474
/build/make/core/definitions.mk
55f704084bfb2bb9c2ae454afa89f45d4d375f4b 12-Jul-2016 Chris Phoenix <cphoenix@google.com> Invoke HIDL for C++ files

Change-Id: I917a04e92484f968b05b269bbaa2d458a7729b4c
(cherry picked from commit bbccdd6d152a37a03ece027b5896ddbc42db8a8b)
/build/make/core/definitions.mk
f30f03f9057d7d22b4e8c62dc052cb0a35905248 21-Jul-2016 Colin Cross <ccross@android.com> Merge \\\\"Split -isystem headers into separate variables\\\\" am: 921be36569 am: 768291a37c am: 0b6d82b798
am: 05baf25aa8

Change-Id: I06751dfd77739384f6637a03f62265e094effd12
768291a37c626cc4578927ee21609efb29bc5f9a 21-Jul-2016 Colin Cross <ccross@android.com> Merge \"Split -isystem headers into separate variables\"
am: 921be36569

Change-Id: Icd539e53caa9ad55e900b394c6005bb3606dce70
23ba612aada2d24f00b3f7a890f9337fae84ddac 20-Jul-2016 Colin Cross <ccross@android.com> Split -isystem headers into separate variables

Split the variables that contain header directories into ones that
should be prefixed with -isystem and ones that should be prefixed with
-I in preparation for moving some headers from -isystem to -I.

Add $(wildcard) around SRC_HEADERS to match the soong behavior, and move
users of SRC_HEADERS from config.mk to binary.mk so that the exported
soong value is present.

Test: no changes to build.ninja compile rules
Change-Id: Iadecbbf4351a01e53cb57e721d31f4f836bb82d9
/build/make/core/definitions.mk
c3218bf6fe6ec0dee860002b1ad4d9f80ea323af 20-Jul-2016 Colin Cross <ccross@android.com> Merge \\\\"Factor out common include directories into helper\\\\" am: 95fa32b577 am: 17904fabbf am: dcec798d33
am: 94781db63a

Change-Id: Id7ef557c7c1bbda22a2dc7ab8e69a2e78e46bc6f
17904fabbf04873a25659e57660030d1a15a7009 20-Jul-2016 Colin Cross <ccross@android.com> Merge \"Factor out common include directories into helper\"
am: 95fa32b577

Change-Id: I720d7c02de3d11b4a5a3328946433aa7274f1bb6
e25fd79337b5a4ed73d3f3ac7dfd8bb63a698570 19-Jul-2016 Colin Cross <ccross@android.com> Factor out common include directories into helper

Refactor includes in transform-*-to-o to simplify future changes to the
default include paths.

Test: whitespace-only changes to the compile rules in build.ninja
Change-Id: I766af1f22a4838d933691b6df37530db3ba4e21d
/build/make/core/definitions.mk
fa886cdb2adb0f1631b2b3caa617eede0930e546 16-Jul-2016 Colin Cross <ccross@android.com> resolve merge conflicts of 1e92cfb to stage-aosp-master am: 4cca8a5573 am: 2017d68910
am: ab632c60b8

Change-Id: I123f98c5d24ec63ca784d4e29b507f9501fbc2c0
4cca8a5573fc3463011c1d937bf27d3f756fcbf9 15-Jul-2016 Colin Cross <ccross@android.com> resolve merge conflicts of 1e92cfb to stage-aosp-master

Change-Id: I1929d5c16ea0b8574372049ac7dffd30fd3e1db3
744d33b38100ff756492a96253ab021552ea8162 15-Jul-2016 Colin Cross <ccross@android.com> Add support for LOCAL_MODULE_SYMLINKS

Specifying LOCAL_MODULE_SYMLINKS will create symlinks to the installed
module in the same directory.

Change-Id: Idecb2b75f0c9999eb000eed9a79a989244ccf6c2
/build/make/core/definitions.mk
e3dcadab820597d24923bef1a3c2e81d57783036 12-Jul-2016 Colin Cross <ccross@android.com> Merge \\\\"Remove Android.bp logic from makefiles\\\\" am: 8bc18d35ec am: 7dc26e8aa8 am: 95ebfddd5f
am: 64755b9ec5

Change-Id: I53fbff08f5e9341a998a8c0b3fe57873dc7d0a46
7dc26e8aa8431a5a8b3d3d7d05c1891b66c615b8 12-Jul-2016 Colin Cross <ccross@android.com> Merge \"Remove Android.bp logic from makefiles\"
am: 8bc18d35ec

Change-Id: I50c8180c8297feb48ff5c5eba10670b36f631921
65543c7bc2bfb5b9de0b52a9568fec5d9ae93ff7 12-Jul-2016 Colin Cross <ccross@android.com> Remove Android.bp logic from makefiles

When Soong was optional, the make build system needed extra complexity
to ignore Android.mk files that had an associated Android.bp file. Now
that Soong is required and the Android.mk files that were obsoleted by
an associated Android.bp file have been removed, remove all of the logic
that found associated Android.bp files. Android.mk files and Android.bp
files are now handled independently.

Change-Id: Ia6643d151b920689219ca8abd59ede44d230ba35
/build/make/core/definitions.mk
d638c5d27817b4b72e2a4f3bcff44b46440598c1 24-Jun-2016 Adam Lesinski <adamlesinski@google.com> Support arg file list for -R in AAPT2

Bug:29462255
Change-Id: Ie5b9745c350d46f55bfcb42ff1e844685b9ded99
/build/make/core/definitions.mk
5efb73504d455911688f8602203a83792eaf2935 24-Jun-2016 David Sehr <sehr@google.com> Merge \"Filter logging from dexdump/dex2oat to errors only\"
am: be6b4fc1b3

Change-Id: Ib938b1bbf29e482d02c2c3b7d5a5948ba2afee9a
49fbdd1f281feb9b28e23f568fe5d0faa1350f55 24-Jun-2016 David Sehr <sehr@google.com> Filter logging from dexdump/dex2oat to errors only

Change-Id: Idb3f1c3d216e2db87ce3b03cbacc6fc3ceff37e0
/build/make/core/definitions.mk
752860dcfc7a081a9a1064644bcc80eaa0023778 24-Jun-2016 Christopher Wiley <wiley@google.com> Merge \"Fix path escaping for aidl generated java\"
am: 7e918b6a46

Change-Id: I8e50a344d17c4585a725db95386ef6e0eb50fa58
d9205ba17e24d1b8eca2773a7b40c50e541eb456 24-Jun-2016 Christopher Wiley <wiley@google.com> Fix path escaping for aidl generated java

Bug: 29619260
Change-Id: I806044573661c61e691adf36a47092188db87ab6
Test: Generated java with ../ in paths appears in the right place.
/build/make/core/definitions.mk
5da565a85ae3de7f1bede59f371bf36032c5aedd 16-Jun-2016 Dan Willemsen <dwillemsen@google.com> Merge changes Ib6ffcc38,Ia58e6bc1
am: 3068a85962

Change-Id: I20aec66ac749a5db3f65e368e14a5caca12afff8
dd5a5d328bfecd3e0074b0ba2a98a552828d0ad8 16-Jun-2016 Dan Willemsen <dwillemsen@google.com> Add macros for printing pretty warnings/errors in rules

Change-Id: Ia58e6bc1328c84e5f4ba1f6a2fd2d650e94e127e
/build/make/core/definitions.mk
ffb643e4874b571129099519f1966febb12175cf 15-Jun-2016 Dan Willemsen <dwillemsen@google.com> Merge \"Use more prebuilt build-tools\"
am: 6c0c720389

Change-Id: Icb67388bf084f2de872e9df8747b70cbde42b5f9
7c2d228701b0cb1b0f8a0eb8ff8a7c96eb3a31f6 06-Jun-2016 Dan Willemsen <dwillemsen@google.com> Use more prebuilt build-tools

For acp, we've been using an old prebuilt in prebuilts/sdk, but it's not
part of the SDK. Instead, we'll use a prebuilt in the build-tools
repository.

For ijar, we've been using the host libstdc++ to workaround the lack of
libc++ on some unbundled branches. Instead, use a prebuilt that can use
libc++.

For ziptime, we've been disabling it on unbundled branches, due to the
lack of libc++. Instead, use a prebuilt version of ziptime that can use
the prebuilt libc++.

Change-Id: If80f845ea06f76e3fe6765964e77c864eaf303d0
/build/make/core/definitions.mk
32b36a88198b9e9f44c22d9103d67530ab0d8940 07-Jun-2016 Dan Willemsen <dwillemsen@google.com> Merge "Add NATIVE_TESTS class, move host native tests" am: e72fc63901
am: 10461b78f0

* commit '10461b78f0955d9dba8d32045d1e35ff0f9a5c8c':
Add NATIVE_TESTS class, move host native tests

Change-Id: Ia11b54676d3b33e58c177a5a375f29233657524e
e72fc639014809b4d4239d7f7754c6950f1ad546 07-Jun-2016 Dan Willemsen <dwillemsen@google.com> Merge "Add NATIVE_TESTS class, move host native tests"
01437aa5d331c3cfe75839ff05f66412cc45f1f4 01-Jun-2016 Colin Cross <ccross@android.com> Merge "Update Android.mk finder to work with Android.bp files" am: 520442f053
am: 18023b557b

* commit '18023b557b6d33836de380df397fce10598931a9':
Update Android.mk finder to work with Android.bp files

Change-Id: I87915d75c3bda9c41c926a7c8ad7c650ac085199
4cbf8eb9f547feba370fe77e67e2d629bb41d455 28-May-2016 Colin Cross <ccross@android.com> Update Android.mk finder to work with Android.bp files

The Android.mk finder should stop traversing when it finds an Android.bp
file, and any Android.soong.mk file at the same path should be included.

Update filter-soong-makefiles to accept a mixed list of Android.bp files
and Android.mk files, convert Android.bp files to Android.soong.mk files
if they exist, and ignore Android.mk files that have an Android.bp file.

Update first-makefiles-under to use the new --dir syntax for
findleaves.py and search for both Android.bp and Android.mk files.

Update all-makefiles-under and all-named-subdir-makefiles to search for
both Android.bp and Android.mk files.

Change-Id: Iddc51bf84593d5de3add02f2b2c065da08962af4
/build/make/core/definitions.mk
eaa4ef4cfc7faecde17e21a4016d95ff8913f459 28-May-2016 Lance Chang <jinwoong@google.com> Merge "Add build number to apps\' version name for non-platform build" into nyc-dev
am: 1059f37377

* commit '1059f37377fd37cc311db522b4b5689086480d17':
Add build number to apps' version name for non-platform build

Change-Id: Iad8a4f271db54561d605a3f98f59a62e97eb1614
aef86f7f4ce651343f5eb4be2d6b0932c030f1fe 26-May-2016 Lance Chang <jinwoong@google.com> Add build number to apps' version name for non-platform build

If TARGET_BUILD_WITH_APPS_VERSION_NAME is defined, the build system
will add build number to the apps' default version name.

Bug: 28982976
Change-Id: I536f273b557fe7c935cc4ef1052c3297f8029863
/build/make/core/definitions.mk
44cf069b301e8fcac1526255e1485307e8703188 26-May-2016 Colin Cross <ccross@android.com> Merge "Remove USE_SOONG=false option" am: 5413fb4b3e
am: a36de73331

* commit 'a36de73331b92e5e75ba92e7a4707e5850e3486d':
Remove USE_SOONG=false option

Change-Id: Iba393dadd32a55e910cf0ab980a1e82887f60bb9
a61d672529a11b336309a412d2f64077b144c1f0 25-May-2016 Colin Cross <ccross@android.com> Remove USE_SOONG=false option

Soong is always required to build now.

Change-Id: I4e310e98e912b370ebf980bf609f04212a7e9a50
/build/make/core/definitions.mk
7fe992c0ccf61443f90976f6f18a61c242df7731 02-Mar-2016 Dan Willemsen <dwillemsen@google.com> Add NATIVE_TESTS class, move host native tests

Host native tests have been getting installed into
out/host/linux-x86/bin/..., but this pollutes the bin directory with a
lot of poorly named tests. Also, to support 32-bit and 64-bit tests, we
need to have different names with different suffixes. This causes
problems when tests expect to be named something specific (like gtest).
It's also convenient to store test data next to the test itself.

So with this change, native tests will be installed in
out/host/linux-x86/nativetest[64]/$(LOCAL_MODULE)/$(LOCAL_MODULE_STEM)
just like target tests get installed into /data/nativetest[64].

Implement this using a new NATIVE_TESTS class, which is like
EXECUTABLES, but sets up the install path differently, and configures
the rpath to load shared libraries with the proper relative path.
LOCAL_MODULE_RELATIVE_PATH can be used to control the directory name, it
will default to $(LOCAL_MODULE). This way multiple related tests can be
grouped together.

Target native tests also use NATIVE_TESTS now, but nothing should change
other than LOCAL_MODULE_RELATIVE_PATH can be used.

Change-Id: I535e42b1a6b21c5b8d6a580aa2f944d2be35e27d
/build/make/core/definitions.mk
59fcd79e29e9418b02f6ba3fbbbd3e2e45eb3785 18-May-2016 Alex Klyubin <klyubin@google.com> Merge "Uncompress native libs only if they are compressed." into nyc-dev
am: 451b72438e

* commit '451b72438e974a10f3f9062ced5d455d3234e4dd':
Uncompress native libs only if they are compressed.

Change-Id: I4c680cfb228774ce93e75c644e7eee5c40988399
587484abe553b44ccd3b53fffc7a8205705b6c40 17-May-2016 Alex Klyubin <klyubin@google.com> Uncompress native libs only if they are compressed.

This changes the build system to uncompress native libraries in
preinstalled APKs only if the libraries are actually compressed.
Previously, any preinstalled APK containing native libraries was
modified by having all native libraries removed from the APK and then
re-added to the APK in uncompressed form.

Bug: 27887819
Change-Id: I3db172133e141bb6282bf3ed7070b068a826724e
/build/make/core/definitions.mk
958dc6098e2c04961cf20242962df2760b8162ca 17-May-2016 Dan Willemsen <dwillemsen@google.com> Merge "Remove TARGET_LIBGCC/LIBATOMIC/LIBGCOV" am: a794f4db22
am: 19fdc4428f

* commit '19fdc4428f9036b059a1174a3236eef03180e826':
Remove TARGET_LIBGCC/LIBATOMIC/LIBGCOV

Change-Id: I143bf88ad5031764644dfb2c8b279513c809b50b
db16dd23841cf9cdb62420eb3ab1eca71a9e102b 16-May-2016 Dan Willemsen <dwillemsen@google.com> Remove TARGET_LIBGCC/LIBATOMIC/LIBGCOV

Instead, use the libgcc/libatomic/libgcov from the static libraries dir,
which is provided by Soong. Copy the libraries using the Soong script if
Soong is disabled - this can be removed once USE_SOONG is removed.

Change-Id: Iad2ad20ad5c3cfc48bf1e46e594a482609098d7a
/build/make/core/definitions.mk
18a2229babcb5f6fd57010d2408ae2355ed1e2a2 14-May-2016 Dan Willemsen <dwillemsen@google.com> Merge "Soong: Read Android.soong.mk if skipping Android.mk" am: ea71c96894
am: b8759f4f4b

* commit 'b8759f4f4b060fe9c4dc60fa6d786949b81f4ca0':
Soong: Read Android.soong.mk if skipping Android.mk

Change-Id: Ibc2622b8292cb33270fe89ee8fcae4cdeb6b60c9
5b188fb53903a0ac2b286a922e16561df9aaa80a 14-May-2016 Dan Willemsen <dwillemsen@google.com> Soong: Read Android.soong.mk if skipping Android.mk

If Soong is enabled, and we're skipping an Android.mk because there is
an Android.bp file, check for an Android.soong.mk file and read that
instead. This will allow us to temporarily define modules or recurse
into subdirectories that soong does not yet support.

Change-Id: Ifdb2f0204a38a5069e53527f66ffcfb8008c11a4
/build/make/core/definitions.mk
4ed2ff913b5656b2197147aed9ee94a4dde0d8c2 13-May-2016 Shinichiro Hamaji <hamaji@google.com> resolve merge conflicts of 505f1ea to nyc-dev-plus-aosp

Change-Id: I023ace4df452371eea1b0b004d8817e6fe90585e
d8f9f7d8736063e2241701e856ad0eb785c8e6b9 12-May-2016 Shinichiro Hamaji <hamaji@google.com> Follow symlinks when using find for assets

This should have been done in
https://android-review.googlesource.com/#/c/43901/

Bug: 27954979
Change-Id: I663b5e87e0d844d37a59e404219ff5e7e364df74
/build/make/core/definitions.mk
8a86f9ea4dae03bbb8cf9b9b389a4430772147e1 11-May-2016 Alex Klyubin <klyubin@google.com> Fix handling of version codes in minSdkVersion when signing.
am: f59ad14c1f

* commit 'f59ad14c1f7cb07a4669741f8b0bb1e938398eca':
Fix handling of version codes in minSdkVersion when signing.

Change-Id: Ie53be2528b32bc2eaa70645000ad66473422e06f
f59ad14c1f7cb07a4669741f8b0bb1e938398eca 11-May-2016 Alex Klyubin <klyubin@google.com> Fix handling of version codes in minSdkVersion when signing.

The APK signing tool, build/tools/signapk, needs to know the API Level
of the oldest platform supported by the APK. The APK's minSdkVersion
may reference that using a number (API Level) or a version code. To
handle the version code case, the existing logic was to see if it
matches $PLATFORM_VERSION_CODENAME and then substitute it with
$PLATFORM_SDK_VERSION.

However, some platforms support multiple version codes. To handle this
scenario, this commit changes the logic for computing the min API
Level for signing purposes to treat any non-numeric minSdkVersion as
$PLATFORM_SDK_VERSION.

Bug: 28715556
Change-Id: I292c96e8928b7e2f8d9716ef2be33a23a87764c4
/build/make/core/definitions.mk
dbe53e4bdedcf9edc3723b2813c4aee780ea004d 06-May-2016 Ying Wang <wangying@google.com> resolve merge conflicts of e6b72b3 to nyc-dev-plus-aosp

Change-Id: Ic60ea2050c6e724e9bcbb5277087f1377315e9b3
05f9f358363da66a51ebcba57409116dfa9e3a53 06-May-2016 Ying Wang <wangying@google.com> Harden dependency on generated sources.

Previously if a library has custom generated headers in
LOCAL_GENERATED_SOURCES and export its include path with
LOCAL_EXPORT_C_INCLUDE_DIRS, there is almost no way for the users of the
library to set up dependency of their object files on the generated
headers.
This change makes the generated sources dependency of the library's
export_includes, which is guaranteed generated before client code gets
compiled.

Also we added proto-generated cpp files to my_generated_sources so that
we can deal solely with $(my_generated_sources). Because many
Android.mks assume the generted .pb.hs are in $(generated_sources_dir)
instead of $(intermediates), we have to generate the source files in
$(generated_sources_dir) and make a copy in $(intermediates).

Bug: 28622149
Change-Id: I73b21443fa706f3735faf16356ed8c08fbfecca6
/build/make/core/definitions.mk
54d4d765babcbb0463d859b1dc26017c52b29558 30-Apr-2016 Adam Lesinski <adamlesinski@google.com> Merge "Call aapt2 link with argument-list" into nyc-dev
am: dfd6197f51

* commit 'dfd6197f5173b957b6e41a83df66d04068fa6517':
Call aapt2 link with argument-list

Change-Id: I34e64e07736d428ca87044ac07a952be50531464
dfd6197f5173b957b6e41a83df66d04068fa6517 30-Apr-2016 Adam Lesinski <adamlesinski@google.com> Merge "Call aapt2 link with argument-list" into nyc-dev
a9ce97d2230a1965481a8232f7d9ddedf8bf92d5 29-Apr-2016 Todd Kennedy <toddke@google.com> Merge "Only align when necessary" into nyc-dev
am: 1ccfe52630

* commit '1ccfe5263008991aeff10964da3bdc6c2c1c1d06':
Only align when necessary

Change-Id: I2452df91a9c97a0b7d2d182165384d63ce040a09
3f180996109c7e40d3f0acb28a1fae42fc6e0510 29-Apr-2016 Todd Kennedy <toddke@google.com> Only align when necessary

Bug: 27887819
Change-Id: Ie8b5ca31cc1c08943588fc6039d75190ff7eeb8b
/build/make/core/definitions.mk
8d1e2fdcbaae0bfcf40e0d4ef54bd6b9cd95c31a 26-Apr-2016 Adam Lesinski <adamlesinski@google.com> Call aapt2 link with argument-list

Also follow symbolic links when looking for assets.

Bug:22775504
Change-Id: I971e23505f766a2192469df1aad55bc20c46f618
/build/make/core/definitions.mk
9c5f7a462c3b72ae48e460b2f474dc4033dfe622 28-Apr-2016 Adam Lesinski <adamlesinski@google.com> Merge "Revert "Call aapt2 link with argument-list"" into nyc-dev
am: 6c078e0522

* commit '6c078e0522daafbdb5b2635baa510c2863bde2bb':
Revert "Call aapt2 link with argument-list"

Change-Id: I36d1080067620f991766a751830cac885fd1dc48
6c078e0522daafbdb5b2635baa510c2863bde2bb 28-Apr-2016 Adam Lesinski <adamlesinski@google.com> Merge "Revert "Call aapt2 link with argument-list"" into nyc-dev
4c44d94999e3ffb866fe4c08ee97b78b8ccec1f7 28-Apr-2016 Adam Lesinski <adamlesinski@google.com> Revert "Call aapt2 link with argument-list"

This reverts commit d4d6a50fbb69e53131d42fd35aca382ab12c8c27.

Change-Id: If84ad9921eb51ae16eae2be3cf4b2ee86b31ce80
/build/make/core/definitions.mk
2e58fba928d5a2dff00256a14769005a2c998b7c 28-Apr-2016 Adam Lesinski <adamlesinski@google.com> Merge "Call aapt2 link with argument-list" into nyc-dev
am: 0e57d3afc1

* commit '0e57d3afc181720bdd6bea3cd1a7352168458b62':
Call aapt2 link with argument-list

Change-Id: Ifa9d900511acec9174e6e658d515b277e9669964
0e57d3afc181720bdd6bea3cd1a7352168458b62 28-Apr-2016 Adam Lesinski <adamlesinski@google.com> Merge "Call aapt2 link with argument-list" into nyc-dev
d4d6a50fbb69e53131d42fd35aca382ab12c8c27 26-Apr-2016 Adam Lesinski <adamlesinski@google.com> Call aapt2 link with argument-list

Also follow symbolic links when looking for assets.

Bug:22775504

Change-Id: I78b4e2b7d7750dfecafd64e29cf0e19dff851155
/build/make/core/definitions.mk
46a259651fc0cd2c541ff92768e850899d9d2cf0 26-Apr-2016 Keun Soo Yim <yim@google.com> resolve merge conflicts of 72b82dc to nyc-dev-plus-aosp

Change-Id: I6e62226774584154ad1a802594e386fe7942504b
3d4847525f27d0e2958c0ea07e5c0f116d318d28 19-Feb-2016 Keun Soo Yim <yim@google.com> build rule change for VTS (vendor test suite)'s metadata files

Change-Id: I76b81529a97b672e08632703d2f6a2777ee8811e
/build/make/core/definitions.mk
b6232d90dab6671fd2f116068c3671ae9dff5487 22-Apr-2016 Yohann Roussel <yroussel@google.com> resolve merge conflicts of 995b62b to nyc-dev-plus-aosp

Change-Id: I4293e9f2777fb9b7e2023764703855ff3d778b40
5ce149b76a44853ec8649057bfcc67d73d3a5a86 22-Apr-2016 Yohann Roussel <yroussel@google.com> Merge changes I6e98fc65,Ia8665e7c

* changes:
Remove bootclasspath handling for Jack
Remove static libraries from Jack classpath
ae2fc8170666e5941b7a0ec2f3fea8f0b1254a6f 21-Apr-2016 Yohann Roussel <yroussel@google.com> Remove bootclasspath handling for Jack

Bootclasspath libraries are already added in LOCAL_JAVA_LIBRARIES by
java.mk and host_dalvik_java_library.mk meaning that bootclasspath
handling was just doing a duplicate work and adding duplicated entries
to the classpath.

Also fix order of bootclasspath libraries for host.

Bug: 28307907
Change-Id: I6e98fc651a127435c029de65285dbf2cb04844af
/build/make/core/definitions.mk
7a8e69eea22c34ad6d68b768bea56939c2ec42a9 21-Apr-2016 Chih-hung Hsieh <chh@google.com> Merge "Call clang-tidy based on WITH_TIDY* variables." am: 3f03b10654
am: c72f50d49f

* commit 'c72f50d49fb95794039f270d4083b9cfed4cd482':
Call clang-tidy based on WITH_TIDY* variables.

Change-Id: I4eb0afd79b56ad2ddea42b33791df27da6ab8820
a9a55c7c7e76b2741eb675c0880d242e350b79a3 01-Apr-2016 Chih-Hung Hsieh <chh@google.com> Call clang-tidy based on WITH_TIDY* variables.

* Call clang-tidy before every C/C++ compilation if
(1) clang-tidy is found at $(PATH_TO_CLANG_TIDY)
(2) $(my_clang) is true
(3) LOCAL_TIDY is 1 or true, or
LOCAL_TIDY is undefined and WITH_TIDY is 1 or true.
* clang-tidy is called with -checks=$(my_tidy_checks),
which has default '-*,google*,-google-readability*'
and can be overwritten by WITH_TIDY_CHECKS.
* LOCAL_TIDY_CHECKS is appended to $(my_tidy_checks)
* Extra flags are passed to clang-tidy through
WITH_TIDY_FLAGS or LOCAL_TIDY_FLAGS.
* To quickly find and fix clang-tidy warnings, set $(WITH_TIDY_ONLY)
to 1 or true to skip compilation of C/C++ files.
* Add a PHONY tidy_only target,
which includes all $(cpp_objects) and $(c_objects).
* The 'mm' and 'mmm' functions are changed to call make with
the 'tidy_only' target when WITH_TIDY_ONLY is true or 1.
In that case, only clang-tidy is called for C and C++ files.

Bug: http://b/27779618
Change-Id: I8adcfff217d68af49849b79aacee7d7654cafb1b
/build/make/core/definitions.mk
2dc79b11cd0a70a1857386ef8dc780a4834fa260 21-Apr-2016 Yohann Roussel <yroussel@google.com> Remove static libraries from Jack classpath

Those libraries are already imported (or added to the classpath in the
case of the check command) meaning that they were all duplicated.
In addition to complicating the build this was also slowing down the
compilation.

Bug: 28307907
Change-Id: Ia8665e7c5ad8b567bd02de7839fa62e67a5668f7
/build/make/core/definitions.mk
b10a1190cb7bf7002d39c86e59bd698d9b057f58 16-Apr-2016 Yabin Cui <yabinc@google.com> Merge "Add strip mode mini-debug-info." am: 9a02623
am: 3cb18ef

* commit '3cb18efc4a4ec9497a237e8151ebc3b15857c837':
Add strip mode mini-debug-info.

Change-Id: Ic915892d0cc7142ec7ce2847cc4a69a3d24a54c3
9a02623eb66519a2b4607daa883607e893f7727f 16-Apr-2016 Yabin Cui <yabinc@google.com> Merge "Add strip mode mini-debug-info."
fab7995cd8cfe787a3ebc5620cce14cb59beda30 29-Mar-2016 Yabin Cui <yabinc@google.com> Add strip mode mini-debug-info.

Mini-debug-info strip mode strips most debug information, but
maintains minimal debugging information similar to
https://sourceware.org/gdb/onlinedocs/gdb/MiniDebugInfo.html.

Bug: 27923447

Change-Id: I0405f0b3c33cb3cadeafbd22ce94d645c4dbe7b9
/build/make/core/definitions.mk
81ef4714f48fe024b36fca977f23340bf4c115aa 31-Mar-2016 Ying Wang <wangying@google.com> Merge commit '1f07720f8518236e8438ae0f25ea7211da8c8c45' into manual_merge_1f07720

Change-Id: I5ad50aacbe99b4ebf8ae7e630f169100128b5b3c
b89c5fda00d87901acba88e9df161bbe789c8492 31-Mar-2016 Ying Wang <wangying@google.com> Merge "Replace in recipe with subshell." am: 0fda1ea
am: d4d59fd

* commit 'd4d59fd87c004a6dbbe581a011f7f9d9027b74a1':
Replace $(shell) in recipe with subshell.

Change-Id: I67d553aa1ab7f92e7719a3678074aad9d6a812e8
77b63536892a115361e3574474ddcb34ce5cedf0 31-Mar-2016 Ying Wang <wangying@android.com> Merge "Remove support of disabling Jack."
a6a9ab07ed7bdd60d8183894738cd5d06518d5f3 31-Mar-2016 Ying Wang <wangying@google.com> Replace $(shell) in recipe with subshell.

Bug: 27925180
Change-Id: I4a735755e4f818f6ce608c87ad111b9dd205ef41
/build/make/core/definitions.mk
858657366fa6a1f2ce14941f22b82a8dbb3f9349 29-Mar-2016 Ying Wang <wangying@google.com> Remove support of disabling Jack.

We removed code and variables related to running dx on classes.jar in
this change. Also removed target emma rules (but kept the emma rules for
host java libraries), for it's now done by Jack.
We still support to build classes.jar (and javalib.jar for static Java
libraries) using javac, because tools like javadoc need class files as
input.
Removed the obsolete install-dex-debug.

Bug: 27400061
Change-Id: If0bcdfe62cb181a98754fb0dbe1c12c92e38d3e8
/build/make/core/definitions.mk
fbd5d8de0fd29dc52b746c258b2f23c3cea0a0f9 29-Mar-2016 Shinichiro Hamaji <hamaji@google.com> Merge "Fix dependencies around tools/*-event-log-tags.py" am: 4487319
am: a2be61e

* commit 'a2be61ed16bcb406030ff01a30e4dec90a8ff5de':
Fix dependencies around tools/*-event-log-tags.py

Change-Id: I8fee3f7846e723d46eb26356798eedb9566f3a28
0f846c73e10e9505b0dae61f5ef4c083921cc348 15-Mar-2016 Shinichiro Hamaji <hamaji@google.com> Replace last -includes by .KATI_DEPFILE

There was a typo in binary.mk. compile-dotdot-XXX-file in
definitions.mk was also using -include.

Bug: 26839129
Bug: 27886012
Change-Id: I4a0145fb70413998cc65d30d2efcd68af07b4800
(cherry picked from commit 72904774a35d395116bb784b5d2adc1a8d637e8e)
/build/make/core/definitions.mk
2fb7b61a2e2457b85ff1a56e36a8cb6f99db3e26 03-Mar-2016 Shinichiro Hamaji <hamaji@google.com> Use KATI_DEPFILE for .P associated with object files

Also specify "-d keepdepfile" to ninja so .P files won't be
deleted by ninja.

-include for .s files are removed because GCC doesn't
generate .d files for .s files.

Bug: 26839129
Bug: 27886012
Change-Id: If00e93c7a33449ec314a5cdba438475a32979f4e
(cherry picked from commit 4037c4225a484130a5510671e788794d23204262)
/build/make/core/definitions.mk
d3ce14c325438b5383c9a12f4656bd4d5f25079f 28-Mar-2016 Shinichiro Hamaji <hamaji@google.com> Fix dependencies around tools/*-event-log-tags.py

We should regenerate merged tag files and java sources when
these scripts are updated.

Change-Id: Id5f11d6f480f3f74dab08f01e929ee2d7fafd2d0
/build/make/core/definitions.mk
6e6a16752198550ae1c15d01e31addb2a8c89538 25-Mar-2016 Colin Cross <ccross@android.com> Merge "Ignore Android.mk files with USE_SOONG=true" into nyc-dev
am: c031c75

* commit 'c031c758c63c83679cf55abb50ba9e4474d22814':
Ignore Android.mk files with USE_SOONG=true
dcb1da9093b2b4b98f9548a6834dd84257bdedd3 25-Mar-2016 Ying Wang <wangying@google.com> Merge "Remove rmtypedefs from the build system."
am: 6557ba5

* commit '6557ba5335798627572669512489fdc8c59915a6':
Remove rmtypedefs from the build system.
fbc5b9f56b89dfeacbb05f9e780e5c0a34feabdb 11-Mar-2016 Ying Wang <wangying@google.com> Rebuild odex files in PDK fusion build.

To rebuild odex files of Java libraries and apps,
we store the jars/apks without stripping the classes.dex inside the
platform.zip. We also save the build variables that may affect how we
rebuild an odex in pdk_dexpreopt_config.mk in the platform.zip.
We store the files and configuration only for libraries/apps that get
installed to the system.img (or vendor.img).

In PDK fusion build, we auto-generate prebuilt module definitions for
the javalib.jar and package.dex.apk carried in the platform.zip, using
configuration stored in pdk_dexpreopt_config.mk.
With the prebult modules, we override the implicit rule that directly
copies the odex from the platform.zip.
To rebuild odex of javalib.jar, we added support for prebuilt shared Java
library to prebiult_internal.mk. An installable prebuilt Java library is
treated as shared Java library, i.e. with classes.dex in the jar instead
of a set of .class files.
For apks in the platform.zip, we install the stripped version from
platform files inside platform.zip, instead of the package.dex.apk,
using a new variable LOCAL_REPLACE_PREBUILT_APK_INSTALLED. We can't
strip package.dex.apk because we can't re-sign the stripped apk at this
point.

We generate prebuilt module only if it's not already defined in the
source tree.

Bug: 27543283
Change-Id: I9e146f8b713d6f57c397fd28d88c9ab700757ca1
(cherry-pick from commit 3a61eeb6cb588b9a206bd80814183bcc0263cd13)
/build/make/core/definitions.mk
946a08cf51af7bb4f4ca833cca3510e78ccb93a3 11-Jan-2016 Colin Cross <ccross@android.com> Ignore Android.mk files with USE_SOONG=true

When USE_SOONG=true, ignore any Android.mk file that has an Android.bp
file in the same directory.

Change-Id: Id79bd90c2aed5dafc2f8ad2c5b7eb0aa6e81dc18
(cherry picked from commit 861ab99536bf1a7a3b15dd08c17b9047fc88014b)
/build/make/core/definitions.mk
72bc59ce8b805c399beeda941cf836bdce749658 24-Mar-2016 Ying Wang <wangying@google.com> Remove rmtypedefs from the build system.

We don't need to run rmtypedefs in javac compilation now, because the
runtime libraries are compiled by only jack, which takes care of
rmtypedefs by itself.

Bug: 27828139
Change-Id: Ie480ae5aead8f3f58f956978fc4a05c28a35dec6
/build/make/core/definitions.mk
1e061d789ad9761086c3923f5ff6e6bdb8cf5738 24-Mar-2016 Dan Willemsen <dwillemsen@google.com> Merge "Remove ALL_PREBUILT, all users have been removed"
am: cfb5545

* commit 'cfb554566447b31cd045a5b67b960018418fe874':
Remove ALL_PREBUILT, all users have been removed
cfb554566447b31cd045a5b67b960018418fe874 24-Mar-2016 Dan Willemsen <dwillemsen@google.com> Merge "Remove ALL_PREBUILT, all users have been removed"
3006962257a1ef421dc62bbfa94119e9d7a75dc8 23-Mar-2016 Dan Willemsen <dwillemsen@google.com> Remove ALL_PREBUILT, all users have been removed

Change-Id: I37154506ef419e7a68ce7e2d864624d2ae53206f
/build/make/core/definitions.mk
7dee3625e0a993fd07a54004525614c43461935b 23-Mar-2016 Ying Wang <wangying@google.com> Merge "Create empty .a on Darwin when there is no obj file."
am: 37aa85e

* commit '37aa85e8bb0d86cae946d85a27b6ded593c425b7':
Create empty .a on Darwin when there is no obj file.
4aaa1a1fd8e7eb23ac5557cd326d1a48efdb54cd 23-Mar-2016 Ying Wang <wangying@google.com> Create empty .a on Darwin when there is no obj file.

On Darwin ar would fail if there is no object file to add.
We work around by adding a dummy.o to the .a and then deleting it.

Bug: 27800477
Change-Id: I68bbebea2726058c25863d7026a645a520d05167
/build/make/core/definitions.mk
2ae244c5784b8fe853d040a0ed54742fb8825979 16-Mar-2016 Yohann Roussel <yroussel@google.com> Remove rules for building dex with dx

This is just to ensure no dex file is built with dx any more, cleaning
of the build rules from Jack optionality is still to be done.

Bug: 27218410

(cherry picked from commit 22313f2b2a4aba8d284be4324233379d95886e23)

Change-Id: I1e7f2f5dcc7f95a44f5ebf2e4ba99931ff3ba014
/build/make/core/definitions.mk
cb43e9d0dad5708f9528bd35818025ee0e63dba1 18-Mar-2016 Yohann Roussel <yroussel@google.com> Merge "Remove rules for building dex with dx"
am: a978779

* commit 'a978779668cb6dd8791348dc701bf154f80164af':
Remove rules for building dex with dx
a978779668cb6dd8791348dc701bf154f80164af 18-Mar-2016 Yohann Roussel <yroussel@google.com> Merge "Remove rules for building dex with dx"
23649c76ce63a6c490bb7d7cc3dc788ad49d8d7b 18-Mar-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Allow for 5400 words in dump-words-to-file" into nyc-dev
am: 1b21b85

* commit '1b21b85b119796d9007e874af99948a803805397':
Allow for 5400 words in dump-words-to-file
0aeee045bdd26673b9be29b76d692ac93d1ea74b 24-Feb-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Allow for 5400 words in dump-words-to-file

After adding java.util.stream, doc-comment-check target
started to fail due to "Too many words" while
generating out/target/common/docs/doc-comment-check-timestamp.rsp
This change extends number of dumped words to 5400.

Bug: 27692239
Change-Id: Ifa75cada7b90c5737fc7a1d10325f3a49a2238ac
/build/make/core/definitions.mk
baf5f3c67fc11b166335dbdbb2845c4fceeef3dc 17-Mar-2016 Chih-Hung Hsieh <chh@google.com> Merge "Link in ASAN library if my_global_santitize is set."
am: 9d5fb14

* commit '9d5fb14b2d551e522c51f78361b77653191c8c91':
Link in ASAN library if my_global_santitize is set.
9d5fb14b2d551e522c51f78361b77653191c8c91 17-Mar-2016 Chih-hung Hsieh <chh@google.com> Merge "Link in ASAN library if my_global_santitize is set."
26912851ab3947ef0b25553d28bb2905a9b193cb 16-Mar-2016 Yohann Roussel <yroussel@google.com> resolve merge conflicts of 63de777 to nyc-dev-plus-aosp

Change-Id: I5dadd6f7bbf494665f9deb0cfafcce65530825d0
63de777488c49a5547a1e3ec7bba53e484714014 16-Mar-2016 Yohann Roussel <yroussel@google.com> Merge "Inform Jack of the min sdk" into nyc-dev
740ec8fe8a05fdf19634e52bbcea2ecb1a46ba33 09-Mar-2016 Yohann Roussel <yroussel@google.com> Inform Jack of the min sdk

Set Jack min sdk according to LOCAL_SDK_VERSION. Gives Jack current
version when LOCAL_SDK_VERSION is not available.

Bug: 27371864

(cherry picked from commit c6383d6ec665a0d0c7c866890845c5735a298b6b)

Change-Id: Ieba0219494f29d2737d2ca234317c3af7e5e72c8
/build/make/core/definitions.mk
c6383d6ec665a0d0c7c866890845c5735a298b6b 09-Mar-2016 Yohann Roussel <yroussel@google.com> Inform Jack of the min sdk

Set Jack min sdk according to LOCAL_SDK_VERSION. Gives Jack current
version when LOCAL_SDK_VERSION is not available.

Bug: 27371864

Change-Id: I5db233fe09aed0fae37fe9a92658bc8f24b86cdf
/build/make/core/definitions.mk
22313f2b2a4aba8d284be4324233379d95886e23 16-Mar-2016 Yohann Roussel <yroussel@google.com> Remove rules for building dex with dx

This is just to ensure no dex file is built with dx any more, cleaning
of the build rules from Jack optionality is still to be done.

Bug: 27218410
Change-Id: Iea2c66802b6c64c52690ad9d6d487bdce5f50b79
/build/make/core/definitions.mk
ad741e6d668c0cbfbd25e2f941b9f5b67d994651 09-Mar-2016 Chih-Hung Hsieh <chh@google.com> Link in ASAN library if my_global_santitize is set.

* When my_global_santitize is set and requires ASAN,
link with ASAN library even when local module is not
instrumented with ASAN, unless the local module is
the ASAN library itself.
* Add -Wl,--as-needed to my_ldflags for shared libraries
so that unneeded ASAN library would not become
a dependent of the built .so file.
* Change shared file and executable file link argument order
so that -Wl flags will have effect on linked-in libraries.
* Remove unused ADDRESS_SANITIZER_CONFIG_EXTRA_SHARED_LIBRARIES.

BUG: 27614834

Change-Id: I4eda6003f1f24e498cba91c043dbe1fabe522686
/build/make/core/definitions.mk
082d5e5081732c6c4d42069b2f3fd560dcce768d 16-Mar-2016 Shinichiro Hamaji <hamaji@google.com> Merge "Replace last -includes by .KATI_DEPFILE"
am: c26ec724b8

* commit 'c26ec724b8b4d356573901f96e1a8ce728bdd1b1':
Replace last -includes by .KATI_DEPFILE
c9a19779a219bd9e4dd162d30249be7d22020c67 15-Mar-2016 Ying Wang <wangying@google.com> resolve merge conflicts of fc16dca602 to nyc-dev-plus-aosp

Now we can remove all uses of $(ACP) in prebuilt_internal.mk.

Change-Id: I07a449f3acca9b56c6a387ff8ca1535d19c872d1
72904774a35d395116bb784b5d2adc1a8d637e8e 15-Mar-2016 Shinichiro Hamaji <hamaji@google.com> Replace last -includes by .KATI_DEPFILE

There was a typo in binary.mk. compile-dotdot-XXX-file in
definitions.mk was also using -include.

Bug: 26839129
Change-Id: I4a0145fb70413998cc65d30d2efcd68af07b4800
/build/make/core/definitions.mk
a023f41f13e0c23200b150699ed378f1400c6132 15-Mar-2016 Yohann Roussel <yroussel@google.com> Merge "Revert "Inform Jack of the min sdk""
962282bde260704d691ea9c0d003d238ac400aa0 15-Mar-2016 Yohann Roussel <yroussel@google.com> Revert "Inform Jack of the min sdk"

This reverts commit 94451580af9c08e78ed347fb21b811049f8c96cb.

Bug: 27371864
Change-Id: I60a8c89b2ab8a6cbde4dd3b0aed24b71700815ab
/build/make/core/definitions.mk
10baeeebc449d7db7ecae7f153955e796604c798 15-Mar-2016 Yohann Roussel <yroussel@google.com> Merge "Inform Jack of the min sdk"
3a61eeb6cb588b9a206bd80814183bcc0263cd13 11-Mar-2016 Ying Wang <wangying@google.com> Rebuild odex files in PDK fusion build.

To rebuild odex files of Java libraries and apps,
we store the jars/apks without stripping the classes.dex inside the
platform.zip. We also save the build variables that may affect how we
rebuild an odex in pdk_dexpreopt_config.mk in the platform.zip.
We store the files and configuration only for libraries/apps that get
installed to the system.img (or vendor.img).

In PDK fusion build, we auto-generate prebuilt module definitions for
the javalib.jar and package.dex.apk carried in the platform.zip, using
configuration stored in pdk_dexpreopt_config.mk.
With the prebult modules, we override the implicit rule that directly
copies the odex from the platform.zip.
To rebuild odex of javalib.jar, we added support for prebuilt shared Java
library to prebiult_internal.mk. An installable prebuilt Java library is
treated as shared Java library, i.e. with classes.dex in the jar instead
of a set of .class files.
For apks in the platform.zip, we install the stripped version from
platform files inside platform.zip, instead of the package.dex.apk,
using a new variable LOCAL_REPLACE_PREBUILT_APK_INSTALLED. We can't
strip package.dex.apk because we can't re-sign the stripped apk at this
point.

We generate prebuilt module only if it's not already defined in the
source tree.

Bug: 27543283
Change-Id: I9e146f8b713d6f57c397fd28d88c9ab700757ca1
/build/make/core/definitions.mk
fb87a2610d6035801692d885e71a6c9af2109603 14-Mar-2016 Shinichiro Hamaji <hamaji@google.com> Merge "Use KATI_DEPFILE for .P associated with object files"
am: b95dc31033

* commit 'b95dc310330bd59fa860ab98822529bb0d2256c6':
Use KATI_DEPFILE for .P associated with object files
b95dc310330bd59fa860ab98822529bb0d2256c6 14-Mar-2016 Shinichiro Hamaji <hamaji@google.com> Merge "Use KATI_DEPFILE for .P associated with object files"
94451580af9c08e78ed347fb21b811049f8c96cb 09-Mar-2016 Yohann Roussel <yroussel@google.com> Inform Jack of the min sdk

Set Jack min sdk according to LOCAL_SDK_VERSION. Gives Jack current
version when LOCAL_SDK_VERSION is not available.

Bug: 27371864
Change-Id: Ieba0219494f29d2737d2ca234317c3af7e5e72c8
/build/make/core/definitions.mk
8b9056547628adfe53fa32c4adbe9e72a00c17df 04-Mar-2016 Dan Willemsen <dwillemsen@google.com> Merge "Do not apply GLOBAL_CFLAGS_NO_OVERRIDE to host *.S" am: 6d813d8c92
am: 851983bbf2

* commit '851983bbf2dc9cf2ea5877d6e95a9d962bd63fdd':
Do not apply GLOBAL_CFLAGS_NO_OVERRIDE to host *.S
6d813d8c9223ba6e55e98f23a8a8c2248466feff 04-Mar-2016 Dan Willemsen <dwillemsen@google.com> Merge "Do not apply GLOBAL_CFLAGS_NO_OVERRIDE to host *.S"
ea04f821fcbe10aac796dbde0f30ccf88e43ecb4 03-Mar-2016 Ying Wang <wangying@google.com> Align up java-lib-files and java-lib-deps.

- For host Java libraries, java-lib-files should return javalib.jar.
- Host dalvik Java libraries are special: factor out
host-dex-java-lib-files.
- Be explict that jack-lib-deps equals jack-lib-files.

Bug: 27451686
Change-Id: I9235384354e119ef7ebbf29b7e525d1ceea242e0
(cherry-pick from commit 063d0455e0f3a14f2577a26715f82e0bf3e79ee9)
/build/make/core/definitions.mk
fef4f411d904df54432f4dd533b425b1080a3424 04-Mar-2016 Ying Wang <wangying@google.com> Align up java-lib-files and java-lib-deps.
am: 063d0455e0

* commit '063d0455e0f3a14f2577a26715f82e0bf3e79ee9':
Align up java-lib-files and java-lib-deps.
df9acac6801f1515f4aade76bc28299bff627247 04-Mar-2016 Dan Willemsen <dwillemsen@google.com> Do not apply GLOBAL_CFLAGS_NO_OVERRIDE to host *.S

Target assembly files do not get these cflags, align the host
definitions to do the same.

Change-Id: Idadfa1f367c3ebea44460c5798225a85dd319371
/build/make/core/definitions.mk
063d0455e0f3a14f2577a26715f82e0bf3e79ee9 03-Mar-2016 Ying Wang <wangying@google.com> Align up java-lib-files and java-lib-deps.

- For host Java libraries, java-lib-files should return javalib.jar.
- Host dalvik Java libraries are special: factor out
host-dex-java-lib-files.
- Be explict that jack-lib-deps equals jack-lib-files.

Bug: 27451686
Change-Id: I9235384354e119ef7ebbf29b7e525d1ceea242e0
/build/make/core/definitions.mk
4037c4225a484130a5510671e788794d23204262 03-Mar-2016 Shinichiro Hamaji <hamaji@google.com> Use KATI_DEPFILE for .P associated with object files

Also specify "-d keepdepfile" to ninja so .P files won't be
deleted by ninja.

-include for .s files are removed because GCC doesn't
generate .d files for .s files.

Bug: 26839129
Change-Id: If00e93c7a33449ec314a5cdba438475a32979f4e
/build/make/core/definitions.mk
1501a9a8b5c64af788d04adc0c5fe8aaa83f0841 03-Mar-2016 Yohann Roussel <yroussel@google.com> Merge "Use Jack to check build" into nyc-dev
57a54b419973d3a275928bde519bf4e4fb3d8013 02-Mar-2016 Yohann Roussel <yroussel@google.com> Merge "Use Jack to check build" am: 6a9d0f9718
am: 4fd0463191

* commit '4fd0463191b316fd80b2ec8c0ba33bb5fcf5aa16':
Use Jack to check build
6a9d0f9718f127475d702ae6831a2bec3be976b6 02-Mar-2016 Yohann Roussel <yroussel@google.com> Merge "Use Jack to check build"
23afb78cf9ee908c8eb375c224efc071f0937abd 02-Mar-2016 Dan Willemsen <dwillemsen@google.com> Merge commit 'cdaf748e3abefd93a4e45393e96717fad8564c51'

Change-Id: I3c44564b08ed46f46719dbca54d4225718bb8c59
bda7a2b0460d34c5a7e6758c96b922ca085c9222 01-Mar-2016 Adam Lesinski <adamlesinski@google.com> Merge "AAPT2: Enable product/config filtering and improve source ordering" into nyc-dev
am: 7214d224b8

* commit '7214d224b85f7504fb0686e187fdf7f18b135000':
AAPT2: Enable product/config filtering and improve source ordering
ed68f54ba0668d52420932b348c3595ec9aed8e1 01-Mar-2016 Stephen Hines <srhines@google.com> Merge changes I769ed278,I99cb69ea,I57bcbed0,I6e51e51f,Iab2d36e2 into nyc-dev

* changes:
Remove debug statement
Tell Soong about HOST_CROSS_*
Update to use the latest clang-2629532.
Use newest clang static analyzers.
Add 64-bit windows cross-compiles
7f016150a0ba2c45859a4020a93c9000fd94f436 01-Mar-2016 Dan Willemsen <dwillemsen@google.com> Remove unused dependencies on $(ACP)

Most of these are calling to copy-file-to-target or similar, which no
longer use $(ACP).

Change-Id: I62287a80c577c34df587b74e70055c2f56050ce7
/build/make/core/definitions.mk
f1a98af5fcc253081bea85b22ddd64422737394a 29-Feb-2016 Dan Willemsen <dwillemsen@google.com> Replace some uses of acp with cp

ACP was originally created to overcome differences with cp between
Linux, Darwin, and Windows. We've since dropped Windows as a build host,
and don't use features like '-u' anymore.

For most of our current usecases, 'acp' is identical to 'cp' except that
it splits 'cp -p' into 'acp -p' for mode and ownership, and 'acp -t' for
timestamps. On Linux, this could be specified using
'--preserve=mode,ownership', but Darwin doesn't have this.

Since we're removing the destination file before copying, 'cp' already
preserves the mode (modulated by the umask). So the only extra thing
that gets preserved with 'acp -p' is ownership, which we should not care
about in the build system. (In many cases we shouldn't be preserving
mode either, so that readonly source trees can actually be marked
readonly, but that will be a future change)

Change-Id: Ied96fdc303ac5c774347c07363daec8b6dfb22e4
/build/make/core/definitions.mk
93536c29b16a5ba2ef8140e543e1aeee6094badb 01-Mar-2016 Dan Willemsen <dwillemsen@google.com> Merge "Remove destination before copying file" am: 469665ded5
am: e401e09a3c

* commit 'e401e09a3cf067f7eb15b5e94274a763a039be9c':
Remove destination before copying file
e792abc2d9fb0cc32ffee71bc227b9850d864559 18-Aug-2015 Yohann Roussel <yroussel@google.com> Use Jack to check build

Run jack with no outputs as a quick check for compilation errors and use
a timestamp to store that check was made.

Bug: 19069325

(cherry picked from commit 43084d9f49a994a7eaebd3c94758d0ebf4c74b6e)

Change-Id: I9b84b503b28cfdfa245f91da0061ee3a79386b28
/build/make/core/definitions.mk
ee57268cd7814258f25e9e466c5dd2a27c699ac9 18-Aug-2015 Yohann Roussel <yroussel@google.com> Use Jack to check build

Run jack with no outputs as a quick check for compilation errors and use
a timestamp to store that check was made.

Bug: 19069325

(cherry picked from commit 43084d9f49a994a7eaebd3c94758d0ebf4c74b6e)

Change-Id: I9b84b503b28cfdfa245f91da0061ee3a79386b28
/build/make/core/definitions.mk
3545eeb6c1dac11725fc919ae4481e7f85d72b27 29-Feb-2016 Dan Willemsen <dwillemsen@google.com> Remove destination before copying file

If there's a symlink as the destination to one of these macros,
currently we'll write to the destination of that symlink instead of
overwriting the symlink. We've run into this a few times when a module
is added to replace a symlink that used to exist via
LOCAL_POST_INSTALL_CMD. These have required manual discovery, and
additions to CleanSpec.mk files:
http://android-review.googlesource.com/143334

Use `rm -f` for single-file targets to remove the destination before
copying. On Linux, `cp --remove-destination` can work, but is not
supported by Darwin or acp.

There may still be problems with dependencies when symlinks are
involved, since ninja will use the destination of the symlink to check
whether it is up to date. But at least with this change, if any
dependency gets regenerated, we'll properly reset the file.

Change-Id: I6d3ac0bd9ced5e21a0ff9dad0eaff012a7bc9c75
/build/make/core/definitions.mk
9ffa38b193e939d8c2a3ab9818eebf66a0b62ef3 29-Feb-2016 Dan Willemsen <dwillemsen@google.com> Merge "Remove USE_NINJA=false" am: 3bfc095f53
am: d73633c082

* commit 'd73633c0824a63f7104bddf9a798bccc952b545c':
Remove USE_NINJA=false
1c6dc5b94276ac8cfdc5a6579ee8964f0dc2f315 06-Jan-2016 Dan Willemsen <dwillemsen@google.com> Remove USE_NINJA=false

And everything special-cased on that. Add a warning if USE_NINJA is
set to let users know that it no longer changes anything.

Change-Id: Ib8739151fe26ea6bf8f76b7ac2b8f4097dab0b47
/build/make/core/definitions.mk
7e57b8ca57d6de66a16cf6b81b9fc5a74d465caa 06-Feb-2016 Dan Willemsen <dwillemsen@google.com> Add 64-bit windows cross-compiles

This is mostly the same as the existing 2ND_HOST / HOST_CROSS support.

The interesting thing I did here was make x86 the 'first' architecture,
and x86_64 the second. This way LOCAL_MULTILIB := first defaults to
32-bit windows modules.

windows-x86/bin <- defaults to 32-bit executables
windows-x86/lib <- 32-bit libraries, like before
windows-x86/lib64 <- 64-bit libraries
windows-x86/obj <- 32-bit intermediates
windows-x86/obj64 <- 64-bit intermediates

Then modules are registered with the names:

host_cross_liblog <- 32-bit, like before
host_cross_liblog_64 <- 64-bit

Bug: 26957718

(cherry picked from commit 9ecbf832593980facba06c9031b8539b9cfdfd26)

Change-Id: Iab2d36e20d7002568c3534e7781e9ac8ab21a4a9
/build/make/core/definitions.mk
e758f9319dcb6cc9693af03cc03d385167a35a8d 26-Feb-2016 Adam Lesinski <adamlesinski@google.com> AAPT2: Enable product/config filtering and improve source ordering

- Restore old ordering of resource files to match AAPT behavior
- Change the order in which overlays are processed.

Change-Id: I9da88f6b4124e7f89a70eb485b4591d5c4c87d38
/build/make/core/definitions.mk
64ef18e840df69c549832b239fbf8ce7f8c502ea 27-Feb-2016 Ying Wang <wangying@google.com> Merge "AAPT2: library resource compilation" into nyc-dev
am: 6dece90534

* commit '6dece90534af8b290ccc385fda2e4cf0f3a37454':
AAPT2: library resource compilation
e295c3df68c4011cfda4696e4e02c12feba868c0 24-Feb-2016 Ying Wang <wangying@google.com> AAPT2: library resource compilation

- Switch to static library's package-res.apk as the link artifact.
- For prebuilt AAR file, build package-res.apk using aapt2's "--dir"
option.
- New LOCAL variables:
LOCAL_USE_AAPT2: a module can opt-in with "LOCAL_USE_AAPT2 := true".
LOCAL_STATIC_ANDROID_LIBRARIES: static Java libraries with compiled
resources.
LOCAL_SHARED_ANDROID_LIBRARIES: shared Java libraries with compiled
resources.

Bug: 25958912
Change-Id: I4be2d1e8137555986338c2583cb39b0c97391751
/build/make/core/definitions.mk
c12ad5c5c0631f4746837eea2be2957b9047f4e7 13-Feb-2016 Dan Willemsen <dwillemsen@google.com> Define a class for renderscript bitcode files

These have been using SHARED_LIBRARIES, but aren't elf shared libraries.
Continue installing them to /system/lib[64], but do not apply any other
normal shared library logic to them.

(cherry picked from commit c6e194ffadc2b2c83daed3011d6afa1764244499)

Change-Id: I0041650af92cd8063ca33215010d5eff514a89bc
/build/make/core/definitions.mk
530e4fbae64610b751afffb2d403ec79cd6ad9cc 16-Feb-2016 Dan Willemsen <dwillemsen@google.com> Merge "Define a class for renderscript bitcode files"
am: 69a4592aa5

* commit '69a4592aa50e9b6d675af83b6b2392796803395a':
Define a class for renderscript bitcode files
c6e194ffadc2b2c83daed3011d6afa1764244499 13-Feb-2016 Dan Willemsen <dwillemsen@google.com> Define a class for renderscript bitcode files

These have been using SHARED_LIBRARIES, but aren't elf shared libraries.
Continue installing them to /system/lib[64], but do not apply any other
normal shared library logic to them.

Change-Id: I3055ff86bb7b116c7107c41578ed6f0f304b1cf1
/build/make/core/definitions.mk
0c5c50997b5a414774144a2d2f75055fcb055cdd 11-Feb-2016 Alex Klyubin <klyubin@google.com> Merge "Sign APKs using SHA-256 instead of SHA-1 when possible." into nyc-dev
95d41f178e917adf3bc7ed5eecf057f20278c90d 11-Feb-2016 Sebastien Hertz <shertz@google.com> Merge "Remove usages of jill.jar, use jack instead"
am: 91d20b06f5

* commit '91d20b06f547b551c1cecd190c840469e845f68c':
Remove usages of jill.jar, use jack instead
91d20b06f547b551c1cecd190c840469e845f68c 11-Feb-2016 Sebastien Hertz <shertz@google.com> Merge "Remove usages of jill.jar, use jack instead"
b05b62df2e69e59fcb0698b25bd4eca8686fb1d0 13-Jan-2016 Alex Klyubin <klyubin@google.com> Sign APKs using SHA-256 instead of SHA-1 when possible.

This changes the build system to provide the signapk tool with the
minSdkVersion of the APK being signed. signapk in turn will then use
SHA-256 instead of SHA-1 if minSdkVersion is 18 (JB MR2) or higher
(see c2c49ed0c13846f7f96249c7419971dfcddc9215).

To avoid increasing incremental OTA update package sizes for already
released platforms, release build scripts disable the above logic when
signing target files ZIPs for pre-N platforms.

Bug: 25643280

(cherry picked from commit 2cfd1d108c82bdedccb03917e09aa5e677e8fde2)

Change-Id: I38450d07ddc05c705de40313f843beada8db7d98
/build/make/core/definitions.mk
fec3a148921b8403e826825c3acd956a689691a9 10-Feb-2016 Alex Klyubin <klyubin@google.com> Merge "Sign APKs using SHA-256 instead of SHA-1 when possible."
am: 07d3dbd2ed

* commit '07d3dbd2eda1aa5b3283191e681d48b341c635bf':
Sign APKs using SHA-256 instead of SHA-1 when possible.
2cfd1d108c82bdedccb03917e09aa5e677e8fde2 13-Jan-2016 Alex Klyubin <klyubin@google.com> Sign APKs using SHA-256 instead of SHA-1 when possible.

This changes the build system to provide the signapk tool with the
minSdkVersion of the APK being signed. signapk in turn will then use
SHA-256 instead of SHA-1 if minSdkVersion is 18 (JB MR2) or higher
(see c2c49ed0c13846f7f96249c7419971dfcddc9215).

To avoid increasing incremental OTA update package sizes for already
released platforms, release build scripts disable the above logic when
signing target files ZIPs for pre-N platforms.

Bug: 25643280

Change-Id: I3f2faaf49c6fa392ffbf1ee9f30de476f9f73231
/build/make/core/definitions.mk
ccfa5c67615eec5571734375cbc6557500fbb49e 19-Jan-2016 Yohann Roussel <yroussel@google.com> Remove usages of jill.jar, use jack instead

Bug: 27113650
(cherry picked from commit d0bb7bdf5a62fd1cd0469e0b5d6b54feaecb3cdd)

Change-Id: Ie9be0d5c7e43ea857411431bb79db5cbb476484f
/build/make/core/definitions.mk
d87cc99af2bde92c6b822a0d44191cc402d44ac8 19-Jan-2016 Yohann Roussel <yroussel@google.com> Remove usages of jill.jar, use jack instead

Bug: 27113650
(cherry picked from commit d0bb7bdf5a62fd1cd0469e0b5d6b54feaecb3cdd)

Change-Id: I218ed2bda032b00bee4c52994a0aadce6d699133
/build/make/core/definitions.mk
6863fe23a93cbb47f9551084892110492460587d 09-Feb-2016 Dan Willemsen <dwillemsen@google.com> Merge "Add 64-bit windows cross-compiles"
am: 8c4f25f12f

* commit '8c4f25f12fe0fe8265fb8849cf7cb2fc482ae7e5':
Add 64-bit windows cross-compiles
9ecbf832593980facba06c9031b8539b9cfdfd26 06-Feb-2016 Dan Willemsen <dwillemsen@google.com> Add 64-bit windows cross-compiles

This is mostly the same as the existing 2ND_HOST / HOST_CROSS support.

The interesting thing I did here was make x86 the 'first' architecture,
and x86_64 the second. This way LOCAL_MULTILIB := first defaults to
32-bit windows modules.

windows-x86/bin <- defaults to 32-bit executables
windows-x86/lib <- 32-bit libraries, like before
windows-x86/lib64 <- 64-bit libraries
windows-x86/obj <- 32-bit intermediates
windows-x86/obj64 <- 64-bit intermediates

Then modules are registered with the names:

host_cross_liblog <- 32-bit, like before
host_cross_liblog_64 <- 64-bit

Bug: 26957718
Change-Id: I9f119411acb43e973ec1e6bca3c1dc291c91556c
/build/make/core/definitions.mk
8192d3b821d5969384e88891f6493392af110643 02-Feb-2016 Sebastien Hertz <shertz@google.com> Merge "Support code coverage with Jack" am: 4dad88980f
am: 7b02e64148

* commit '7b02e64148e6a1c0355d715b2a8034061f0d2837':
Support code coverage with Jack
4dad88980f49f40fb13ab57659c1016e12ca0cb9 02-Feb-2016 Sebastien Hertz <shertz@google.com> Merge "Support code coverage with Jack"
87bc53a2814433d01fc4e6868cdca209a6f418e2 02-Feb-2016 Shinichiro Hamaji <hamaji@google.com> Merge "Use dependency files generated by llvm-rs-cc for Java" am: e786d21854
am: 2f4b8a042c

* commit '2f4b8a042cacf2667d9704ef2e59373b6a2591cc':
Use dependency files generated by llvm-rs-cc for Java
52a1d6c666832f6bfa1c319c909d0189bc2d97bd 01-Feb-2016 Shinichiro Hamaji <hamaji@google.com> Use dependency files generated by llvm-rs-cc for Java

This is a reland of 4c474617d491fe98fa02571349138fb757959232
This time, we use awk instead of sed, and the script works
on Mac.

For C++ code llvm-rs-cc defines two targets but it defines
three targets for Java. The sed script was updated to handle
both cases appropriately.

Bug: 26839129
Change-Id: I1bca7d253764554d552950e03deedabaa9b7f17e
/build/make/core/definitions.mk
bee8fb862b08234f1bfa5928fafe9e5482f398af 01-Feb-2016 Shinichiro Hamaji <hamaji@google.com> Merge "Revert "Use dependency files generated by llvm-rs-cc for Java"" am: d6184e1da9
am: b1e250b44a

* commit 'b1e250b44aef5cf32493024584188d5055e0f54f':
Revert "Use dependency files generated by llvm-rs-cc for Java"
d6184e1da9e56b0b66cba48756ce210564d34523 01-Feb-2016 Shinichiro Hamaji <hamaji@google.com> Merge "Revert "Use dependency files generated by llvm-rs-cc for Java""
5f50ea3bc97ec045b2c48e54573ca60e3fcadb2d 01-Feb-2016 Shinichiro Hamaji <hamaji@google.com> Revert "Use dependency files generated by llvm-rs-cc for Java"

This reverts commit 4c474617d491fe98fa02571349138fb757959232.

Change-Id: I66c46360d0ccf927c807ddd5cfbc56cbd97ed4a2
/build/make/core/definitions.mk
283e648a249a320efa9c4e2f67cec150e237da0d 01-Feb-2016 Shinichiro Hamaji <hamaji@google.com> Merge "Use dependency files generated by llvm-rs-cc for Java" am: 3fdb9ad716
am: a73d744e36

* commit 'a73d744e36bd5e5c237607fb57253b757e9facf5':
Use dependency files generated by llvm-rs-cc for Java
3fdb9ad716bad829b0df06afdf2a45552830b23d 01-Feb-2016 Shinichiro Hamaji <hamaji@google.com> Merge "Use dependency files generated by llvm-rs-cc for Java"
917de453ee58dd6cb83d8eea797bfaf5a500babc 30-Jan-2016 Dan Willemsen <dwillemsen@google.com> Merge "Order objects based on LOCAL_SRC_FILES and LOCAL_GENERATED_SOURCES" am: 224466b1af
am: 991c840313

* commit '991c8403131dc5781d3d4a1d10d292dc99fee202':
Order objects based on LOCAL_SRC_FILES and LOCAL_GENERATED_SOURCES
357902b9de2d6e70a11b2cb0c808cea971c25f3b 30-Jan-2016 Alex Klyubin <klyubin@google.com> Merge "Revert "Sign APKs using SHA-256 instead of SHA-1 when possible." This is breaking CTS." am: 01ac26d942
am: 1cafe66be2

* commit '1cafe66be274a5a8bbbc3a0dcab9d4e8f6e5ae61':
Revert "Sign APKs using SHA-256 instead of SHA-1 when possible." This is breaking CTS.
061289c432cd47d8b496d773212f9561f0145ab9 30-Jan-2016 Alex Klyubin <klyubin@google.com> Revert "Sign APKs using SHA-256 instead of SHA-1 when possible." This is breaking CTS.

This reverts commit c2a36afd6772d9286e8071693f80648beef763a3.

Change-Id: I4389bf99aeb213198c1c501ba9462bd4a4540d0a
/build/make/core/definitions.mk
d0aefe79479c563478a8c814383297e21565c330 29-Jan-2016 Alex Klyubin <klyubin@google.com> Merge "Sign APKs using SHA-256 instead of SHA-1 when possible." am: 50f872c696
am: 7a86884a9a

* commit '7a86884a9a3474a926d30f7afdf0b7a3d307dd81':
Sign APKs using SHA-256 instead of SHA-1 when possible.
c2a36afd6772d9286e8071693f80648beef763a3 13-Jan-2016 Alex Klyubin <klyubin@google.com> Sign APKs using SHA-256 instead of SHA-1 when possible.

This changes the build system to provide the signapk tool with the
minSdkVersion of the APK being signed. signapk in turn will then use
SHA-256 instead of SHA-1 if minSdkVersion is 18 (JB MR2) or higher
(see c2c49ed0c13846f7f96249c7419971dfcddc9215).

To avoid increasing incremental OTA update package sizes for already
released platforms, release build scripts disable the above logic when
signing target files ZIPs for pre-N platforms.

Bug: 25643280

(cherry picked from commit de5bc04717505ad0e5b55605bccf43974f4c5c7a)

Change-Id: I4b100750e47788ab6ed897a0a5abfd33542e8676
/build/make/core/definitions.mk
4c474617d491fe98fa02571349138fb757959232 28-Jan-2016 Shinichiro Hamaji <hamaji@google.com> Use dependency files generated by llvm-rs-cc for Java

This is similar to 2e45fd036ad308cfa6094b181a67f97002ebf10f
but this CL is for generated java code.

For C++ code llvm-rs-cc defines two targets but it defines
three targets for Java. The sed script was updated to handle
both cases appropriately.

Bug: 26839129
Change-Id: I5c7705c67f3c65c4c14f74558e603f8ec9f35879
/build/make/core/definitions.mk
3bb168f10d8a8e7b4c0f2aa5840c21638a3d1fda 20-Jan-2016 Dan Willemsen <dwillemsen@google.com> Order objects based on LOCAL_SRC_FILES and LOCAL_GENERATED_SOURCES

We have been reordering objects to the linker based on how they were
generated. In soong, they're ordered based on the order listed in the
src_files.

Keep track of which source files created which object files so that we
can create the ordered list. Optionally change the order, based on
BINARY_OBJECTS_ORDER. That way we can compare make and soong builds.

Since we're keeping track of the used source files, warn when an entry
in LOCAL_SRC_FILES is not used. (whether it is an unused file like a
header, or a typo)

LOCAL_GENERATED_SOURCES is not verified, since it is valid to add
headers and other files in that list (to set up dependencies).

Change-Id: I1dfbbb3aa570c11c1db3b7133e46ed0b8c3b8989
/build/make/core/definitions.mk
dfce8ad4f4b0817f0484334f3000bb3cbbed86fc 19-Nov-2015 Sebastien Hertz <shertz@google.com> Support code coverage with Jack

Building an app with Jack and with the environment variable
EMMA_INSTRUMENT_STATIC set to true will apply code coverage
onto the app targeting Jacoco.

Bug: 20115492
Change-Id: Ief3640fa3faa466f7f6aaa9739e06d3db24110a0
/build/make/core/definitions.mk
fcc3e3915d8a542a600f894fc996741cb8d77033 27-Jan-2016 Alex Klyubin <klyubin@google.com> Merge "Revert "Sign APKs using SHA-256 instead of SHA-1 when possible."" am: 4a97cde443
am: e40660247d

* commit 'e40660247dfb4260fff31ba38b2869f644e1329b':
Revert "Sign APKs using SHA-256 instead of SHA-1 when possible."
a80a8085e037c949bf8f8741b1aeb8679baa8c8b 27-Jan-2016 Alex Klyubin <klyubin@google.com> Revert "Sign APKs using SHA-256 instead of SHA-1 when possible."

This reverts commit 74df828cb574a6f30be9b9dcf286773ca1835f72. This commit is breaking a build, again...

Change-Id: I2df561d68302ba4c83e90a64a7bf203645033a3b
/build/make/core/definitions.mk
6c125375b0e8ae8e375e985b37bfd9e185b30163 27-Jan-2016 Alex Klyubin <klyubin@google.com> Merge "Sign APKs using SHA-256 instead of SHA-1 when possible." am: 72d152f478
am: 5132fe2ef9

* commit '5132fe2ef9f29bd748a8d34898bd183ef257e937':
Sign APKs using SHA-256 instead of SHA-1 when possible.
97f48ebeab3d2b2129bd6973facec3feaee122d4 26-Jan-2016 Adam Lesinski <adamlesinski@google.com> Merge "Support to build with AAPT2"
74df828cb574a6f30be9b9dcf286773ca1835f72 13-Jan-2016 Alex Klyubin <klyubin@google.com> Sign APKs using SHA-256 instead of SHA-1 when possible.

This changes the build system to provide the signapk tool with the
minSdkVersion of the APK being signed. signapk in turn will then use
SHA-256 instead of SHA-1 if minSdkVersion is 18 (JB MR2) or higher
(see c2c49ed0c13846f7f96249c7419971dfcddc9215).

To avoid increasing incremental OTA update package sizes for already
released platforms, release build scripts disable the above logic when
signing target files ZIPs for pre-N platforms.

Bug: 25643280
Change-Id: I058393e0971d0d6559dbd69ea902754c6c7cab14
(cherry picked from commit de5bc04717505ad0e5b55605bccf43974f4c5c7a)
/build/make/core/definitions.mk
d6cad82b898b553227c983477f303a602ced7624 26-Jan-2016 Shinichiro Hamaji <hamaji@google.com> Merge "Use dependency files generated by llvm-rs-cc" am: 19f99a742d
am: d39a629d3a

* commit 'd39a629d3ae3b072f419972356bcfa3fc340b1bd':
Use dependency files generated by llvm-rs-cc
dd71c85a452af4269c947797b68027c2d663d4ef 04-Dec-2015 Ying Wang <wangying@google.com> Support to build with AAPT2

To build with AAPT2, set "USE_AAPT2=true".
TODO: Support split apks and generated resources from other than renderscript.

Bug: 25958912
Change-Id: I19b1a038824ce5b2a3d3ffadbce3173c845193fc
/build/make/core/definitions.mk
2e45fd036ad308cfa6094b181a67f97002ebf10f 25-Jan-2016 Shinichiro Hamaji <hamaji@google.com> Use dependency files generated by llvm-rs-cc

This was a regression since kati has been introduced. This CL
introduces include-depfile function to make it easier to write
Makefiles which work with both make and kati.

As ninja can handle only a single dependency file per a build
rule, now we merge multiple .d files generated by llvm-rs-cc
into a .d file.

Change-Id: Iaf64a8f0523ab98115837e6e06abd50f06620363
/build/make/core/definitions.mk
4f90999d7a5cab6d4e6065c111351f08feaa0ccf 25-Jan-2016 Alex Klyubin <klyubin@google.com> Merge "Revert "Sign APKs using SHA-256 instead of SHA-1 when possible."" am: 7382bdf8c1
am: 2cf2509542

* commit '2cf2509542d234e4d958195c834b74da2253b2cb':
Revert "Sign APKs using SHA-256 instead of SHA-1 when possible."
7382bdf8c1a755fe20c5979453bfeec0be73da27 25-Jan-2016 Alex Klyubin <klyubin@google.com> Merge "Revert "Sign APKs using SHA-256 instead of SHA-1 when possible.""
1429d5e14c30166588f84924eeb1af2b2516d46a 25-Jan-2016 Alex Klyubin <klyubin@google.com> Revert "Sign APKs using SHA-256 instead of SHA-1 when possible."

This reverts commit de5bc04717505ad0e5b55605bccf43974f4c5c7a because it's breaking some builds. Turns out some APKs have multiple sdkVersion attributes returned by aapt.

Change-Id: I013d6ef5eac473dd3900e0b9edf4c32cdc838bab
/build/make/core/definitions.mk
6e850d0193c7c234a8575d824997a6085a103277 25-Jan-2016 Alex Klyubin <klyubin@google.com> Merge "Sign APKs using SHA-256 instead of SHA-1 when possible." am: b763b29267
am: 2a37afd32c

* commit '2a37afd32c4bb571ced26ec738a9d9a89b5fba7e':
Sign APKs using SHA-256 instead of SHA-1 when possible.
b763b292671b9b18dcc9a5961c173667c674a3d5 25-Jan-2016 Alex Klyubin <klyubin@google.com> Merge "Sign APKs using SHA-256 instead of SHA-1 when possible."
e46193a60884986dfb775988d3ac795091480789 21-Jan-2016 Christopher Wiley <wiley@google.com> Merge "Separate aidl dependencies from compiler dependencies" am: 8edda3afdf
am: cfd817d058

* commit 'cfd817d058994ebda3b98db4e8113752753d422e':
Separate aidl dependencies from compiler dependencies
d1eea90a724d24416e29b9c8a1f60c89c9937f13 21-Jan-2016 Christopher Wiley <wiley@google.com> Merge "Keep aidl generated C++ inside the generated folder" am: 11feb8b075
am: 7c52b2d878

* commit '7c52b2d878e6234cb6e36942c87c438fa1e80240':
Keep aidl generated C++ inside the generated folder
de5bc04717505ad0e5b55605bccf43974f4c5c7a 13-Jan-2016 Alex Klyubin <klyubin@google.com> Sign APKs using SHA-256 instead of SHA-1 when possible.

This changes the build system to provide the signapk tool with the
minSdkVersion of the APK being signed. signapk in turn will then use
SHA-256 instead of SHA-1 if minSdkVersion is 18 (JB MR2) or higher
(see c2c49ed0c13846f7f96249c7419971dfcddc9215).

To avoid increasing incremental OTA update package sizes for already
released platforms, release build scripts disable the above logic when
signing target files ZIPs for pre-N platforms.

Bug: 25643280
Change-Id: I048393e0971d0d6559dbd69ea902754c6c7cab14
/build/make/core/definitions.mk
087f32730467b49dad8c334c7b2095fed319e598 19-Jan-2016 Christopher Wiley <wiley@google.com> Separate aidl dependencies from compiler dependencies

Both aidl and clang/gcc were putting their dependencies in the same
place. Move aidl's dependencies to a file ending with .aidl.P rather
than the compiler's .P.

While here, inform kati that we have these special dep files.

Bug:26409006
Test: Rebuild, note both files being generated

Change-Id: I29d2eea822235d60713c2059f3a314e475eb5aa3
/build/make/core/definitions.mk
257796c62dea09ad4c75935ceeb2b660f7de7fff 19-Jan-2016 Christopher Wiley <wiley@google.com> Keep aidl generated C++ inside the generated folder

Transform ../ to dotdot/ for C++ generateds from .aidl source files.
This forces us to use one layer of indirection to calculate the build
rules for .aidl files, since we can no longer use a pattern rule.

This was tested by modifying system/tools/aidl's Android.mk to refer to
its .aidl files by going up two directories and then repeating the
directories again. When I print the build rules with $(info) I see that
dotdot/ appears in appropriate places (C++ paths, but not .aidl paths).

Bug: 26407018
Test: Described above.

Change-Id: I397c9d10408c0c66d8b5a247a1f34eb4bf4f74ce
/build/make/core/definitions.mk
19f6638026b8481e04003fcbd5a8ef017a66d9c8 13-Jan-2016 Colin Cross <ccross@android.com> Merge "Ignore Android.mk files with USE_SOONG=true"
f0ebe165b94f99e32458e90aa5faa5f388eaeabc 12-Jan-2016 Ying Wang <wangying@google.com> Generate .c for .y and .l

- For .l/.y source files, generate .c files; for .ll/.yy source files,
generate c++ files.
- Simplified the rules by adding the generated sources to
my_generated_sources.
- Simplified generated header file naming by always using .h extension
with bison's "--defines=" option.
- Removed the unnecesarry conditional inclusion to the generated
headers. Bison already automatically generates such things.

Bug: 26492989
Change-Id: I9ab6dc149c258f7642bc36c3fa32f90ff7ee51a4
/build/make/core/definitions.mk
64088f2459f37043be939dce448a7431135bd5da 12-Jan-2016 Ying Wang <wangying@google.com> Generate .c for .y and .l

- For .l/.y source files, generate .c files; for .ll/.yy source files,
generate c++ files.
- Simplified the rules by adding the generated sources to
my_generated_sources.
- Simplified generated header file naming by always using .h extension
with bison's "--defines=" option.
- Removed the unnecesarry conditional inclusion to the generated
headers. Bison already automatically generates such things.

Bug: 26492989
Change-Id: I9ab6dc149c258f7642bc36c3fa32f90ff7ee51a4
/build/make/core/definitions.mk
861ab99536bf1a7a3b15dd08c17b9047fc88014b 11-Jan-2016 Colin Cross <ccross@android.com> Ignore Android.mk files with USE_SOONG=true

When USE_SOONG=true, ignore any Android.mk file that has an Android.bp
file in the same directory.

Change-Id: Id79bd90c2aed5dafc2f8ad2c5b7eb0aa6e81dc18
/build/make/core/definitions.mk
20de4fa41cac329781b6f719bfcc9b995be1c5d4 20-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Allow for 5200 words in dump-words-to-file

After switching to OpenJdk, doc-comment-check target
started to fail due to "Too many words (5082)" while
generating out/target/common/docs/doc-comment-check-timestamp.rsp
This change extends number of dumped words to 5200.

Bug: 25758743

(cherry picked from commit 972a2681c6cb1992886195b9e69234ef786cb876)

Change-Id: I9b8516d1e7c113d667dcfb7963ee352972677afa
/build/make/core/definitions.mk
b7d4e5248d34cad1451e7fb42dfc04359451bc04 21-Dec-2015 Yohann Roussel <yroussel@google.com> Merge "Do not set Jack source version, use default" am: 2983fd4b0f
am: 0a24035cf6

* commit '0a24035cf689fecdc01fa5fb3bc068c1e8f42f8c':
Do not set Jack source version, use default
09ee66e2b43a8ff8b33ba0835295257562ae644e 18-Dec-2015 Yohann Roussel <yroussel@google.com> Do not set Jack source version, use default

Default source version is 1.7 in Jack B and Jack C so this means no
change to default. Not forcing it in the build rules will allow to
change it in LOCAL_JACK_FLAGS.

Bug: 26257295
Change-Id: If9b5fe250eea4bc6bcb3c16ad9cf7024d399ff3c
/build/make/core/definitions.mk
7034d9beae7df28ca4f00888c55d772ef456c571 15-Dec-2015 Shinichiro Hamaji <hamaji@google.com> Merge "Reduce unnecessary rebuilds of .dex files with restat=1" am: 542aa57f1d
am: 0d4a0a9dd5

* commit '0d4a0a9dd5c1f3528b611862cb9fa81313028d1b':
Reduce unnecessary rebuilds of .dex files with restat=1
f972a4a980660d2347ace8fdc7c668403c0e9697 09-Dec-2015 Shinichiro Hamaji <hamaji@google.com> Reduce unnecessary rebuilds of .dex files with restat=1

The .dex.toc files are created by dexdump, which outputs all
information in a .dex file which may affect compilation of
other modules.

For prebuilt java libraries and static java libraries, we'll
output empty .toc files and don't set restat=1. .dex.toc files
are necessary even for static java libraries because they can
be referenced by LOCAL_JAVA_LIBRARIES (instead of
LOCAL_STATIC_JAVA_LIBRARIES).

We don't use this optimization for apps build. We cannot build
dexdump for apps build due to lack of libc++.

Performance:

$ m && touch \
frameworks/base/core/java/com/google/android/util/Procedure.java \
&& time m
Before: 3m48s
After: 1m46s

Bug: 24597504
Change-Id: Id1665923b414dee705dc60af4c021390a19ea26f
/build/make/core/definitions.mk
c1b31821ef6433ca47850bfdd1743e57f735050e 11-Dec-2015 Alex Klyubin <klyubin@google.com> Merge "Make signapk use Conscrypt." am: 7884a63731
am: dfd2199ef6

* commit 'dfd2199ef66dcc162a0165f9a34652ae2877538d':
Make signapk use Conscrypt.
9667b18f2300e4bf0f33d3aef51d2f48bcb6778b 10-Dec-2015 Alex Klyubin <klyubin@google.com> Make signapk use Conscrypt.

This makes the signapk tool use Conscrypt (where possible) instead of
the platform-default JCA providers and the Bouncy Castle JCA provider.
This speeds up (by 10-30%) APK and OTA update signing because
Conscrypt's crypto primitives are backed by BoringSSL.

Previously, the signapk tool consisted only of the signapk.jar.
Because Conscrypt is backed by native code, signapk now consists of
signapk.jar and crypto_openjdk_jni shared library. This requires that
users of the tool be updated to provide a suitable -Djava.library.path
argument to the Java runtime. This change updates all known users of
the tool inside the Android source tree to do so.

Bug: 26097626
Change-Id: I8411b37d7f771ed99269751a3007dff103083552
/build/make/core/definitions.mk
6740f9c7104e85a175cb04635fd00316466ea65d 05-Dec-2015 Ying Wang <wangying@android.com> Merge "Gmake doesn\'t like newline in macro expansion result." am: c7d5e54dfe am: fe27825ca5
am: 82b304264e

* commit '82b304264ea590c6d331e4d87db3167875b31c10':
Gmake doesn't like newline in macro expansion result.
427f8c43aa1ce72f4fd1a06f17e7f346dadfb8ab 05-Dec-2015 Ying Wang <wangying@google.com> Gmake doesn't like newline in macro expansion result.

When $(call func) in the makefile text expansion includes newline, gmake
reports error "missing separator". But it's fine if the expansion includes
only spaces. That's a bit odd.
This change fixes the "missing separator".

Change-Id: I094e5ae1725699ebfa4ed66544eef037dd68714c
/build/make/core/definitions.mk
f344fe0850cb2f8607942b00e11653a71cc9cf9b 01-Dec-2015 Colin Cross <ccross@android.com> Merge changes I1de10391,I4399ca26,Iec3b2b0b am: bff3c9b4c1 am: bae8872294
am: dbeab8de65

* commit 'dbeab8de6543db1d0393789cb18ee7fd7ed8fedd':
Use libstdc++ for ijar
Build ijar for apps build
Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files
89b255ab712cb7c93e99799fb2216f81e8391730 09-Nov-2015 Shinichiro Hamaji <hamaji@google.com> Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files

The same optimization was done for binaries in

https://android-review.googlesource.com/#/c/175250/

To create a TOC file from .jar files, this change introduces
ijar, which is designed for this purpose. Only #include lines
were modified from the original version.

https://github.com/bazelbuild/bazel/tree/master/third_party/ijar

Performance:

$ m && touch
frameworks/base/core/java/com/google/android/util/Procedure.java && time
m
Before: 4m30s (1580 targets)
After: 3m57s (772 targets)

Unfortunately, the improvement is small yet, but local
experiments showed we can cut ~2 more minutes if the similar
optimization is done for .dex files.

(cherry picked from commit c1f5d9c203324b9435414e789c02394ca99c98f7)

Bug: 24597504
Change-Id: Iec3b2b0b0e674bee5d80cce3c300dc8fad6e7c13
/build/make/core/definitions.mk
d973ed9f47fd3aa80214e0dbfc8fdfbf9cc51d72 27-Nov-2015 Shinichiro Hamaji <hamaji@google.com> Merge "Revert "Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files"" am: 2ff3ad9045 am: 51ef51c4ad
am: 371b8c7f77

* commit '371b8c7f770f8215e6bda1433e5f236c106b4e64':
Revert "Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files"
2ff3ad90455e868a1805d065f0aa2b8babbc6660 27-Nov-2015 Shinichiro Hamaji <hamaji@google.com> Merge "Revert "Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files""
3ae7f66babcb98d91aa9d2a27f9275af03b319a5 27-Nov-2015 Shinichiro Hamaji <hamaji@google.com> Revert "Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files"

This reverts commit c1f5d9c203324b9435414e789c02394ca99c98f7.

Change-Id: I7e9969a060e3f1380154da65e76134168aee15d8
/build/make/core/definitions.mk
3c0045b2cfa0fa6eed282f46391135ebf17e8a01 26-Nov-2015 Paul Duffin <paulduffin@google.com> Merge "Fix generated-sources-dir-for for COMMON" am: 623799d3e0 am: 9c4bb4c1c0
am: fb4a7cf865

* commit 'fb4a7cf86544f2fb78f5fa4e950b6974bcb0965d':
Fix generated-sources-dir-for for COMMON
623799d3e0aab49b00552fb7862f2528b845bd51 26-Nov-2015 Paul Duffin <paulduffin@google.com> Merge "Fix generated-sources-dir-for for COMMON"
534bd29363100a351604d5797ccedd708170c91f 26-Nov-2015 Shinichiro Hamaji <hamaji@google.com> Merge "Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files" am: c9a1b27845 am: 27770abe27
am: b42da32564

* commit 'b42da32564886ab7d3d5a2518b6868cd8fab9c78':
Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files
c9a1b278458eddd3065c0e9fc06e12b2cb1c38cb 26-Nov-2015 Shinichiro Hamaji <hamaji@google.com> Merge "Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files"
699a32217a54129ec7e4a3758d729155e16cbf6e 25-Nov-2015 Paul Duffin <paulduffin@google.com> Fix generated-sources-dir-for for COMMON

When the 4th argument specified is non-empty then it attempts to
use either HOST_OUT_GEN_COMMON or TARGET_OUT_GEN_COMMON
depending on whether the 3rd argument is non-empty or not
respectively. Unfortunately, those two variables do not exist,
the correct names for those variables is HOST_OUT_COMMON_GEN and
TARGET_OUT_COMMON_GET.

Change-Id: I66edb02824c06e0f504ebe04ff80ddbd77a16c95
/build/make/core/definitions.mk
8cffb30a63824dba5b9a5eeac61f11d7e8283f02 24-Nov-2015 Ying Wang <wangying@google.com> Fix typo.

Change-Id: I299076791c620968fa7a5c420b5ca21ea4d30b51
/build/make/core/definitions.mk
6cce4026ff60f96e3e73cbec35cbd24a1fd6754e 24-Nov-2015 Ying Wang <wangying@google.com> Fix typo.

Change-Id: I299076791c620968fa7a5c420b5ca21ea4d30b51
/build/make/core/definitions.mk
3be52e66924f94b1cde14681b1ce4c4d1ec7cba9 24-Nov-2015 Ying Wang <wangying@google.com> Don't delete META-INF in jack-java-to-dex when packing resources.

LOCAL_DONT_DELETE_JAR_META_INF is meant for deleting resources carried
by static Java libraries, see comment in clear_vars.mk.
For a module's own resources, we should pick up whatever in
LOCAL_JAVA_RESOURCE_DIRS.
The same applies when building .jack from a prebult jar in
transform-jar-to-jack.

Bug: 25860887
Change-Id: I20c120e039342a1124362c5f8747eace94b03931
(cherry-pick from commit 996ae38ffd552be2a8420de6651c1982e0723e02)
/build/make/core/definitions.mk
996ae38ffd552be2a8420de6651c1982e0723e02 24-Nov-2015 Ying Wang <wangying@google.com> Don't delete META-INF in jack-java-to-dex when packing resources.

LOCAL_DONT_DELETE_JAR_META_INF is meant for deleting resources carried
by static Java libraries, see comment in clear_vars.mk.
For a module's own resources, we should pick up whatever in
LOCAL_JAVA_RESOURCE_DIRS.
The same applies when building .jack from a prebult jar in
transform-jar-to-jack.

Bug: 25860887
Change-Id: I20c120e039342a1124362c5f8747eace94b03931
/build/make/core/definitions.mk
972a2681c6cb1992886195b9e69234ef786cb876 20-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Allow for 5200 words in dump-words-to-file

After switching to OpenJdk, doc-comment-check target
started to fail due to "Too many words (5082)" while
generating out/target/common/docs/doc-comment-check-timestamp.rsp
This change extends number of dumped words to 5200.

Bug: 25758743
Change-Id: Ifdc23d57c888c83533d237dd0a3bdafd20912cdf
/build/make/core/definitions.mk
c1f5d9c203324b9435414e789c02394ca99c98f7 09-Nov-2015 Shinichiro Hamaji <hamaji@google.com> Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files

The same optimization was done for binaries in

https://android-review.googlesource.com/#/c/175250/

To create a TOC file from .jar files, this change introduces
ijar, which is designed for this purpose. Only #include lines
were modified from the original version.

https://github.com/bazelbuild/bazel/tree/master/third_party/ijar

Performance:

$ m && touch
frameworks/base/core/java/com/google/android/util/Procedure.java && time
m
Before: 4m30s (1580 targets)
After: 3m57s (772 targets)

Unfortunately, the improvement is small yet, but local
experiments showed we can cut ~2 more minutes if the similar
optimization is done for .dex files.

Bug: 24597504
Change-Id: Id54953aea25e497c8ebbe783b03f13b488577c6a
/build/make/core/definitions.mk
67d993fc9cd01950f8994b7613362ea749be561a 13-Nov-2015 Dan Willemsen <dwillemsen@google.com> Merge "Sort dex and static lib resources"
94f86f8877a0d577efce1a7a1cf1f6a5bec24f42 12-Nov-2015 Yohann Roussel <yroussel@google.com> Sort dex and static lib resources

Before adding them to the apk or javalib.jar. This allows the entries
order to be reproducible and will help to have a reproducible build.

Bug: 25629246

Change-Id: Ie596aecfdd08047ea9f9071896a2b980e7200b41
/build/make/core/definitions.mk
5c64b4e81c1331cab56d8a8c201f26bb263b630c 12-Nov-2015 Dan Willemsen <dwillemsen@google.com> Make uncompressing jni libs in prebuilt APKs reproducible

This was extracting the shared libraries into a temporary directory,
then adding them back into the zip file using the raw filesystem
ordering. Fix that by passing a sorted list to zip.

Bug: 24201956
Change-Id: I59c41151968be6faf289e04719a9992157eb405d
/build/make/core/definitions.mk
0e7587a9ea58b69c9daa43cd682a4657d23b9b23 09-Oct-2015 Shinichiro Hamaji <hamaji@google.com> Use .KATI_RESTAT to reduce unnecessary rebuilds of binaries

When a shared object is rebuilt, all dependent libraries and
executables are rebuilt. Such rebuild is unnecessary when there
is no interface change. With this patch, .toc files will be
generated for all .so files. The rule which generates .toc files
has ninja's restat=1 and .toc files are not changed ninja won't
rebuild dependent targets.

Performance:

$ m && touch bionic/libc/stdio/stdio.c && time m
Before: 1m03s (2563 targets)
After: 21s (90 targets)

Bug: 24597504
Change-Id: Ia5dd950273d143f4e99eee8bef7478f1a94cd138
/build/make/core/definitions.mk
a25ddad7d6ab053aff89a0f9cfd8986758beb7c1 04-Nov-2015 Dan Willemsen <dwillemsen@google.com> Don't use ziptime with unbundled builds

Some of the trees are unable to compile native code with the normal
build rules, even though they can build kati.

Bug: 24201956
Change-Id: I2afc3468480b2c78407d62323e6b82979c8ee254
/build/make/core/definitions.mk
48a621c2779c74cba3555c96e3fbc7b1989ac90b 30-Oct-2015 Dan Willemsen <dwillemsen@google.com> Remove changing uids/timestamps from zip/jar files

Pass -X to zip so that Unix UID/GID and extra timestamps aren't
saved into the zip files.

Add a new tool, ziptime, that uses a very stripped down copy of
zipalign. It no longer depends on libandroidfw, and now rewrites the
timestamps in place instead of making a copy of the zipfile. This should
improve speed and reduce disk requirements, especially with the large
packaging zip files.

Bug: 24201956
Change-Id: I50f68669f659da1b4393e964ad40b6aafb00c1e7
/build/make/core/definitions.mk
04ba31236e694c6d4c3347dae3631e45a48209ae 21-Aug-2015 Lee Campbell <leecam@google.com> build: Add extra build customization for /product

This makes /product more consistent with /device & /vendor

BUG: 22030305

Change-Id: Ic65bfde7fb3e9fab8c8fb8d99af15404574abde0
/build/make/core/definitions.mk
b589ae4e2661d42cbdc0a44193e2df384424e483 29-Oct-2015 Dan Willemsen <dwillemsen@google.com> Revert "Remove changing uids/timestamps from zip/jar files"

This reverts commit 3c2c064c8791ed2d4b9d6780d7b87f406ab78f10.

zipalign depends on libandroidfw, and some setups don't include frameworks/base.

Bug: 24201956
Change-Id: I48ee95808924f6b2221f0a49ab205c2565096b1f
/build/make/core/definitions.mk
3c2c064c8791ed2d4b9d6780d7b87f406ab78f10 28-Oct-2015 Dan Willemsen <dwillemsen@google.com> Remove changing uids/timestamps from zip/jar files

Pass -X to zip so that Unix UID/GID and extra timestamps aren't
saved into the zip files.

Add a new option to zipalign, -t, to replace all timestamps with static
timestamps (2008 Jan 1 00:00:00). Use this for all non-APK zip files.
APK zip timestamps are set based on the certificate date in SignApk.

Bug: 24201956
Change-Id: Ifb619fc499ba9d99fc624f2acd5f8de36d78ef8e
/build/make/core/definitions.mk
4d68879ca6a8a97f002d62c28e25fcc935246dfa 23-Oct-2015 Ying Wang <wangying@google.com> Normalize java source file paths before running "sort -u".

We rely on "sort -u" to dedupe aidl/logtags generated java files added
by both from $(all_java_sources) and from "find
$(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name '*.java".
But "sort -u" doesn't work if any of the aidl/logtags source file path
has "../" in it.
This change fixes this issue by normalizing the source file paths before
passing them to "sort -u".

Change-Id: I12d2c4e0397bed9f426a1ed9b13608d72d01e0df
/build/make/core/definitions.mk
6528ea30869e28ca04c48664f2315611701faa94 12-Oct-2015 Yohann Roussel <yroussel@google.com> Remove LOCAL_JACK_EXTRA_ARGS

Use of DEFAULT_JACK_EXTRA_ARGS and LOCAL_JACK_FLAGS provides all needed
support.

(cherry picked from commit d2b2983cc791f90a0d052699603723335ab94f5a)

Change-Id: I1cd76836792e7332bc3750408a860400b0957485
/build/make/core/definitions.mk
8998d57404b73bf4df059542df4dc52631db45c9 03-Jul-2015 Yohann Roussel <yroussel@google.com> Allow control of jack used for compilation

Version of Jack used to compile a module can now be control from
a dedicated mk located in prebuilts/sdk/tools

Bug: 24564814

(cherry picked from commit b68c9a498d1e2c631eb6e8c9092d4d5775402083)

Change-Id: I7809dc966026ff94b5cb2daa7e2c63762ca4768d
/build/make/core/definitions.mk
b2c5558435b6628b6500be9f197269f95a89c983 02-Jul-2015 Yohann Roussel <yroussel@google.com> Clean call-jack and its callers

This is possible now that we have the new Jack server.
Also fix dependency from dex/jack target to jack script
instead of jack.jar.

(cherry picked from commit 5e50b342218fe2b9c1af20fd7da3c173bfac0499)

Change-Id: I8e7aa5087ba8d73cc93140ddfca8f4ab2f505175
/build/make/core/definitions.mk
9f576acde6c27149c9ca563f0a73e9f1c5e0e768 20-Oct-2015 Dan Willemsen <dwillemsen@google.com> Merge "Stop encoding absolute paths in symbols"
2df75d17a8d7aacd538cf1c34cf4e11c2af53251 15-Oct-2015 Christopher Wiley <wiley@google.com> Invoke the aidl-cpp compiler to generate C++

Bug: 23599697
Test: test application compiles generated code

Change-Id: I35255517dd0b7ef7a82134be1c862093eaa3ce6b
/build/make/core/definitions.mk
5baea1436371dea7e14562b17431bcd2b6a55f7d 15-Oct-2015 Dan Albert <danalbert@google.com> Merge "Use libgcov OR libclang_rt.profile, not both."
3a562a99423ba90dda81a94900a38ddc188c5d06 14-Oct-2015 Ying Wang <wangying@google.com> Use @arg-lsit-file for jar in add-carried-jack-resources

Don't pass the arg list as argument in any bash command;
Instead store the arg list to the arg list file and
run "jar @arg-lsit-file".
Note we need to quote the arguments in the arg list file.

This fixed "argument list too long" build error on Mac.

Bug: 24789595
Change-Id: I718f84e540d82bb83516824894a473b2961da278
/build/make/core/definitions.mk
6a66a887baadc9eb3d0d60e26f748b8453e27a02 15-Oct-2015 Dan Willemsen <dwillemsen@google.com> Stop encoding absolute paths in symbols

GCC & Clang encode the current working directory into the symbol files.
Even if the binaries are stripped before being installed, the build-id
hash will be different. This means that two different checkouts will
produce different installed binaries, even if the sources are identical.

To prevent this, set PWD=/proc/self/cwd, so that it replaces the
absolute path with the static path /proc/self/cwd. With GCC, use
-fdebug-prefix-map to remove that static path. Our clang does not yet
support this flag, but it was merged in r250094.

This does change the behavior when using gdb -- you now need to be in
$ANDROID_BUILD_TOP before gdb will load the sources.

Bug: 24204119
Change-Id: I792d65b042b7a3fdc78d567c5a6e93cdf0141b9b
/build/make/core/definitions.mk
ed4b0eeb435903d9be502dcebd2c000f143df575 15-Oct-2015 Ying Wang <wangying@android.com> Merge "Revert "Use @arg-lsit-file for jar in add-carried-jack-resources""
3bfecc8b6510fe7630d2998b927a74a28e5951d0 15-Oct-2015 Ying Wang <wangying@android.com> Revert "Use @arg-lsit-file for jar in add-carried-jack-resources"

This reverts commit 16f93d5661afe23229ab3b08ddd5fde9bc9c7eb8.

Change-Id: I925dae6a2d07792c61fcd3b6fd8718391ab993f8
/build/make/core/definitions.mk
3757268466d8fe9438e45e989728a74f14a162c6 14-Oct-2015 Ying Wang <wangying@android.com> Merge "Use @arg-lsit-file for jar in add-carried-jack-resources"
74ccefbee5682a0bdc42d51561b000c34caee7f2 04-Oct-2015 Chih-Wei Huang <cwhuang@linux.org.tw> Let get-prebuilt-src-arch return empty if the input is empty

The list of archs of a pure java apk (no native libs) is empty.
In this case get-prebuilt-src-arch still return 'none'.
If it's set to LOCAL_MODULE_TARGET_ARCH, it makes the apk
be incompatible with the building target. It's not good.

Just return empty in this case.

Change-Id: Ide75cdb08c8480c8e7d3a0ac59f41831fbc18bd5
/build/make/core/definitions.mk
16f93d5661afe23229ab3b08ddd5fde9bc9c7eb8 14-Oct-2015 Ying Wang <wangying@google.com> Use @arg-lsit-file for jar in add-carried-jack-resources

Don't pass the arg list as argument in any bash command;
Instead store the arg list to the arg list file and
run "jar @arg-lsit-file".

This fixed "argument list too long" build error on Mac.

Bug: 24789595
Change-Id: I3e5cd18fd988f12f0876b152b8bf07d07b56119e
/build/make/core/definitions.mk
92f5fcc5b35889b6ba33c92e9065d421632f7175 13-Oct-2015 Dan Willemsen <dwillemsen@google.com> Add all-named-(dirs|files)-under and related

To consolidate the number of places that we're using 'find' in the tree,
add some more helpers:

all-named-dirs-under
all-subdir-named-dirs
all-named-files-under
all-subdir-named-files

This change also makes many of the current helpers use these helpers
instead of using their own implementation.

The 'dirs' helpers are using '-type d' so that they only output
directories. It's probably safe to use '-type f' for the files helpers,
but that increased the kati load time by ~20%.

Bug: 24204119
Change-Id: I3312e2fe8c146f10955e1d986ad15d9c8be494e1
/build/make/core/definitions.mk
7fbbc5d20547c8709c9da878583cb3aa3e3d7ae1 08-Oct-2015 Dan Albert <danalbert@google.com> Use libgcov OR libclang_rt.profile, not both.

Using both can cause duplicate symbol errors.

Change-Id: Id8ee13a81d32e3248ff1cdc468f49a26ecde6b57
/build/make/core/definitions.mk
f8c63cbac28231fa2f29d0093ea0ce35868645e7 06-Oct-2015 Yohann Roussel <yroussel@google.com> Ensure dump-words-to-file creates the target

Even if word list is empty.

Not creating the file was causing print of error messages that were
not preventing compilation to continue when compiling Java module with
no source.

Change-Id: I095b85f85ed6fcef5882afa39d4af51b78124c7c
/build/make/core/definitions.mk
05bb4fed0d0e701ba13fef5f20b57eb1642cc40a 01-Oct-2015 Dan Willemsen <dwillemsen@google.com> am edc3e6cd: Merge "Sort more instances of wildcard and find"

* commit 'edc3e6cd6a0d6af4df3d6f07f40de17980b66ad0':
Sort more instances of wildcard and find
24b5fcf92aeba5a17bf0b4d1720318602cf51a16 01-Oct-2015 Dan Willemsen <dwillemsen@google.com> am 604e532f: Merge "Add all-cpp-files-under"

* commit '604e532f842fa38982eb47708e3afb5415ba4b72':
Add all-cpp-files-under
edc3e6cd6a0d6af4df3d6f07f40de17980b66ad0 01-Oct-2015 Dan Willemsen <dwillemsen@google.com> Merge "Sort more instances of wildcard and find"
7c3e3f8314eec2c053012dd97d2ae649ebeb5653 30-Sep-2015 Dan Willemsen <dwillemsen@google.com> Sort more instances of wildcard and find

Many of these may not make a difference in the output images, but it's a
good idea to keep the make system as repeatable as possible.

Change-Id: I31804b8ad5805148ed08be7426a242a16f4d0df3
/build/make/core/definitions.mk
604e532f842fa38982eb47708e3afb5415ba4b72 01-Oct-2015 Dan Willemsen <dwillemsen@google.com> Merge "Add all-cpp-files-under"
379f9f9cec4fe1c66b6d60a6c19fecb81b9eb410 30-Sep-2015 Dan Willemsen <dwillemsen@google.com> Add all-cpp-files-under

There are multiple versions of this in the tree. Let's standardize on
one that will work for everyone, and will sort the results.

Bug: 24204119
Change-Id: I09fcd80e1e8e35e64d8a8a62bbc096f87b02603f
/build/make/core/definitions.mk
7ee3b85eba08304cb9e396aaf52a77729f125532 29-Sep-2015 Colin Cross <ccross@android.com> resolved conflicts for 953981db to stage-aosp-master

Change-Id: Ic1003a594ac5e5e91b124f249a569fb81123e973
98da13bbd2db4b2247b90d83deec5e8befbee536 29-Sep-2015 Colin Cross <ccross@android.com> resolved conflicts for 6c3bf1b8 to stage-aosp-master

Change-Id: If93ed1d9229f7fbe750f85ea4b3c3e4fce5dbb29
a4447e8c89ca193ffdb4678de78998f9857ae7c7 29-Sep-2015 Colin Cross <ccross@android.com> Don't add dependencies on Makefiles when using ninja

Ninja has an implicit dependency on the command being run, and kati will
regenerate the ninja manifest if any read makefile changes, so there is no
need to have dependencies on makefiles.
This won't catch all the cases where LOCAL_ADDITIONAL_DEPENDENCIES contains
a .mk file, because a few users of LOCAL_ADDITIONAL_DEPENDENCIES don't
include base_rules.mk, but it will fix the most common ones.

Bug: 23566977
Change-Id: I66de882421376303ab7233c8ce7274548f6b2199
/build/make/core/definitions.mk
92f8348aebd810e5c285ebbfcb6532c5b7299740 29-Sep-2015 Colin Cross <ccross@android.com> Use zip -q for adding shared libraries

Make zip quiet when adding shared libraries to apks.

Bug: 24409581
Change-Id: I540510eb6e051b5fc9d1d2a7fa5565a5b774a602
/build/make/core/definitions.mk
5540a746b6bb52b6511ab58fe7c14822e23947c1 29-Sep-2015 Colin Cross <ccross@android.com> am f262f906: Merge "Remove "preparing StaticLib" messages"

* commit 'f262f906f28f1abedb32b1645b7f1ed5c0abbe45':
Remove "preparing StaticLib" messages
aa0aca69cf76d2d1faacbd2da2059a339d49587f 28-Sep-2015 Colin Cross <ccross@android.com> Remove "preparing StaticLib" messages

The preparing StaticLib messages don't provide any useful information,
remove them to clean up build output.

Bug: 24409581
Change-Id: I81fa7c47fd0d10846a21667b6421b4777260d0e9
/build/make/core/definitions.mk
a0af56f6989d250f290257967f64f640531472f5 24-Sep-2015 Dan Willemsen <dwillemsen@google.com> am bd1b9e33: Merge "Sort all files found via "

* commit 'bd1b9e3332de46e1f08b4b5ca8f53d0a096b4793':
Sort all files found via $(shell find)
4d66adfd0e6d599d8502007e4ea9aaf82e95569f 23-Sep-2015 Dan Willemsen <dwillemsen@google.com> Sort all files found via $(shell find)

Don't rely on filesystem ordering to make these the same for all builds.

Change-Id: I7313062157764091acecf45f4b57405c28858546
/build/make/core/definitions.mk
197e592ea5d08353b0e3586a7523df86b9cb929c 20-Sep-2015 Ying Wang <wangying@android.com> am 3c4c3418: Merge "Don\'t add build number to apps\' version name for platform build."

* commit '3c4c34183a10fd3deac81a8fc1fed8c774f12190':
Don't add build number to apps' version name for platform build.
d75d893da8f97a5c7781142aaa7a16cf1dbb669c 19-Sep-2015 Ying Wang <wangying@google.com> Don't add build number to apps' version name for platform build.

Bug: 24201956
Change-Id: I4a4bb483bb7b1bf7b7a856050d548bee4db0fe93
/build/make/core/definitions.mk
d8f08571b3ce2161076be665e593fb993c48464a 18-Sep-2015 Scott James Remnant <keybuk@google.com> am 909fe8e0: Merge "build: support compiling .mm on host"

* commit '909fe8e0f7da8db09a004ef44a90e786c81df5e4':
build: support compiling .mm on host
dd86e5a0def2b1fca708e202a26e42ee466473b4 18-Sep-2015 Scott James Remnant <keybuk@google.com> build: support compiling .mm on host

libchrome uses .mm (Objective-C++) files to bridge C++ code with
OS X Frameworks. This adds support for compiling .mm to .o by just
using the existing C++ support.

Bug: 24168923
Change-Id: Ia65357e2e2584dfffcb6796e214fe6b27635c3a6
/build/make/core/definitions.mk
c98d9a9d0ff4ae5a99d45d79c43699c302e4e1a3 09-Sep-2015 Dan Willemsen <dwillemsen@google.com> am f1c09d7f: Merge "Add HOST_CROSS_OS"

* commit 'f1c09d7fbd92a08cc51950a7d35fb5f7fc564a20':
Add HOST_CROSS_OS
057aaea54a8dd6aa769290b1c0f471a17aaf1a22 14-Aug-2015 Dan Willemsen <dwillemsen@google.com> Add HOST_CROSS_OS

Instead of using recursive make to change the HOST_OS when building the
windows SDK under linux, add the concept of cross-building to another
host os.

Bug: 23566667
Change-Id: I6dc525b601b6251d458d197c30bf4660d7485502
/build/make/core/definitions.mk
119cec9a4a8792d6c5efd5f126d8c8e3fd7f90d5 02-Sep-2015 Ying Wang <wangying@android.com> am 4e2f1903: Merge "Clean up Javac a little bit."

* commit '4e2f190315759b4270ab414b9ff1e24a19521521':
Clean up Javac a little bit.
447d69678e6ba108a2f9e034c876a8859015fe17 02-Sep-2015 Ying Wang <wangying@google.com> Clean up Javac a little bit.

- Added GLOBAL_JAVAC_DEBUG_FLAGS and merge it to
PRIVATE_JAVACFLAGS/PRIVATE_JACK_FLAGS to get rid of
PRIVATE_JAVAC_DEBUG_FLAGS/PRIVATE_JACK_DEBUG_FLAGS.
- With Java rules out of base_rules.mk we can get rid
of java_alternative_checked_module now.

Change-Id: I1a14716c785e3d49330a75044107662ce96a9307
/build/make/core/definitions.mk
3351178fb88369b627e36e008e8722d721eaf18b 08-May-2015 Ying Wang <wangying@google.com> Cleaned the outdated incrementaljavac.

Nobody is using this feature and now we switched to jack.

Change-Id: I749b486eb347cbf3ee7b107565fc800eeb238c44
(cherry-picked from commit 90598cb70c3a6e65223f02c4104e823024caf693)
/build/make/core/definitions.mk
3f7c5424dbbf5b827ed912a5383bdc31dced7cec 22-Aug-2015 Christopher Wiley <wiley@google.com> am 2b2c9dff: am 4e719eaf: Merge "Change .dbus.xml extension to .dbus-xml"

* commit '2b2c9dff35304c21ebe1e793a16443a882920f75':
Change .dbus.xml extension to .dbus-xml
2b2c9dff35304c21ebe1e793a16443a882920f75 21-Aug-2015 Christopher Wiley <wiley@google.com> am 4e719eaf: Merge "Change .dbus.xml extension to .dbus-xml"

* commit '4e719eafc4d183dd923518cea6292f37ee1e26c6':
Change .dbus.xml extension to .dbus-xml
9b17dea308d2beadd5f7458f500b3db85b90b83e 20-Aug-2015 Christopher Wiley <wiley@google.com> Change .dbus.xml extension to .dbus-xml

Work around gyp's inability to handle compound extensions by expecting
a similar looking simple extension for XML files definine DBus
interfaces. We'll need to rename these sources in the places we're
using them already.

Bug: 23380180
Change-Id: Ieb2050f3ef05456cd70de65c3e128d57a6a508f8
/build/make/core/definitions.mk
5bc62fdc652d80eff823cecdcbcc8144170c9ad3 20-Aug-2015 Christopher Wiley <wiley@google.com> am 7db39448: am 9e3b4ed4: Merge "Fix DBus proxies to use all definitions"

* commit '7db39448409ef9797089774ca8e196142662b0f2':
Fix DBus proxies to use all definitions
9c49f0affa43b946d2618eb2efbddf15588998c8 20-Aug-2015 Christopher Wiley <wiley@google.com> am 688b4a3d: am 4d2b79f9: Merge "Generate DBus proxies and adaptors separately"

* commit '688b4a3db72b58e8908ecdb24e6c4d64a44fdbc6':
Generate DBus proxies and adaptors separately
7db39448409ef9797089774ca8e196142662b0f2 19-Aug-2015 Christopher Wiley <wiley@google.com> am 9e3b4ed4: Merge "Fix DBus proxies to use all definitions"

* commit '9e3b4ed4991eb19e60346858bfdbb494d9324252':
Fix DBus proxies to use all definitions
974b82259a8d3a6a2d0e8c993d80259ea3cfbbb2 19-Aug-2015 Christopher Wiley <wiley@google.com> Fix DBus proxies to use all definitions

Bug: 22608897
Change-Id: Id17cf4b896c1c62be874599c7f346f3045e36819
/build/make/core/definitions.mk
688b4a3db72b58e8908ecdb24e6c4d64a44fdbc6 19-Aug-2015 Christopher Wiley <wiley@google.com> am 4d2b79f9: Merge "Generate DBus proxies and adaptors separately"

* commit '4d2b79f99ef34a504fe9f7e362a861d7ddee5659':
Generate DBus proxies and adaptors separately
529f176ee1cbdf06b72de4c5a24683990ae94406 14-Aug-2015 Christopher Wiley <wiley@google.com> Generate DBus proxies and adaptors separately

Enable daemons exposing an interface over DBus to easily
build client libraries. Now daemons can write rules like:

include $(CLEAR_VARS)
LOCAL_MODULE := libdbus-binding-example-client
LOCAL_DBUS_PROXY_PREFIX := dbus-example-example
LOCAL_SRC_FILES := \
dbus_bindings/org.chromium.Example.Manager.dbus.xml \
dbus_bindings/dbus-service-config.json
include $(BUILD_SHARED_LIBRARY)

to expose a client library.

While here, add support for generating independent adaptor header
files on a per interface basis.

Bug: 22608897
Change-Id: I011f9afc234811c31e445898321c2731c482fa77
/build/make/core/definitions.mk
f526c169efd3da99e2fa01d76e4efec0f2f4f36a 18-Aug-2015 Ying Wang <wangying@android.com> am c3dcb6c0: Merge "Consolidate the nanopb-c and regular protobuf build rules."

* commit 'c3dcb6c06bd2fbe816a918e9c3b099669bbeb5b5':
Consolidate the nanopb-c and regular protobuf build rules.
c3dcb6c06bd2fbe816a918e9c3b099669bbeb5b5 18-Aug-2015 Ying Wang <wangying@android.com> Merge "Consolidate the nanopb-c and regular protobuf build rules."
b28ed234aa2c2b9b2b0c3e1f6146a21a196d6446 07-Apr-2015 Ying Wang <wangying@google.com> Consolidate the nanopb-c and regular protobuf build rules.

Bug: 20093047
Change-Id: I38ebd748aacce6d215403da481ad04833810a995
/build/make/core/definitions.mk
1b14846717876e8e6372ffc82f0874925fcacbf7 18-Aug-2015 Dan Willemsen <dwillemsen@google.com> am 48d95e75: am 05d97fe7: Merge "Remove legacy windows platform build support"

* commit '48d95e752536dc7a81c141e435e8a90b7929cf02':
Remove legacy windows platform build support
48d95e752536dc7a81c141e435e8a90b7929cf02 18-Aug-2015 Dan Willemsen <dwillemsen@google.com> am 05d97fe7: Merge "Remove legacy windows platform build support"

* commit '05d97fe723ea376edb5fe6b12535485311a32418':
Remove legacy windows platform build support
145ae32069d830d9318b61a996633126141c25a7 13-Aug-2015 Dan Willemsen <dwillemsen@google.com> Remove legacy windows platform build support

We still support HOST_OS=windows for the SDK host tools cross-builds, but
that's only when USE_MINGW is set when running under linux.

Change-Id: I37da87dc9fbbd69ba10ce4d7f2668ab3f6482d92
/build/make/core/definitions.mk
9d1eaaea61ff5942d6261185de1bdaad3a4b57e8 15-Aug-2015 Yang Ni <yangni@google.com> am dcfb0c80: am 36600a6b: Merge "Include target api version in build system for rscpp."

* commit 'dcfb0c8018ec9e81fa79f3251a3d49a4cc90ddf4':
Include target api version in build system for rscpp.
dcfb0c8018ec9e81fa79f3251a3d49a4cc90ddf4 14-Aug-2015 Yang Ni <yangni@google.com> am 36600a6b: Merge "Include target api version in build system for rscpp."

* commit '36600a6bf9b3b79327785cd740a909d3920d6519':
Include target api version in build system for rscpp.
4796a8c5248340ec8eca59f58406b9fc1583376e 14-Aug-2015 Noah Presler <noahp@google.com> Include target api version in build system for rscpp.

b/23161320

Change-Id: Ibc23309abed092e7648168fbf4b80891a44929a6
/build/make/core/definitions.mk
544fabcef08bbf0dc3345967cb7f29af9c8205a6 07-Aug-2015 Dan Willemsen <dwillemsen@google.com> am b8331622: am 46ed451d: Merge "build: Load makefiles in the same order with Make 4.0"

* commit 'b8331622962be9d044eedce0aa1dff33ca1c5b16':
build: Load makefiles in the same order with Make 4.0
b8331622962be9d044eedce0aa1dff33ca1c5b16 07-Aug-2015 Dan Willemsen <dwillemsen@google.com> am 46ed451d: Merge "build: Load makefiles in the same order with Make 4.0"

* commit '46ed451d12272edcb0ada9a8e0ec1f5f6e340ff8':
build: Load makefiles in the same order with Make 4.0
46ed451d12272edcb0ada9a8e0ec1f5f6e340ff8 07-Aug-2015 Dan Willemsen <dwillemsen@google.com> Merge "build: Load makefiles in the same order with Make 4.0"
ec224d5072f4af2b01aa0e4f06b161246054b028 07-Aug-2015 Dan Willemsen <dwillemsen@google.com> build: Load makefiles in the same order with Make 4.0

Make 4.0 (and Kati) removed the implicit sort from the $(wildcard)
function. In order to ensure that makefiles are always loaded in the
same order, and an explicit sort.

This shouldn't matter, but some makefiles are modifying variables used
by siblings (LLVM_ROOT_PATH under frameworks/compile). In this case, the
path value still pointed to the same path, it just had extra '..'
references, and was enough to cause the binaries to be different.

Change-Id: Ief6551f999351ee2c193275aaae426dc064f8b34
/build/make/core/definitions.mk
a3dbe51f428f9202a00935cdb708987f3058da60 05-Aug-2015 Christopher Wiley <wiley@google.com> resolved conflicts for merge of 7d1be400 to mnc-dev-plus-aosp

Change-Id: Ifc2b669bc573f059f35085d11693ea3d2cac11ec
7d1be4004725dff2043928268f2ad7d8db23633c 05-Aug-2015 Christopher Wiley <wiley@google.com> am 5923fcd0: Merge "Add build rules to generate native DBus interfaces"

* commit '5923fcd02131abfd1bc8f39704edc6c7e8100154':
Add build rules to generate native DBus interfaces
5923fcd02131abfd1bc8f39704edc6c7e8100154 05-Aug-2015 Christopher Wiley <wiley@google.com> Merge "Add build rules to generate native DBus interfaces"
6eed5fc703dbc89dff8715e16c21f402d139189d 04-Aug-2015 Ying Wang <wangying@google.com> am bd555f15: resolved conflicts for merge of d86f39ca to stage-aosp-master

* commit 'bd555f1523ec3faafe1e3c6cefce9fe0c96090c1':
Ignore .*.java files when collecting .java files.
bd555f1523ec3faafe1e3c6cefce9fe0c96090c1 04-Aug-2015 Ying Wang <wangying@google.com> resolved conflicts for merge of d86f39ca to stage-aosp-master

Change-Id: Ifceb6705eeaaacc9f49788bc0e37a27e398beef0
4aedea90e8e843b53ea9c6bac02d09fb041cf6db 04-Aug-2015 Ying Wang <wangying@google.com> Ignore .*.java files when collecting .java files.

Bug: 22934689
Change-Id: I6c9cc8f37d09eb190946e596e5d1ba0c3b318088
/build/make/core/definitions.mk
bc2be461e45023ddeee35696d43b930206cb34af 30-Jul-2015 Christopher Wiley <wiley@google.com> Add build rules to generate native DBus interfaces

With this patch, we can now write Android makefiles like:

include $(CLEAR_VARS)
LOCAL_MODULE := dbus-binding-example
LOCAL_SRC_FILES := main.cpp \
dbus-service-config.json \
org.example.Daemon.Command.dbus.xml \
org.example.Daemon.Manager.dbus.xml
include $(BUILD_EXECUTABLE)

This will cause header files defining native DBus interfaces
to be generated. These can be included from main.cpp to
easily expose object oriented interface over DBus.

Bug: 22608897
Change-Id: Ic4304ac8de77de74d6955ed17789e5477be9a53e
/build/make/core/definitions.mk
72a8e48b56483c731950de1e29adf4a23b3d5f6a 30-Jul-2015 Ying Wang <wangying@android.com> am ac6e6b34: am 0c0b2e65: Merge "Use unmodified MAKECMDGOALS in ninja.mk."

* commit 'ac6e6b347b49b4c15df1f1b2869f2c386f2755d6':
Use unmodified MAKECMDGOALS in ninja.mk.
ac6e6b347b49b4c15df1f1b2869f2c386f2755d6 30-Jul-2015 Ying Wang <wangying@android.com> am 0c0b2e65: Merge "Use unmodified MAKECMDGOALS in ninja.mk."

* commit '0c0b2e659fe52dc1901677b74dc390c52b1b5e3b':
Use unmodified MAKECMDGOALS in ninja.mk.
bb1da5e614a26fb9d973c88db2c56a1f294f332d 29-Jul-2015 Ying Wang <wangying@google.com> Use unmodified MAKECMDGOALS in ninja.mk.

The build system removes targets like "PRODUCT-full-eng" from
MAKECMDGOALS in build/core/product_config.mk.
Without this change, such target isn't passed to kati.

Change-Id: I0b3949ed1f5557445d7f5d5bd59b7875c0b2ea7f
/build/make/core/definitions.mk
6c4176e2d04113f2bfbc2c677e7f37ab799718d9 23-Jul-2015 Ying Wang <wangying@android.com> am 8b4d1432: am cd7dfdb4: Merge "Cleanups."

* commit '8b4d1432395733db45e2dfaeee24fe44d3c49bbe':
Cleanups.
8d9dfa3d9b3874ef03df93e3bac9620a7ccb0d43 23-Jul-2015 Colin Cross <ccross@android.com> resolved conflicts for merge of 8c25fd56 to mnc-dev-plus-aosp

Change-Id: I318ce3d7bbfbcaf849a36543662f4c63b7377927
8b4d1432395733db45e2dfaeee24fe44d3c49bbe 22-Jul-2015 Ying Wang <wangying@android.com> am cd7dfdb4: Merge "Cleanups."

* commit 'cd7dfdb4bf3f7d431d2a37908c550a83a282bf22':
Cleanups.
bbd47556477369da070be7879b45bc912a427f3a 22-Jul-2015 Ying Wang <wangying@google.com> Cleanups.

- Deleted unused functions in definitions.mk.
- lint is never fully functional in the platform source tree.
- Retire LOCAL_DIST_BUNDLED_BINARIES: now the build system/framework
supports JNI embedded in apk.

Change-Id: I6314cb20d1544c704ccbc4c1f9cccb9c54fb5a51
/build/make/core/definitions.mk
8c25fd565ae9d8a8a3e739bae74b4a374bfe6c85 21-Jul-2015 Colin Cross <ccross@android.com> am 1d0f6eb1: Merge "Read BUILD_NUMBER from file in rules"

* commit '1d0f6eb115e4fd0093bd3d026264e579689a57c3':
Read BUILD_NUMBER from file in rules
f37b455858af45b36f14213696d2b55802a774c1 17-Jul-2015 Colin Cross <ccross@android.com> Read BUILD_NUMBER from file in rules

Using $(BUILD_NUMBER) inside a rule causes odd behavior, as the rule
is different every time make is run, but since make doesn't depend
on the command line it only ends up being built with the new value
if some other dependency has changed.

To allow ninja, which does depend on the command line, to provide the
same behavior, store the build number in out/build_number.txt, and
use a shell expansion to cat the file in rules that use it. This will
cause the rule command to stay identical between builds, while still
getting the new build number if the rule is rerun for a dependency.

Also use the same trick for BUILD_FINGERPRINT, and the date in
droiddoc rules.

Change-Id: I6c5e6b6b3ef4c613563d7f5604df0e401575ba5f
/build/make/core/definitions.mk
af7abc38fc240ea5c697b9e63a4d552f0912b773 18-Jul-2015 Colin Cross <ccross@android.com> am 0f0a6b62: am 03e74d66: Merge "Move @echo to first command in rules"

* commit '0f0a6b62bf9e06f980d86fbd6afeaad33fef03e5':
Move @echo to first command in rules
0f0a6b62bf9e06f980d86fbd6afeaad33fef03e5 18-Jul-2015 Colin Cross <ccross@android.com> am 03e74d66: Merge "Move @echo to first command in rules"

* commit '03e74d66c73558b517a56be75acc9a391c676ba8':
Move @echo to first command in rules
b6da589f608f6db6b237a9cc3f343565874b4e6f 17-Jul-2015 Colin Cross <ccross@android.com> Move @echo to first command in rules

Move the @echo command that prints the rule description to be the
first command in each rule so that the kati tool can find it to
use as a ninja rule description.

Change-Id: I90f27c35bb719d327a7f2109f8d00d3589082f19
/build/make/core/definitions.mk
c2231e70e38af3c85daafbcb24d7954bd3cbef78 16-Jul-2015 Ying Wang <wangying@google.com> am e8ecab8d: Merge "Don\'t uncompress/page-align the jni libraries in apps_only build." into mnc-dev

* commit 'e8ecab8d099f465d527f7bc0fbd04f26ac477a93':
Don't uncompress/page-align the jni libraries in apps_only build.
1f8964d388265672b3fefc904c6cd61b0de70fc9 16-Jul-2015 Ying Wang <wangying@google.com> Don't uncompress/page-align the jni libraries in apps_only build.

Don't uncompress/page-align the jni libraries in apps_only build,
because the apk may be run on older platforms that don't support loading
jni directly from apk.
When prebuilt apks are installed to platform build, the build system
will automatically uncompress/page-align the prebuit apks in M and
downstream, so no need to uncompress/page-align in the apps_only build
either.

Bug: 22491084
Change-Id: I67e977b2592800ae467450592069843b4e5fc466
/build/make/core/definitions.mk
436a2fb9e3613bacbac16c1cafb1de713ba92bda 15-Jul-2015 Evgenii Stepanov <eugenis@google.com> am 275e3c8c: am 2d0ec893: Merge "Use a different linker for ASan binaries."

* commit '275e3c8c105e5702b25868f80983c82c668e5664':
Use a different linker for ASan binaries.
275e3c8c105e5702b25868f80983c82c668e5664 15-Jul-2015 Evgenii Stepanov <eugenis@google.com> am 2d0ec893: Merge "Use a different linker for ASan binaries."

* commit '2d0ec89357e29138abc28f65876e4aaa208f961c':
Use a different linker for ASan binaries.
8f5e67a98c2ec05bd0c966f75222bc2bd52caf5b 11-Jul-2015 Evgenii Stepanov <eugenis@google.com> Use a different linker for ASan binaries.

Another change in bionic/linker adds linker_asan/linker_asan64 that
know where to find ASan shared libraries.
Also, include linker_asan to the required packages list when building
for ASan.

Change-Id: I8ebe7c0091bbeb0c135708a891d33d9844373d37
/build/make/core/definitions.mk
1f59fcb23d5f126ce366ca540c9f3611ef77b37b 04-Jul-2015 Ying Wang <wangying@google.com> am 8f908ade: am 2e26f896: Merge "Simplify LOCAL_NO_CRT."

* commit '8f908ade58fd21d5bb27b7a42f8f07553c237df6':
Simplify LOCAL_NO_CRT.
8f908ade58fd21d5bb27b7a42f8f07553c237df6 03-Jul-2015 Ying Wang <wangying@google.com> am 2e26f896: Merge "Simplify LOCAL_NO_CRT."

* commit '2e26f896a65563f750f2d459d13cc8edfa705d95':
Simplify LOCAL_NO_CRT.
491fca98098c228145a4fb6baae4c81049138313 03-Jul-2015 Ying Wang <wangying@google.com> Simplify LOCAL_NO_CRT.

Change-Id: If2486e4861071df6b225fe7f387530a38f554484
/build/make/core/definitions.mk
8b36f7fcc7f1745a2dc6f2024c6b1b5fe6212450 13-Jun-2015 Dan Albert <danalbert@google.com> am 2bb996f6: am 46cb2ee3: Merge "Force some clang Werrors that *will* break things."

* commit '2bb996f6a58dd4b9e682f9c59a7dad94412bdd86':
Force some clang Werrors that *will* break things.
2bb996f6a58dd4b9e682f9c59a7dad94412bdd86 12-Jun-2015 Dan Albert <danalbert@google.com> am 46cb2ee3: Merge "Force some clang Werrors that *will* break things."

* commit '46cb2ee3cb120a1c03241e9e2aa66d76c890c486':
Force some clang Werrors that *will* break things.
6f44670ada093f4a11a343dddf0f8d0a0a8280d6 12-Jun-2015 C. Sean Young <csyoung@google.com> am cbaead4c: am 540772fa: am cf469989: Add new variable SCAN_EXCLUDE_DIRS; specifies directories to exclude when searching source tree.

* commit 'cbaead4cfe737c96c649672b6c1396c35597b5b7':
Add new variable SCAN_EXCLUDE_DIRS; specifies directories to exclude when searching source tree.
cbaead4cfe737c96c649672b6c1396c35597b5b7 12-Jun-2015 C. Sean Young <csyoung@google.com> am 540772fa: am cf469989: Add new variable SCAN_EXCLUDE_DIRS; specifies directories to exclude when searching source tree.

* commit '540772fa2287e63a0c745229fb72b78903c9cd70':
Add new variable SCAN_EXCLUDE_DIRS; specifies directories to exclude when searching source tree.
d1600411495c0bd52dd0f3809ed6bf0d6faca349 11-Jun-2015 Dan Albert <danalbert@google.com> Force some clang Werrors that *will* break things.

Clang is really aggressive at optimizing a handful of cases (read:
clang will ruin your day some if you write bad code). Fortunately, it
also emits a warning when it's about to do this.

To prevent anyone from suffering from these optimizations, make these
warnings errors and make them impossible to disable.

Change-Id: I5e10bb0fc2ca23190017da716b3b84635577a0bd
/build/make/core/definitions.mk
6784cae413a757fc5516cfc344eaf435c6113170 02-Jun-2015 Adrian Roos <roosa@google.com> Switch build to stricter aapt symbol generation

Prevents aapt from generating java symbols for strings that don't have
a default localization.

Bug: 21537397
Change-Id: I2f17397e33d823045f7dcff02e3d0817f3f81849
/build/make/core/definitions.mk
cf4699895ad99b83a24e376007750e2c2c0502f6 09-Jun-2015 C. Sean Young <csyoung@google.com> Add new variable SCAN_EXCLUDE_DIRS; specifies directories to exclude when searching source tree.

These directories are excluded in addition to OUT_DIR.
This can be useful if your build system has other output directories
beyond what OUT_DIR is set to.

Change-Id: I6d98a85bcc8c89279e939406a7fec32547e8922f
/build/make/core/definitions.mk
72bced8a758a3a8427768d97e6d763f6a706d2b1 04-Jun-2015 Dimitry Ivanov <dimitry@google.com> Merge changes from topic 'prebuilt-open-from-apk' into mnc-dev

* changes:
Uncompress .so files before signing the apk.
Don't extract jni from prebuilt apks.
b518c3ec0bcd2d874be19fa4717262ad771fcc9c 20-May-2015 Yohann Roussel <yroussel@google.com> [DO NOT MERGE] Add support for RMTYPEDEF with Jack

Bug: 21099584

(cherry-picked from commit 5b2c6e26dbda66a2245f987db0428c2bf2eb7c95)

Change-Id: I39aa1f24780c216e978ef743098ca7ac65b2962e
/build/make/core/definitions.mk
a9dd74c39515759599a3b01f7772de9f19325800 02-Jun-2015 Yohann Roussel <yroussel@google.com> Merge "Add support for RMTYPEDEF with Jack" into mnc-dev
1fb0152ff7bf24b565b44a57e51290f2a5430107 01-May-2015 Ying Wang <wangying@google.com> Don't extract jni from prebuilt apks.

- We don't need LOCAL_PAGE_ALIGN_JNI_SHARED_LIBRARIES now, for we always
page-align jni shared libraries and store them umcompressed.
- For prebuilt apks, we don't extract jni any more; Instead we always run
uncompress-shared-libs on them.
- For apks built from source, we still install the jni separately, because
that way multiple apks can share the same jni and it saves space.

With this change, for most prebuilt apks, we don't need to specify
LOCAL_PREBUILT_JNI_LIBS ("@lib/<abi>/foo.so") any more, for the build
system automatically replaces the embedded jni with uncompressed files;
But if a prebuilt is a fat apk (i.e. containing jni not needed by the
current product architecture), you still need LOCAL_PREBUILT_JNI_LIBS to
specify what jni to keep. Otherwise all embedded jni will be replaced with
uncompressed files, that wastes space.

Bug: 8076853
Change-Id: Ic3666dc72bf17cd293787414dd185470b365f967
/build/make/core/definitions.mk
9cc3b7572c29184d77f477df2b0376fc2f4b589a 01-Jun-2015 Ying Wang <wangying@google.com> am 91c2f705: Merge "Add /lib[64] to host binary\'s rpath."

* commit '91c2f7053d131cb9449eccfda97ec80130dbf451':
Add $ORIGIN/lib[64] to host binary's rpath.
30127bfdadee04d470e618ff55db89db281fb921 01-Jun-2015 Ying Wang <wangying@google.com> Add $ORIGIN/lib[64] to host binary's rpath.

Normally the binaries use the exsiting $ORIGIN/../lib[64] with binaries
in the bin subdirectory;
For historical reason the binaries in the SDK package don't have a bin
subdirectory. This workaround enables them to work in the existing SDK
directory structure.

Bug: 21301578
Change-Id: Ibebfbfb8b30e81e7bbaf13a21bb205f3f0282d24
(cherry-pick from commit 4fe7bfd373d99dedfd2e63135da5189478bb0138)
/build/make/core/definitions.mk
4fe7bfd373d99dedfd2e63135da5189478bb0138 01-Jun-2015 Ying Wang <wangying@google.com> Add $ORIGIN/lib[64] to host binary's rpath.

Normally the binaries use the exsiting $ORIGIN/../lib[64] with binaries
in the bin subdirectory;
For historical reason the binaries in the SDK package don't have a bin
subdirectory. This workaround enables them to work in the exsiting SDK
directory structure.

Bug: 21301578
Change-Id: Ibebfbfb8b30e81e7bbaf13a21bb205f3f0282d24
/build/make/core/definitions.mk
5b2c6e26dbda66a2245f987db0428c2bf2eb7c95 20-May-2015 Yohann Roussel <yroussel@google.com> Add support for RMTYPEDEF with Jack

Bug: 21099584
Change-Id: I39aa1f24780c216e978ef743098ca7ac65b2962e
/build/make/core/definitions.mk
f09e59eb52209eaa83ab1307609c5cc93633b355 08-Sep-2014 Yohann Roussel <yroussel@google.com> [DO NOT MERGE] Compile using Jack.

This allows to compile dex targeted java sources using Jack and Jill.
Default is still to compile with the legacy toolchain. Default can be
switched to the new toolchain by setting environement variable:
export ANDROID_COMPILE_WITH_JACK=true
Toolchain can also be forced for one module by defining
LOCAL_JACK_ENABLED:=full # disabled, full, incremental
in the mk portion defining the module.

Jack execution environement can be controlled with:

Global variable ANDROID_JACK_VM allow to change the jvm executing Jack.
Global variable ANDROID_JACK_VM_ARGS allows to change default args given
to the jvm.
Global variable ANDROID_JACK_EXTRA_ARGS allows to define some default args
to give to Jack

LOCAL_JACK_VM_ARGS allows to override default args given to the jvm for
the module.
LOCAL_JACK_EXTRA_ARGS allows to override default args passed to Jack.

This includes cherry-picks of the following changes:
b4c49cba57dafdcdfb693a549c5a1dc1beb71c25
22c3fa6d73adcf14b38c7cf03446d4e2a892f682
138768c1bbb49d549c4b14281fa5f0bffac7d933
5dd3e1d31293aaaae7c0c213743a7ca77d2dd688
83d5d040479e09a3dea6b7f88ca9a57c4ae984ac
8bc90fd2d6ccf70b65d2d3aad22b0453b86a262d
140274707e31c9585aa28b0de2f1418c64ecd272
0fbc9ff2a2eed243aabaa75e911e55c4cf4b8d4c
833b427d72c91c1d1b7f8ac99fb87a6742eb6f43
f9a27f45b49f670c0258c1b6c19056ae85ac1e45
2809666941aceea4af65ec6f9cea8cce1c1392ed
37822c443d3d2ba88dd009c994f088906a0f5568
c6b44d43c38b80a52ed9ade7f9b503685dd129a7
d2a76c14bf60f45a4bf19721a09a10f758c42a66
06744f60fc48d0a33bd538497e77b624adee7d75
95573d5036e3de1ff26d1a9fc9e832c1b0a476a1
b821391614896e6156ffa3e4c2b0f4aef7e80793
2794e7b5824ba1ea5687c7dcaaf7c7062edfa2bb
801f2c44d0a919284c72eca2be708aedb3a79d88
c76d99dca10bd41a30cbfce4699866716a1d4eaf
f528e132d60fc8c982e41c242017beb6d4f7df76
76a5e0bd1abc19d9d5664a59b9602bb24e15c259
e25b3984ff5c74aa2a49d14b7df7aa9527096c32 Partially, only Jack related parts werekept
ec46a3b71f2746ec209d60ca03f6129d5b129f75
abee3a9f4171a7aaf39c743e7032721b02f43f07
77cbe10fd9c27747f98825f4923a0cfc65b28faf
daf07db4cd5d10b706164904a28323e6223b8aa3
b6bfb5893a64dc23dd4dbcbcbe62fe885bd68632

Ie all Jack related changes untill
b6bfb5893a64dc23dd4dbcbcbe62fe885bd68632
except
a96cc59ab508c1c803c15f4e5f22ab2415b6ac26 "Use Jack by default"

Change-Id: If9d47ef1c4fd1e6765ad2a47d816c1ad3cfab0e3
/build/make/core/definitions.mk
90598cb70c3a6e65223f02c4104e823024caf693 08-May-2015 Ying Wang <wangying@google.com> Cleaned the outdated incrementaljavac.

Nobody is using this feature and now we switched to jack.

Change-Id: I749b486eb347cbf3ee7b107565fc800eeb238c44
/build/make/core/definitions.mk
884738e4a67d1eccb1d8225239a3e836a84f444c 08-May-2015 Ying Wang <wangying@google.com> Revert "Fix and cleanup."

This reverts commit f28bad5227dd566395e458b5266e716d7fa5f958.

Change-Id: Ib64936457a1236fabbe7c6b9c56f52ef650342e7
/build/make/core/definitions.mk
f28bad5227dd566395e458b5266e716d7fa5f958 08-May-2015 Ying Wang <wangying@google.com> Fix and cleanup.

- Detect java-source-list before transforming to java-source-list-uniq.
This fixes non-fatal errors in build log like:
/bin/bash:
out/target/common/obj/APPS/android.core.tests.libcore.package.tzdata_intermediates/classes/java-source-list:
No such file or directory
- Cleaned the outdated incrementaljavac. Nobody is using this feature
and now we switched to jack.

Change-Id: If1adb9b5820d9b295a11984c0f170f9a7ff4de7b
/build/make/core/definitions.mk
97dfa3177d9594f9691424052b2a85befeb0b3d8 04-May-2015 Ying Wang <wangying@google.com> Revert "Don't extract jni from prebuilt apks."

This reverts commit 3797466fbd31cc3ca5a1eddea64e7fdf0921ea67.

Bug: 20810492
Bug: 20811499
Change-Id: Ic922d9daccc4550db489c0f3d4ad6b4ff85b5e60
/build/make/core/definitions.mk
3797466fbd31cc3ca5a1eddea64e7fdf0921ea67 01-May-2015 Ying Wang <wangying@google.com> Don't extract jni from prebuilt apks.

- We don't need LOCAL_PAGE_ALIGN_JNI_SHARED_LIBRARIES now, for we always
page-align jni shared libraries and store them umcompressed.
- For prebuilt apks, we don't extract jni any more; Instead we always run
uncompress-shared-libs on them.
- For apks built from source, we still install the jni separately, because
that way multiple apks can share the same jni and it saves space.

With this change, for most prebuilt apks, we don't need to specify
LOCAL_PREBUILT_JNI_LIBS ("@lib/<abi>/foo.so") any more, for the build
system automatically replaces the embedded jni with uncompressed files;
But if a prebuilt is a fat apk (i.e. containing jni not needed by the
current product architecture), you still need LOCAL_PREBUILT_JNI_LIBS to
specify what jni to keep. Otherwise all embedded jni will be replaced with
uncompressed files, that wastes space.

Bug: 8076853
Change-Id: Icf07e0998ac3602e6e05e80fed836fbafca33e01
/build/make/core/definitions.mk
be55caf2889378f5471d5cc8b840f000f0d26f79 24-Apr-2015 Dmitriy Ivanov <dimitry@google.com> am 6f2935dc: am dabf96ab: am c84b3a78: am 648f1b66: Merge "Pack relocation tables for dynamic executables"

* commit '6f2935dc1432a38e149498b6efbd43ed9aceb827':
Pack relocation tables for dynamic executables
4c2d1a64fb49e706a8c7877bb40212ada78d25d7 21-Apr-2015 Dmitriy Ivanov <dimitry@google.com> Pack relocation tables for dynamic executables

Add replocation-packer step for dynmic executables.

Enable it by default for arm and arm64 platforms.

Bug: http://b/18051137
Change-Id: I0c88fd31595bcea62a087f219acb9ecf9c80f2e5
/build/make/core/definitions.mk
bc83d0bb6820390edd19e13d75d3c9ec352415d1 23-Apr-2015 Dimitry Ivanov <dimitry@google.com> am 893ed24d: am 387a9fee: am 941d61de: am 1ff47c7f: Merge "Revert "Pack relocation tables for all dynamic executables""

* commit '893ed24dd7cec9b560fe46862b3635efa327ec65':
Revert "Pack relocation tables for all dynamic executables"
1eca10fa9d3bce9a62ae882c995052974db7b3c3 23-Apr-2015 Dimitry Ivanov <dimitry@google.com> Revert "Pack relocation tables for all dynamic executables"

This reverts commit e7a1b8a0c6d5f56e415345a0aceef3afe5ff5eff.

Change-Id: I1a2185e1c68d364941e3b3e525a8c4a7a42e0cc1
/build/make/core/definitions.mk
943381b7df0b2eee3568ea5b6c270343707d4757 23-Apr-2015 Dmitriy Ivanov <dimitry@google.com> am ff084258: am b7b27621: am 64119a7f: am ec6a9773: Merge "Pack relocation tables for all dynamic executables"

* commit 'ff084258ea53c414d724ba87f89c324056def1bd':
Pack relocation tables for all dynamic executables
e7a1b8a0c6d5f56e415345a0aceef3afe5ff5eff 21-Apr-2015 Dmitriy Ivanov <dimitry@google.com> Pack relocation tables for all dynamic executables

Bug: http://b/18051137
Change-Id: I277277d5f5eb450ef9b4a23cfec16d75d977eb89
/build/make/core/definitions.mk
e128152c4cd83f1fb7457c0769b84cea36b57567 18-Apr-2015 Nick Kralevich <nnk@google.com> am ebe3f7a5: am 700265ce: am 69b20474: Merge "Support LOCAL_PAGE_ALIGN_JNI_SHARED_LIBRARIES for prebuilt APKs"

* commit 'ebe3f7a59878d797f8f0de234f251958fee1c5af':
Support LOCAL_PAGE_ALIGN_JNI_SHARED_LIBRARIES for prebuilt APKs
5aa0223c6a355f521b31060de98a32e757498dd4 18-Apr-2015 Nick Kralevich <nnk@google.com> Support LOCAL_PAGE_ALIGN_JNI_SHARED_LIBRARIES for prebuilt APKs

If a prebuilt APK contains shared libraries and the flag
LOCAL_PAGE_ALIGN_JNI_SHARED_LIBRARIES := true is set, then
uncompress any shared libraries stored within the APK.
This allows processes to load the shared library directly from
the APK.

Bug: 20247329
Bug: 8076853
Bug: 1162500
Change-Id: Iac4db32457d9ce31eb7256410023819b44fda0a6
/build/make/core/definitions.mk
cc39abfdd2ec52669b6646b9ec0e13beb4e92150 17-Apr-2015 Dmitriy Ivanov <dimitry@google.com> am a6c44859: am bc671bc6: am e3aa1c1f: Merge "Remove LOCAL_JNI_SHARED_LIBRARIES_ZIP_OPTIONS"

* commit 'a6c44859c5344d489526641ce5a08598254da57b':
Remove LOCAL_JNI_SHARED_LIBRARIES_ZIP_OPTIONS
8f9487431ce392f3df5181c3d77f86ea8effbae6 17-Apr-2015 Dmitriy Ivanov <dimitry@google.com> Remove LOCAL_JNI_SHARED_LIBRARIES_ZIP_OPTIONS

Use LOCAL_PAGE_ALIGN_JNI_SHARED_LIBRARIES instead.

Change-Id: Id30529fbc1652d066e0008813352848b5e404ab9
/build/make/core/definitions.mk
aaf9a5b0ccb502d17fa83a119e69baec1af76d1a 09-Apr-2015 Ying Wang <wangying@google.com> Remove ancient ranlib workaround on Mac OS X.

Apparently we don't need it for Mac OS X 10.7 and above.

Change-Id: I5ee81700c16e8c66b2d5f2b373fd2d523b5ec018
/build/make/core/definitions.mk
4972d195ddb886460cd3a8de6c101f7a0ccd1096 09-Apr-2015 Ying Wang <wangying@google.com> Remove ancient ranlib workaround on Mac OS X.

Apparently we don't need it for Mac OS X 10.7 and above.

Change-Id: I5ee81700c16e8c66b2d5f2b373fd2d523b5ec018
/build/make/core/definitions.mk
d9509e970c6314ca4702c0d30022e3fe49a867f3 09-Apr-2015 Ying Wang <wangying@google.com> resolved conflicts for merge of 133415d5 to master

Change-Id: Iba6c1dd40e7a4c8058e7100f03296c8f72a2c949
c45a47b5f365e1bada5c981240bfaa95ce3ff422 08-Apr-2015 Ying Wang <wangying@google.com> Better way to package up the otatools-package.

With this, you can easily add more executables, jars or shared libraries
to the package. Also now it automatically takes care of
32-bit-v.s.-64-bit library issue.

Change-Id: I5afe00fadc978d0da229b192eca1a4b1c149764e
/build/make/core/definitions.mk
faeb693174668ebb3387dab707c0d46f58be5e5d 07-Apr-2015 Ying Wang <wangying@google.com> Consolidate the nanopb-c and regular protobuf build rules.

Bug: 20093047
Change-Id: I38ebd748aacce6d215403da481ad04833810a995
/build/make/core/definitions.mk
11e923a0e545ac6935f471e1ed894a6a270cd346 04-Apr-2015 Ying Wang <wangying@google.com> am ea517854: am aacc8bb4: am 18ecae31: Merge "Convert bc depfiles to .P files."

* commit 'ea5178545bf939fb65f77cd54eba9f274512638b':
Convert bc depfiles to .P files.
b931956076b93f055ba5a6bc3f848443d57d84b0 04-Apr-2015 Ying Wang <wangying@google.com> Convert bc depfiles to .P files.

So you don't need clean step when a header file gets moved or deleted.

Change-Id: Iec0d63b89ba17c4ef0ad75f4a52b6759f2bff58a
/build/make/core/definitions.mk
b70c42079a50c6470c238239f9f7033c78aa9a04 03-Apr-2015 Ying Wang <wangying@google.com> am 5c11bd52: am 20fa9a8e: am 62003acd: Merge "Use PRIVATE_ALL_OBJECTS"

* commit '5c11bd52db5d0887196895f321bf723ca1d206c7':
Use PRIVATE_ALL_OBJECTS
854607ec49fb4a3b5c9c5f9aeca1a282aa1d5d61 03-Apr-2015 Ying Wang <wangying@google.com> Use PRIVATE_ALL_OBJECTS

Instead of the dirty $(filter) call.

Change-Id: Idd3c9be570a00dc365a08e5b4ba1cb2e1f0ce005
/build/make/core/definitions.mk
57d71306a5a4aa1e44f3795b95293836c201a35e 02-Apr-2015 Dan Albert <danalbert@google.com> am 8f7338d9: am dc8d7092: am 0064c51e: Merge "Use prebuilt libclang_rt.profile."

* commit '8f7338d9b145379ea9c51b7e551509a2d8f0f24e':
Use prebuilt libclang_rt.profile.
c74a3b4caeb9d0c3562665998695540e2ec34706 02-Apr-2015 Etan Cohen <etancohen@google.com> Merge "Merge commit '597cfdb' into merge"
343ed674e35ae0911542abe67dca3fb3a1cccf95 26-Jan-2015 Dan Albert <danalbert@google.com> Use prebuilt libclang_rt.profile.

Bug: 17574078
Change-Id: I4838cd5d125a0b2bf76aad2fdaef1ee3122687e8
/build/make/core/definitions.mk
7d1c9d312d2b71d3028dff9d77fdd60d052eb48a 01-Apr-2015 Dan Albert <danalbert@google.com> am 8985a409: am 0ea16fcc: am 60335c03: Merge "Revert "Revert "Fix the libgcc/libatomic link order."""

* commit '8985a409b75e23dcadd0cb743a344876a95eb5d8':
Revert "Revert "Fix the libgcc/libatomic link order.""
91f713a1683a6f3663326167edf4d82c524dedcb 01-Apr-2015 Dan Albert <danalbert@google.com> Revert "Revert "Fix the libgcc/libatomic link order.""

This reverts commit e440c3c07b26258139156075f0a51a9ad92eef75.
/build/make/core/definitions.mk
5c92a46ea3cbfae0e1451dadfdf016a0277b8e21 31-Mar-2015 Etan Cohen <etancohen@google.com> Merge commit '597cfdb' into merge

Change-Id: I4df718345626439ece9fdad242cccea7d6930819
c1729f3602fe12f05325bd97d7f74934b5d012db 21-Aug-2014 Ying Wang <wangying@google.com> Strip prebuilt shared library by default.

Strip prebuilt shared library but not try adding gnu debuglink.
It would fail if you try run the adding gnu debuglink command if a
prebuilt is already stripped.

Bug: 17177288
Change-Id: If5811865715c2437e45fbd329983ef1212ef0109
(cherry picked from commit bfb52a2ec199a75e1a0e4e92148af0a6323c9f46)
/build/make/core/definitions.mk
08b32584f42a4a885bcb036e83ce4498932f087f 13-Mar-2015 Ying Wang <wangying@google.com> am 4e32ac83: am dedff62c: Merge "Contain obj of ../ source files in their intermediate dir."

* commit '4e32ac834299da0c5892e9fb15777ca2cd335492':
Contain obj of ../ source files in their intermediate dir.
25c894bf70044225ec1b321ddd76557dade68ee0 12-Mar-2015 Ying Wang <wangying@google.com> am ec447f36: am 168357ae: Merge "Support .asm being compiled by yasm targeted for x86_64."

* commit 'ec447f368a0622781a0b6f95d422d30f480a24b5':
Support .asm being compiled by yasm targeted for x86_64.
597cfdb9db079994620333665db992de7c0a99a0 26-Jun-2014 Wink Saville <wink@google.com> Add support for PB_ENABLE_MALLOC in nanopb-c

There will be two version of the the nanopb-c library,
libnanopb-c-2.8.0 which doesn't support automatic malloc
and libnanopb-c-2.8.0-enable_malloc which does.

There will be two version of the the nanopb-c library,
libnanopb-c-2.8.0 which doesn't support automatic malloc
and libnanopb-c-2.8.0-enable_malloc which does.

Set LOCAL_PROTO_OPTIMIZE_TYPE=nanopb-c which doesn't support
malloc and set it to nanopb-c-enable_malloc which does.

For client code details see nanopb-api:
http://koti.kapsi.fi/jpa/nanopb/docs/reference.html

Change-Id: If238412463aabb5e1d556dfc9c464bcaf9e3333a
/build/make/core/definitions.mk
042d4dc4a10bd9701e83ef2d28408243ddb7c5ef 07-May-2014 Wink Saville <wink@google.com> nanopb-c

Change-Id: I584d0a1e228338ea4ec3e5e2875d1ed329bc37f2
/build/make/core/definitions.mk
dedff62c8e44320dec8f667e27fdcd4cdff1430d 11-Mar-2015 Ying Wang <wangying@google.com> Merge "Contain obj of ../ source files in their intermediate dir."
fb22a42d4fdd84de92114c65ec901088cf5cb966 11-Mar-2015 Ying Wang <wangying@google.com> Contain obj of ../ source files in their intermediate dir.

Previously when a file in LOCAL_SRC_FILES starts with "../", the object
file may escape out of the module's intermediate directory, because we
insert the source file's path (but not with LOCAL_PATH) to the object
file's path. Even worse when two object files escape to the same destination
and cause conflict.
This change fixes the issue by removing the "../" inside the object
files' paths. To do that, we have to set up the compilation rules for
those files one by one, instead of using the one-for-all static
pattern rules.

Bug: 19641115
Change-Id: I19f3c48ece3244fa14acb2caa609deea710840d3
/build/make/core/definitions.mk
fe1e5c3453caa43662ee5a21be74aa160fdbc628 10-Mar-2015 Ying Wang <wangying@google.com> Support .asm being compiled by yasm targeted for x86_64.

Change-Id: Ia6425c38dd2f7ad2dc697213cd61b7515b9e7aff
/build/make/core/definitions.mk
0d70cc4a721757dfdcf12278f8cf517e5759b353 06-Mar-2015 Yohann Roussel <yroussel@google.com> Merge "Allow to pass arguments to Jill"
690227763c5cea762a01997a0e112a94716e8808 05-Mar-2015 Ying Wang <wangying@google.com> am 8ed194d3: am a7c669f2: am 71c64dc1: Merge "Reorder lib paths in transform-bc-to-so to avoid build race condition."

* commit '8ed194d30a5e635c3de9e0545215e6cda9bb19d3':
Reorder lib paths in transform-bc-to-so to avoid build race condition.
bfc436969d342a023280a227d6b7072fbb133d07 05-Mar-2015 Ying Wang <wangying@google.com> Reorder lib paths in transform-bc-to-so to avoid build race condition.

We should put the NDK library path before
$(TARGET_OUT_INTERMEDIATE_LIBRARIES), so that we link against the NDK
libc/libm, instead of the platform libc/libm in
$(TARGET_OUT_INTERMEDIATE_LIBRARIES), which may still being written out,
because we don't have dependency on them.

Bug: 19613709
Change-Id: I26a8b272e38b7436bca3324246b21cd71349662b
/build/make/core/definitions.mk
801f2c44d0a919284c72eca2be708aedb3a79d88 03-Mar-2015 Yohann Roussel <yroussel@google.com> Allow to pass arguments to Jill

Bug: 19026410
Change-Id: I3f3d7c0e7f8d6cc7150ae560b8734093798e8299
/build/make/core/definitions.mk
0e36bfeb3ffc78658cda3ca6931c66fe3f5b3d3b 18-Nov-2014 Ying Wang <wangying@google.com> Use ALL_MODULES.$(m).INSTALLED in modules-for-tag-list

Previously we store tag's installed modules in a separate variable
ALL_MODULE_TAGS.$(tag). However we only record the main installed file
for a module, but omit affiliated files like .odex.
With this change, we handle the tagged module the same way as modules in
PRODUCT_PACKAGES.

Change-Id: I7972528a4df5a4ba8bc98930864da9672d32d7fe
/build/make/core/definitions.mk
c894e099d31d2a84fad10a544fb12523a80e122a 26-Feb-2015 Ying Wang <wangying@google.com> resolved conflicts for merge of 641e283f to master

Change-Id: I9c5d9dd9f0f8c9206112f4c2f773ed81c9c2f06f
dcd90831e57aa619aa53c59053ed769c45a5ddfd 26-Feb-2015 Ying Wang <wangying@google.com> Use a less freqent dummy file name: zipdummy

Previously if user has a directory with name dummy in the root of the
source tree, "zip -qd package.apk dummy" fails with:
"zip error: Nothing to do!".
This change mitigates the error.

Change-Id: I642e3bf0378e5b9911a068ecb72f795b3e92f1fe
/build/make/core/definitions.mk
7a9e38840536b291688f4e3a0989acaa56af3191 26-Feb-2015 Narayan Kamath <narayan@google.com> am 738871f6: am e886392c: am 37a44faa: Merge "Store native libs aligned to PAGE_SIZE"

* commit '738871f6eb3c372b60928e761f0dc24e46a6bba5':
Store native libs aligned to PAGE_SIZE
13e5965306212a9051772ff1d5bc3a88e5fb519a 24-Jul-2014 Dmitriy Ivanov <dimitry@google.com> Store native libs aligned to PAGE_SIZE

- Add a new flag to zipalign (-p) that page aligns shared
libraries (zip entries ending with ".so") in the archive.

- Add a new build variable LOCAL_PAGE_ALIGN_SHARED_LIBRARIES
to turn on this behaviour in zipalign.

- Add a new LOCAL_JNI_SHARED_LIBRARIES_ZIP_OPTIONS to control
zip behaviour.

Bug: 8076853
Bug: 19330157

Co-Authored-By: Simon Baldwin <simonb@google.com>
Co-Authored-By: Dimitry Ivanov <dimitry@google.com>
Change-Id: I1aa2c039bb2a590ae72f256acc9ba5401c2c59b1
/build/make/core/definitions.mk
b4cca8099906d065b9ea1581c7957daf76a61635 26-Feb-2015 Dan Albert <danalbert@google.com> am 9ddc52c1: am 13baa319: am 876f45e7: Merge "Make some warnings impossible to override."

* commit '9ddc52c1e4d2111346b865e72019b98cb9562d57':
Make some warnings impossible to override.
0c91fa84ff8e5f29dbe3a492fc7898eb1eb63b2a 21-Feb-2015 Dan Albert <danalbert@google.com> Make some warnings impossible to override.

These CFLAGS and CPPFLAGS will always be added last, and are
controlled by the build system. This way we can add warnings that
users are not allowed to disable.

Change-Id: Id71f69249078f62ca2687ecbf764aff0fd3a1c1b
/build/make/core/definitions.mk
37822c443d3d2ba88dd009c994f088906a0f5568 09-Jan-2015 Yohann Roussel <yroussel@google.com> Engage Jack incremental on demand

Each module may engage Jack incremental with

LOCAL_JACK_ENABLED := incremental

Include renaming of LOCAL_USE_JACK to LOCAL_JACK_ENABLED that is
now accepting 3 values "disabled", "full" and "incremental".

Change-Id: Icbff275b397bee36b29312e821f3e8d45f83fbcc
/build/make/core/definitions.mk
2809666941aceea4af65ec6f9cea8cce1c1392ed 02-Feb-2015 Yohann Roussel <yroussel@google.com> Simplify handling of ANDROID_JACK_* variables

This concerns ANDROID_JACK_VM, ANDROID_JACK_VM_ARGS and
ANDROID_JACK_EXTRA_ARGS.

Change-Id: Iba75ecaaceb09ac9607a3aee41324d9f5ae4beef
/build/make/core/definitions.mk
723db51fdb10f3c691a77148cab49f368ff82310 29-Jan-2015 Ying Wang <wangying@android.com> am 7c05897b: am e937ac81: Merge "Add new build flag LOCAL_DONT_DELETE_JAR_DIRS."

* commit '7c05897b69801e1945889a9b1a89b86bbbbbdd3a':
Add new build flag LOCAL_DONT_DELETE_JAR_DIRS.
cc93f0c87cbcd7fa00e8407315c3ee60d24abd85 28-Jan-2015 Fredrik Roubert <roubert@google.com> Add new build flag LOCAL_DONT_DELETE_JAR_DIRS.

Normally the build function initialize-package-file will delete all
class files and all directory entries from JAR files, but sometimes
external projects (eg. ICU4J) depend on having directory entries in
their JAR files.

This change adds the flag LOCAL_DONT_DELETE_JAR_DIRS (analogous to the
flag LOCAL_DONT_DELETE_JAR_META_INF) which when set will skip deletion
of directory entries in initialize-package-file.

Change-Id: I4464b947b7528fca23925affa95e4071915f04d4
/build/make/core/definitions.mk
40423825da919559cfc0def101b471f243489d6e 26-Jan-2015 Ying Wang <wangying@google.com> am 21f78782: am 1b140e16: Merge "Build hostdex on only Linux."

* commit '21f78782d5e59a58e664e9ae52f537cee314f407':
Build hostdex on only Linux.
Fix comma in $(if ...).
cfc95cf435cd9e6deabcac3c38cc8cba0272244b 25-Jan-2015 Dan Albert <danalbert@google.com> Merge "Fix comma in $(if ...)."
e481e7d4942dbff31aefcd4fae5ab8e9fe10335d 25-Jan-2015 Logan Chien <tzuhsiang.chien@gmail.com> Fix comma in $(if ...).

Change-Id: I2f9fba5b5c0384ef12ee9e5f48fa01102436a425
/build/make/core/definitions.mk
b89760a76b2c713f8e9bb4537415d35d51034ec7 25-Jan-2015 Dan Albert <danalbert@google.com> am 3723af1b: am 9ba25d6b: Merge "Enable host coverage."

* commit '3723af1b4e8de4941d7b9be569f209d88f565964':
Enable host coverage.
9ba25d6bfd983655dc9c0584887db2b6cb3be999 25-Jan-2015 Dan Albert <danalbert@google.com> Merge "Enable host coverage."
43e128acfc7ad6cbcf8d21e3e2300ce1d43ef5bd 24-Jan-2015 Dan Albert <danalbert@google.com> Enable host coverage.

Don't remember why I didn't enable this for the host when I made the
first pass, but it works just fine.

Change-Id: I0892c0bc353bf8b60b432ba9f69f97281177d41d
/build/make/core/definitions.mk
afa30df68e6914fdcc68c5f809d792db51250d4f 24-Jan-2015 Chih-Hung Hsieh <chh@google.com> am 6698ba3d: am 840bc269: Merge "Add -static to static link command, for clang."

* commit '6698ba3d6c9efebac63c224a1fb985f0a53a501a':
Add -static to static link command, for clang.
69b1fe6d1ca4a23ca26c052e52332048c53b37e0 20-Jan-2015 Chih-Hung Hsieh <chh@google.com> Add -static to static link command, for clang.

Clang driver needs -static flag, not -Bstatic,
to produce statically linked modules.
However, -static is not added if LDFLAGS contains -shared,
which is used in bionic/linker to create a shared object with static libraries.

BUG: 18008984

Change-Id: I75c3e24973ee77170285ec4c8e7aacc345722685
/build/make/core/definitions.mk
833b427d72c91c1d1b7f8ac99fb87a6742eb6f43 22-Jan-2015 Ying Wang <wangying@google.com> Explicit dependency on hostdex classes.jar.

Previously for hostdex Java libraries, we set up dependency on only
javalib.jar, which in turn is dependent on classes.jar.
But when jack is enabled there is no dependency of javalib.jar on
classes.jar. In commit b4c49cba57d classes.jar was universally added to
all host java library dependencies. That's unnecessary.

This change adds explicit dependency on classes.jar only for hostdex
modules.

On the other hand, if we switch checked module to $(full_classes_jack),
like what we did in commit 8bc90fd2d6ccf, we won't need this to fix jack
build either, because classes.jar isn't needed when you run checkbuild.

Change-Id: I92c0e4d621d266f6e6914ab2b4f20e5531af070f
/build/make/core/definitions.mk
07acdbfd32f8164c05b0035c80fe16adb5c03280 14-Jan-2015 Ying Wang <wangying@google.com> Running jarjar on Java resources.

Before this change, Java resources are added as a separate step
(add-java-resources-to-package) after dex is run, so jarjar isn't run on
the resource files.
With this change, we add Java resources immediately after we call javac,
so jarjar is run on the resource files (the module's own resource, as
well as resources carried by static Java libraries).
When we generate the final apk/jar, we use the jarjar'ed jar as the
inital pacakge file, with class files and empty folders removed.

(cherry-picked from commit 140274707e31c9585aa28b0de2f1418c64ecd272)

Bug: 18837479
Change-Id: I15ecf282bfb65fd53dd03fbd03dd4c71927c186a
/build/make/core/definitions.mk
33360dd56925276e4526f5f52c26423e2bb1a670 14-Jan-2015 Ying Wang <wangying@google.com> Running jarjar on Java resources.

Before this change, Java resources are added as a separate step
(add-java-resources-to-package) after dex is run, so jarjar isn't run on
the resource files.
With this change, we add Java resources immediately after we call javac,
so jarjar is run on the resource files (the module's own resource, as
well as resources carried by static Java libraries).
When we generate the final apk/jar, we use the jarjar'ed jar as the
inital pacakge file, with class files and empty folders removed.

When jack is enabled, in jack-java-to-dex we add the Java resources to
a temp jar using the PRIVATE_EXTRA_JAR_ARGS, and extrac the files in a
temp dir. Jack will process the resource files and output the result to
PRIVATE_JACK_INTERMEDIATES_DIR. When we package the final apk/jar, we
need to call add-carried-jack-resources to readd the resources.
(TODO: if jack can output all resources to a jar/zip file, we can use
that file as the initial package file as well.)

Bug: 18837479
Change-Id: I8d7296e30ec8d005054cf04c4f2aed6d7a0d823b
/build/make/core/definitions.mk
c1ed9796bb14cb6257b3550caac107abc7b1aa79 21-Jan-2015 Narayan Kamath <narayan@google.com> Revert "Running jarjar on Java resources."

This reverts commit 140274707e31c9585aa28b0de2f1418c64ecd272.

Breaks the build on uiautomator_compat.

Change-Id: I6d14f39e3432bf5e691027bbb8e7260e4bec8e8d
/build/make/core/definitions.mk
140274707e31c9585aa28b0de2f1418c64ecd272 14-Jan-2015 Ying Wang <wangying@google.com> Running jarjar on Java resources.

Before this change, Java resources are added as a separate step
(add-java-resources-to-package) after dex is run, so jarjar isn't run on
the resource files.
With this change, we add Java resources immediately after we call javac,
so jarjar is run on the resource files (the module's own resource, as
well as resources carried by static Java libraries).
When we generate the final apk/jar, we use the jarjar'ed jar as the
inital pacakge file, with class files and empty folders removed.

When jack is enabled, in jack-java-to-dex we add the Java resources to
a temp jar using the PRIVATE_EXTRA_JAR_ARGS, and extrac the files in a
temp dir. Jack will process the resource files and output the result to
PRIVATE_JACK_INTERMEDIATES_DIR. When we package the final apk/jar, we
need to call add-carried-jack-resources to readd the resources.
(TODO: if jack can output all resources to a jar/zip file, we can use
that file as the initial package file as well.)

Bug: 18837479
Change-Id: I15ecf282bfb65fd53dd03fbd03dd4c71927c186a
/build/make/core/definitions.mk
b515f27d6bbe7a976bd0920f031812f62bb135f7 15-Jan-2015 Yohann Roussel <yroussel@google.com> Merge "Don't exlude META-INF resources when building with Jack"
5dd3e1d31293aaaae7c0c213743a7ca77d2dd688 14-Jan-2015 Yohann Roussel <yroussel@google.com> Don't exlude META-INF resources when building with Jack

java-to-jack is not manipulating jar files, just zip files so there
are no META-INF files generated by jar in them and no reason to filter
them out. And mainly, there are valid META-INF resources in the tree
we must keep.

Bug: 8287658
Bug: 18901198
Change-Id: Ice0fafca686b8fa3bafd886076946fbb1f952fb6
/build/make/core/definitions.mk
d694dbbe09d05863cd062118d475519e01158eac 13-Jan-2015 Christopher Ferris <cferris@google.com> am b773a8d5: am edbd5fd7: Merge "Fix whole static lib handling of duplicate names."

* commit 'b773a8d517189a06c54d8ed789806ed42aa42be0':
Fix whole static lib handling of duplicate names.
44203f3316e3ba574555c75d65176df7f22417da 08-Jan-2015 Christopher Ferris <cferris@google.com> Fix whole static lib handling of duplicate names.

If LOCAL_WHOLE_STATIC_LIBRARIES contains a library that has
two files that have the same name but are in different
directories, only the first gets included.

This fix detects this case, and uses the m option to ar to force the
duplicate object to the end of the archive. After this, using the p
option gets the correct object file.

Change-Id: I2e183f48cef3c79499d4ab8ff147444611ff938b
/build/make/core/definitions.mk
22c3fa6d73adcf14b38c7cf03446d4e2a892f682 19-Nov-2014 Yohann Roussel <yroussel@google.com> Adapt to Jack and Jill Brest release

Includes cherry-picks of:
2e78d2f4263bc7c0f90d58af7014017f16aa3ce6 Jack option --import-res was renamed --import-resource
fdc913ee86fe0c45581178b901a673fdd7937e03 Update references to Jack type collison policy
8d83d1b21ec678fb9fb1c6ee643ace46d5f700ce Rename jill tmp file
8a1c98ce4ba0b4db39f274d6258b6a08bbc3ec2c Ensure that jar-arg-list is never shared
8d83d1b21ec678fb9fb1c6ee643ace46d5f700ce Remove manipulations of jack libraries

Change-Id: I3ee159d408ba5281ac15c9836dc4fd2bdeb845d3
/build/make/core/definitions.mk
75dbbb6e0f3baf1c5a356b605ce2a7ebacf66faa 04-Dec-2014 Yohann Roussel <yroussel@google.com> Merge "Compile using Jack."
e3d102807c69b1dc85ff4dfcd8c615e211701046 02-Dec-2014 Stephen Hines <srhines@google.com> am b2f55103: am 4bad2d21: Merge "Add more support for GLOBAL_CONLYFLAGS."

* commit 'b2f5510365be26e279a8d02770a9f46e57741d54':
Add more support for GLOBAL_CONLYFLAGS.
b4c49cba57dafdcdfb693a549c5a1dc1beb71c25 08-Sep-2014 Yohann Roussel <yroussel@google.com> Compile using Jack.

This allows to compile dex targeted java sources using Jack and Jill.
Default is still to compile with the legacy toolchain. Default can be
switched to the new toolchain by setting environement variable:
export ANDROID_COMPILE_WITH_JACK=true
Toolchain can also be forced for one module by defining
LOCAL_USE_JACK:=true # false
in the mk portion defining the module.

Jack execution environement can be controlled with:

Global variable ANDROID_JACK_VM allow to change the jvm executing Jack.
Global variable ANDROID_JACK_VM_ARGS allows to change default args given
to the jvm.
Global variable ANDROID_JACK_EXTRA_ARGS allows to define some default args
to give to Jack

LOCAL_JACK_VM_ARGS allows to override default args given to the jvm for
the module.
LOCAL_JACK_EXTRA_ARGS allows to override default args passed to Jack.

Change-Id: Ib81a0fd5f86a51d1e0edbb81cc791d828a05dd29
/build/make/core/definitions.mk
1568029218b3da82a3bbd3fd6dce4385db5daf5b 26-Nov-2014 Stephen Hines <srhines@google.com> Add more support for GLOBAL_CONLYFLAGS.

This will be necessary to support -std=gnu99 mode for clang 3.6, which
defaults to C11 mode (unlike prior releases that use C99).

Change-Id: Iea84582f9f12ba76b988463cbc0a20bd61042538
/build/make/core/definitions.mk
65f44b7df7065c393a2a83c0b8478c1178fbd578 21-Nov-2014 Dan Albert <danalbert@google.com> am 0951017a: am 9cef6823: Merge "Revert "Fix the libgcc/libatomic link order.""

* commit '0951017a9e6ea7760323e24d44ba8e75414d47f7':
Revert "Fix the libgcc/libatomic link order."
e440c3c07b26258139156075f0a51a9ad92eef75 20-Nov-2014 Dan Albert <danalbert@google.com> Revert "Fix the libgcc/libatomic link order."

This caused a lot of failures in the libc++ tests, since linking
libgcc.a before libc++.so means that the wrong unwinder will be used.

This patch is still correct, but I will revert for now while I find a
good way to apply it without breaking unwinding.

This reverts commit 741b36e922a09c47507b61cbfc9cd8bba029f476.

Change-Id: I57e0b89534adf5c1677dbf2f64ac750e74bd5fbf
/build/make/core/definitions.mk
84699355c86871263784fed704a669b4384a72bf 19-Nov-2014 Ying Wang <wangying@google.com> am e55efcdd: am 471e60d6: Merge "Use ALL_MODULES..INSTALLED in modules-for-tag-list"

* commit 'e55efcdde59f9f8cfc7fb0039b427cd038559c53':
Use ALL_MODULES.$(m).INSTALLED in modules-for-tag-list
634f7992f0d38c52f4b94095de7e7676eb21c97a 18-Nov-2014 Ying Wang <wangying@google.com> Use ALL_MODULES.$(m).INSTALLED in modules-for-tag-list

Previously we store tag's installed modules in a separate variable
ALL_MODULE_TAGS.$(tag). However we only record the main installed file
for a module, but omit affiliated files like .odex.
With this change, we handle the tagged module the same way as modules in
PRODUCT_PACKAGES.

Change-Id: I7972528a4df5a4ba8bc98930864da9672d32d7fe
/build/make/core/definitions.mk
8e25667f12c9ee0e396a398ed5cfd274ad792de3 18-Nov-2014 Dan Albert <danalbert@google.com> am a4ad6442: am 9b0ccb74: Merge "Fix the libgcc/libatomic link order."

* commit 'a4ad6442d6a54c9eaf771a0d4ab7f7ab9de163ac':
Fix the libgcc/libatomic link order.
9b0ccb7480a0b86d27bb6c7352b5cd5e79bfbf82 18-Nov-2014 Dan Albert <danalbert@google.com> Merge "Fix the libgcc/libatomic link order."
11798647e43030bde9dbd5b6e30793828f191bb0 18-Nov-2014 Miao Wang <miaowang@google.com> am 439458d1: am ec64b05e: Merge "Add -Wl,--hash-style=sysv flag to rs: transform-bc-to-so for compatibility lib."

* commit '439458d1c97c846cab5cd6c09f9f5195f9587ad9':
Add -Wl,--hash-style=sysv flag to rs: transform-bc-to-so for compatibility lib.
e23e8080c66eec625148a91b4c5415af6f47882a 15-Nov-2014 Miao Wang <miaowang@google.com> Add -Wl,--hash-style=sysv flag to rs: transform-bc-to-so for compatibility lib.

Bug 18395015

Change-Id: Ib9aecf347c685c8b8b725eecfbc0cec03d9b2c1b
/build/make/core/definitions.mk
cf559ed073d4de86e7e64b08ea5907ae441b7a41 14-Nov-2014 Dan Albert <danalbert@google.com> am 7d5fe242: am a05a04cc: Merge "Refactor transform-o-to-* definitions."

* commit '7d5fe24251846ef70f423f15bf941be35750c2e8':
Refactor transform-o-to-* definitions.
741b36e922a09c47507b61cbfc9cd8bba029f476 14-Nov-2014 Dan Albert <danalbert@google.com> Fix the libgcc/libatomic link order.

The previous position of libgcc.a/libatomic.a on the link line causes
the linker to prefer satisfying dependencies from these libraries from
other libraries that might include them, rather than from libgcc.a (or
libatomic.a) itself. This imposes an ABI requirement that those
intermediate shared libraries _always_ export those symbols, which is
undesirable.

Change-Id: Ib593236b475d3e98356b2b1be6f96cee2b67378f
/build/make/core/definitions.mk
e088c0d281b796694c6c0d0e761ef62d3fe287c2 13-Nov-2014 Dan Albert <danalbert@google.com> Refactor transform-o-to-* definitions.

Previously, there was one generic definition for each of the
transform-o-to-* functions in definitions.mk, and one target specific
one in each combo/TARGET_*.mk. The generic one was entirely unused,
and the target specific ones were all nearly identical.

Changing anything in these functions was tedious at best, and often
error prone. The differences between any 32-bit arch and its 64-bit
equivalent were restricted to the name of the linker, and the ARM and
MIPS definitions were identical. The few differences between ARM and
x86 looked to be compatibility for an old (ca. 2008) toolchain issue
with --gc-sections, and a bug (LDFLAGS coming first rather than
later).

To simplify things, I've moved the definitions for these out of
combo/TARGET_*.mk and back into definitions.mk. The differences
between ARM and x86 have been scrapped. Anything that really does
still need to be target specific can be handled as I have the linker:
add a TARGET_FOO variable to the given target and then add it to the
generic definition.

Change-Id: I54dc1bffc32ac39f27f0b87247dd6a6dbaf0b162
/build/make/core/definitions.mk
5778600fd05b4be0d4185bd2c8a268ada272a3e5 05-Nov-2014 Ying Wang <wangying@android.com> am 11186695: am b45f7c35: am 8683612f: Merge "definitions.mk: look for definitions.mk in device/*/build also"

* commit '111866953a95324b7ba342f92f14de2b7c35de24':
definitions.mk: look for definitions.mk in device/*/build also
b45f7c35b138c5b27f4c2528f7f699a59098809e 05-Nov-2014 Ying Wang <wangying@android.com> am 8683612f: Merge "definitions.mk: look for definitions.mk in device/*/build also"

* commit '8683612fbd15640ae59daf7ba7c36e1f2ff8e687':
definitions.mk: look for definitions.mk in device/*/build also
388c04dd6bf1555cfefce3c0b399c62409f6e1c5 28-Oct-2014 Andrew Boie <andrew.p.boie@intel.com> definitions.mk: look for definitions.mk in device/*/build also

build/core/Makefile looks for build tasks in either device/*/build/tasks
or vendor/*/build/tasks. Do the same with vendor-specific definitions.mk.

Change-Id: Ib4fd00a1d0effe8e347382a922da101ce26bf696
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
/build/make/core/definitions.mk
3cbf16092a91a8e4b9cfef3ee5e616688166d7f1 02-Oct-2014 Stephen Hines <srhines@google.com> am e77cba7b: am 2094f855: am a503fb36: PIE executables created with mingw use "mainCRTStartup" as their entry point.

* commit 'e77cba7bfd518355a2bf732d0a559dbb45b594a0':
PIE executables created with mingw use "mainCRTStartup" as their entry point.
e77cba7bfd518355a2bf732d0a559dbb45b594a0 02-Oct-2014 Stephen Hines <srhines@google.com> am 2094f855: am a503fb36: PIE executables created with mingw use "mainCRTStartup" as their entry point.

* commit '2094f855a89277320bd9533108e443e92d2dc25b':
PIE executables created with mingw use "mainCRTStartup" as their entry point.
0d07cfeaf8c36c64a678dcb00f9b078a5d9b14ee 02-Oct-2014 Stephen Hines <srhines@google.com> am a503fb36: PIE executables created with mingw use "mainCRTStartup" as their entry point.

* commit 'a503fb362918363b28637b487eba83e9ad647ceb':
PIE executables created with mingw use "mainCRTStartup" as their entry point.
a503fb362918363b28637b487eba83e9ad647ceb 02-Oct-2014 Stephen Hines <srhines@google.com> PIE executables created with mingw use "mainCRTStartup" as their entry point.

Bug: 14416410

Our linker uses "start" as the primary entry point, so we need to adjust this
for mingw-based Windows compiles, or nothing will execute correctly.

Change-Id: I6e99f43e075ef9f00500099ce34ec4425c996454
/build/make/core/definitions.mk
c888b2d106692b46c4cea44945dbae2e64573816 29-Sep-2014 Ying Wang <wangying@google.com> am 583ec9da: am e84eb7e3: am a6a6c35c: Return "none" if no matching arch found

* commit '583ec9da3e8d6d8ebf83fdba078cba2a0d24af5c':
Return "none" if no matching arch found
c8114817349078cbf236b27bb07838a58ab2fd0e 26-Sep-2014 Ying Wang <wangying@google.com> am a6a6c35c: Return "none" if no matching arch found

* commit 'a6a6c35c3afdf9c4bcd05ea5e4c40983e7e49246':
Return "none" if no matching arch found
583ec9da3e8d6d8ebf83fdba078cba2a0d24af5c 26-Sep-2014 Ying Wang <wangying@google.com> am e84eb7e3: am a6a6c35c: Return "none" if no matching arch found

* commit 'e84eb7e3e1dd3d58af8ebc62e3b9e20dab9275bb':
Return "none" if no matching arch found
a6a6c35c3afdf9c4bcd05ea5e4c40983e7e49246 26-Sep-2014 Ying Wang <wangying@google.com> Return "none" if no matching arch found

So result of get-prebuilt-src-arch can be passed to
LOCAL_MODULE_TARGET_ARCH, which takes empty string as "any" actually.

Change-Id: I916c9738ccce4a94ac084fb4141d54659e896a1f
/build/make/core/definitions.mk
30333338ced038092f29f512b6eb61335f654926 04-Sep-2014 Tim Murray <timmurray@google.com> am 3a20a171: am 965fa22d: am 039cd7e0: Merge "Add LOCAL_NO_FPIE."

* commit '3a20a171110cbdb2d92369f452a41e95a2affdd6':
Add LOCAL_NO_FPIE.
3a20a171110cbdb2d92369f452a41e95a2affdd6 04-Sep-2014 Tim Murray <timmurray@google.com> am 965fa22d: am 039cd7e0: Merge "Add LOCAL_NO_FPIE."

* commit '965fa22d85aa1af3974c5f32e3c3325e66781f73':
Add LOCAL_NO_FPIE.
2fa90263b58e92094617725cc85b2b4b22db3f84 04-Sep-2014 Ying Wang <wangying@google.com> Merge "Strip prebuilt shared library by default."
595d0dbd5bbf18107ee2f18c06b033e3aef9374c 04-Sep-2014 Tim Murray <timmurray@google.com> Add LOCAL_NO_FPIE.

Not all executables should be built with -pie.

bug 15814177

Change-Id: I402e8a531866b507ee80a0bf677f9f3551ca7693
/build/make/core/definitions.mk
bfb52a2ec199a75e1a0e4e92148af0a6323c9f46 21-Aug-2014 Ying Wang <wangying@google.com> Strip prebuilt shared library by default.

Strip prebuilt shared library but not try adding gnu debuglink.
It would fail if you try run the adding gnu debuglink command if a
prebuilt is already stripped.

Bug: 17177288
Change-Id: If5811865715c2437e45fbd329983ef1212ef0109
/build/make/core/definitions.mk
2138f5ecbc2fd83dce52127c5fd2d9e5b8d505a5 03-Sep-2014 Stephen Hines <srhines@google.com> am 52626d2a: Fix build breakage due to incorrect bcc_compat RS_TRIPLE.

* commit '52626d2a7b4767905e8a369ddc8316c1290ad156':
Fix build breakage due to incorrect bcc_compat RS_TRIPLE.
5c72544d48362a24d25eaad608e371dd30afd56f 03-Sep-2014 Stephen Hines <srhines@google.com> Fix build breakage due to incorrect bcc_compat RS_TRIPLE.

Bug: 17333374
Change-Id: I13582ce0cde86f7b3728aa4f45a5197438d65a2d
(cherry picked from commit 52626d2a7b4767905e8a369ddc8316c1290ad156)
/build/make/core/definitions.mk
52626d2a7b4767905e8a369ddc8316c1290ad156 03-Sep-2014 Stephen Hines <srhines@google.com> Fix build breakage due to incorrect bcc_compat RS_TRIPLE.

Bug: 17333374
Change-Id: I13582ce0cde86f7b3728aa4f45a5197438d65a2d
/build/make/core/definitions.mk
c3733c77657b68675494b053034e0b36cd8133e8 20-Aug-2014 Dan Albert <danalbert@google.com> am 467f8f32: am df73a5fa: Merge "Performance improvement for whole static libs"

* commit '467f8f326b979b43b6be48d5294f0627cf8fdd71':
Performance improvement for whole static libs
e0f44ac25de925759eb5d615e403f8db5a06f5e0 23-May-2014 Dan Albert <danalbert@google.com> Performance improvement for whole static libs

Improves performance for LOCAL_WHOLE_STATIC_LIBS by copying the first .a
to the new .a rather than extracting and recreating

Change-Id: Iecdb5e4bb2ce987bb41a70c3393d18a6d72ae689
/build/make/core/definitions.mk
0a5db68c016ee03a5b5293a03b96a1ceef6f1cc1 14-Aug-2014 Ying Wang <wangying@google.com> am 66a2aa21: am 9c80e8a5: Merge "Apply TARGET_GLOBAL_LDFLAGS to transform-bc-to-so"

* commit '66a2aa2180ca161bf73d2554972f9952b8e1bb7d':
Apply TARGET_GLOBAL_LDFLAGS to transform-bc-to-so
bfd651600ca10979a6ccabb95a93fad7fba35158 14-Aug-2014 Ying Wang <wangying@google.com> Apply TARGET_GLOBAL_LDFLAGS to transform-bc-to-so

This fixes mips unbundled build since we switched to mips64el toolchain
for both mips and mips64.
TODO: multilib build support.

Change-Id: I7add92d2cecfc3ab739785ceef6700240a25093a
/build/make/core/definitions.mk
903e2dd014bd479816e5b11fe5f985068549edc9 14-Aug-2014 Ying Wang <wangying@google.com> Apply TARGET_GLOBAL_LDFLAGS to transform-bc-to-so

This fixes mips unbundled build since we switched to mips64el toolchain
for both mips and mips64.
TODO: multilib build support.

Change-Id: I7add92d2cecfc3ab739785ceef6700240a25093a
/build/make/core/definitions.mk
04cf31597021af3cd045dd9c50d94a87d0394023 05-Aug-2014 Dan Albert <danalbert@google.com> Inhibit implicit -Bsymolic in -shared.

Bug: 16853291

Change-Id: Id70488b077256a70137c4417f21be2c2d1d4341c
(cherry picked from commit b6bb71b85d506dcc4763290d72c4168afd541f7d)
/build/make/core/definitions.mk
908ab54fda172baa9a646259fafd8af35290f0a6 06-Aug-2014 Dan Albert <danalbert@google.com> Fix uses of -fPIC and -fPIE.

We've been using -fPIC and -fPIE together in the global cflags all this
time. These options are incompatible. The only reason we haven't been
hit by this before is because of the forced -Bsymbolic in GCC. To fix
this, pass -fpic when compiling objects for shared libraries and -fpie
when compiling objects for executables. For static libraries, also use
-fpic. We have to do this because static libraries might be included in
either a shared library or an executable. Code compiled with -fpie
cannot be included in a shared library, but code compiled with -fpic
may be included in an executable.

We've also been using -fpic and -fPIC together. These are different
options, and only the latter will take effect.
http://stackoverflow.com/a/967010

The final thing this fixes is that we had -f(PIC|PIE) flags being passed
to link commands. These are compile time flags, and don't do anything at
link time.

Bug: 16823325
Change-Id: Ic76f47e63dc2c81b7e1a8058bae1b3dc8565d606
(cherry picked from commit 4803ce2696950f8c27c83de4fe46ae196f35af16)
/build/make/core/definitions.mk
9d6aa51a0f4bce097b595a6df7cbb09a36c5bf67 08-Aug-2014 Dan Albert <danalbert@google.com> am e99d8947: am cbc742a1: Merge "Inhibit implicit -Bsymolic in -shared."

* commit 'e99d8947c09731d71db7e95a280cf81f51f4049a':
Inhibit implicit -Bsymolic in -shared.
d423e5fbdb15b2077a2f93281f43506ba06873c9 08-Aug-2014 Dan Albert <danalbert@google.com> am 897cd3d4: am afae9fd8: Merge "Fix uses of -fPIC and -fPIE."

* commit '897cd3d494272b8a6a12f0fb6d02bfe7426a309c':
Fix uses of -fPIC and -fPIE.
4803ce2696950f8c27c83de4fe46ae196f35af16 06-Aug-2014 Dan Albert <danalbert@google.com> Fix uses of -fPIC and -fPIE.

We've been using -fPIC and -fPIE together in the global cflags all this
time. These options are incompatible. The only reason we haven't been
hit by this before is because of the forced -Bsymbolic in GCC. To fix
this, pass -fpic when compiling objects for shared libraries and -fpie
when compiling objects for executables. For static libraries, also use
-fpic. We have to do this because static libraries might be included in
either a shared library or an executable. Code compiled with -fpie
cannot be included in a shared library, but code compiled with -fpic
may be included in an executable.

We've also been using -fpic and -fPIC together. These are different
options, and only the latter will take effect.
http://stackoverflow.com/a/967010

The final thing this fixes is that we had -f(PIC|PIE) flags being passed
to link commands. These are compile time flags, and don't do anything at
link time.

Bug: 16823325
Change-Id: Ic76f47e63dc2c81b7e1a8058bae1b3dc8565d606
/build/make/core/definitions.mk
b6bb71b85d506dcc4763290d72c4168afd541f7d 05-Aug-2014 Dan Albert <danalbert@google.com> Inhibit implicit -Bsymolic in -shared.

Bug: 16853291

Change-Id: Id70488b077256a70137c4417f21be2c2d1d4341c
/build/make/core/definitions.mk
7f625aad030999b685757bea2abcc2ecd542ed3c 23-Jul-2014 Ying Wang <wangying@google.com> Improve rules of split apks.

- Better messaging if the expected split apk isn't generated by the aapt
command in the base apk rule; Remove the built base apk, so make will
rerun aapt after the user changes the splitting parameters.
- Use cleaner static pattern rules instead of running $(foreach) with
$(eval).

Bug: 16319961
Change-Id: If6ae302e1a39d2e0db8f784d4e1cf292ec855281
/build/make/core/definitions.mk
1425e2d8c08663987f2d1004c55e6060d1ce6dfe 23-Jul-2014 Ying Wang <wangying@google.com> Support LOCAL_PACKAGE_SPLITS.

Support LOCAL_PACKAGE_SPLITS, which accepts a list of resource lables
and generates multiple apks. The build system sets up rules to sign and
zipalign the split apks.

Bug: 16319961
Change-Id: I344b3d1c7eb158c6d0df879093d666a89870aadd
/build/make/core/definitions.mk
af9757e84940a3d3f4a4b88d2f1ed259d4f43c02 18-Jul-2014 Ying Wang <wangying@google.com> New installation path for apks and their JNIs.

Apk's path is changed to <parent_dir>/MyApp/MyApp.apk;
JNI path is changed to <parent_dir>/MyApp/lib/<arch_name>/libfoo.so.
Symlinks of JNIs are changed accordingly.

Bug: 16319961
Change-Id: Ib3b2309c95fa9aea27837fcc29e28d990b04747b
/build/make/core/definitions.mk
e019dfd721ff1f5d669979d3f66e01421a6bb272 20-Aug-2013 Yohann Roussel <yroussel@google.com> Support dx generating multiple dex files.

Dx is now capable of generating multiple dex file in one run.
This capability is not compatible with --output=*.dex so this CL
changes the --output argument to be a directory. This CL also
includes the packaging of the multiple dex files when dx generates
more than one dex file.

(cherry picked from commit 8ffe9c3e7967ec9c6c6e9a03095454dc1b073c3b)

Conflicts:
core/java.mk

Change-Id: I1ddc91b416de5929d4d4b41824c6012b32f94deb
/build/make/core/definitions.mk
58f8cf727311b91a5bae272201f6d07c832af392 25-Jun-2014 Ying Wang <wangying@google.com> am 904446ce: am 1a3d260f: am e69d4350: Merge "Support to add JNI of both archs in multilib build."

* commit '904446ce0b3f430ac88ae0c08b9c613721474cd5':
Support to add JNI of both archs in multilib build.
8e20ef6205b3c96135b1c1e4484d523dbecb1b98 25-Jun-2014 Ying Wang <wangying@google.com> Support to add JNI of both archs in multilib build.

Use "LOCAL_MULTILIB := both" to install jni libraries of both archs in
multilib build.
The build system will package jni of both archs to the apk, or install
them to the right location on the system image and create symlinks,
extract .so files from prebuilt apk, etc if appropriate.

Bug: 15849902
Change-Id: I7e147b5a47db476584c38250de7b36c75ea40d81
/build/make/core/definitions.mk
bf2f0c729bd496599bd6a6103105e7985a521e66 18-Jun-2014 Colin Cross <ccross@android.com> am a1ac4736: am b110da5f: am 9d8854e3: Merge "build: delete 64-bit blacklist"

* commit 'a1ac47367636c0473156679f8f30af626df7da85':
build: delete 64-bit blacklist
ae2986e51a52833deac6c03f55924e3271e3586d 18-Jun-2014 Colin Cross <ccross@android.com> build: delete 64-bit blacklist

The last projects in the blacklist have been fixed, delete the code.

Change-Id: I0fe7809bd18e32516374c9cb2a6f71df1d3c62ee
/build/make/core/definitions.mk
0ed7cec97a894ae8daf9586f2bac6e09826a6c2a 16-Jun-2014 JP Abgrall <jpa@google.com> core: Fixup assert-max-image-size/assert-max-file-size usage

- Remove the incorrectly used (and unused) 3rd arg to assert-max-image-size
- Remove test for fstype in assert-max-file-size() as it was always
set to a value leading to 0.

Change-Id: I0a1182fcc85c6c3801d45731e691b9bb38657606
Signed-off-by: JP Abgrall <jpa@google.com>
/build/make/core/definitions.mk
01c4f4622b3fda662bccda1ee795cf71ebbd1234 11-Jun-2014 Ying Wang <wangying@google.com> am dceddd91: am 79b46720: am 02f98a26: Merge "Fix loophole in module expansion."

* commit 'dceddd91d9a6516346e752b9f942747bea931cfa':
Fix loophole in module expansion.
541b1d0f7c4e77399b468758af4b77eb60c549f9 11-Jun-2014 Ying Wang <wangying@google.com> am fe9ad097: am b1f65358: am 5ad17493: Merge "Support .asm being compiled by yasm targeted for x86."

* commit 'fe9ad0975ade10219a5fa9a77d034ba77735e393':
Support .asm being compiled by yasm targeted for x86.
e1b867dde77d59bb35f366c2e3d65fe37c696880 10-Jun-2014 Ying Wang <wangying@google.com> Fix loophole in module expansion.

Previously we only expanded product_MODULES with LOCAL_REQUIRED_MODULES,
but not modules introduced by LOCAL_SHARED_LIBRARIES; Later we did a further
shared libary expansion in vendor_module_check.mk.
It couldn't track C in the following case:
A : B, by LOCAL_SHARED_LIBRARIES; B : C, by LOCAL_REQUIRED_MODULES.

With this change, we transformed the LOCAL_SHARED_LIBRARIES dependencies
into LOCAL_REQUIRED_MODULES dependencies before doing the required
module expansion and the loophole is closed.
All module names are now expanded to product_MODULES now and it makes
vendor_module_check.mk simpler.

Change-Id: I8835a478d2ce0ce10601a8449f446f07b01c2b7f
/build/make/core/definitions.mk
7b913ce6fa5030519121757bf5b258efba51cc06 06-Jun-2014 Ying Wang <wangying@google.com> Support .asm being compiled by yasm targeted for x86.

Change-Id: Icd6626a082facf920b0e49e2fbe8861e94400552
/build/make/core/definitions.mk
8b73a8683469c8449c2ee8373029e5dc65f5b2c0 29-May-2014 Ying Wang <wangying@google.com> am 834ec0ea: am d3ddfdf8: am b3bed595: Merge "Add a dummy build recipe for generated RS cpp files."

* commit '834ec0ead591cf64a5f660af0210e95728e08c4f':
Add a dummy build recipe for generated RS cpp files.
d3ddfdf847eaf44219943cda441273be85b01635 29-May-2014 Ying Wang <wangying@google.com> am b3bed595: Merge "Add a dummy build recipe for generated RS cpp files."

* commit 'b3bed5952b44e69dc9e1988beb4092303084ef61':
Add a dummy build recipe for generated RS cpp files.
81ab8339feea95db1caaaa57cc8b3bfa0852dc26 29-May-2014 Ying Wang <wangying@google.com> Add a dummy build recipe for generated RS cpp files.

Previously the RS cpp files are generated by the timestamp rule. Though
we have the generated RS cpp files depend on the timestamp file, we
don't have a build recipe. In such case gmake does some "optimization"
that it skip recompiling the generated cpp files, because it assumes the
generated cpp files are already up to date even if the rs files have
been updated.

Bug: 15313144
Change-Id: Ie69ecd2c788057d3619f9c7d2a125d44c4a534a1
/build/make/core/definitions.mk
a5b0b1303d38fb1cd31575383c647eb8b1db5e36 27-May-2014 Dan Albert <danalbert@google.com> am 3805f619: Merge "Revert "Fix for duplicate names in whole static libs""

* commit '3805f619156163eab8ad92fd51b4a431be1287bd':
Revert "Fix for duplicate names in whole static libs"
3c12b5c02ba889bcbb74cf476c9590fcce660a17 27-May-2014 Dan Albert <danalbert@google.com> Revert "Fix for duplicate names in whole static libs"

This reverts commit 0e5ce8be34446278a3404ea2a4afc01f20f86c5a.

Change-Id: I68b776cb915fd7be8299ddb2899907046dddadf3
/build/make/core/definitions.mk
212772f6322ef41a1b18023d15eb2b69efa19be8 27-May-2014 Dan Albert <danalbert@google.com> am 31101623: Merge "Fix for duplicate names in whole static libs"

* commit '31101623b3e621436f6b46f49242ed4642d86164':
Fix for duplicate names in whole static libs
4c4aa99ced05fcf3d965660160ab8bda9db0405c 24-May-2014 Jeff Brown <jeffbrown@google.com> Support more precise package exclusion from JAR files.

Allow LOCAL_JAR_PACKAGES to work on subpackages. Previously it
only worked on top-level packages due to a bug in how the directories
were recursively deleted.

Add LOCAL_JAR_EXCLUDE_PACKAGES to allow specific subpackages to
be excluded. This rule applies after LOCAL_JAR_PACKAGES has
selected which packages to include. It may also be used independently.

Change-Id: Ibd0e495be1a20c84b59c9da132e92100ef3f8705
/build/make/core/definitions.mk
0e5ce8be34446278a3404ea2a4afc01f20f86c5a 23-May-2014 Dan Albert <danalbert@google.com> Fix for duplicate names in whole static libs

_extract-and-include-single-(host|target)-whole-static-lib was written such that
only the first file of a given name would be extracted and included into the new
library. This patch iterates over each identically named archive member,
extracts them individually, and adds them to the new archive.

Bug: 15110069
Change-Id: Ia08c7be6f40bfc8403908a8808898ada479099b1
/build/make/core/definitions.mk
1dc4f0bacef15631d5390af4ee0b898e0e07c9d5 23-May-2014 Ying Wang <wangying@google.com> am 2bf10a72: am cdcb6926: am 6cb69bd4: Merge "Add HOST_PREFER_32_BIT to support 32-bit-by-default multilib build"

* commit '2bf10a72f87a8e97923286aa331f7db81e2361ca':
Add HOST_PREFER_32_BIT to support 32-bit-by-default multilib build
cdcb6926d40b502ed89a285cdd4d99beb4cf8009 23-May-2014 Ying Wang <wangying@google.com> am 6cb69bd4: Merge "Add HOST_PREFER_32_BIT to support 32-bit-by-default multilib build"

* commit '6cb69bd4f20ac3ae3a7d5b5cc323c4480cf8ef75':
Add HOST_PREFER_32_BIT to support 32-bit-by-default multilib build
6cb69bd4f20ac3ae3a7d5b5cc323c4480cf8ef75 23-May-2014 Ying Wang <wangying@google.com> Merge "Add HOST_PREFER_32_BIT to support 32-bit-by-default multilib build"
78ae0ad8df1773cda70a5d27b826408d60b25c7b 22-May-2014 Ying Wang <wangying@google.com> am 913e0317: am a72e6f80: am 8a3f514d: Merge "Split the rules to build the odex file"

* commit '913e031793928981640f51fa2e6480312f044c37':
Split the rules to build the odex file
a72e6f80e447acf225822eebdf752c0d8aa2590c 22-May-2014 Ying Wang <wangying@google.com> am 8a3f514d: Merge "Split the rules to build the odex file"

* commit '8a3f514d44e2c1d4920126b3edd47f7a7616b732':
Split the rules to build the odex file
36142f64aef3da56a6e70589dad634b5babc0c31 22-May-2014 Ying Wang <wangying@google.com> Split the rules to build the odex file

Previously the odex file is byproduct generated by the package.apk rule.
Though we have the odex file depend on the package.apk it doesn't have
its own build recipe. In case package.apk isn't updated but we still
need to update the odex file (such as changed LOCAL_MULTILIB), the odex
file will never be rebuilt.
This change split out the rules to build the odex file and make sure the
build recipe get executed if the odex file needs rebuild.

Change-Id: I60c2f32b536b3d59045301ee863aae1451734aad
/build/make/core/definitions.mk
966c1e0cae6a59f15264d3b542af08e21e2dc06c 20-May-2014 Ying Wang <wangying@google.com> Add HOST_PREFER_32_BIT to support 32-bit-by-default multilib build

We already support pure 32-bit and 64-bit-by-default multilib build.
With HOST_PREFER_32_BIT we can build 32-bit-by-default multilib build.
This will be lest disruptive during the period we transition to
64-bit-by-default.

Bug: 13751317
Change-Id: I0d56ce4abbe4afeaacfd70d709f6a349791c0722
/build/make/core/definitions.mk
8200231ae1891fdb3bba8ff4cefbaea88dbbe61b 15-May-2014 Ying Wang <wangying@google.com> am e50f2d9f: am 40b49d30: am a74ade94: Merge "Support host multilib build"

* commit 'e50f2d9f32a27d8290692dbf99ab8b247ef9d553':
Support host multilib build
40b49d3043bd41ca5548b99b537038187fdca258 15-May-2014 Ying Wang <wangying@google.com> am a74ade94: Merge "Support host multilib build"

* commit 'a74ade945776e80f99f3b05d06a131cfd353c3f6':
Support host multilib build
6feb6d5607ce86a446645564212043964628f540 17-Apr-2014 Ying Wang <wangying@google.com> Support host multilib build

This change basically ported our target multilib to the host side.
It supports 2 host build modes: x86 and x86_64 multilib build.
For now you need to set "BUILD_HOST_64bit=true" to switch to x86_64
multilib build. Later we'll default to x86_64 build and have a flag
to force 32-bit only build, which may be needed by SDK build.

In host module definition, like in target ones, you can use the
following
LOCAL variables to set up multilib configuration:
LOCAL_MULTILIB: can be "both", "first", "32" or "64".
It also supports the same set of arch or 32-vs-64 specific LOCAL
variables.
By default, it builds only for the first arch.

To keep path compatibility, in x86_64 build files are still output to
out/host/linux-x86; Both 32-bit and 64-bit executables are in
out/host/linux-86/bin;
In x86_64 build 32-bit shared libraries are installed to
out/host/linux-x86/lib32
and 64-bit shared libraries are installed to out/host/linux-x86/lib;
32-bit object files are output to out/host/linux-x86/obj32 and 64-bit
object files
are output to out/host/linux-x86/obj.

Bug: 13751317
Change-Id: I6044f83b7db369a33e05209e8c588eb6dc83409f
/build/make/core/definitions.mk
2d1718aaeac27a6ff4ef5bd992a68574fc55d0c1 09-May-2014 Adam Lesinski <adamlesinski@google.com> Change aapt flag to use new name

Change-Id: I59ee77ede4716fdbf8403504da65fcadc9946423
/build/make/core/definitions.mk
1e4adfa837c77dc2dcb73ce2c0b32bf362e80000 29-Apr-2014 Bill Yi <byi@google.com> Merge commit '8113e43601aac7702b9ec007e81a179826143d1e' into HEAD
7d43b0f6a5b3516bf70f27c2e5f22be357c2ae68 05-Apr-2014 Ying Wang <wangying@google.com> am f90ef06f: am 73c1422d: am b5956468: Merge "Disable host -fPIE if BUILD_HOST_static is set."

* commit 'f90ef06f0847f2adba3248859376775112ab1a81':
Disable host -fPIE if BUILD_HOST_static is set.
f90ef06f0847f2adba3248859376775112ab1a81 05-Apr-2014 Ying Wang <wangying@google.com> am 73c1422d: am b5956468: Merge "Disable host -fPIE if BUILD_HOST_static is set."

* commit '73c1422dd297553948ebfc4603fe852aa9a0336a':
Disable host -fPIE if BUILD_HOST_static is set.
faf3d5ed0fe24acef0b14a1297d78058bcedb016 04-Apr-2014 Ying Wang <wangying@google.com> Disable host -fPIE if BUILD_HOST_static is set.

It turns out -static doesn't work with -fPIE.

Bug: 13568878
Change-Id: I66951a5517dece1c5f4f22c329cf703bd99b5163
/build/make/core/definitions.mk
dc74b380409ac9d78cdd19eb28c203ebeb8db5aa 02-Apr-2014 Torne (Richard Coles) <torne@google.com> am e4915bbe: am 59d0c658: am c783b9bd: Merge "Add GYP as a target type that requires 2nd arch."

* commit 'e4915bbebbaaeb337df5dec87b82c18d186a6bfb':
Add GYP as a target type that requires 2nd arch.
e4915bbebbaaeb337df5dec87b82c18d186a6bfb 02-Apr-2014 Torne (Richard Coles) <torne@google.com> am 59d0c658: am c783b9bd: Merge "Add GYP as a target type that requires 2nd arch."

* commit '59d0c658847d3c8118de46d2d7fa1fa3bfc563d2':
Add GYP as a target type that requires 2nd arch.
3972253b0f29f6e0020cce0fe011ee5c696988e8 02-Apr-2014 Torne (Richard Coles) <torne@google.com> Add GYP as a target type that requires 2nd arch.

"GYP" class targets are used by external/chromium_org for gyp's "none"
type. The processing in these targets needs a separate intermediate
directory for the primary/secondary architecture, so add it to the list
in intermediates-dir-for along with libraries/executables.

Change-Id: Id05899c83b45ed0647dfbfa6b0b2e7f61b04348b
/build/make/core/definitions.mk
82784b285a23c098a4b69336ed52cf3964e5a40e 31-Mar-2014 Ying Wang <wangying@google.com> am 1758fe1f: am 30dbfa43: am 1c380c13: Merge "Remove the unnecessary indirection of TARGET_STRIP_COMMAND"

* commit '1758fe1f87b58f91db569ba3c0fa406f5f37819e':
Remove the unnecessary indirection of TARGET_STRIP_COMMAND
1758fe1f87b58f91db569ba3c0fa406f5f37819e 31-Mar-2014 Ying Wang <wangying@google.com> am 30dbfa43: am 1c380c13: Merge "Remove the unnecessary indirection of TARGET_STRIP_COMMAND"

* commit '30dbfa43eff071438376b5699dbe3391d08204da':
Remove the unnecessary indirection of TARGET_STRIP_COMMAND
ce1c596e1507295f3037e9fa7bf163fb2ab95a11 29-Mar-2014 Ying Wang <wangying@google.com> Remove the unnecessary indirection of TARGET_STRIP_COMMAND

Now all archs use the same strip command which can be put just in
transform-to-stripped.

Change-Id: Ief79697d47ea142fc9e63e63a7e2dace9e839165
/build/make/core/definitions.mk
c63d345b18235a989e473b8641851e5248977a5a 25-Mar-2014 Ying Wang <wangying@google.com> am 264a5ed3: am 711951ab: am 78a819d6: am 266cf4f2: am f39752e9: Skip the product-scoped --product flag if it\'s set in LOCAL_AAPT_FLAGS

* commit '264a5ed3654b71ddc3c6dc0a52371624b2fa5204':
Skip the product-scoped --product flag if it's set in LOCAL_AAPT_FLAGS
711951abf0c753eba551ba88817321e4cd7b37d9 25-Mar-2014 Ying Wang <wangying@google.com> am 78a819d6: am 266cf4f2: am f39752e9: Skip the product-scoped --product flag if it\'s set in LOCAL_AAPT_FLAGS

* commit '78a819d600ab750227009fd3dc93f7f2886600c7':
Skip the product-scoped --product flag if it's set in LOCAL_AAPT_FLAGS
78a819d600ab750227009fd3dc93f7f2886600c7 25-Mar-2014 Ying Wang <wangying@google.com> am 266cf4f2: am f39752e9: Skip the product-scoped --product flag if it\'s set in LOCAL_AAPT_FLAGS

* commit '266cf4f2595323170fe02db05835884b4522a0f9':
Skip the product-scoped --product flag if it's set in LOCAL_AAPT_FLAGS
288bf3a377fab307ff72218049de7088aec6afc6 24-Mar-2014 Ying Wang <wangying@google.com> am 266cf4f2: am f39752e9: Skip the product-scoped --product flag if it\'s set in LOCAL_AAPT_FLAGS

* commit '266cf4f2595323170fe02db05835884b4522a0f9':
Skip the product-scoped --product flag if it's set in LOCAL_AAPT_FLAGS
266cf4f2595323170fe02db05835884b4522a0f9 24-Mar-2014 Ying Wang <wangying@google.com> am f39752e9: Skip the product-scoped --product flag if it\'s set in LOCAL_AAPT_FLAGS

* commit 'f39752e99b4e5083f1e91c46722f87def8143b49':
Skip the product-scoped --product flag if it's set in LOCAL_AAPT_FLAGS
f39752e99b4e5083f1e91c46722f87def8143b49 21-Mar-2014 Ying Wang <wangying@google.com> Skip the product-scoped --product flag if it's set in LOCAL_AAPT_FLAGS

Bug: 11335547
Change-Id: Ic08b7557a288508e8e8d14a725923960c47f5ca0
/build/make/core/definitions.mk
ddb9b4042e90edfb69ce403b5ad33e0610bd31c5 19-Mar-2014 Christopher Ferris <cferris@google.com> am 10eaabfc: am a908fc96: am aea9f041: am 8b1bcc7d: Merge "Add a method to leave the symbol table in a library."

* commit '10eaabfceb715baecbcdf71ebfb4f108ce295fb6':
Add a method to leave the symbol table in a library.
a908fc96db10d2efa173ebcfcd272b757cc19abf 19-Mar-2014 Christopher Ferris <cferris@google.com> am aea9f041: am 8b1bcc7d: Merge "Add a method to leave the symbol table in a library."

* commit 'aea9f041f72a128065691ac402ccdb72a5a7aad4':
Add a method to leave the symbol table in a library.
810cf65d714c2f4d40c8483810c52dc5ec8bda4c 19-Mar-2014 Christopher Ferris <cferris@google.com> am aea9f041: am 8b1bcc7d: Merge "Add a method to leave the symbol table in a library."

* commit 'aea9f041f72a128065691ac402ccdb72a5a7aad4':
Add a method to leave the symbol table in a library.
a6e2f9322c47ac02546aa436341fa42afd0000c5 18-Mar-2014 Christopher Ferris <cferris@google.com> Add a method to leave the symbol table in a library.

When LOCAL_STRIP_MODULE := keep_symbols is set, then the normal strip rules
will be modified so that only the .debug_* sections are removed. The original
symbol table is left alone.

This allows the compilation of certain libraries so that libbacktrace library
can provide meaningful names to functions.

Bug: 12958251
Change-Id: I82bdc304a463012e29086325ccb51163464cb4a9
/build/make/core/definitions.mk
ec21c58574798d05693d053deb17778cf23d0050 14-Mar-2014 Hui Shu <hush@google.com> Fix another build break.

The doclava build does not need to depend on the intermedidate
removed.txt. It depends on public_api.txt. Removed.txt is generated
along with public_api.txt by doclava.

BUG: b/11293324
Change-Id: Ia5ea675bbfb15b81ce6ae81cf34c608e83676ca1
/build/make/core/definitions.mk
749aee5f5e5a261dc0465a153b97003344689697 13-Mar-2014 Hui Shu <hush@google.com> Merge "Add removed.txt for doclava api consistency check"
9bdcdff615f4e21eca818768cc7549a3e2bb8830 24-Jan-2014 Colin Cross <ccross@android.com> HACK: add 64-bit directory blacklist

Change-Id: I431e8b220db81d51930dc0b3d95995df120c179a
/build/make/core/definitions.mk
e7be6ffa985c7db458f927b74a2cbc34071de040 11-Mar-2014 Nicolas Geoffray <ngeoffray@google.com> am db48d145: am 247dd0c4: Merge "Do not remove the generated .hpp file from yacc."

* commit 'db48d145841afb9b9b6d1c124191a1681d6b4f39':
Do not remove the generated .hpp file from yacc.
009f48b00f086213ec1e2f6619b45c0291ab4f44 11-Mar-2014 Ying Wang <wangying@google.com> am a6230641: am 26bcd640: Merge "Try to catch more misuse of ."

* commit 'a623064131f23412daa0ac4b333320e2e30d85f0':
Try to catch more misuse of $(my-dir).
8ec7041127a205da77cbc4f1e769bd72d13e5301 11-Mar-2014 Ying Wang <wangying@google.com> am 8e286fbf: am cf1b7d4b: Merge "Select src arch for prebuilts."

* commit '8e286fbfc712ed695008f786592fe83e4a1331a7':
Select src arch for prebuilts.
bbc3a3eda38329690428ab4c79180d07fdd1c1f0 11-Mar-2014 Torne (Richard Coles) <torne@google.com> am 63002088: Merge "Allow LOCAL_LDFLAGS to override HOST_GLOBAL_LDFLAGS."

* commit '630020883abc6c8b2c13876e3195ed6abcf4890f':
Allow LOCAL_LDFLAGS to override HOST_GLOBAL_LDFLAGS.
2c5666fc4d2e36407c636b4714bf6f5add9acf71 10-Mar-2014 Ying Wang <wangying@google.com> am eb9b62e0: Merge "Make -rpath-link work with multilib."

* commit 'eb9b62e08d25ec9067a3f47634a2b8cf750230d8':
Make -rpath-link work with multilib.
16ae8b4dd1c7dadb1d0d7437181e118b670095b2 07-Mar-2014 Ying Wang <wangying@google.com> am 5c7039fb: Merge "Remove dead code."

* commit '5c7039fb069c040759df0a5a15241dd7f8b2f9b7':
Remove dead code.
77285ffc9bb5bf565be31816e3c07ae65791b3f0 07-Mar-2014 Elliott Hughes <enh@google.com> am 993ffb80: Merge "Add all-S-files-under."

* commit '993ffb802ee90e07e73e67e523fd040395dfd74d':
Add all-S-files-under.
b9ad6792c047983af9c8f2b2f303723b8d0a389c 07-Mar-2014 Colin Cross <ccross@android.com> am 717de0f5: Merge "Fix installing 2nd arch shared libraries"

* commit '717de0f553dc3c1a2baa0cc988af1adc5b26dba8':
Fix installing 2nd arch shared libraries
a6edb7a0e1e8b0d11ff7dd93bdaaf6baca313bba 05-Mar-2014 Nicolas Geoffray <ngeoffray@google.com> am 769a191f: am 50fcf753: am db48d145: am 247dd0c4: Merge "Do not remove the generated .hpp file from yacc."

* commit '769a191fd6423bbe36d6eef513be1aafa734a10f':
Do not remove the generated .hpp file from yacc.
50fcf753081a73ab808ccf1933959d671ca1a68b 05-Mar-2014 Nicolas Geoffray <ngeoffray@google.com> am db48d145: am 247dd0c4: Merge "Do not remove the generated .hpp file from yacc."

* commit 'db48d145841afb9b9b6d1c124191a1681d6b4f39':
Do not remove the generated .hpp file from yacc.
3cb9ddbdec80117255b8e2861996c14cd3af7366 04-Mar-2014 Nicolas Geoffray <ngeoffray@google.com> Do not remove the generated .hpp file from yacc.

Depending on the file extension of the generated C++ file,
bison will generate a #include of a .h or .hpp. So both files
must be kept in the generated directory.

Change-Id: Id0aac7f407bdc69c7f5012c0d021761b0fceb427
/build/make/core/definitions.mk
3bbfddd2eae96b69be14baeca05726a70062ba6c 02-Mar-2014 Ying Wang <wangying@google.com> Revert "Fix build: Revert "Try to catch more misuse of $(my-dir).""

This reverts commit 4f6e8342ace107faa09f47bef5924882904d0634.
/build/make/core/definitions.mk
4f6e8342ace107faa09f47bef5924882904d0634 01-Mar-2014 Ed Heyl <edheyl@google.com> Fix build: Revert "Try to catch more misuse of $(my-dir)."

This reverts commit 79e8319b2ea622d487a56498d657440f5935e9e9.

Change-Id: I7d4d352da802deea870fbe4f61f7a7023460a405
/build/make/core/definitions.mk
f6f141a873df4068628993b39ecd3e3782d2a780 01-Mar-2014 Ying Wang <wangying@google.com> am 9cf7af63: am 0c0e9b81: am a6230641: am 26bcd640: Merge "Try to catch more misuse of ."

* commit '9cf7af6317e6f792f0c044f786983481210022cc':
Try to catch more misuse of $(my-dir).
0c0e9b815332eca3b3626cc9c47759bbf5e48624 01-Mar-2014 Ying Wang <wangying@google.com> am a6230641: am 26bcd640: Merge "Try to catch more misuse of ."

* commit 'a623064131f23412daa0ac4b333320e2e30d85f0':
Try to catch more misuse of $(my-dir).
79e8319b2ea622d487a56498d657440f5935e9e9 01-Mar-2014 Ying Wang <wangying@google.com> Try to catch more misuse of $(my-dir).

Change-Id: I0c07d7115c66b30ba1383dfaa133f0cc40a33ad7
/build/make/core/definitions.mk
cefca29a4ccd404a5d32ed4e5f785c678df06bd1 28-Feb-2014 Ying Wang <wangying@google.com> am 8e286fbf: am cf1b7d4b: Merge "Select src arch for prebuilts."

* commit '8e286fbfc712ed695008f786592fe83e4a1331a7':
Select src arch for prebuilts.
6c930fc1c954b1eee163ae49206406b40614f356 27-Feb-2014 Ying Wang <wangying@google.com> Select src arch for prebuilts.

Change-Id: I2d08f923d28d59cfef93ff0bd9893352baaee60b
/build/make/core/definitions.mk
c0adfb76cdae425b4c03d85de184364edc33338f 27-Feb-2014 Ying Wang <wangying@google.com> Select src arch for prebuilts.

Change-Id: I2d08f923d28d59cfef93ff0bd9893352baaee60b
/build/make/core/definitions.mk
e665992cb8b66bda2797ef8fa3a69c633864ca44 26-Feb-2014 Torne (Richard Coles) <torne@google.com> am 63002088: Merge "Allow LOCAL_LDFLAGS to override HOST_GLOBAL_LDFLAGS."

* commit '630020883abc6c8b2c13876e3195ed6abcf4890f':
Allow LOCAL_LDFLAGS to override HOST_GLOBAL_LDFLAGS.
db7dcc210a9425b6d96fce33adf468ebf329259c 12-Feb-2014 Torne (Richard Coles) <torne@google.com> Allow LOCAL_LDFLAGS to override HOST_GLOBAL_LDFLAGS.

For host executables and shared libraries, the global LDFLAGS were being
inserted into the linker command line after the module-specific ones,
making it impossible to override the default settings. Change the order
to match target linker invocations.

Change-Id: Icd5f6f83df9f27a5be97ddb197ee245c1ab8c2be
/build/make/core/definitions.mk
e8af17eb27ff85963788ac1e2237026d68b6f955 21-Feb-2014 Hui Shu <hush@google.com> Add removed.txt for doclava api consistency check

BUG: b/11293324
Change-Id: Ie7cda9bc7d3a1e6c433eb073cc878b149cead8a0
/build/make/core/definitions.mk
d4fe0bdfcb633611501408a0e0bd61870eae10b3 22-Feb-2014 Ying Wang <wangying@google.com> am 9b996f80: am eb9b62e0: Merge "Make -rpath-link work with multilib."

* commit '9b996f80a95f48bae153c35bacc0360c004e5258':
Make -rpath-link work with multilib.
9b996f80a95f48bae153c35bacc0360c004e5258 22-Feb-2014 Ying Wang <wangying@google.com> am eb9b62e0: Merge "Make -rpath-link work with multilib."

* commit 'eb9b62e08d25ec9067a3f47634a2b8cf750230d8':
Make -rpath-link work with multilib.
9fb3526648a08d8d8c1e6325aeb3c6500bcd44c2 22-Feb-2014 Ying Wang <wangying@google.com> Make -rpath-link work with multilib.

Change-Id: If69ea6ed6cdbb657ed4005f8217d653e29626783
/build/make/core/definitions.mk
f93beb2167728c8a3ce549074db01d37e9786458 14-Feb-2014 Torne (Richard Coles) <torne@google.com> Merge "Allow LOCAL_LDFLAGS to override HOST_GLOBAL_LDFLAGS."
ca389b9048c0273d34e495809986441803f35d28 13-Feb-2014 Ying Wang <wangying@google.com> am 5768ac91: am 5c7039fb: Merge "Remove dead code."

* commit '5768ac917ca0e08a6a356159e0a8837f1bcfc7ff':
Remove dead code.
5768ac917ca0e08a6a356159e0a8837f1bcfc7ff 13-Feb-2014 Ying Wang <wangying@google.com> am 5c7039fb: Merge "Remove dead code."

* commit '5c7039fb069c040759df0a5a15241dd7f8b2f9b7':
Remove dead code.
dc6bb0477d924c6054d161b990fe6dc80d373c50 13-Feb-2014 Ying Wang <wangying@google.com> Remove dead code.

Change-Id: Ia36a04037e15cbf296f375f3ece9a7e977fdca1e
/build/make/core/definitions.mk
84a20ac12e07109f5682d77a131f25995f7c2d0e 13-Feb-2014 Colin Cross <ccross@android.com> am 2c32144b: resolved conflicts for merge of 7cd7bd65 to klp-modular-dev-plus-aosp

* commit '2c32144b328e0191fa32bf342dc7eb01d6174b6e':
HACK: add 64-bit directory blacklist
add support for module supported or unsupported target architectures
a0945a24f9234cd3929d89e0f02a1e8d066d4124 12-Feb-2014 Elliott Hughes <enh@google.com> am 1e317e77: am 993ffb80: Merge "Add all-S-files-under."

* commit '1e317e77fa86ee0450e8a7b1b2ab5bd51720189f':
Add all-S-files-under.
2c32144b328e0191fa32bf342dc7eb01d6174b6e 12-Feb-2014 Colin Cross <ccross@android.com> resolved conflicts for merge of 7cd7bd65 to klp-modular-dev-plus-aosp

Change-Id: Ib4f062a59d442b29b9782fd8c0328fd551c3a32a
02e31d240a9044b54ee793902ad958894f84e7a1 24-Jan-2014 Colin Cross <ccross@android.com> HACK: add 64-bit directory blacklist

Change-Id: I431e8b220db81d51930dc0b3d95995df120c179a
/build/make/core/definitions.mk
1e317e77fa86ee0450e8a7b1b2ab5bd51720189f 12-Feb-2014 Elliott Hughes <enh@google.com> am 993ffb80: Merge "Add all-S-files-under."

* commit '993ffb802ee90e07e73e67e523fd040395dfd74d':
Add all-S-files-under.
a424bf781c1abd946acbc46aeb31bc1b1ef3e62e 12-Feb-2014 Torne (Richard Coles) <torne@google.com> Allow LOCAL_LDFLAGS to override HOST_GLOBAL_LDFLAGS.

For host executables and shared libraries, the global LDFLAGS were being
inserted into the linker command line after the module-specific ones,
making it impossible to override the default settings. Change the order
to match target linker invocations.

Change-Id: Icd5f6f83df9f27a5be97ddb197ee245c1ab8c2be
/build/make/core/definitions.mk
e3b044a0cc5ffb4817dfba412118ee4a3d273b63 11-Feb-2014 Elliott Hughes <enh@google.com> Add all-S-files-under.

Change-Id: I25416e2acc850c61226bc7a8e0536384f6eb2dce
/build/make/core/definitions.mk
a87489b5c2a8fe32aaf3c7b86e4dd8a2945085a0 10-Feb-2014 Ying Wang <wangying@google.com> am 74b71317: am 2d72094f: am 960d919e: resolved conflicts for merge of 4df82b3e to klp-dev-plus-aosp

* commit '74b71317711fe4bacc6422e45de599fea840f061':
Allow proguarding the main app and the test app in a single run.
74b71317711fe4bacc6422e45de599fea840f061 08-Feb-2014 Ying Wang <wangying@google.com> am 2d72094f: am 960d919e: resolved conflicts for merge of 4df82b3e to klp-dev-plus-aosp

* commit '2d72094f06e3cdfc78a3cfda9163cdb45ea7dbbb':
Allow proguarding the main app and the test app in a single run.
960d919e814726f05ad1a9b82e6a9677f9977f15 08-Feb-2014 Ying Wang <wangying@google.com> resolved conflicts for merge of 4df82b3e to klp-dev-plus-aosp

Change-Id: I7a1d9e1954ede06a818814bd05a77c69f1ed3bc6
4df82b3e30794a3652a5dda773a74f486fec3325 07-Feb-2014 Mihail Dumitrescu <mdumitrescu@google.com> Allow proguarding the main app and the test app in a single run.

Bug: 12895101
Change-Id: I6804d73306a164d3e3ec0cab4743f9582b5ef2cf
/build/make/core/definitions.mk
96870b3eb448fe4817b6ad9a12b409b318d58d2e 06-Feb-2014 Colin Cross <ccross@android.com> am dc5249ab: am 717de0f5: Merge "Fix installing 2nd arch shared libraries"

* commit 'dc5249ab3c82040e21269fb69dc9a6dc89224629':
Fix installing 2nd arch shared libraries
5394bf195083fe41bfe76da933aac6b77d311d09 05-Feb-2014 Colin Cross <ccross@android.com> Fix installing 2nd arch shared libraries

2ND_TARGET_DEPENDENCIES_ON_SHARED_LIBRARIES was not set,
which was causing the later += to act like = instead of
:=, and the dependencies would disappear as soon as
LOCAL_MODULE was cleared.

Change-Id: Idea291524fc06377deafec62f37d20eaa7f93bca
/build/make/core/definitions.mk
40826c170c6d06d8ab65d654473af65c74973b5c 28-Jan-2014 Colin Cross <ccross@android.com> am 8c89a9ff: am 4695598d: am ae49acbd: am 1acb1b64: Merge changes I62504bad,I16208cca,I4e4ceec6

* commit '8c89a9ff9cd461e4bc077a91a0c7c32b17a92ebd':
add new gen/ directory for generated sources
warn on LOCAL_MODULE_PATH in multiarch shared libraries
Support LOCAL_MODULE_RELATIVE_PATH
d826264621a2c3d27228b395bc36edf5510bcc49 25-Jan-2014 Colin Cross <ccross@android.com> add new gen/ directory for generated sources

Allow modules to generate source into $OUT/gen, which will then
be copied into $OUT/obj and $OUT/obj_$(TARGET_2ND_ARCH) as
necessary. This allows a single build rule invocation that includes
generated source to build for the first and second architectures.

Modules will need to change calls to local-intermediates-dir into
local-generated-sources-dir.

Change-Id: I62504bad9454b3d9fde7b84ab9f0a487a2ecf0bf
/build/make/core/definitions.mk
dd814bf8c20c4bbc641cc7cb71685c53e92977e1 18-Jan-2014 Ying Wang <wangying@google.com> Support to build executables for TARGET_2ND_ARCH

By default, an executable is built for TARGET_ARCH.
To build it for TARGET_2ND_ARCH in a 64bit product, use:
LOCAL_32BIT_ONLY := true
To skip a module for TARGET_2ND_ARCH, use:
LOCAL_NO_2ND_ARCH := true

Bug: 11654773
Change-Id: Ieb293d25b21024bfe1b554044df338e064ac7b46
/build/make/core/definitions.mk
4d2cc665eafb16ffe20b4ec8b2b2fc3a55f6f6ae 16-Jan-2014 Ying Wang <wangying@google.com> Set up rules to build shared libraries for TARGET_2ND_ARCH

The rules for the 2nd arch are set up in the second inclusion
of shared_library_internal.mk.
Intermediate fils of libfoo of the 2nd arch will be built into
$(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)/SHARED_LIBRARIES/libfoo_intermediates/
and the built libfoo.so will be in
$(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)/lib.

Bug: 11654773
Change-Id: I58bbe5a05a65f63bce6279131552f3792000716e
/build/make/core/definitions.mk
6ef6519170742bf3d56e17d04194e9cb0ecdead7 16-Jan-2014 Ying Wang <wangying@google.com> Set up rules to build static libraries for TARGET_2ND_ARCH

The rules for the 2nd arch are set up in the second inclusion
of static_library_internal.mk.
libfoo of the 2nd arch will be built into
$(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)/libfoo_intermediates/libfoo.a.

Bug: 11654773
Change-Id: I1d92733968fc442e9225b4df5bd1b551a81d89f7
/build/make/core/definitions.mk
72b01d6121d7a80315df996690d4efde5219b899 18-Jan-2014 Ying Wang <wangying@google.com> Support to build executables for TARGET_2ND_ARCH

By default, an executable is built for TARGET_ARCH.
To build it for TARGET_2ND_ARCH in a 64bit product, use:
LOCAL_32BIT_ONLY := true
To skip a module for TARGET_2ND_ARCH, use:
LOCAL_NO_2ND_ARCH := true

Bug: 11654773
Change-Id: Ieb293d25b21024bfe1b554044df338e064ac7b46
/build/make/core/definitions.mk
791fa6a9094dced42b4b292c163708838a8d059e 16-Jan-2014 Ying Wang <wangying@google.com> Set up rules to build shared libraries for TARGET_2ND_ARCH

The rules for the 2nd arch are set up in the second inclusion
of shared_library_internal.mk.
Intermediate fils of libfoo of the 2nd arch will be built into
$(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)/SHARED_LIBRARIES/libfoo_intermediates/
and the built libfoo.so will be in
$(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)/lib.

Bug: 11654773
Change-Id: I58bbe5a05a65f63bce6279131552f3792000716e
/build/make/core/definitions.mk
61d499b965e3314308b9510f6b6d4c8919bb0b3a 16-Jan-2014 Ying Wang <wangying@google.com> Set up rules to build static libraries for TARGET_2ND_ARCH

The rules for the 2nd arch are set up in the second inclusion
of static_library_internal.mk.
libfoo of the 2nd arch will be built into
$(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)/libfoo_intermediates/libfoo.a.

Bug: 11654773
Change-Id: I1d92733968fc442e9225b4df5bd1b551a81d89f7
/build/make/core/definitions.mk
6a271ead2f29937c51d60d77215e49e8c8f9e1c7 09-Jan-2014 Ying Wang <wangying@google.com> resolved conflicts for merge of 948786c9 to master

Conflicts:
core/llvm_config.mk

Change-Id: Icfe11ad432c39efdf281ba0ab3cffb1011789cce
e6f65438a45f0e1b519fb3cd2799f44ca87911a7 10-Dec-2013 Logan Chien <logan.chien@mediatek.com> Allow clang to build host binaries.

Change-Id: I7e4f9dc6f69a97cfefdfa2ed55c5d7b8ad496da7
/build/make/core/definitions.mk
dcdd7596235ffe8c69b99efe3f7c70d799f37ffd 13-Dec-2013 Ying Wang <wangying@android.com> am 39139ee0: am 3d10656e: am d93df332: am 10b1ffae: Merge "enable PIE for dynamically linked Linux host executables"

* commit '39139ee09a82b232877e10b2e1832664382d4257':
enable PIE for dynamically linked Linux host executables
b0eafa21b9ac578e279198b8650fafbee6b83dc3 12-Dec-2013 Joshua J. Drake <android-open-source@qoop.org> enable PIE for dynamically linked Linux host executables

Compile all host programs for Android with -fPIE and -pie. This
enables PIE (Position Independent Executables), which helps
protect these applications from exploitation due to memory
management bugs.

Note: PIE *static* executables are not supported at this time. darwin
and windows are also not supported.

Change-Id: I67c1be297711ea23064c349f97ebd02eef3eff09
/build/make/core/definitions.mk
7493c39eff203ed027b0f0ea320c26dd7d895b22 05-Dec-2013 Ying Wang <wangying@google.com> Add utility function find-files-in-subdirs

find-files-in-subdirs uses utility find to find given files in the given
subdirs. This function uses $(1), instead of LOCAL_PATH as the base.

Change-Id: Ib76631c97acd257d651a580cbad767606874f5d0
(cherry picked from commit 85898bca9969ec30c746cc852394bbae0195edbc)
/build/make/core/definitions.mk
7c8c7bd4b602c9a666a3e9379bf28fa2854a6f78 05-Dec-2013 Ying Wang <wangying@google.com> Add utility function find-files-in-subdirs

find-files-in-subdirs uses utility find to find given files in the given
subdirs. This function uses $(1), instead of LOCAL_PATH as the base.

Change-Id: Ib76631c97acd257d651a580cbad767606874f5d0
/build/make/core/definitions.mk
85898bca9969ec30c746cc852394bbae0195edbc 05-Dec-2013 Ying Wang <wangying@google.com> Add utility function find-files-in-subdirs

find-files-in-subdirs uses utility find to find given files in the given
subdirs. This function uses $(1), instead of LOCAL_PATH as the base.

Change-Id: Ib76631c97acd257d651a580cbad767606874f5d0
/build/make/core/definitions.mk
65ca9e6f02652cb80f050dd03984ab9631683756 26-Sep-2013 Guang Zhu <guangzhu@google.com> follow up jar manifest change for ENABLE_INCREMENTALJAVAC

Change-Id: Id3df078691cfe5e9221ec5085a6b02ac6b6bb008
/build/make/core/definitions.mk
5c9a1a40642cb5954f60865661d3b78904f7354a 25-Sep-2013 Guang Zhu <guangzhu@google.com> enable embeded build number in jar manifest

* if a module uses LOCAL_JAR_MANIFEST
* if the manifest file has the string '%BUILD_NUMBER%' in it

Bug: 10793010

Change-Id: I1ed3dae0706e6ad26c2bce68269c1abb7b4a7325
/build/make/core/definitions.mk
e260b24cdece1eddb757f90749ca23ee659e566e 23-Aug-2013 Ying Wang <wangying@google.com> am 670a7a63: am c5b72527: am ec3c15e5: am 04c4d34d: am 7311a344: Make it easier to enable obfuscation and optimization.

* commit '670a7a6389948c325399ae9bb3dc6a678f9982f8':
Make it easier to enable obfuscation and optimization.
c5b72527d30602568dad9fd310e82b6b12fc1106 23-Aug-2013 Ying Wang <wangying@google.com> am ec3c15e5: am 04c4d34d: am 7311a344: Make it easier to enable obfuscation and optimization.

* commit 'ec3c15e5c7c11cf3a831898f286c7eb7c216e50f':
Make it easier to enable obfuscation and optimization.
ec3c15e5c7c11cf3a831898f286c7eb7c216e50f 23-Aug-2013 Ying Wang <wangying@google.com> am 04c4d34d: am 7311a344: Make it easier to enable obfuscation and optimization.

* commit '04c4d34d4fdb56c824abf39239d2c87806706b7e':
Make it easier to enable obfuscation and optimization.
7311a344bed507062e781ba70331d85652c217d8 22-Aug-2013 Ying Wang <wangying@google.com> Make it easier to enable obfuscation and optimization.

With this change, use:
* LOCAL_PROGUARD_ENABLED := obfuscation # to enable obfuscation
* LOCAL_PROGUARD_ENABLED := optimization # to enable optimization
* LOCAL_PROGUARD_ENABLED := obfuscation optimization # to enable both

Now the meaning of the LOCAL_PROGUARD_ENABLED options:
* full:
Use the build system's default configurations:
with shrink but no obfuscation or optimization,
global proguard flags in build/core/proguard.flags
are applied.
* custom:
The same as "full" except no aapt-generated resource-related
proguard flags.
* nosystem:
Don't use any build system's default configurations; but
aapt-generated proguard flags are still applied. You are
responsible for any other flags.
* disabled:
Disable proguard.
* obfuscation:
The same as "full" but with obfuscation enabled.
* optimization:
The same as "full" but with optimization enabled.
* no value (the default):
The build system chooses the proper value: "full" if it's an
app; "disabled" if it's a library.

You can use more than 1 of them in a meaningful combination,
for example:
LOCAL_PROGUARD_ENABLED := obfuscation optimization

Bug: 10307372
Change-Id: Id248caca3048e99547f16559fae74f4afe85c354
/build/make/core/definitions.mk
400c48cc3b22b791115359c3f18e2959e244e96a 22-Aug-2013 Yohann Roussel <yroussel@google.com> Merge "Support dx generating multiple dex files."
8ffe9c3e7967ec9c6c6e9a03095454dc1b073c3b 20-Aug-2013 Yohann Roussel <yroussel@google.com> Support dx generating multiple dex files.

Dx is now capable of generating multiple dex file in one run.
This capability is not compatible with --output=*.dex so this CL
changes the --output argument to be a directory. This CL also
includes the packaging of the multiple dex files when dx generates
more than one dex file.

Change-Id: I1ddc91b416de5929d4d4b41824c6012b32f94deb
/build/make/core/definitions.mk
a3b759354612424e07e957716de2845396c0d80a 15-Aug-2013 Ying Wang <wangying@google.com> Support to optionally run rmtypedefs.

Bug: 10330586
Change-Id: I6ddfca2ec986cf2c82b0942b7a5360508f095e9a
/build/make/core/definitions.mk
8a7cd655859cdfca9169c3da4d63eca7c41fe5cd 30-Jul-2013 Jean-Baptiste Queru <jbq@google.com> am 50a402af: am f1534b62: Merge "Added generic hook for loading vendor specific defintions"

* commit '50a402af7ae550c96b9142ab56d3a23a8a8d22b1':
Added generic hook for loading vendor specific defintions
50a402af7ae550c96b9142ab56d3a23a8a8d22b1 30-Jul-2013 Jean-Baptiste Queru <jbq@google.com> am f1534b62: Merge "Added generic hook for loading vendor specific defintions"

* commit 'f1534b6292a609bb5f55c4a617f3cd1054f90a81':
Added generic hook for loading vendor specific defintions
54d9cc3fac3c0b420600bf8f64320394e6af2dd3 26-Jul-2013 Ying Wang <wangying@google.com> am cd9cadbc: am 7768c91c: am 94de1eba: Put a copy of the radio/bootloader files in the dist dir.

* commit 'cd9cadbcf68bfe07ac994e61aa00969572ae3fd5':
Put a copy of the radio/bootloader files in the dist dir.
cd9cadbcf68bfe07ac994e61aa00969572ae3fd5 26-Jul-2013 Ying Wang <wangying@google.com> am 7768c91c: am 94de1eba: Put a copy of the radio/bootloader files in the dist dir.

* commit '7768c91c1c90e7c13390396d895a3afd5fda3e0f':
Put a copy of the radio/bootloader files in the dist dir.
94de1eba0e87297421789b339c5f26bf3e48eeb1 26-Jul-2013 Ying Wang <wangying@google.com> Put a copy of the radio/bootloader files in the dist dir.

Bug: 10035750
Change-Id: I3b51e61ec737899d9264885a1e66c89a7a740d54
/build/make/core/definitions.mk
9e5efceff9d759827c90007e011caa83ec5d622a 20-Oct-2010 Marie Lennerhagen <marie.lennerhagen@sonyericsson.com> Added generic hook for loading vendor specific defintions

Change-Id: I6dec9c378ed0aabf9e60f8dcb05c6043bbcc30e5
/build/make/core/definitions.mk
5efaa72ac1051bd442836364ada2a849bf4576e2 26-Jul-2013 Ying Wang <wangying@android.com> am 51aab877: am 5d1db8b4: Merge "Allow proto builds to pass in java proto params."

* commit '51aab8775ab86990abef411d00f5686e41022eee':
Allow proto builds to pass in java proto params.
6e485b545adc2476fed23eedaec8f121fad191b2 25-Jul-2013 Ulas Kirazci <ulas@google.com> Allow proto builds to pass in java proto params.

Change-Id: I65fe0cd96f818f59267da6159e6bd2ad28f07a11
/build/make/core/definitions.mk
24c7289d242254545785c7cab237fc369b9072f9 25-Jul-2013 Ulas Kirazci <ulas@google.com> Revert "Allow proto builds to pass in java proto params."

This reverts commit 28b46fc16c026365378909f1cc88fad0d3b2395c.

Change-Id: Iaca9fa749c6f460911cc46e08e6b3ae2555b8bcc
/build/make/core/definitions.mk
fc2bad5c36c72f8c2f0bfb869e642b85ccd1b2a1 25-Jul-2013 Ben Murdoch <benm@google.com> Revert "Allow proto builds to pass in java proto params."

This reverts commit 28b46fc16c026365378909f1cc88fad0d3b2395c.

Speculative fix for master builds. I cannot repro the break the bots
are seeing locally, but it seems related to building protobufs and this
CL was in the first broken build.
/build/make/core/definitions.mk
dd3d8f4ca99f4c93e2b7a8d2f61d96fc7d888036 25-Jul-2013 Ulas Kirazci <ulas@google.com> am 6a5fc54f: am a825aa13: Merge "Allow proto builds to pass in java proto params."

* commit '6a5fc54fe9904214a7df1d34c9d48ad0310d867e':
Allow proto builds to pass in java proto params.
28b46fc16c026365378909f1cc88fad0d3b2395c 24-Jul-2013 Ulas Kirazci <ulas@google.com> Allow proto builds to pass in java proto params.

Also source files which have dependencies need to be bundled together
(at least the way the build system is set up now). Move
--proto_path=$(TOP) to the end so that it does not take precedence
over user-supplied --proto_path flags.

Change-Id: Ia532647fe8811d39230a23ba3671685b0388cbe0
/build/make/core/definitions.mk
ae859f9b64fd1740471e94f3417f63f4082a2e02 18-Jul-2013 Jeff Brown <jeffbrown@google.com> Split framework jar.

Change-Id: I38c68ac169a4ea10e4640b5d8e24298a6caaf441
/build/make/core/definitions.mk
1390cac3cea58f1c5c738bf875b4de5ba4d68fa4 12-Jul-2013 JP Abgrall <jpa@google.com> core: don't hardcode "out" during findleaves.py invocations.

"out" can be $OUT_DIR

Bug: 7183057
Change-Id: I7b52d40de4398f481e47f6d6d719fb550d874f73
/build/make/core/definitions.mk
d6b1d61d84a95ba74bb3e4f9053014357ac363d1 16-Apr-2013 Ying Wang <wangying@google.com> Do vendor check on modules installed by LOCAL_SHARED_LIBRARIES

Since commit 6c86a1 we have split LOCAL_SHARED_LIBRARIES out of
LOCAL_REQUIRED_MODULES and the vendor check does no longer cover the
installed modules introduced by LOCAL_SHARED_LIBRARIES.
This change brings back the coverage.

Change-Id: Ie78692e48f173a3350792eb2fee8127ff9433caa
/build/make/core/definitions.mk
8db4ccea4aa95d80c7c16b9f49d96d07a63c3945 28-Mar-2013 Stephen Hines <srhines@google.com> Link RS compatibility files with libc and make bcc_compat a regular dep.

If we don't do "-lc", we end up missing symbols like "memset" on our non-NEON
builds. It also makes more sense to have bcc_compat as a standard dependency
for now, since it occasionally changes the way we compile/link our source
files.

Change-Id: I4b0ead66caa7c72fb7733db8804a33faa5350930
/build/make/core/definitions.mk
1a6f09a48c2047a6611b3f01088530b2ec895f7b 05-Mar-2013 Tim Murray <timmurray@google.com> Add support for multiple architectures with RS compat lib.

Change-Id: I310f6f72e1124c06e9c59b0f59d33f168dc1e632
/build/make/core/definitions.mk
45150f8b895d3256e83bc53219e393ab91d2ef20 28-Feb-2013 Ying Wang <wangying@google.com> Fix function call syntax error.

Change-Id: Id40e059ade0c24b62ac407192ed3a67398dfa083
/build/make/core/definitions.mk
4974879c32adc8285fd4407c49919e01b54b09d6 28-Feb-2013 Ying Wang <wangying@google.com> Merge "Switch target java library dependency file from javalib.jar to classes.jar" into jb-mr2-dev
087d4ee3edbebf3719ff043210cf67bb223d8fdf 27-Feb-2013 Ying Wang <wangying@google.com> Switch target java library dependency file from javalib.jar to classes.jar

Previously, any target Java code that depends on framework.jar has to
wait for the library's javalib.jar.
To build javalib.jar we have to run dx, which is quite slow.
Actually when code links against framework.jar, only classes.jar is
needed.
This improves the potential parallelism of the build system.

Change-Id: I82c5926ef282a3a6096bbf49b54ef4f2a0c2c0e7
/build/make/core/definitions.mk
9ac9b53dc6ef05797619fb1ae65613e929914959 27-Feb-2013 Stephen Hines <srhines@google.com> Reduce RS build verbosity.

Change-Id: I9d04198ed1b9025abd60080c5ef23b3ce5ef9e22
/build/make/core/definitions.mk
9485a57bb2e55535fc337f2be803e79cd1c46b62 22-Feb-2013 Ying Wang <wangying@google.com> Untwist the target/host shared library dependencies.

Before this, if there are duplicate module names in both the host and
target spaces, LOCAL_SHARED_LIBRARIES results in mixed dependencies.

Bug: 7026946
Change-Id: I5407e3d078a8903c94978cc6d3e256851c52340f
/build/make/core/definitions.mk
6adffc196f694aafe02f13cbe48b701e034b5131 12-Feb-2013 Stephen Hines <srhines@google.com> Remove libcompiler_rt.so dependency for RS compat lib.

Change-Id: I0d871c9c7d7946b8551fdefd201603bb59ea010e
/build/make/core/definitions.mk
90a94b4bb22ce2e4f413bdd9e21a9575255a877c 02-Feb-2013 Stephen Hines <srhines@google.com> Build RS compatibility library apps with libcompiler_rt.so too.

Change-Id: Ibc14ceb473bef23ab9e28f3a6bf7e4e99d529c01
/build/make/core/definitions.mk
99b060f624a1698d3e694f4bb47ca3b23f22d18d 01-Feb-2013 Tim Murray <timmurray@google.com> Attempt #2: libclcore.bc comes from prebuilts/sdk for unbundled projects.

This change also adds the NDK library path for unbundled builds.

Bug: 7419958
Change-Id: Id8b608b5dd49d72bec697da8fa7a9393d2ab735f
/build/make/core/definitions.mk
c3ccfeee88c4b62e50c6ad8eb63cc963998c96f9 24-Jan-2013 -b master <morrildl@google.com> Build libcore without a dep on aapt.

Currently building libcore (i.e. to get the core Java libraries) has a
dependency on AAPT. This is problematic for some users that don't want to pull
in the entirety of frameworks/base, e.g. for Dalvik development.

It turns out that all definitions.mk is using aapt for in this case is 'aapt
add -k <jar> <dex>', which adds a file to a JAR while stripping path info.
This is functionally equivalent to 'zip -j', and this CL just makes that
switch.

Change-Id: I292ecaf9d0321018bb7d2e68a49b2cc81de98a20
/build/make/core/definitions.mk
ba37043835e424290aa468d3104486c02b25ed39 26-Jan-2013 Stephen Hines <srhines@google.com> Remove references to llvm-rs-link, which is unused.

Change-Id: I42433a9b1d2b525d1b09f778a10ab9689e34926e
/build/make/core/definitions.mk
8f199b0588637cd61f6d1853556c4287529f4e06 23-Jan-2013 Stephen Hines <srhines@google.com> Revert "libclcore.bc comes from prebuilts/sdk for unbundled projects."

This reverts commit ba6a7e1d46ef48d1dc58f3313e56613067ed07fb

Change-Id: I2855923e67c226d39fe362342570e9ab96b885b8
/build/make/core/definitions.mk
ba6a7e1d46ef48d1dc58f3313e56613067ed07fb 17-Jan-2013 Stephen Hines <srhines@google.com> libclcore.bc comes from prebuilts/sdk for unbundled projects.

This change also adds the NDK library path for unbundled builds.

Bug: 7419958

Change-Id: If22823c3890f5507d486e654a1e0296c06a2e239
/build/make/core/definitions.mk
9541f5864d2f9c11fe3e06fcee8e1ca2bdd2082f 19-Jan-2013 Stephen Hines <srhines@google.com> Build RS compatibility objects with libcompiler-rt.a.

Change-Id: Ic49fdc30b1d4568bbdc94338e116a31a1ade1e80
/build/make/core/definitions.mk
f692513071705e6ea28b3edd47898e12fa67a6ff 17-Dec-2012 Stephen Hines <srhines@google.com> Clean up libRSSupport.so and libclcore.bc dependencies.

Bug: 7419958
Change-Id: I62453bb6830cc2c82ca9dbbf576b52da95eef4b1
/build/make/core/definitions.mk
3a990aee1e4b1ef37fdb6cac19aabaf711200f50 14-Dec-2012 Ying Wang <wangying@google.com> Merge "Build from source or prebuilt"
63d94fa3056066ba7be6754356975af6a1c82981 14-Dec-2012 Ying Wang <wangying@google.com> Build from source or prebuilt

With this change, you can easily switch between building from source
code and prebuilt.
Set LOCAL_PREBUILT_MODULE_FILE to the path of the prebuilt file,
relative to the top of the source tree, in the usual module definition.
The prebuilt will be used unless any of the followings satisfied:
1) ANDROID_BUILD_FROM_SOURCE is "true", which disable prebuilt globally;
2) The module name is in ANDROID_NO_PREBUILT_MODULES;
3) The LOCAL_PATH is prefixed by any of ANDROID_NO_PREBUILT_PATHS.
A developer can set ANDROID_NO_PREBUILT_MODULES or
ANDROID_NO_PREBUILT_PATHS to build only his own module(s) from source,
while build other modules from prebuilts.
You can set ANDROID_BUILD_FROM_SOURCE to true to build everything from
source.
Those variables can be set with shell environmental variable or in your
buildspec.mk.

Sometimes module B is able to be built from source only if module A is
also
built from source, for example, if B is the test apk of A.
In that case, you can use the macro include-if-build-from-source to
include B's Android.mk only if A is built from source too, or
if-build-from-source to conditionally include the definition of module
B,
if their module definitions are in the same Android.mk.

Support host-executable-hook and host-shared-library-hook.

Change-Id: Icab7cf028c87eaba0dd7efc2a7749fd6f32b44e4
/build/make/core/definitions.mk
7d6ec719653d2e26e2845944f6a46fd950c1ddf9 14-Dec-2012 Stephen Hines <srhines@google.com> Add -nostdlib to RS bc->so linker command line.

Change-Id: Ic715060c3d037ec9fecb0ad9b2be6c2e7052ce0a
/build/make/core/definitions.mk
e719f28d938d3290ac591769a15b0b5e9e64fabb 29-Nov-2012 Stephen Hines <srhines@google.com> Build rules for Renderscript compatibility library.

Bug: 7419958
Change-Id: I2e0f0bb632e6ff22b2cf1a1b96b28364637995cc
/build/make/core/definitions.mk
90304a74a31aa87329145a0aea4dffa50d35be98 16-Nov-2012 Ying Wang <wangying@google.com> am ae56a570: am e1f94189: am ce811261: Merge "Move check-api to definition.mk" into jb-mr1.1-dev

* commit 'ae56a570cb7e16a0853433d20691b0ee72da5cc2':
Move check-api to definition.mk
ae56a570cb7e16a0853433d20691b0ee72da5cc2 16-Nov-2012 Ying Wang <wangying@google.com> am e1f94189: am ce811261: Merge "Move check-api to definition.mk" into jb-mr1.1-dev

* commit 'e1f94189d95084a72d206d89ecb9d38de0512fc6':
Move check-api to definition.mk
e1f94189d95084a72d206d89ecb9d38de0512fc6 16-Nov-2012 Ying Wang <wangying@google.com> am ce811261: Merge "Move check-api to definition.mk" into jb-mr1.1-dev

* commit 'ce811261bc8d56d43e59b1f9fb96ae53192de126':
Move check-api to definition.mk
c065da230762acd1cba7714827c2d588ab32a7fb 15-Nov-2012 Ying Wang <wangying@google.com> Move check-api to definition.mk

1) Move check-api to definition.mk, so it can be used in other places.
2) Add additional dependency to the api-stub module to consolidate the
apicheck dependency. Previously you have to run 2 "make"s in a row and
only in the 2nd run apicheck is run, due to a gnu-make optimization.

Bug: 7540265
Change-Id: Ib24ed87d9330027a9f95ed7b16dd4002cc0e3198
/build/make/core/definitions.mk
31df068b38729c5bc04a859b9216f539bc22c29e 13-Nov-2012 Ying Wang <wangying@google.com> Additional certificates support for an apk.

Change-Id: I5b35d5728ba9d65f7ece956127270a9ca2ea0efe
/build/make/core/definitions.mk
a7aa8005d28e3e7e5a6a4f7b9ad2c94097436d6a 30-Oct-2012 Tim Murray <timmurray@google.com> Add support for RS in C++.

Change-Id: Ib8008d6301584bd0a2cd91c4c1294e0df8ac3b73
/build/make/core/definitions.mk
50462d67e9e06ec4b65510790ff393868d8dad75 21-Oct-2012 Joe Onorato <joeo@google.com> am 8858d2a7: Add a tool to let you enforce layering between packages in a java module.

* commit '8858d2a731f432786b7548b5f63ac93be81eb986':
Add a tool to let you enforce layering between packages in a java module.
8858d2a731f432786b7548b5f63ac93be81eb986 31-Oct-2011 Joe Onorato <joeo@google.com> Add a tool to let you enforce layering between packages in a java module.

And build system support for it too.

Change-Id: I4dd5ed0b9edab6e8884b0d00cfeeae5fa38d967a
/build/make/core/definitions.mk
057eba07b8fdb30f27c9dd1889a74a053bc6ea1b 18-Oct-2012 Ying Wang <wangying@google.com> Use PRIVATE_WARNINGS_ENABLE

Before this LOCA_WARNINGS_ENABLE never worked :-(

Change-Id: I129a0bbbbb68e4179454b0827b0b0d18d6de67a0
/build/make/core/definitions.mk
0eccce99d7c23b403c6047738d88c616213ad7d7 31-Oct-2011 Joe Onorato <joeo@google.com> Add a tool to let you enforce layering between packages in a java module.

And build system support for it too.

Change-Id: I4dd5ed0b9edab6e8884b0d00cfeeae5fa38d967a
/build/make/core/definitions.mk
daf2ca50dd5d5ff3405f47bda4e59591c351cdef 12-Oct-2012 Stephen Hines <srhines@google.com> am d2637573: resolved conflicts for merge of ed38fe6f to jb-mr1-dev-plus-aosp

* commit 'd26375733992298edc036652d25170e1cd7cbd49':
Add support for building Filterscript files.
d26375733992298edc036652d25170e1cd7cbd49 12-Oct-2012 Stephen Hines <srhines@google.com> resolved conflicts for merge of ed38fe6f to jb-mr1-dev-plus-aosp

Change-Id: If699b3ccf1f3befd4df881e3eef6b90dd7c505bf
0a0cfe95ac50457fe5539f913b372880ef841880 12-Oct-2012 Stephen Hines <srhines@google.com> Merge "Add support for building Filterscript files." into jb-mr1-dev
0ab6e3e6e62bed00f300fd60110a00ed4ee397cb 12-Oct-2012 Stephen Hines <srhines@google.com> Add support for building Filterscript files.

This change piggybacks Filterscript rules onto the existing Renderscript
rules. There is no real difference other than the file extension (which
llvm-rs-cc uses to apply a more stringent set of warnings/errors).

Bug: 7166741
Change-Id: I27175ff1c16c27129cafa92b4e8caabf2e5f4150
/build/make/core/definitions.mk
57ddcb1bbce7a980e677dfd212ce76229fe33f55 26-Sep-2012 Ying Wang <wangying@google.com> Support to build executables against the NDK

Use "LOCAL_SDK_VERSION := <number>" to build against the NDK when you
include $(BUILD_EXECUTABLE).
Cherry-picked from master.

Bug: 7170098
Change-Id: Ib35a294bd6aa4e969d46ecd8ebab8ca5d843e24b
/build/make/core/definitions.mk
15f116b2bbb1a8dc6e53947588ba260f36ea066d 08-Oct-2012 Ying Wang <wangying@google.com> am 91fd1231: Support to build executables against the NDK

* commit '91fd1231c3254bc9d0642e5a646b5657bdaedffa':
Support to build executables against the NDK
91fd1231c3254bc9d0642e5a646b5657bdaedffa 26-Sep-2012 Ying Wang <wangying@google.com> Support to build executables against the NDK

Use "LOCAL_SDK_VERSION := <number>" to build against the NDK when you
include $(BUILD_EXECUTABLE).

Bug: 7170098
Change-Id: I4cebeae3355e79a4d2f2f5549ef0613ced77e3f0
/build/make/core/definitions.mk
bda3f9427d7f630f719bb39ece68697eae7fab78 03-Oct-2012 Conley Owens <cco3@android.com> am 9b962440: am 672b1893: am 8c37f49f: Merge "Follow symlinks when using find"

* commit '9b962440b00591ba43dd05977299216d499c84da':
Follow symlinks when using find
9b962440b00591ba43dd05977299216d499c84da 03-Oct-2012 Conley Owens <cco3@android.com> am 672b1893: am 8c37f49f: Merge "Follow symlinks when using find"

* commit '672b1893688be170fad79dd35c41236d7c0e36c0':
Follow symlinks when using find
f435739bac0507b8d7711957474e2f1c5c1fdc7b 02-Oct-2012 Conley Owens <cco3@android.com> Follow symlinks when using find

This allows more flexibility with symlinking subtrees within projects.
For example, a build bot with a read-only copy of the src can copy
directories which will be affected by applied patches while symlinking
to directories that will remain untouched.

Change-Id: I9c783180f3ebdd737d8daf17550f562e4f00b200
/build/make/core/definitions.mk
e88d5af2ab7081339799f64374f0ad0cec905748 02-Oct-2012 Ian Rogers <irogers@google.com> am 318330dd: am 9acbbf12: am 76a6dc3a: Fix common typo in comments, warning and error messages.

* commit '318330dd920977733f20eeda338d3c36892373f6':
Fix common typo in comments, warning and error messages.
76a6dc3a191e8800211eb49398d37deae731094e 02-Oct-2012 Ian Rogers <irogers@google.com> Fix common typo in comments, warning and error messages.

s/can not/cannot/g

Change-Id: I1bac31157732666deb46f6f20389ff539977ffb9
/build/make/core/definitions.mk
54fa8c3ff9b1f0f1b0b9c551be864f1b7378c7fc 27-Sep-2012 Ying Wang <wangying@google.com> Load only the current product config makefile.

To reduce the start time.
With the change and previous change of doing clean step in only given paths,
start time of mm/mmm is reduced from ~5s to about 1s;
lunch time is reduced from ~40s to 3.5s.

Bug: 7186768,7169854
Change-Id: Ifd72ba1c6362a5e1125a23c505fd47947ab56675
/build/make/core/definitions.mk
157a5e1695593f935c3223430f4530e21f990378 27-Sep-2012 Ying Wang <wangying@google.com> Load only the current product config makefile.

To reduce the start time.
With the change and previous change of doing clean step in only given paths,
start time of mm/mmm is reduced from ~5s to about 1s;
lunch time is reduced from ~40s to 3.5s.

Bug: 7186768,7169854
Change-Id: Ifd72ba1c6362a5e1125a23c505fd47947ab56675
/build/make/core/definitions.mk
c6ffc00b9fa7898564139558a025d865bac37a38 26-Sep-2012 Ying Wang <wangying@google.com> Support to build executables against the NDK

Use "LOCAL_SDK_VERSION := <number>" to build against the NDK when you
include $(BUILD_EXECUTABLE).

Bug: 7170098
Change-Id: I4cebeae3355e79a4d2f2f5549ef0613ced77e3f0
/build/make/core/definitions.mk
b301817223d7163de6827976f8259363ab18c7b8 05-Sep-2012 Ying Wang <wangying@google.com> Don't install all host modules by default.

Instead we should explicitly set up the dependency, if the module will
be used in the build process; Use LOCAL_MODULE_TAGS with eng, debug or
tests if the module is for testing; or add to PRODUCT_PACKAGES if it's
required by a product.

Change-Id: I326e97df6630dee4acc6582ce6cef2dec8289155
/build/make/core/definitions.mk
d43fbfe783038938fb2b4d9335d64f953d6deaca 11-Sep-2012 Ying Wang <wangying@google.com> am 23755396: am 55861069: am 4595d7d6: am 410420ed: am 9efa5bae: Merge "Add transform-d-to-p-args"

* commit '23755396f5c1d62103c8a6930e1bad63d26189f6':
Add transform-d-to-p-args
558610694400a8245dd2cfea5790af5e642d8465 10-Sep-2012 Ying Wang <wangying@google.com> am 4595d7d6: am 410420ed: am 9efa5bae: Merge "Add transform-d-to-p-args"

* commit '4595d7d62c0d594aa3501e4f547563348a3a5eb0':
Add transform-d-to-p-args
c23f4efdbbb8ce76fd5027ef4e2b6ee316ffeb2b 08-Sep-2012 Ying Wang <wangying@google.com> Add transform-d-to-p-args

This new indirection allows us too to output .P files when we are
generating non-.o files, such as .s or .S files.
Bug: 7127743

Change-Id: I9e46c417031764fefc9909ba4a3eb63885f34f9e
/build/make/core/definitions.mk
fb12f71fe7e94887e7425765a3d869d64516894a 30-Aug-2012 Ying Wang <wangying@google.com> am 18c8d9eb: am 3a6f7589: Add LOCAL_DONT_DELETE_JAR_META_INF

* commit '18c8d9eb1e0c0776862d554f0834e7ee3018375a':
Add LOCAL_DONT_DELETE_JAR_META_INF
3a6f7589e8fcc691ec768b1fdcbf0364ff4596f2 30-Aug-2012 Ying Wang <wangying@google.com> Add LOCAL_DONT_DELETE_JAR_META_INF

To support to not delete META_INF directory from the static Java
libraries.

Change-Id: I720bfa059c43dd457a74a0c60bb6797aa408ecaf
/build/make/core/definitions.mk
3e500c63563c9a2ed1ed7b1ae8a094493dbc65d2 10-Aug-2012 Ying Wang <wangying@google.com> Automatically add Java resources carried by static Java libraries.

Bug: 6892294
Change-Id: I3ff71ee3d7b9ccdfde6a5284cc350864fbffa71f

Conflicts:

core/package.mk
/build/make/core/definitions.mk
cea08a5220bb0b1169e227dd4a08dd94fef0720b 17-Aug-2012 Joe Onorato <joeo@google.com> resolved conflicts for merge of 5836d3b3 to jb-mr1-dev

Change-Id: If3d84a7439717ccf7723b3f79e934d73abbb3fea
6a185e453d423a8192f7b694cb0c707f9ec6c94b 22-May-2012 Joe Onorato <joeo@google.com> Remove support for user tags in the build system.

It is not forbidden to say LOCAL_MODULE_TAGS := user,
and if you don't say LOCAL_MODULE_TAGS, it now defaults
to optional.

Change-Id: I0a0b200bb6f1c7bf1fe3a89cdc8f69678617526c
/build/make/core/definitions.mk
918ee311f53d4128d753cca23b2b9a5212bd94f7 19-May-2012 Joe Onorato <joeo@google.com> Don't give the user tag to host modules automatically.

Change-Id: I12d0a84786e5bf2224efd8684526b6097e6105d7
/build/make/core/definitions.mk
529302d912e9ad6d62b56f98ffb718e5a4b23b18 22-May-2012 Joe Onorato <joeo@google.com> Remove support for user tags in the build system.

It is not forbidden to say LOCAL_MODULE_TAGS := user,
and if you don't say LOCAL_MODULE_TAGS, it now defaults
to optional.

Change-Id: I0a0b200bb6f1c7bf1fe3a89cdc8f69678617526c
/build/make/core/definitions.mk
f85cb7c936db4b7a6b39b1163591a61e166d9e11 19-May-2012 Joe Onorato <joeo@google.com> Don't give the user tag to host modules automatically.

Change-Id: I12d0a84786e5bf2224efd8684526b6097e6105d7
/build/make/core/definitions.mk
7429e21c2e64c1b27787e3768c30207532b56296 15-Aug-2012 Ying Wang <wangying@google.com> Add LOCAL_CONLYFLAGS.

To pass compiler flags
LOCAL_CFLAGS: to both C and C++ files;
LOCAL_CONLYFLAGS: to only C files but not C++ files;
LOCAL_CPPFLAGS: to only C++ file.
LOCAL_CPPFLAGS and LOCAL_CONLYFLAGS can override flags in LOCAL_CFLAGS.

Bug: 6967573
Change-Id: I88d9de0980e451b94bc7ae8c741ea2030eada3e1
/build/make/core/definitions.mk
939c427de266137ecbba1a7446b8e13fe09f777d 13-Aug-2012 Ying Wang <wangying@google.com> Merge "Automatically add Java resources carried by static Java libraries."
65d785274e7898d2dc89e7fffb26715f081ff284 11-Aug-2012 Ying Wang <wangying@google.com> Don't pass LOCAL_CFLAGS when compiling assembly code.

Bug: 6967574
Change-Id: Id428884dde3026c32fa6abcabbc88d188b7e9a38
/build/make/core/definitions.mk
85480629220c9afb0d138ff1ce5ea1ccbe66c7f7 10-Aug-2012 Ying Wang <wangying@google.com> Automatically add Java resources carried by static Java libraries.

Bug: 6892294
Change-Id: I3ff71ee3d7b9ccdfde6a5284cc350864fbffa71f
/build/make/core/definitions.mk
1870b7f4f26f5c1d32e767dad7a05c69e1679a3d 08-Aug-2012 Jean-Baptiste Queru <jbq@google.com> am a4814370: am 4733cfd2: Merge "definitions.mk: Don\'t use GCC \'@\' parameter"

* commit 'a4814370724634c0ee0bf35bc68f382f0df93668':
definitions.mk: Don't use GCC '@' parameter
85f3b219719657150c5bb63663983ea5a18be662 11-Jul-2012 Andrew Boie <andrew.p.boie@intel.com> definitions.mk: Don't use GCC '@' parameter

This parameter (which causes GCC to pull additional command line
parameters out of a file) is incompatible with ccache.

- With ccache 2.x, ccache will ignore this parameters, and potentially
compute invalid command line hashes since it is not reading the
parameter file

- With ccache 3.x, ccache will refuse to cache the files and error
with 'Unsupported compiler option'.

We still use the parameter file, but Make expands it instead.

Change-Id: I070c3877cbe2d058e1cf4754bac535e7f3498861
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
/build/make/core/definitions.mk
1cc65fd6eff62bbe0bf99c006398416a142bdbbf 19-Jun-2012 Ying Wang <wangying@google.com> resolved conflicts for merge of 9b76c054 to master

Change-Id: I4190ef6895b7ddb27d9a293cbacecdef1f4f20b8
ae25ec1bcdeb028a2db3103abdf1f22768928f0a 19-Jun-2012 Ying Wang <wangying@google.com> More flexibility to keep/remove R.class in static Java library

- Usually you don't need to set LOCAL_JAR_EXCLUDE_FILES in your
Android.mk, if your static library is directly used by an app.
- If your library will be included by another library that need
reference the R/Manifest class, you can set
LOCAL_JAR_EXCLUDE_FILES := none
to keep the generated classes.
- If your library includes another static library that has Android
resource and you want to remove the generated classes carried by
the static library, set:
LOCAL_JAR_EXCLUDE_FILES := $(ANDROID_RESOURCE_GENERATED_CLASSES)

With the LOCAL_JAR_EXCLUDE_FILES value "none", deprecate the old
long variable LOCAL_KEEP_R_CLASS_IN_STATIC_JAVA_LIBRARY.

Change-Id: I3b9ad5d66f0262f784feb09bc1537c5b01256258
/build/make/core/definitions.mk
bffaef246a5b838eb40a642463b1186935424fae 15-Jun-2012 Torne (Richard Coles) <torne@google.com> Make building an empty static library work.

Handle the case where a static library is not built because it has no
input files (e.g. because they are conditionally included and it happens
that the computed list is empty). Previously, ar never ran because of
split-long-arguments, and anything that depended on the static library
would fail to link. Make sure that ar runs at least once.

Change-Id: If0071d7ae50c4e45fff1772dca43187af155db1f
/build/make/core/definitions.mk
9136290afa88b3ced8ec4799587811ade0391ba5 18-May-2012 Joe Onorato <joeo@google.com> Merge commit 'bf2e8a66' into work

Change-Id: I5cd704eb59218b56b48d689afdff84638deeacf1
e44705a86f80fe356ba83b3030864f5fcff3d394 18-May-2012 Joe Onorato <joeo@google.com> Add copy-many-files macro.

Change-Id: I327fc19bdf9c1ada18b3ba695fe4104e2a241156
/build/make/core/definitions.mk
3ceecfa3daeb187c0631a84e6ee6b4dd89f111f8 14-May-2012 Ying Wang <wangying@google.com> Check the well-formedness of an xml file before copying.

Bug: 6491991
Change-Id: I3dbf9a7e1fefd9fea2636c78a85bae63ea8391b8
/build/make/core/definitions.mk
000e89a5b95a1d3071277ff279263204f49cbd78 01-May-2012 Ying Wang <wangying@google.com> Strengthen dependencies on LOCAL_REQUIRED_MODULES

Bug: 6418863
This change expands the PRODUCT_PACKAGES with the required modules.
Before this change, since the required modules are not in the
PRODUCT_PACKAGES, they are not directly depended on by the image files.
If the dependent is not to be included in the image but the required
modules are to be included, the dependency of the image on the required
modules gets lost!
That would lead to build race condition.

Change-Id: I0b656db1538ca43d3785dbf17364ffa88b80ac41
/build/make/core/definitions.mk
68f1c77a8db3ee6f92194cbaeeb1bf559bb79afd 24-Apr-2012 Ying Wang <wangying@google.com> Make export_includes depend on the module's definition makefile.

Bug: 6383397

Note that LOCAL_MODULE_MAKEFILE is calculated in the macro my-dir,
which must be called at the beginning of your Android.mk to calculate
LOCAL_PATH.

Change-Id: I7aa079e37253fbda25ffb85c2e5bbf0663340e27
/build/make/core/definitions.mk
4394aaef7eb02116bca4ef8781201d4559ee99db 09-Apr-2012 Ying Wang <wangying@google.com> Merge "Build system support to export include paths"
9296f092771a0261404f51bcbc1b62ba20654947 21-Mar-2012 Doug Zongker <dougz@android.com> optional cross-check between OTA radio images and board-info.txt

Adds a python script which checks the version of each radio image
added with the new add-radio-file-checked macro against a file
containing sha-1 -> version string mappings and the contents of
board-info.txt, so that the build can fail if board-info.txt and the
OTA images are out of sync.

Change-Id: Icb61dc2adefc240ced9059941582c23b629089c0
/build/make/core/definitions.mk
8d5610cd1bea3f771245ad3fdb87096e7fffea73 31-Jan-2012 Wink Saville <wink@google.com> Merge "Increase java heap size."
29b3afaf79e89e5707c6a28e7ed55d3c04810352 31-Jan-2012 Wink Saville <wink@google.com> Increase java heap size.

I got an Out of memory while compiling, Andreas Huber suggested that
increasing the heap size, which worked.

Change-Id: Id8293ef100ef814b0fe13aa6e1b891a36a2ee853
/build/make/core/definitions.mk
707328a3efcf9362bfff87c75831436006140d17 30-Jan-2012 Ying Wang <wangying@google.com> Build should fail if any proto file fails compiling

When compile multipling proto files to Java in a for loop.

Change-Id: Ie6a9d3972401b0ad6406bf911db916fcbf88037b
/build/make/core/definitions.mk
015c7885e05019b615b0533a599e3ff003c68623 23-Dec-2011 Conley Owens <cco3@android.com> Merge "Get build system to work with Make 3.82"
d7a1a9b49b9d6e8331bcc5b2ece84903a94553de 22-Dec-2011 Conley Owens <cco3@android.com> Get build system to work with Make 3.82

Note: `sort` can't seem to handle newlines in 3.82.

Change-Id: Ieeaee1d19688688a02e396bbc5b4dea26e7f6943
/build/make/core/definitions.mk
5846050fd4ee7d29917769f2e354c55d09d2087d 22-Dec-2011 Atte Peltomaki <apeltomaki@nvidia.com> am 05e98055: am 60fe963c: build: explicitly define dependency files

* commit '05e98055fdb1d48bac80790cb719838598b687e8':
build: explicitly define dependency files
60fe963c63c1b98255ad1cf40573b81b5d90d9c3 21-Dec-2011 Atte Peltomaki <apeltomaki@nvidia.com> build: explicitly define dependency files

Groundwork for distcc support in Android build system,
see distcc FAQ for details on why -MF is needed:
http://distcc.googlecode.com/svn/trunk/doc/web/faq.html
/build/make/core/definitions.mk
4b9d4ea2e23fa1a97ae912b7d6d2729fe267c290 17-Dec-2011 Ying Wang <wangying@google.com> Merge "Collect the GPL source files."
5758b8ed96783861c72b94a822c0ed581f414388 16-Dec-2011 Ying Wang <wangying@google.com> Remove the R/Manifest classes when building the static Java library

Bug: 5448433

Instead of deferring the removal to building the app.
In that case any R/Manifest classes in any static Java libraries will be
deleted, no matter if they are generated from Android resource, or just
source R.java/Manifest.java in the source tree by accident.

Change-Id: I656f45e3cbc3796c5d4832363231480b3f1dc5b8
/build/make/core/definitions.mk
bf6c611cae9c8c3540bed07cd3864026a48ca229 16-Dec-2011 Ying Wang <wangying@google.com> Don't remove R class to fix the build.

Unfortunately there is R.java checked in the source tree that gets built
into static library.
So we have to find a way to delete classes from R.java generated by the
build system on the fly.

Change-Id: I2d82d28234cecbf6dd5b02b2dd4f7dbd47e3b626
/build/make/core/definitions.mk
20e2083ea0f8bae57ace17f098e7fe71a9625f84 14-Dec-2011 Ying Wang <wangying@google.com> Support to build static Java library with Android resource

Bug: 5714516

The rationale behind this change:
- the library is compiled into a jar file, but its R class is generated
making the constant not constant (static, not final static) (aapt
option --non-constant-id). Also the jar file does not contain the R
class.
- this allows the integer value to not be inlined in the compiled
class files. Note that this prevents using switch statements.
- the main project use this jar file as a normal static library: it will
add all the class files except the R.class.
- the main project uses the library res folder as a resource
folder with lower priority than the main project (basically the
main project is an overlay. This is accomplished using aapt's
--auto-add-overlay to handle resources only in the main project
(which the normal overlay mechanism doesn't allow).
- the main project creates R classes in the main project's
package but also in the library's package. This is done with
aapt's --extra-packages which accept as many packages as
needed, separated by a :.
- manifest merging is not done yet, so
activities/services/permissions/etc... have to be manually declared in
the main app.

To use a static library with Android resource in your app,
1. Add the library's resource dir to your app as an overlay:
LOCAL_RESOURCE_DIR := <app_resource_dir> <static_library_resource_dirs>
2. Set the proper aapt flags:
LOCAL_AAPT_FLAGS := <apps_own_flags> --auto-add-overlay \
--extra-packages <lib1_package_name>:<lib2_package_name>:...

Change-Id: Ifb4d2300b952ea4aaee74da1bb0c6c72ea0698a3
/build/make/core/definitions.mk
e109a1d08d27ad18cc6ac70d9742de636ccae67e 13-Dec-2011 Ying Wang <wangying@google.com> Allow to build Java module from mere static Java libraries.

With this change, we can easily turn a static Java library to a shared
Java library.

Change-Id: I9915992cd19879846511d6272483d7a0a934e7eb
/build/make/core/definitions.mk
fd626f2d21a55aec9133424f4303d5450ad9622e 12-Dec-2011 Ying Wang <wangying@google.com> Collect the GPL source files.

Bug: 5693205
Change-Id: I045b83949f8b29d7c5cf5c0ab32c5b83cf398e71
/build/make/core/definitions.mk
914f7a2990ef0e02d4632dd77076c6c7bb11e6dd 07-Dec-2011 Stephen Hines <srhines@google.com> Enable -Wall/-Werror with LOCAL_RENDERSCRIPT_FLAGS.

Change-Id: Ia2a058e6711839d89072c2e96f0c60aa4cedda6b
/build/make/core/definitions.mk
99bcbeb355959d073e24dc5da9f858ee24cf7baa 02-Dec-2011 Ying Wang <wangying@google.com> Print more info of the image size stats.

Bug: 5620615
Before this change it only reports the limit if the real size exceeeds
or approaches the limit.

Change-Id: Ie1737d6ba2dc2d57ad82c487990e109882526d6e
/build/make/core/definitions.mk
293f9392ba39115a9429b5c8f98a5ca4054b3e21 19-Nov-2011 Jeff Hamilton <jham@android.com> Bypass alias for grep in the tapas command.

Change-Id: I82705535bda927ddc7e9aebb9610d712b68a50d2
/build/make/core/definitions.mk
5f074803fbc14d091fb83208b81b3ffa10f54f90 08-Nov-2011 Ying Wang <wangying@google.com> Build system support to export include paths

Bug: 5573756
With this change, we can set LOCAL_EXPORT_C_INCLUDE_DIRS in the module
definition to export include dir paths.
Paths in LOCAL_EXPORT_C_INCLUDE_DIRS should be relative to the top dir
of the source tree.
If a library (shared or static) exports some include paths, any module
using it will import the include paths and add them to the compiler
command line.

Change-Id: I49aabc589d2cf214044d13ccd5532ef68209adf0
/build/make/core/definitions.mk
e04c2c21ee40f7e54924c586d5e7c148e0955ee1 10-Nov-2011 Conley Owens <cco3@android.com> am e915ab45: Place linker arguments after objects for gcc

* commit 'e915ab45a11f88c4fa5f2561c1aaca4b7d3d7593':
Place linker arguments after objects for gcc
e915ab45a11f88c4fa5f2561c1aaca4b7d3d7593 10-Nov-2011 Conley Owens <cco3@android.com> Place linker arguments after objects for gcc

gcc 4.6.1 does not properly link if libraries are specified before
objects.

Change-Id: Iabe3eac831fe597abe8a93a946ab7a22d584db46
/build/make/core/definitions.mk
d9e7d257416a4c85f575161c10c589b3656db3e9 10-Nov-2011 Conley Owens <cco3@android.com> Place linker arguments after objects for gcc

gcc 4.6.1 does not properly link if libraries are specified before
objects.

Change-Id: Iabe3eac831fe597abe8a93a946ab7a22d584db46
/build/make/core/definitions.mk
c72b1403e43884dc7dc9f749be51a8d890d62e27 31-Oct-2011 Joe Onorato <joeo@google.com> Add a tool to let you enforce layering between packages in a java module.

And build system support for it too.

Change-Id: I4dd5ed0b9edab6e8884b0d00cfeeae5fa38d967a
/build/make/core/definitions.mk
cec077521e216af1a62951a4b167788b292f7091 18-Oct-2011 Bjorn Bringert <bringert@android.com> Merge "Compile each proto file separately"
20f5efd82caf038697c03daa230345cdda9ae31d 18-Oct-2011 Bjorn Bringert <bringert@android.com> Compile each proto file separately

Before, if a module had several proto source files,
they would all be compiled in a single invocation
of aprotoc. If any of the files imported one of the
other files, you got an aprotoc error about duplicates.
And if you removed the files that were imported
from the list of source files, no Java code
would be generated for the imported files,
causing a Java compile time error.

This changes compiles each proto file separately, which
avoids both of the problems above. It's slightly more
inefficient, but aprotoc is really fast.

Change-Id: I7bd8092ec2953c20269367a1c68ff84acceea3be
/build/make/core/definitions.mk
9baabf8d7e017e4f34fef2f4766671804063df28 17-Oct-2011 Dianne Hackborn <hackbod@google.com> am a0f464a8: New PRODUCT_AAPT_PREF_CONFIG.

* commit 'a0f464a8e7f006177db084df7e925bbb8e5ffed3':
New PRODUCT_AAPT_PREF_CONFIG.
a0f464a8e7f006177db084df7e925bbb8e5ffed3 15-Oct-2011 Dianne Hackborn <hackbod@google.com> New PRODUCT_AAPT_PREF_CONFIG.

To use the new aapt --preferred-configurations option. For use with Prime
to be able to strip everything but xhdpi density bitmaps selectively,
not stripping when this would result in no data for the resource.

Change-Id: I4e1012929b8f9b0b1e79c06496647f69661ba1f2
/build/make/core/definitions.mk
d89452976b6d476896747a0136a1ad40e514e162 11-Oct-2011 Ying Wang <wangying@google.com> Merge "Use shell variable to eliminate $(eval) in commands."
f1054bf22e3a2bde2ee587db2e29d68dada104d2 08-Sep-2011 Ying Wang <wangying@google.com> Merge "Discard hidden files when rounding up resource."
c963eae72ca502ac847fa03e87644c660b868295 10-Aug-2011 Stephen Hines <srhines@google.com> Update build to properly use prebuilt llvm-rs-cc.

Change-Id: I52a83066b6c08d05d69db4f93631eeaf9c0b41c6
/build/make/core/definitions.mk
6ab5d6aa166f14c79f31240d2902b5b539253af3 11-Aug-2011 Ying Wang <wangying@google.com> Discard hidden files when rounding up resource.

Aapt will discard the hidden files anyway.
With this change, we can avoid unnecessary rebuild if a module has only
hidden files in its resource dir.

Change-Id: Iaf0a13e038cca5fb60012c550cc90f7abbe967e1
/build/make/core/definitions.mk
6e7db38de7cfc905413e27cc8967909727db3022 27-Jul-2011 Ying Wang <wangying@google.com> Use shell variable to eliminate $(eval) in commands.

$(eval) in the commands does not evaulate in the same order in emake as
in gmake. Using shell vars work in both makes.

Change-Id: I4e95adb2bc6f4600e29b9a8524275a099f47a401
/build/make/core/definitions.mk
7e8d442ca4f716dd3a67a63ae59779a1e1a6b45f 18-Jun-2011 Ying Wang <wangying@google.com> Uniq the system properties.

If multiple items with the same key appear in a config variable,
only the first item is taken.

Change-Id: Icf57befafb36ec35dd4d48c8c3ec595f353f68e7
/build/make/core/definitions.mk
194a8ec8aee8511d90354c4b97fecfd0df52c837 06-Jun-2011 Ying Wang <wangying@google.com> Use arg list file to pass arguments to jar.

To fix error "/bin/bash: Argument list too long"

Change-Id: Ie336b18f9a7eba38d94a6e32c07a88589ce9f1fd
/build/make/core/definitions.mk
4387dc3ee112839226bccc9454d6a7e539850320 03-Jun-2011 Ying Wang <wangying@google.com> am 823f6389: am 3487736b: am 7d83ef8f: Support custom RenderScript compiler

* commit '823f63894fb4ad5c1280a5ee7eb004792223a488':
Support custom RenderScript compiler
e804fc92ec3c19d136a86703a34d954d42cfeca6 01-Jun-2011 Doug Kwan <dougkwan@google.com> Merge "Allow enabling RTTI in a module."
149dd914b8799d67b8c4a6fb502b44058a3e14b8 01-Jun-2011 Joe Onorato <joeo@google.com> Switch the java encoding from ascii to utf8.

Change-Id: Iee0972df68b44fc8c653812cf165b57350a7ec5d
/build/make/core/definitions.mk
823f63894fb4ad5c1280a5ee7eb004792223a488 28-May-2011 Ying Wang <wangying@google.com> am 3487736b: am 7d83ef8f: Support custom RenderScript compiler

* commit '3487736bac5625bef8ff9bc4ef311b29348055d9':
Support custom RenderScript compiler
7d83ef8ff7679239063bb8484f0c1fdcf31abf8b 26-May-2011 Ying Wang <wangying@google.com> Support custom RenderScript compiler

Change-Id: I85e38e84565e04f99dd26217f280274883dc322d
/build/make/core/definitions.mk
9a8ecf970bf53f7f43a8722212ff4b217a6bb403 11-May-2011 Doug Kwan <dougkwan@google.com> Allow enabling RTTI in a module.

Change-Id: Ie8ce920e3ccb7e53bdf917d8ac5a386df3e7836a
/build/make/core/definitions.mk
fcdabd4bdbb347399e77d2fd4b1aefd6281d75f8 25-Apr-2011 Ying Wang <wangying@google.com> Add LOCAL_GROUP_STATIC_LIBRARIES

Set LOCAL_GROUP_STATIC_LIBRARIES := true to group the static libraries,
in case we need gcc flags "-Wl,--start-group" and "-Wl,--end-group" to
fix circular references.

Change-Id: I03c4901670112fcdd2bb0fe660b6924e5776fcf8
/build/make/core/definitions.mk
ddbcad8c852980aabd2c7b02b909726d5c697182 18-Apr-2011 Ying Wang <wangying@google.com> Add TARGET_PROJECT_INCLUDES as system includes

And do the same to host modules.

Bug: 4279745
Change-Id: I5b0cd0e13e0e61b5051537b5834eba48e5f822f8
/build/make/core/definitions.mk
4761e56a7175db89b98b6ac07a978f54dcc78213 12-Apr-2011 Ying Wang <wangying@google.com> Pass TARGET_C_INCLUDES as system include directories to gcc

So warnings from those headers can be suppressed.
Bug: 4279745

Change-Id: Id69b253c5566de53153b87ef69eff15b8a47c832
/build/make/core/definitions.mk
bb9c230b68e9b57fe60f050e231f8437324f107a 09-Apr-2011 Ying Wang <wangying@google.com> Set the default app sdk verstion to LOCAL_SDK_VERSION

Instead of using the DEFAULT_APP_TARGET_SDK, which is the hardcoded in
the build system, ie the sdk version of the current source tree.

Change-Id: I2fae3521300cc6b2449df3659ded7f7a397609c0
/build/make/core/definitions.mk
bb7c6d88c6dd5ee48e8b8ec85ee04c0aa7bc5979 02-Apr-2011 Brian Carlstrom <bdc@google.com> Tracking merge of dalvik-dev to master

git cherry-pick --no-commit 5fac8d8f7096d8a950acad1ad0a8b963cef72e03

git cherry-pick --no-commit 1a8210710b46a0796ff2f8e76b6beb3a54f89019

git cherry-pick --no-commit 4fe2ac9f7284b838393aec8f0f48caef2510fd46

git cherry-pick --no-commit 7beb710a8f976fc4cb1e8be780644386870c4975

Change-Id: Ib10348e5509c906c6b95fa4accd6a18900bfe748
/build/make/core/definitions.mk
cd4e323e0eb4c01e36233dde15500c57d7f2da4d 01-Apr-2011 Ying Wang <wangying@android.com> am ce467097: am 54aa74ef: am a9e5bb8a: am f78fb1d1: Merge "Use my-dir in a consistent way as others"

* commit 'ce4670977d0367983e40ed339da793792fdb6e06':
Use my-dir in a consistent way as others
ce4670977d0367983e40ed339da793792fdb6e06 01-Apr-2011 Ying Wang <wangying@android.com> am 54aa74ef: am a9e5bb8a: am f78fb1d1: Merge "Use my-dir in a consistent way as others"

* commit '54aa74ef5da0a76a0fc1afdabaa24d2fb0744cd1':
Use my-dir in a consistent way as others
4f1ab92aac00a73276793ed25af669d112618a32 15-Mar-2011 Ying Wang <wangying@google.com> Move screen density config from PRODUCT_LOCALES to PRODUCT_AAPT_CONFIG

With this change, PRODUCT_LOCALES will contain only locales.
Other aapt config flags, such as *dpi, small/normal/large/xlarge,
should go to PRODUCT_AAPT_CONFIGS.
Bug: 4086309

Change-Id: I922f153d79777a9522c542a3907111193b40e7b7
/build/make/core/definitions.mk
b375e71d306f2fd356b9b356b636e568c4581fa1 09-Mar-2011 Iliyan Malchev <malchev@google.com> build: remove prelinker build build system

This patch removes support for prelinking from the build system. By now, the
prelinker has outlived its usefulness for several reasons. Firstly, the
speedup that it afforded in the early days of Android is now nullified by the
speed of hardware, as well as by the presence of Zygote. Secondly, the space
savings that come with prelinking (measued at 17MB on a recent honeycomb
stingray build) are no longer important either. Thirdly, prelinking reduces
the effectiveness of Address-Space-Layout Randomization. Finally, since it is
not part of the gcc suite, the prelinker needs to be maintained separately.

The patch deletes apriori, soslim, lsd, isprelinked, and iself from the source
tree. It also removes the prelink map.

LOCAL_PRELINK_MODULE becomes a no-op. Individual Android.mk will get cleaned
separately. Support for prelinking will have to be removed from the recovery
code and from the dynamic loader as well.

Change-Id: I5839c9c25f7772d5183eedfe20ab924f2a7cd411
/build/make/core/definitions.mk
e73c4bbc509f414cb8fbf487b7f44ab94af9cbb9 16-Jan-2011 Chih-Wei Huang <cwhuang@linux.org.tw> Use my-dir in a consistent way as others

Change-Id: I3fd0cc58b48d621b431d7dd05fb689c1917b530d
/build/make/core/definitions.mk
a67ce69e9a1ff267cb3c01bdd3214b6c68aa6f63 03-Mar-2011 Ying Wang <wangying@google.com> Handle MODULE_LICENSE_MPL the same as MODULE_LICENSE_GPL.

Change-Id: Iefc6df3f3401a591f53ec3f22202044c60acf460
/build/make/core/definitions.mk
bd528a82a24e2230ea797ffc7d9a20d4d917747e 16-Feb-2011 Jeff Brown <jeffbrown@google.com> Build system tweaks for Valgrind.

Added LOCAL_NO_CRT to enable building executables that do not link
to the C runtime library.

Removed support for LOCAL_MODULE_SUBDIR since it was broken
and unused. (Was going to use it but ended up using LOCAL_MODULE_PATH
instead.)

Change-Id: Ifed4ffe17003d90370c711ea6606e2b75e841dee
/build/make/core/definitions.mk
d6b413a904fb7238299bb1217f299ddf4a692493 15-Feb-2011 David 'Digit' Turner <digit@android.com> am 3be47af9: am b3f59bde: am 86a90364: Merge "core/binary.mk: Add missing Objective-C objects to the build."

* commit '3be47af9491b7fd93b74122cb7f979f2b86c1634':
core/binary.mk: Add missing Objective-C objects to the build.
3be47af9491b7fd93b74122cb7f979f2b86c1634 15-Feb-2011 David 'Digit' Turner <digit@android.com> am b3f59bde: am 86a90364: Merge "core/binary.mk: Add missing Objective-C objects to the build."

* commit 'b3f59bde44fc16fa43b6a01a890c4b42cf446292':
core/binary.mk: Add missing Objective-C objects to the build.
5ca286d58bc2f8e2445ae77d7ca8b4046a016988 11-Feb-2011 David 'Digit' Turner <digit@android.com> core/binary.mk: Add missing Objective-C objects to the build.

For some reason, all_objects was not listing objects generated from
objective-C sources. We need these for the emulator (which builds its
own version of SDL which uses Quartz on OS X).

+ Fix a typo in transform-host-m-to-o definition.

This also explains why https://review.source.android.com/#change,21074
had to be reverted, since it gets rid of the prebuilt SDL libraries when
building the emulator.

Change-Id: I173811cf11cdb5b045073aade59364236145bc77
/build/make/core/definitions.mk
4a2ecaf5dc7434dd06a1fbcf14c56e6a7c7b383b 10-Feb-2011 Ying Wang <wangying@google.com> Fix the case image-size-from-data-size returns 0.

This time with correct escaping.

Change-Id: I660887ac62425e9960e266391b52979a7dff4617
/build/make/core/definitions.mk
bfaf531e05b3f024dc758ab5211ef9b067f60754 10-Feb-2011 Ying Wang <wangying@google.com> Revert "Fix the case BOARD_FLASH_BLOCK_SIZE smaller than BOARD_NAND_PAGE_SIZE, eg generic_x86"

This reverts commit 279f3084bbb4781d872412f5e49c74f462f7844a.

Change-Id: I27069190503e586d3d77a933d92459a34eb55cb8
/build/make/core/definitions.mk
389cf7ac4edf714874f06d02d287a6350f52a47d 09-Feb-2011 Ying Wang <wangying@google.com> Merge "Fix the case BOARD_FLASH_BLOCK_SIZE smaller than BOARD_NAND_PAGE_SIZE, eg generic_x86"
279f3084bbb4781d872412f5e49c74f462f7844a 09-Feb-2011 Ying Wang <wangying@google.com> Fix the case BOARD_FLASH_BLOCK_SIZE smaller than BOARD_NAND_PAGE_SIZE, eg generic_x86

Also don't build ota package for generic_x86.

Change-Id: I7606d56b312ac2e0c3514a8f250e005e0c05a3f1
/build/make/core/definitions.mk
703e7c6d50a5bddf0fb057a1a26618e2f7138c31 05-Feb-2011 Jeff Brown <jeffbrown@google.com> Build system tweaks for Valgrind.

Added LOCAL_NO_CRT to enable building executables that do not link
to the C runtime library.

Removed support for LOCAL_MODULE_SUBDIR since it was broken
and unused. (Was going to use it but ended up using LOCAL_MODULE_PATH
instead.)

Change-Id: I3b6f5ab7e5ae6aaa7119899adccece2b4ab1cbb3
/build/make/core/definitions.mk
3a7e4ccad9c910ac798a8c324f7718d137bd7692 28-Jan-2011 Ying Wang <wangying@google.com> Unify use of $(hide).

Change-Id: Ib7e17bbb4682caecce5812e63de872b676403d64
/build/make/core/definitions.mk
a02d3d9f746a0cd267bd793fca256f355111484b 28-Jan-2011 Ying Wang <wangying@google.com> Break down the buge shell command line preparing whole static libraries.

This can fix the "@: command not found" messages, which is caused by "@"
in the middle of the shell command line.

Change-Id: I444827458045efcbc70a6e1e43bf4ee040e71b79
/build/make/core/definitions.mk
c61d4c91b6b31776665be3fcc7e4733b53e6c6e8 27-Jan-2011 Jean-Baptiste Queru <jbq@google.com> Extra protobuf-related support

Change-Id: I375d32f0bcb695ccb0603743133034941d584163
/build/make/core/definitions.mk
79ee7bf896cb03c9c05df9aac644fdb055a37898 27-Jan-2011 Jean-Baptiste Queru <jbq@google.com> Protobuf compiler support in the build system
/build/make/core/definitions.mk
80e6cce93e36787be9123f9b5dc91da1a0d2f472 25-Jan-2011 Ying Wang <wangying@google.com> Correct misuse of target/host vars.

Change-Id: Ide41aeddc44ca05d85a36035c2d55ea453cfd216
/build/make/core/definitions.mk
015edd2c1b4a4300ccccee4036ec2ca7e9ad798a 21-Jan-2011 Ying Wang <wangying@google.com> Add modifier goal incrementaljavac

With "incrementaljavac" on your make command line, you will recompile
only Java source files that have been changed since last build.
Nothing is changed if "incrementaljavac" is not among your make goals.

Change-Id: Iae591459827df81ac91e95292464db5e9828343a
/build/make/core/definitions.mk
84ed6fa27b883de8ba7b41ddecaa2179e7f4b321 19-Jan-2011 Ying Wang <wangying@google.com> Disable "-t" for acp.

Acp can not handle high resolution file timestamp on ext4.
We need this to fix incremental build on ext4.

Change-Id: I54e45c73ffa44c4253c7a431375d419fa4dccfd9
/build/make/core/definitions.mk
60a1e8805290267d6c8f32051f25e6f21fae909a 12-Jan-2011 David 'Digit' Turner <digit@android.com> Add support for custom Linux host toolchains when building the SDK.

This is needed in order to build Linux SDK binaries that can run
properly on Ubuntu 8.04 (Hardy). By default, the host toolchain
on 10.04 (Lucid) generates machine code that won't run on Hardy
due to GLibc ABI mistmatches.

Note that nothing happens if the new toolchain is not in the
prebuilt tree.

Change-Id: I914f5a303f16b6871759ce5a7178585ed3060870
/build/make/core/definitions.mk
085ff6a8ac90e989507097885eaf65c9587c2c96 20-Dec-2010 Ying Wang <wangying@google.com> am 098826bf: am 099fecd7: Use PRIVATE_CXX in HOST modules.

* commit '098826bf61cba2b14a0538100878bdb029f50790':
Use PRIVATE_CXX in HOST modules.
098826bf61cba2b14a0538100878bdb029f50790 20-Dec-2010 Ying Wang <wangying@google.com> am 099fecd7: Use PRIVATE_CXX in HOST modules.

* commit '099fecd759ce54168fe4094880d1ca748e8906b9':
Use PRIVATE_CXX in HOST modules.
099fecd759ce54168fe4094880d1ca748e8906b9 20-Dec-2010 Ying Wang <wangying@google.com> Use PRIVATE_CXX in HOST modules.

This fixes the build error:
out/host/linux-x86/obj/SHARED_LIBRARIES/libneo_util_intermediates/neo_err.o:
file not recognized: File format not recognized
See also CL #84578

Change-Id: Ib91230c7a5c9809eb1935959eaa9be8fa7c596b9
/build/make/core/definitions.mk
02e172e892190c1c94539594d639776c4b24efdf 14-Dec-2010 David 'Digit' Turner <digit@google.com> am efc5d814: am 15f4980d: Merge "Add support for custom Linux host toolchains when building the SDK." into gingerbread

* commit 'efc5d81428a8c7d9cf7cb7b3a5f1a8344b02a700':
Add support for custom Linux host toolchains when building the SDK.
efc5d81428a8c7d9cf7cb7b3a5f1a8344b02a700 14-Dec-2010 David 'Digit' Turner <digit@google.com> am 15f4980d: Merge "Add support for custom Linux host toolchains when building the SDK." into gingerbread

* commit '15f4980d510824113a4d2b71d70de9c67715f3dc':
Add support for custom Linux host toolchains when building the SDK.
782695112d42ea3b9992e7c5f10a76f1854343d4 10-Dec-2010 Brian Carlstrom <bdc@google.com> Unify target and host Java compilation

This changes tries to reconcile drift between
transform-java-to-classes.jar which is used to build java for the
target with transform-host-java-to-package which is used for the
host. Several packages such as libcore are built both ways and the
drift between these rules was making it hard to make common changes to
things such as warning options.

The new compile-javac definition tries to include as much as possible
from the two previous definitions. Some conflicts it sorts out:
- hardwired -g vs PRIVATE_JAVAC_DEBUG_FLAGS
- consistent order of arguments
- moving PRIVATE_JAVAC_FLAGS to end to allow override of arguments
- xlint_unchecked is always conditional based on LOCAL_WARNINGS_ENABLE

Now what differs between the two is clear in the
transform-java-to-classes and transform-host-java-to-package
definitions. Notable differences:
- the target case supplies a bootclasspath while the host case does not.
- .class files are cleaned up after jaring in the target case,
but in the cost case they are left for the sake of the vm-tests target
which expects them to be present. That should probably be fixed in the future.
- PRIVATE_EXTRA_JAR_ARGS used to package resources into the jar only
happens for the host. Its handled by add-java-resources-to-package for the
target after dxing.

Change-Id: I2fb28f688fbb632102ca63448c2ac911db0477ae
/build/make/core/definitions.mk
0960ca748804b772453ebe50d212a691c1a6c066 10-Dec-2010 David 'Digit' Turner <digit@google.com> Add support for custom Linux host toolchains when building the SDK.

This is needed in order to build Linux SDK binaries that can run
properly on Ubuntu 8.04 (Hardy). By default, the host toolchain
on 10.04 (Lucid) generates machine code that won't run on Hardy
due to GLibc ABI mistmatches.

Note that nothing happens if the new toolchain is not in the
prebuilt tree.

Change-Id: I45c1f68e37e15a0032f885df1c5c0f297b3d8642
/build/make/core/definitions.mk
1ee80eefc7696cd7affb1436bc351d500ba02d78 07-Dec-2010 Jean-Baptiste Queru <jbq@google.com> am dbd43691: am 3ef1d674: am 4985f06f: Merge "Make image-size-from-data-size not use hard coded values."

* commit 'dbd43691870fa64d1ad79371e3d796ed8e63b3b9':
Make image-size-from-data-size not use hard coded values.
3ef1d674806734c2e237a54815ea5c077ce8c344 07-Dec-2010 Jean-Baptiste Queru <jbq@google.com> am 4985f06f: Merge "Make image-size-from-data-size not use hard coded values."

* commit '4985f06f4e96351c77b88b20bc9ded65daefcd3e':
Make image-size-from-data-size not use hard coded values.
9cb8c2835232c8dc99cecca85a7e99bdee7109a9 06-Dec-2010 Lars Svensson <lars1.svensson@sonyericsson.com> Make image-size-from-data-size not use hard coded values.

The function image-size-from-data-size was using hard
coded values. The size of spare area and pages has become
configurable so we need to read from the variables.

Change-Id: I9461d34400ffc2cc5920860d8aa78750d559e397
/build/make/core/definitions.mk
33c0d952fcba713f00c1cafc8213274e642aee4c 05-Nov-2010 Ying Wang <wangying@google.com> Allow module-specific protoc flags.

You can add local protoc flags via LOCAL_PROTOC_FLAGS.

Change-Id: If246a4edafe1edcec6a7f193bde8ce3c83de745b
/build/make/core/definitions.mk
a5fc87a93713b1976c5bfdd602d1c6bd285e7533 03-Nov-2010 Ying Wang <wangying@google.com> Integrate protocol buffer compiler into the build system.

Bug: 3152546
Change-Id: Ida3ca3d633ce45704dc8e80d044cdbd3ca69aca5
/build/make/core/definitions.mk
c656030f7d97ef86b4b99ab860cf70a283df7924 23-Oct-2010 Shih-wei Liao <sliao@google.com> Turn off llvm-rs-link to make launch time go faster.

Change-Id: Idbbb5e24a269e3c9a1911b47b4fbb1616cef5803
/build/make/core/definitions.mk
98582b28e8315f9d9960aeb78143d360500bdfff 13-Oct-2010 Doug Zongker <dougz@android.com> radio files aren't modules, prebuilt or otherwise

Change-Id: Ic21cf9f7d9657819e40c6700c98e61971dab24b4
/build/make/core/definitions.mk
4a5bd245ff3228ce30ca58bad3ab526806bd1801 12-Oct-2010 Ying Wang <wangying@google.com> Fix typo.

Change-Id: Iabdc6ec1ead4f37294f01ebebc1e71e188455533
/build/make/core/definitions.mk
f7b32bfe41406daf0785b7451efdbbb9b7bbba7a 11-Oct-2010 Shih-wei Liao <sliao@google.com> Enable LLVM_RS_LINK. No longer forking an LLVM linker inside llvm-rs-cc.

Change-Id: I2ebc6ec759daf36d1e77fa8e30147ab8e40b44fc
/build/make/core/definitions.mk
d01fadb6bc8d72966bf00e0cc375f9fa59479f81 09-Oct-2010 Shih-wei Liao <sliao@google.com> Make naming consistent: llvm-rs-cc and llvm-rs-link.

Change-Id: I8e8ae27548131b47fbbd037d55b472d095d7bb8f
/build/make/core/definitions.mk
e814ad495055bc226c9fb453d6e786875f33a102 08-Oct-2010 Joe Onorato <joeo@google.com> am 5c41c178: am 700b88e1: Pass device characteristic information through to aapt.

Merge commit '5c41c17868865d1f2e9e2ff4680b528da61d16af'

* commit '5c41c17868865d1f2e9e2ff4680b528da61d16af':
Pass device characteristic information through to aapt.
24e1c018ba83ce6465aa9faf0347071f271d2425 08-Oct-2010 Ying Wang <wangying@google.com> Integrate the slang "-MD" into the build system.

So that the header dependency can be included.
Bug: 2932230

Change-Id: I4d69870049157206ce2ab637ec6d673467db0c64
/build/make/core/definitions.mk
c95899f46d66bf35a4da5cb20cd3c9fd107be472 08-Oct-2010 Shih-wei Liao <sliao@google.com> "Slang" no longer needs "--allow-rs-prefix" option. "Slang" now knows if a function
is in a system header file. If so, the function can be prefixed by "rs". Otherwise,
"rs" prefix is rightly disallowed. So, no more "allow-rs-prefix" hacking.

Change-Id: I8d5982cd6a75d465ffa6f98ca96941ae761117a2
/build/make/core/definitions.mk
5c41c17868865d1f2e9e2ff4680b528da61d16af 07-Oct-2010 Joe Onorato <joeo@google.com> am 700b88e1: Pass device characteristic information through to aapt.

Merge commit '700b88e1451f216d137d8a356496bf51712512c6' into gingerbread-plus-aosp

* commit '700b88e1451f216d137d8a356496bf51712512c6':
Pass device characteristic information through to aapt.
700b88e1451f216d137d8a356496bf51712512c6 05-Oct-2010 Joe Onorato <joeo@google.com> Pass device characteristic information through to aapt.

A build configuration can define PRODUCT_CHARACTERISTICS, which is
a comma-separated list of device characteristics, for example
"nosdcard,grayscale". This will be passed through to aapt with
the --product flag.

Change-Id: I902c034b2f2824dbd2d33449308ee08beeb09551
/build/make/core/definitions.mk
1406613b636da52863de9acc2b5de73fb27c602d 02-Oct-2010 Ying Wang <wangying@google.com> am bf2ed191: am a83940fa: Move odex related files to product-specific dir.

Merge commit 'bf2ed191fe229b6a83684c19a57e11e7b50c8637'

* commit 'bf2ed191fe229b6a83684c19a57e11e7b50c8637':
Move odex related files to product-specific dir.
bf2ed191fe229b6a83684c19a57e11e7b50c8637 02-Oct-2010 Ying Wang <wangying@google.com> am a83940fa: Move odex related files to product-specific dir.

Merge commit 'a83940fa7851b35712e559be2246b56b5666b805' into gingerbread-plus-aosp

* commit 'a83940fa7851b35712e559be2246b56b5666b805':
Move odex related files to product-specific dir.
a83940fa7851b35712e559be2246b56b5666b805 25-Sep-2010 Ying Wang <wangying@google.com> Move odex related files to product-specific dir.

For target Java libraries, now the LOCAL_BUILT_MODULE includes both javalib.jar
and the .odex file, if dexpreopt is enabled.
These 2 files are moved to a product-specific dir in this change.
For target Java Libraries, $(intermediates) now points to the product-specific dir.
There is still a javalib.jar in the $(intermediates.COMMON) dir, which is used as dependency.
Nothing is changed for host Java libraries.

Change-Id: I2546dbb940c74537864ca002d1acb49bb731fbbc
/build/make/core/definitions.mk
b5425fdfc8e37c6381152ae68566715b917b81eb 29-Sep-2010 Ying Wang <wangying@google.com> am e52fddec: am 879779a5: Merge "framework-res is not used as regular Java library now." into gingerbread

Merge commit 'e52fddec86a808b98bcdd033704b43a83cf569ea'

* commit 'e52fddec86a808b98bcdd033704b43a83cf569ea':
framework-res is not used as regular Java library now.
e52fddec86a808b98bcdd033704b43a83cf569ea 29-Sep-2010 Ying Wang <wangying@google.com> am 879779a5: Merge "framework-res is not used as regular Java library now." into gingerbread

Merge commit '879779a5806d6e09d1c852a93dd4e1793bbd96cd' into gingerbread-plus-aosp

* commit '879779a5806d6e09d1c852a93dd4e1793bbd96cd':
framework-res is not used as regular Java library now.
912f8286056586da76f1dd03ccfca2990ea5d258 29-Sep-2010 Ying Wang <wangying@google.com> framework-res is not used as regular Java library now.

Change-Id: Ic2b8f7d7bceab3be7884eb4a7dbe721c14bd1ccb
/build/make/core/definitions.mk
509d28b2b3cb3eb4d8bbd36a365457cb7b14f658 25-Sep-2010 Ying Wang <wangying@google.com> resolved conflicts for merge of 3453d5f3 to master

Change-Id: If23d2817b4d74d48632776923805c2141da82257
3453d5f3a22e7a293de9b8c6853f89e6411c8dd9 25-Sep-2010 Ying Wang <wangying@google.com> am d56d69b6: Merge "Fix dependency when switching between build variants with and without Proguard." into gingerbread

Merge commit 'd56d69b621bf41b478d59b6f987b6f796a9d8652' into gingerbread-plus-aosp

* commit 'd56d69b621bf41b478d59b6f987b6f796a9d8652':
Fix dependency when switching between build variants with and without Proguard.
957fea52f3f617299309b6f119a7c99fb869bab3 23-Sep-2010 Ying Wang <wangying@google.com> Fix dependency when switching between build variants with and without Proguard.

With this change, in a user build the dependency looks like:
package.apk -> progaurd.classes.dex -> ... -> proguard.classes.jar
While in an eng build:
package.apk -> noproguard.classes.dex -> ... -> noproguard.classes.jar

Because package.apk is product-specific and removed when switching between
user and eng builds, it can always be built with the correct and up-to-date .dex file.

Bug: 3022484

Change-Id: I3a732cb3e256f193088c294dc4a0573188283cb2
/build/make/core/definitions.mk
8dc8faaaeadf83353b8144cc0db58972f19f5c7e 14-Sep-2010 Joe Onorato <joeo@google.com> Add option to fail when Android.mk files change PRODUCT_* variables.

It's turned off for now.

Change-Id: I0b5a3ce5fdc7693c8ebd870312f0c2e13fdb8b22
/build/make/core/definitions.mk
4074f2377c21ee102916c2f954978fc5eba341cd 04-Sep-2010 Jean-Baptiste Queru <jbq@google.com> Warn when new modules are found that use user tags

Change-Id: I49369cc1596f269e0964f0a6a88bcc7152209bde
/build/make/core/definitions.mk
6b747cfb21e270598c0d1bf1923c4da768a676a8 08-Sep-2010 Jean-Baptiste Queru <jbq@google.com> am a90f9d2c: Merge "Warn when new modules are found that use user tags - DO NOT MERGE" into gingerbread

Merge commit 'a90f9d2c299d7833b37f8a0e244a2893054d9ea5' into gingerbread-plus-aosp

* commit 'a90f9d2c299d7833b37f8a0e244a2893054d9ea5':
Warn when new modules are found that use user tags - DO NOT MERGE
39de4328972fd1cd5cb621fb5b393415fdad54fb 04-Sep-2010 Jean-Baptiste Queru <jbq@google.com> Warn when new modules are found that use user tags - DO NOT MERGE

Change-Id: Ia563765f3d0161d7c851a0162d65c2a249b4dd38
/build/make/core/definitions.mk
54b634dce81e65a1a76e9e9693aa93ed15eb42d1 03-Sep-2010 Ying Wang <wangying@google.com> am a79db6e4: am 3dae0ee4: Fix inherited dependency when instrmentation.

Merge commit 'a79db6e47a378cb089021a56637a9c6925f14261'

* commit 'a79db6e47a378cb089021a56637a9c6925f14261':
Fix inherited dependency when instrmentation.
a79db6e47a378cb089021a56637a9c6925f14261 03-Sep-2010 Ying Wang <wangying@google.com> am 3dae0ee4: Fix inherited dependency when instrmentation.

Merge commit '3dae0ee46cf5fcde6eb424f9ab0c69f2d901a671' into gingerbread-plus-aosp

* commit '3dae0ee46cf5fcde6eb424f9ab0c69f2d901a671':
Fix inherited dependency when instrmentation.
3dae0ee46cf5fcde6eb424f9ab0c69f2d901a671 03-Sep-2010 Ying Wang <wangying@google.com> Fix inherited dependency when instrmentation.

It turns out we should also LOCAL_INSTRUMENTATION_FOR.
To disambiguate LOCAL_INSTRUMENTATION_FOR_PACKAGE_NAME is renamed to LOCAL_MANIFEST_INSTRUMENTATION_FOR.

Bug: 2902591
Change-Id: I6cb893c135736fc4170aa2259105b4c5eea798a1
/build/make/core/definitions.mk
512802772a2516b817ab463659b62c2e6fa7442c 01-Sep-2010 Ying Wang <wangying@google.com> Now slang supports "-I" options.

Change-Id: I32aef6c913d9d30f9982a593397145f1562aecf9
/build/make/core/definitions.mk
ebfddaa55bfcc981c767ea9e3ddbf2f30b6046d1 31-Jul-2010 Ying Wang <wangying@google.com> Now slang supports multiple rs files in a single run.

Change-Id: I26be766614ee3542d76471e3fc55f485ac65bdee
/build/make/core/definitions.mk
87208510abfc29683687a5902683f852ee19ad96 22-Jul-2010 The Android Open Source Project <initial-contribution@android.com> am 85581a1b: merge from open-source master

Merge commit '85581a1ba81105740cc1e87bfad040bbac4662ec'

* commit '85581a1ba81105740cc1e87bfad040bbac4662ec':
Allow explicit warnings for projects
85581a1ba81105740cc1e87bfad040bbac4662ec 22-Jul-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: Ide7fbe06d7f9c1a06827365f006ddc7a01ba4dab
7adbf97d110ebe137579e1078e3846aa4f3c6c2c 07-Jul-2010 Jeffrey Chyan <jeffrey.chyan@garmin.com> Allow explicit warnings for projects

Enabled compiler warnings by default and then modified javac
command to include warnings only if a project's warning flag,
LOCAL_WARNINGS_ENABLE, is set to true.

Change-Id: I5111d16a862f3afaaf1dcba2f2c2b7fc072613f1
/build/make/core/definitions.mk
0bd59a0a58f9891926ff6faf74a78307230d705b 16-Jul-2010 Ying Wang <wangying@google.com> Build system support for RenderScript

With this change, you can add your .rs files to LOCAL_SRC_FILES.
The .rs files will be compiled by slang and the output .java files
will be compiled into the jar, while the generated .bc files will
be put into the final apk as raw resources.

Change-Id: Icde3d6139951d6d039b4b37376e72e1fc5c8b0d4
/build/make/core/definitions.mk
aabbc07cb84b1693b5876d8f4bf4d21a4940681d 14-Jul-2010 Ying Wang <wangying@google.com> am 90cf34c7: am f0f60cdd: resolved conflicts for merge of 1a08100f to gingerbread

Merge commit '90cf34c72e204eb1d23f43d1fccbf2076e8ff67b'

* commit '90cf34c72e204eb1d23f43d1fccbf2076e8ff67b':
Support to build native libraries with prebuilt NDK
90cf34c72e204eb1d23f43d1fccbf2076e8ff67b 14-Jul-2010 Ying Wang <wangying@google.com> am f0f60cdd: resolved conflicts for merge of 1a08100f to gingerbread

Merge commit 'f0f60cdd8f4f74b2480774887606afdebec8d891' into gingerbread-plus-aosp

* commit 'f0f60cdd8f4f74b2480774887606afdebec8d891':
Support to build native libraries with prebuilt NDK
f0f60cdd8f4f74b2480774887606afdebec8d891 14-Jul-2010 Ying Wang <wangying@google.com> resolved conflicts for merge of 1a08100f to gingerbread

Change-Id: I9e4183a1d5c0efb13de8655b9eb7c74d50b34cd7
1a08100fa9d92c25de32ba4d13fd3958bbcab894 13-Jul-2010 Ying Wang <wangying@google.com> Support to build native libraries with prebuilt NDK

Bug: http://b/issue?id=2811253
Change-Id: Iabd4ab8b3d7236dffe89f1939e1142e882944026
/build/make/core/definitions.mk
4be5c394c17dcc595c1da6feb695932526da7ec9 10-Jul-2010 The Android Open Source Project <initial-contribution@android.com> am 0fd96df4: merge from open-source master

Merge commit '0fd96df49ccecbf3628c95dabf3b94dfc27323e5'

* commit '0fd96df49ccecbf3628c95dabf3b94dfc27323e5':
Refactor Stripper. Allow a stripper other than SOSLIM to be specified
0fd96df49ccecbf3628c95dabf3b94dfc27323e5 10-Jul-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: I40aa6f0f885ea30dd5f9918c323fa240a4830c38
45ac4341515f7ff4d483cfb8e2fba8d3c2cb1f6e 24-Jun-2010 Bruce Beare <brucex.j.beare@intel.com> Refactor Stripper. Allow a stripper other than SOSLIM to be specified

Change-Id: I61137f5bb123dc5f610af9928ed3debdf85ba74d
Signed-off-by: Bruce Beare <brucex.j.beare@intel.com>
/build/make/core/definitions.mk
8f5069b1be9af316c948e9cd7bae2abdc33da5bc 29-Jun-2010 Ying Wang <wangying@google.com> resolved conflicts for merge of 822fa972 to master

Change-Id: Ic7a7499b2058abbc6cefd94a0a06a95ef8c4d61c
dd2c21550c6a31493b4c1d0a01451a88a8747b35 29-Jun-2010 Ying Wang <wangying@google.com> am 0af605f3: Merge "Allow to override --version-code and --version-name in LOCAL_AAPT_FLAGS" into froyo

Merge commit '0af605f3b6e759f480a5124dc6b338ec58e1d40c' into gingerbread

* commit '0af605f3b6e759f480a5124dc6b338ec58e1d40c':
Allow to override --version-code and --version-name in LOCAL_AAPT_FLAGS
1ae607add31de4708e732c7139e68d425b920595 23-Jun-2010 Ying Wang <wangying@google.com> Allow to override --version-code and --version-name in LOCAL_AAPT_FLAGS

Change-Id: Ibbcd626e6856d9340d9d3e2f916127feed0b6f5c
/build/make/core/definitions.mk
a0ab29b986af30351efc2983faaf93bcbf040303 18-Jun-2010 Jack Palevich <jackpal@google.com> Add LOCAL_JNI_SHARED_LIBRARIES_ABI build variable.

LOCAL_JNI_SHARED_LIBRARIES_ABI allows individual APKs to specify
specify the path where JNI shared libraries are stored in the APK. This
is useful if you want to build an APK that supports a generic version of
an ABI (e.g. armeabi) from a device configuration where
TARGET_CPU_ABI is set to a more specific version of an ABI (e.g.
armeabi-v7a.)

Note that specifying the LOCAL_JNI_SHARED_LIBRARIES_ABI does not
affect how the local JNI shared libraries are built. It just controls
where the local JNI shared libraries are placed within the APK.

Defaults to TARGET_CPU_ABI.

Change-Id: I1cbb293e0c953688945fc147c7fc367421cf860b
/build/make/core/definitions.mk
63f7dad434ef54a33e95012621386d4df10b3779 17-Jun-2010 Guang Zhu <guangzhu@google.com> am 4873beb5: am a943634a: Merge "improvement for emma filter option" into gingerbread

Merge commit '4873beb5b018d74a3b38403f34628ed6c3435888'

* commit '4873beb5b018d74a3b38403f34628ed6c3435888':
improvement for emma filter option
9cd3d8c6543ffb2eef7935d8f832f99675dc630e 15-Jun-2010 Guang Zhu <guangzhu@google.com> improvement for emma filter option

the original implementation directly embeds the filter variable into command
line; this implies that filter variable cannot contain any whitespaces,
otherwise it'll be misintepreted as a new command line argument to emma. the
side effect is that user will be forced to cram all filter related java
class/package names into one line, which could be very long. with this
change, user can use line continuation ("\") or appending ("+=") to break
up long filter specs.

Change-Id: I2c130033cdb5120251d6f84c3dd906d140d52991
/build/make/core/definitions.mk
12a77ba4c6b377f8db0b39ba1916f20000624218 03-Jun-2010 Ying Wang <wangying@google.com> am 2e684553: am eee01787: am e8ffa149: am ba16a89d: Override LOCAL_CERTIFICATE in inherit-package.
eee0178732d11f1bdac3c451f97a810c226388b8 02-Jun-2010 Ying Wang <wangying@google.com> am e8ffa149: am ba16a89d: Override LOCAL_CERTIFICATE in inherit-package.

Merge commit 'e8ffa1490023eff03335b550c582eaadd3a4561b' into kraken

* commit 'e8ffa1490023eff03335b550c582eaadd3a4561b':
Override LOCAL_CERTIFICATE in inherit-package.
e8ffa1490023eff03335b550c582eaadd3a4561b 02-Jun-2010 Ying Wang <wangying@google.com> am ba16a89d: Override LOCAL_CERTIFICATE in inherit-package.

Merge commit 'ba16a89dbd61003a3b907d0f5e8fc48fba2afcab' into froyo-plus-aosp

* commit 'ba16a89dbd61003a3b907d0f5e8fc48fba2afcab':
Override LOCAL_CERTIFICATE in inherit-package.
ba16a89dbd61003a3b907d0f5e8fc48fba2afcab 02-Jun-2010 Ying Wang <wangying@google.com> Override LOCAL_CERTIFICATE in inherit-package.

it's to fix typo.

Change-Id: I9a791faa4b7b5967b5d23bfcb4caeebaef94e723
/build/make/core/definitions.mk
e4b24ebab8757ce52a1bd3b3b9986e4d253f0166 27-May-2010 Ying Wang <wangying@google.com> Fix "argument list too long"

Bug http://b/issue?id=2718472

Change-Id: I07eaf0d9dff2fa7c86f59bc50fb3b28516642301
/build/make/core/definitions.mk
18b75566429107b147368f8e392f6b25f975f5ee 14-May-2010 Guang Zhu <guangzhu@google.com> Squashed commit of the following (DO NOT MERGE):

commit 7401608f3b9b52b3348e32ec9fefe7583d6c2fa4
Author: Guang Zhu <guangzhu@google.com>
Date: Fri Apr 23 11:54:37 2010 -0700

collect emm meta files for emma instrumented build

when doing 'make dist', with EMMA_INSTRUMENT on the coverage.em files
generated for each module will be collected into one emma_meta.zip file

Change-Id: I382c39a97005e6cae5c79ad7eaef1c8857f658af

commit 8376d70938f6507d54b66fe5832a637aa883974e
Author: Guang Zhu <guangzhu@google.com>
Date: Wed Mar 10 15:48:03 2010 -0800

enhancement for building app with emma code coverage

* global filter to avoid applying instrumentation on emma classes
* remove local variable information at dex step instead of compile time

Change-Id: If04c27bc717f34816077a98ead9ceb0dbcbb0d2f

Change-Id: I971bd0f291bede2568b21347247d37a7d035c661
/build/make/core/definitions.mk
2373361ecb6dbd31d8a558f7e3c4cfa3e75206c3 10-May-2010 The Android Open Source Project <initial-contribution@android.com> am 63cac277: am f48c3ac3: am f7c63421: merge from open-source master
f48c3ac39d0f63b8cf16b92d3543b888715b13de 10-May-2010 The Android Open Source Project <initial-contribution@android.com> am f7c63421: merge from open-source master

Merge commit 'f7c634216e673407f5a7a879bcf2ddb2454e4670' into kraken

* commit 'f7c634216e673407f5a7a879bcf2ddb2454e4670':
Replace arm with proper variable for CPU/ABI
f7c634216e673407f5a7a879bcf2ddb2454e4670 10-May-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: Id99b6cbc613c6c7b9d1ef79274b1c28b808a32d4
0e27dff167faede2d13dae5d488866bce85c28bc 07-May-2010 Patrick Scott <phanna@android.com> Quiet the build a little more.

Change-Id: Id15808249800f32671bb902872b50051dfcb9909
/build/make/core/definitions.mk
5b9f19e58f55c67a5ebcbd4988a37142cc7ac770 05-May-2010 Bruce Beare <brucex.j.beare@intel.com> Replace arm with proper variable for CPU/ABI

Change-Id: If8594d9a2abf4d8c08b5ccea612bb700afa9e9b7
/build/make/core/definitions.mk
6c6ab0a75365d98547e557a16239f86af34c0e54 05-May-2010 Colin Cross <ccross@android.com> am 80d38729: am 9ca21644: build: Fix including WHOLE_STATIC_LIBRARIES in static libraries
9ca2164414713424d55383292511d8841facf4fc 05-May-2010 Colin Cross <ccross@android.com> build: Fix including WHOLE_STATIC_LIBRARIES in static libraries

Static libraries that include other static libraries were being incorrectly
built with .a files inside the top level .a file, as well as the .o files
that were extracted from the component .a files. This patch fixes the
final ar call to only add .o files to the archive.

Change-Id: Ic1ff025129e3c379fa56b4da2f09e9f16ea3c4fb
/build/make/core/definitions.mk
72c941a14757255a73f0bf31d689cc2b99fff6cf 05-May-2010 Jesse Wilson <jessewilson@google.com> Moving junit out of core.jar and into core-junit.jar.

Also extending the arbitrary limit on build argument sizes,
which I ran up against in building after this change.

Change-Id: Iba79a37b27e7d5efa2b02a99aa253a2eec7ede75
/build/make/core/definitions.mk
3533eca851fe846df21f0f4c60c545e7a6e64a78 05-Apr-2010 Ying Wang <wangying@google.com> Add build number to apks by appending it to versionName.

Change-Id: I476ff3514068814211d67e8ed956f1923be33bcd
http://b/issue?id=2557312
/build/make/core/definitions.mk
155afe393faa0aae47d517fa687a7e4ab3cae91b 11-Mar-2010 Guang Zhu <guangzhu@google.com> enhancement for building app with emma code coverage

* global filter to avoid applying instrumentation on emma classes
* remove local variable information at dex step instead of compile time

Change-Id: If04c27bc717f34816077a98ead9ceb0dbcbb0d2f
/build/make/core/definitions.mk
8c254825a062fd240566404d9d6ecc7cc56b30ba 17-Mar-2010 Ying Wang <wangying@google.com> Support to override instr target package in inherit-package

http://b/issue?id=2451361
With this CL, you can inherit a testing package to test a inheriting package.
Note: we change the meaning of $(5), so we need to change any existing calls
to inherit-package in other projects.

Change-Id: I673155d1b8b6006953d14e1ab87066536ebd1e54
/build/make/core/definitions.mk
c61d5932d3b1014352dd5cbcb2684a95b3e172a3 11-Mar-2010 Ying Wang <wangying@google.com> Don't force localization for package tagged as tests.

Change-Id: I612598443371fc388cf08ddde7ebdd1d3dec9c7e
/build/make/core/definitions.mk
abfbbe2e1dc0d8dc01b87492427c670dab70f81f 16-Feb-2010 Doug Zongker <dougz@android.com> allow EventLog tag numbers to be auto-assigned

With this change, you can specify "?" in place of a tag number in a
.logtags file and the build system will assign numbers to these tags.
(The numbers used shouldn't matter since we translate them back to tag
names whenever the logs are read back.)

This is pretty straightforward to do:

- make merge-event-log-tags.py assign numbers to any tags that specify
"?"

- make the generated java files depend on the merged output

- make java-event-log-tags.py read both the original .logtags and the
merged output, and fill in tag numbers for any "?" using the merged
version.

Change-Id: Icc6ccd705db461d570fc929922a830aa6deaca48
/build/make/core/definitions.mk
3b2bdf10338fb048fc749ce9f65a77f917f7d304 01-Feb-2010 Ying Wang <wangying@google.com> Fix and enable proguard on packages.
/build/make/core/definitions.mk
98252565775b7636f54ac96eb9e25b5093f82475 08-Feb-2010 Patrick Scott <phanna@android.com> Put private includes before system includes.

This change allows modules to insert different include paths before the system
include paths. STLPort uses this to find system include files that have the same
name.
/build/make/core/definitions.mk
bb67d21337f8d87628fbc09585be6cfe6ab0336c 06-Feb-2010 Jeff Hamilton <jham@android.com> Get LOCAL_MANIFEST_PACKAGE_NAME working.

Change-Id: Ieafbf2596252ee3a2fe5d1ad433e8863fbf84601
/build/make/core/definitions.mk
f184a0f26db350693902ab623c414974978f4ac4 01-Feb-2010 Brian Carlstrom <bdc@google.com> Add support for LOCAL_JAVACFLAGS

The Dalvik core libraries team would like to start making warnings
errors in certain packages by definition LOCAL_JAVACFLAGS. This will
allow easier debuging of warnings in other packages by supplying
"-Xlint:..." options.
/build/make/core/definitions.mk
899e62a841bebefe6d9ab37ddc682e72fcb0f92b 05-Feb-2010 Joe Onorato <joeo@android.com> Add an inherit-package macro to the build system.

This lets you use the source code from one apk to build a new one
with a new module name, a new android package name and optionally,
a new certificate.

To use this, in a makefile, add this:

$(call inherit-package, \
packages/apps/Music/Android.mk, \
Music, \
MusicFork, \
my_cert, \
com.example.music)

You don't need the LOCAL_PATH and CLEAR_VARS stuff. It will override
only the packages that are defined in the makefile name you give, but
if other modules of other types are defined, you will get an error
saying that it's defined twice. In that case, you need to move the
duplicate library (for example a .so) out into a different makefile.

A LOCAL_OVERRIDES_PACKAGES entry is automatically created for the
forked app.
/build/make/core/definitions.mk
14833605d26bf970cd5335c02af4354b68d93348 02-Feb-2010 Doug Zongker <dougz@android.com> add UnmountAll function to OTA script; support radio images w/path

Three unrelated changes:

- change the add-radio-file makefile function to support adding files
with paths. (The path part of the pathname is stripped off.)

- add an UnmountAll function to the OTA script generation code, so
that we can explicitly unmount everything we've mounted (in addition
to doing it automatically at the end of the script).

- add the updater API version to the info object passed to
device-specific code.

Change-Id: Ia62b15403c1cc8fce8d9910f291450c8077e49f4
/build/make/core/definitions.mk
a89c990e31b39e58adecd1f72b517d47284b275a 02-Feb-2010 Bjorn Bringert <bringert@android.com> Add all-logtags-files-under macro

Change-Id: Icb4c7e1bb2dfa4df71f07cb022c92e95a9115019
/build/make/core/definitions.mk
75127b769e20490f3348802e6b708d67c60c2b04 07-Jan-2010 Jean-Baptiste Queru <jbq@google.com> Remove special-handling of the restricted tag.

Nobody is using it any more, and it'd be too easy to
make a build system change that wouldn't properly handle it.

Change-Id: Ia61232ff944c34c46932c1885b2b0ec1b479566b
/build/make/core/definitions.mk
0a3cfdc853efb7a57b06def3bd95127398366acb 18-Dec-2009 Jean-Baptiste Queru <jbq@google.com> Add all-html-files-under

This allows to run droiddoc on only a specific set of subdirectories
instead of using all subdirectories.

Change-Id: I6b5daa31f6ce6801705a5c87bd05ea0e4e8c5d88
/build/make/core/definitions.mk
0d5eb0b7e473ee734a78b12fb5f2d5d27da0f745 04-Dec-2009 Doug Zongker <dougz@android.com> am af830d39: am 485847e4: Merge change I6f85805b into eclair-mr2

Merge commit 'af830d3999ac1670b92207f6c1201d297913b9a9'

* commit 'af830d3999ac1670b92207f6c1201d297913b9a9':
break up event-log-tags; generate java source files with constants
9bd4962af87257c6a97e9026af7e4764394412c2 30-Nov-2009 Doug Zongker <dougz@android.com> break up event-log-tags; generate java source files with constants

Construct the /system/etc/event-log-tags file by unioning together any
*.logtags files included in LOCAL_SRC_FILES throughout the system (with
appropriate error checking for dup tag numbers, etc.)

For java packages, generate a java source file from the logtags file for
that package that contains static integer constants for each tag name.
/build/make/core/definitions.mk
6581feda8535b45a574cc1a5bece3f0bd0f6a3f2 22-Oct-2009 Dan Bornstein <danfuzz@android.com> Only put .o files into static libraries when building for the host.

In particular don't put the symbol indices from included .a files into
them. I didn't change the equivalent device rule ala the "if it ain't
broke" rule of thumb.

Change-Id: I064ac356a6f48f93fca2cd08a8408ca835f8f9a4
/build/make/core/definitions.mk
3d02eacbdef0c1a0c0725d10628bec13f4139be9 21-Oct-2009 Dan Bornstein <danfuzz@android.com> It's not safe to use the TARGET ar when building a HOST .a (natch).

Change-Id: If9e851fe3306993fb49210952d81ab36cb78c807
/build/make/core/definitions.mk
5e98e6f05cce5f0d1e647c56423d51287d50bc3c 20-Oct-2009 Doug Zongker <dougz@android.com> use aapt to build jar files instead of the system zip (DO NOT MERGE)

By using 'aapt add' instead of whatever 'zip' utility happens to be
installed on the machine, we get files that are imgdiff-friendly,
which makes for smaller incremental OTAs.

(This is a cherry-pick of a change already submitted to eclair-mr2;
the change was approved for mr1.)
/build/make/core/definitions.mk
6bffc91c5d85ee828b37fa56efb7d87a76214747 15-Oct-2009 Dan Bornstein <danfuzz@android.com> Make the host static library build rule know about
LOCAL_WHOLE_STATIC_LIBRARIES.

While I was in the territory, I reordered a few lines to be more
consistent with nearby code/files.

Change-Id: Ie9809f065e32ca748ae4539dd785980ff496c2d2
/build/make/core/definitions.mk
9e4374be2c4b09f58ec4a9a3947224e98aaaf656 09-Oct-2009 Doug Zongker <dougz@android.com> use aapt to build jar files instead of the system zip

By using 'aapt add' instead of whatever 'zip' utility happens to be
installed on the machine, we get files that are imgdiff-friendly,
which makes for smaller incremental OTAs.
/build/make/core/definitions.mk
5bbd2294e9ba74462b940e9ef2f879c0ce4ef8a7 08-Oct-2009 Sriram Raman <sriramkraman@google.com> For Ying Wang:

Fix "argument list too long" build error bug.
/build/make/core/definitions.mk
b392641d9b07d6321aed828c983af04115da8aab 20-May-2009 Dave Bort <dbort@android.com> Make $(my-dir) fail if it's called after including $(CLEAR_VARS)
/build/make/core/definitions.mk
93d9ff44ce700c770fd78b9e15467be2af587559 15-Sep-2009 Doug Zongker <dougz@android.com> increase reserved blocks from 5 to 8

Our yaffs filesystems reserve 5 blocks, use 1 for a checkpoint, and
may use 1 or 2 more for caching. Take these all into account when
computing the max image size.
/build/make/core/definitions.mk
2daa2b3b059ac755e8280741b23d65360ae233bc 30-Aug-2009 Joe Onorato <joeo@android.com> Add the ability to turn on proguard for java targets, and to call aapt
to generate a rules file for proguard for stuff from the manifest and
other resources that need to be kept.
/build/make/core/definitions.mk
fbc039e9b9cda43fd4dc8bd63887dcb8feaa22b8 26-Aug-2009 Doug Zongker <dougz@android.com> am 4ac1ba61: fix typo in bash expression

Merge commit '4ac1ba61075190fa9ced594c85285beff6293184' into eclair

* commit '4ac1ba61075190fa9ced594c85285beff6293184':
fix typo in bash expression
ed96e88850b471d4ebbbdd1c2acd3efdc6b19a10 26-Aug-2009 Doug Zongker <dougz@android.com> resolved conflicts for merge of 6dd2ae02 to eclair
4ac1ba61075190fa9ced594c85285beff6293184 26-Aug-2009 Doug Zongker <dougz@android.com> fix typo in bash expression

Fortunately the error doesn't change the value of the expression
(since undefined variables are treated as 0 inside "$((...))").
/build/make/core/definitions.mk
6dd2ae02c1a117f7494d8b880fdc6c35572adaa8 26-Aug-2009 Doug Zongker <dougz@android.com> turn down allowed image size

yaffs appears to reserve 5 blocks on the partition for itself.
Account for this when computing the maximum allowable image size.
/build/make/core/definitions.mk
f6ff4c5acf428d4b0cba828b836f1e11fa1442b4 18-Aug-2009 Raphael <raphael@google.com> Windows: Fix platform build.
/build/make/core/definitions.mk
a37bdef67a81eeb048d4631af2893a2dd3ca5f50 12-Aug-2009 Dianne Hackborn <hackbod@google.com> am 6929fb57: Merge change 20880 into donut

Merge commit '6929fb57a5afb90606feb8c35c8c2cda170adfe4'

* commit '6929fb57a5afb90606feb8c35c8c2cda170adfe4':
Fix issue #2048267: Run zipalign on all prebuilts
9c0c4b7a588b3afe80dc16c133921fee991f53d3 12-Aug-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2048267: Run zipalign on all prebuilts
/build/make/core/definitions.mk
8510a1e0d7d45179e5fa19bebf26d022ec4c4e91 08-Aug-2009 Doug Zongker <dougz@android.com> use *_PARTITION_SIZE instead of *_MAX_SIZE

Make BoardConfig.mk store the size of the partition rather than the
maximum size of the image that can be flashed there, because the
function used to do the conversion isn't available when BoardConfig.mk
is read any more.
/build/make/core/definitions.mk
80f820ca1afafbdf747fc6762ea8dc1276e1354b 07-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> am 01bf5684: Merge change 20313 into donut

Merge commit '01bf5684b448623d7eb054b6d717bb77af05de33'

* commit '01bf5684b448623d7eb054b6d717bb77af05de33':
add feature to strip "# comment" lines from prebuilt files
1046d20624318563aba92cfdd7eb7d39ecc44703 06-Aug-2009 Doug Zongker <dougz@android.com> add feature to strip "# comment" lines from prebuilt files

Change things so that when $(LOCAL_PREBUILT_STRIP_COMMENTS) is
nonempty, we copy the source file using sed to strip out all the "#
line"-style comments and blank lines, saving considerable system image
space in the case of some wifi configurations.

Bug: 2036961
/build/make/core/definitions.mk
dc1a728fb89677589bf3b5e3a5aab58164c9be6b 04-Aug-2009 Joe Onorato <joeo@android.com> Rewrite findleaves.sh in python

This cuts the make startup time by about 30 seconds. Python is faster
than bash in this case, and also we can now supply multiple directories
to prune, and skip the .repo directory, which is, uh, big.

This is from my mac laptop:

$ time build/tools/findleaves.sh --prune="./out" . Android.mk > /dev/null

real 0m29.186s
user 0m0.550s
sys 0m5.897s

$ time build/tools/findleaves.py --prune="./out" . Android.mk > /dev/null

real 0m4.701s
user 0m0.645s
sys 0m1.294s

$ time build/tools/findleaves.py --prune="./out" --prune="./.repo" . Android.mk > /dev/null
real 0m0.176s
user 0m0.094s
sys 0m0.080s
/build/make/core/definitions.mk
f2bce89880db7e88e68085d399392564b3d2dbf2 18-Jul-2009 Joe Onorato <joeo@android.com> am e334d255: Speed up the full build.

Merge commit 'e334d255dc8f85d610f4d0339227a0b985494811'

* commit 'e334d255dc8f85d610f4d0339227a0b985494811':
Speed up the full build.
e334d255dc8f85d610f4d0339227a0b985494811 17-Jul-2009 Joe Onorato <joeo@android.com> Speed up the full build.

Now, by default, instead of fully building everything,
we skip dexing the modules that aren't going to be included
in the current build.

This will slow down some of the incremental builds (like tests),
but it improves the regular eng build from 27.5 minutes on my
Mac Pro to 25 minutes. That's not as much of an improvement
as I had hoped for, but it's still better.

There is also a change in here that puts the java-source-list
file which is used to get around limited command line lengths
in the proper directory. Before this change, it was an
accident that the directory for that file existed!
/build/make/core/definitions.mk
b17199ee41f84a830b8eeee4066630e486e242ba 08-Jul-2009 Doug Zongker <dougz@android.com> am 742fa575: fix problems with new image size calculations

Merge commit '742fa575d09272f1e06616fc208a1e08830c8f82'

* commit '742fa575d09272f1e06616fc208a1e08830c8f82':
fix problems with new image size calculations
742fa575d09272f1e06616fc208a1e08830c8f82 08-Jul-2009 Doug Zongker <dougz@android.com> fix problems with new image size calculations

The build servers have GNU coreutils 5.93, where stat does not output
a newline. Ubuntu hardy has GNU coreutils 6.10, where it does.
Lacking a newline messes up the summing of the sizes. Fix
get-file-size to remove the newline if present, and make the total
calculation in assert-max-file-size more robust.

Also, if the image was too big, it was not actually making the build
fail (because /bin/false was not the last thing called). Fix that so
it does.
/build/make/core/definitions.mk
97f696cdaab83107afb7b0d4903e8b2350cd8734 08-Jul-2009 Doug Zongker <dougz@android.com> am 4647f12a: fix image size tests

Merge commit '4647f12a4ff9dc54247184f17ff3de1cc423f213'

* commit '4647f12a4ff9dc54247184f17ff3de1cc423f213':
fix image size tests
4647f12a4ff9dc54247184f17ff3de1cc423f213 02-Jul-2009 Doug Zongker <dougz@android.com> fix image size tests

There are currently two errors in the way we test the size of built
images against the size of the partition on the hardware:

- the limits in BoardConfig.mk are set with the data size only, but
images contain an extra 64 bytes per 2048-byte page. This means we
think the partition is about 1/32 smaller than it really is.

- when we deliver a build via OTA, the system partition ends up with
one more file than when it's flashed via fastboot. That file is a
copy of the recovery image. In order to be able to OTA a build, we
need to make sure the system partition has enough room for all the
system files plus the recovery image as well.

For the kila system partition, these errors are roughly the same order
of magnitude -- about 2MB, one in the "safe" direction, one in the
"unsafe" direction. This change fixes both to give us a more accurate
notion of how close we are to the limit.

Make the build emit a warning (but not fail) when the size is within
32kb of the limit.

Also, include the values of the partition size limits in an info file
in the target-files package, so post-processing tools can use them
without parsing the BoardConfig.mk file.
/build/make/core/definitions.mk
e01100c7ac15bd884ca02c64f42b908b93e37c26 20-Jun-2009 Doug Zongker <dougz@android.com> generalize the definition of a "radio image"

Non-HTC devices may have multiple files constituting their "radio
image". Generalize the INSTALLED_RADIOIMAGE_TARGET variable a bit:
initially define it as empty, then let AndroidBoard.mk files add to
it. Provide a convenience function add-radio-image for them to call
to add files. Put all those files into the target_files zip for use
in OTA and fastboot package construction.

Note that for HTC devices, this changes the name of the radio image in
the target_files zip: instead of "RADIO/image" it will be
"RADIO/radio.img". Tools that use the target_files zip will need to
be changed.
/build/make/core/definitions.mk
483d92412fe81de0dcee0b9b90c4834acce296d5 18-Jun-2009 Joe Onorato <joeo@android.com> Put the java source file list files somewhere where they don't
conflict with the .class files that are getting zipped up, and
delete them when we're done with them.
/build/make/core/definitions.mk
f1a55f8bfbaa1a68d96e229b4e73c9e9209d82cf 10-Jun-2009 Sriram Raman <sriramkraman@google.com> Fix the usual build hanging issue by using -o (overwrite without prompting) option with unzip

This should fix the common problem when googlelogin-client and google-framework are both included
/build/make/core/definitions.mk
46e9beca50057bd4ff375b35fd5958c05ce5bcb7 28-May-2009 Dima Zavin <dima@android.com> core: Add support for static libraries to include other whole static libs.

Currently, if LOCAL_WHOLE_STATIC_LIBRARIES is specified, its values is
ignored. This patch addresses this limitation and works as follows:
For every whole lib specified, it extracts the archive into a sub-directory
under the target lib's intermediate, and then seeds the initial target
archive with all the members.

Signed-off-by: Dima Zavin <dima@android.com>
/build/make/core/definitions.mk
5dbb529de9f84e731e26b83525f3f599f1914aca 14-May-2009 David 'Digit' Turner <digit@google.com> Allow the build system to build Objective-C sources.

This is needed to move our modified SDL sources under external/qemu/distrib.
As per joeo's request, this change also enables target Objective-C compilation, letting it error at build time.
/build/make/core/definitions.mk
9bd5404a9d30b82ba3d2750c0cb8cae88b33f82d 16-May-2009 Dianne Hackborn <hackbod@google.com> Use new aapt feature to add default version info to .apks.
/build/make/core/definitions.mk
64d85d0d827489c514f6aec075482563c80cda73 10-Apr-2009 Joe Onorato <> AI 145618: am: CL 145333 Cloned from CL 144759 by 'g4 patch'.
Original change by joeo@abreu on 2009/04/06 19:54:13.
Implement SDK add-ons in the build system.
- Add an option to use the standard javadoc doclet instead
of droiddoc, since droiddocs non-sdk templates aren't
ready for prime time.
- Add the notion of a stubs for a library. It's only
implemented for java libraries, but when we do native
libraries in the NDK or sdk-addons, it will work there too.
Original author: joeo
Merged from: //branches/cupcake/...

Automated import of CL 145618
/build/make/core/definitions.mk
88b607994a148f4af5bffee163e39ce8296750c6 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/build/make/core/definitions.mk
05806d7af62e07c6225b2e7103a1b115ecf6c9ad 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/build/make/core/definitions.mk
094268cf8cb37b9d904c8a1e3559cdd46d73cf66 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
/build/make/core/definitions.mk
a9b22497534d404bf956cdcc0941e20057219a2a 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
/build/make/core/definitions.mk
ed18741e07c5e344ff3375a293100ffb29f19b51 20-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127101
/build/make/core/definitions.mk
66339ad5cebeae8f4cbf7e335c67368abbb91223 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
/build/make/core/definitions.mk
4f85cc54b3347e00e32a07cae4fd5473987b71af 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
/build/make/core/definitions.mk
dcc08f073b6873c69ab891d4f69f7c568e282df7 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/build/make/core/definitions.mk
b6c1cf6de79035f58b512f4400db458c8401379a 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/build/make/core/definitions.mk