History log of /build/core/definitions.mk
Revision Date Author Comments
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
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
52626d2a7b4767905e8a369ddc8316c1290ad156 03-Sep-2014 Stephen Hines <srhines@google.com> Fix build breakage due to incorrect bcc_compat RS_TRIPLE.

Bug: 17333374
Change-Id: I13582ce0cde86f7b3728aa4f45a5197438d65a2d
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
04cf31597021af3cd045dd9c50d94a87d0394023 05-Aug-2014 Dan Albert <danalbert@google.com> Inhibit implicit -Bsymolic in -shared.

Bug: 16853291

Change-Id: Id70488b077256a70137c4417f21be2c2d1d4341c
(cherry picked from commit b6bb71b85d506dcc4763290d72c4168afd541f7d)
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)
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
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
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
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
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
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>
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
7b913ce6fa5030519121757bf5b258efba51cc06 06-Jun-2014 Ying Wang <wangying@google.com> Support .asm being compiled by yasm targeted for x86.

Change-Id: Icd6626a082facf920b0e49e2fbe8861e94400552
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
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
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
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
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
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
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
2d1718aaeac27a6ff4ef5bd992a68574fc55d0c1 09-May-2014 Adam Lesinski <adamlesinski@google.com> Change aapt flag to use new name

Change-Id: I59ee77ede4716fdbf8403504da65fcadc9946423
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
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
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
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
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
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
9bdcdff615f4e21eca818768cc7549a3e2bb8830 24-Jan-2014 Colin Cross <ccross@android.com> HACK: add 64-bit directory blacklist

Change-Id: I431e8b220db81d51930dc0b3d95995df120c179a
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
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.
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
79e8319b2ea622d487a56498d657440f5935e9e9 01-Mar-2014 Ying Wang <wangying@google.com> Try to catch more misuse of $(my-dir).

Change-Id: I0c07d7115c66b30ba1383dfaa133f0cc40a33ad7
6c930fc1c954b1eee163ae49206406b40614f356 27-Feb-2014 Ying Wang <wangying@google.com> Select src arch for prebuilts.

Change-Id: I2d08f923d28d59cfef93ff0bd9893352baaee60b
c0adfb76cdae425b4c03d85de184364edc33338f 27-Feb-2014 Ying Wang <wangying@google.com> Select src arch for prebuilts.

Change-Id: I2d08f923d28d59cfef93ff0bd9893352baaee60b
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
e8af17eb27ff85963788ac1e2237026d68b6f955 21-Feb-2014 Hui Shu <hush@google.com> Add removed.txt for doclava api consistency check

BUG: b/11293324
Change-Id: Ie7cda9bc7d3a1e6c433eb073cc878b149cead8a0
9fb3526648a08d8d8c1e6325aeb3c6500bcd44c2 22-Feb-2014 Ying Wang <wangying@google.com> Make -rpath-link work with multilib.

Change-Id: If69ea6ed6cdbb657ed4005f8217d653e29626783
dc6bb0477d924c6054d161b990fe6dc80d373c50 13-Feb-2014 Ying Wang <wangying@google.com> Remove dead code.

Change-Id: Ia36a04037e15cbf296f375f3ece9a7e977fdca1e
02e31d240a9044b54ee793902ad958894f84e7a1 24-Jan-2014 Colin Cross <ccross@android.com> HACK: add 64-bit directory blacklist

Change-Id: I431e8b220db81d51930dc0b3d95995df120c179a
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
e3b044a0cc5ffb4817dfba412118ee4a3d273b63 11-Feb-2014 Elliott Hughes <enh@google.com> Add all-S-files-under.

Change-Id: I25416e2acc850c61226bc7a8e0536384f6eb2dce
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
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
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
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
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
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
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
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
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
e6f65438a45f0e1b519fb3cd2799f44ca87911a7 10-Dec-2013 Logan Chien <logan.chien@mediatek.com> Allow clang to build host binaries.

Change-Id: I7e4f9dc6f69a97cfefdfa2ed55c5d7b8ad496da7
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
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)
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
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
65ca9e6f02652cb80f050dd03984ab9631683756 26-Sep-2013 Guang Zhu <guangzhu@google.com> follow up jar manifest change for ENABLE_INCREMENTALJAVAC

Change-Id: Id3df078691cfe5e9221ec5085a6b02ac6b6bb008
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
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
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
a3b759354612424e07e957716de2845396c0d80a 15-Aug-2013 Ying Wang <wangying@google.com> Support to optionally run rmtypedefs.

Bug: 10330586
Change-Id: I6ddfca2ec986cf2c82b0942b7a5360508f095e9a
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
9e5efceff9d759827c90007e011caa83ec5d622a 20-Oct-2010 Marie Lennerhagen <marie.lennerhagen@sonyericsson.com> Added generic hook for loading vendor specific defintions

Change-Id: I6dec9c378ed0aabf9e60f8dcb05c6043bbcc30e5
6e485b545adc2476fed23eedaec8f121fad191b2 25-Jul-2013 Ulas Kirazci <ulas@google.com> Allow proto builds to pass in java proto params.

Change-Id: I65fe0cd96f818f59267da6159e6bd2ad28f07a11
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
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.
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
ae859f9b64fd1740471e94f3417f63f4082a2e02 18-Jul-2013 Jeff Brown <jeffbrown@google.com> Split framework jar.

Change-Id: I38c68ac169a4ea10e4640b5d8e24298a6caaf441
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
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
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
1a6f09a48c2047a6611b3f01088530b2ec895f7b 05-Mar-2013 Tim Murray <timmurray@google.com> Add support for multiple architectures with RS compat lib.

Change-Id: I310f6f72e1124c06e9c59b0f59d33f168dc1e632
2e65cd5510b4284591905862e5dc1953100d8601 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: Ic26319c26c1166bc1062dfbcfb4e006af185249a
45150f8b895d3256e83bc53219e393ab91d2ef20 28-Feb-2013 Ying Wang <wangying@google.com> Fix function call syntax error.

Change-Id: Id40e059ade0c24b62ac407192ed3a67398dfa083
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
9ac9b53dc6ef05797619fb1ae65613e929914959 27-Feb-2013 Stephen Hines <srhines@google.com> Reduce RS build verbosity.

Change-Id: I9d04198ed1b9025abd60080c5ef23b3ce5ef9e22
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
6adffc196f694aafe02f13cbe48b701e034b5131 12-Feb-2013 Stephen Hines <srhines@google.com> Remove libcompiler_rt.so dependency for RS compat lib.

Change-Id: I0d871c9c7d7946b8551fdefd201603bb59ea010e
90a94b4bb22ce2e4f413bdd9e21a9575255a877c 02-Feb-2013 Stephen Hines <srhines@google.com> Build RS compatibility library apps with libcompiler_rt.so too.

Change-Id: Ibc14ceb473bef23ab9e28f3a6bf7e4e99d529c01
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
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
ba37043835e424290aa468d3104486c02b25ed39 26-Jan-2013 Stephen Hines <srhines@google.com> Remove references to llvm-rs-link, which is unused.

Change-Id: I42433a9b1d2b525d1b09f778a10ab9689e34926e
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
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
9541f5864d2f9c11fe3e06fcee8e1ca2bdd2082f 19-Jan-2013 Stephen Hines <srhines@google.com> Build RS compatibility objects with libcompiler-rt.a.

Change-Id: Ic49fdc30b1d4568bbdc94338e116a31a1ade1e80
f692513071705e6ea28b3edd47898e12fa67a6ff 17-Dec-2012 Stephen Hines <srhines@google.com> Clean up libRSSupport.so and libclcore.bc dependencies.

Bug: 7419958
Change-Id: I62453bb6830cc2c82ca9dbbf576b52da95eef4b1
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
7d6ec719653d2e26e2845944f6a46fd950c1ddf9 14-Dec-2012 Stephen Hines <srhines@google.com> Add -nostdlib to RS bc->so linker command line.

Change-Id: Ic715060c3d037ec9fecb0ad9b2be6c2e7052ce0a
e719f28d938d3290ac591769a15b0b5e9e64fabb 29-Nov-2012 Stephen Hines <srhines@google.com> Build rules for Renderscript compatibility library.

Bug: 7419958
Change-Id: I2e0f0bb632e6ff22b2cf1a1b96b28364637995cc
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
31df068b38729c5bc04a859b9216f539bc22c29e 13-Nov-2012 Ying Wang <wangying@google.com> Additional certificates support for an apk.

Change-Id: I5b35d5728ba9d65f7ece956127270a9ca2ea0efe
a7aa8005d28e3e7e5a6a4f7b9ad2c94097436d6a 30-Oct-2012 Tim Murray <timmurray@google.com> Add support for RS in C++.

Change-Id: Ib8008d6301584bd0a2cd91c4c1294e0df8ac3b73
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
057eba07b8fdb30f27c9dd1889a74a053bc6ea1b 18-Oct-2012 Ying Wang <wangying@google.com> Use PRIVATE_WARNINGS_ENABLE

Before this LOCA_WARNINGS_ENABLE never worked :-(

Change-Id: I129a0bbbbb68e4179454b0827b0b0d18d6de67a0
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
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
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
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
0c4eb4188553fc06049834111416067da53ac605 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.

(cherry-pick of 157a5e1695593f935c3223430f4530e21f990378.)

Bug: 7186768,7169854
Change-Id: I0be5e2721efa66a80f112acf8f95e177ebc2f65b
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
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
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
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
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
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
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
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
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
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
918ee311f53d4128d753cca23b2b9a5212bd94f7 19-May-2012 Joe Onorato <joeo@google.com> Don't give the user tag to host modules automatically.

Change-Id: I12d0a84786e5bf2224efd8684526b6097e6105d7
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
f85cb7c936db4b7a6b39b1163591a61e166d9e11 19-May-2012 Joe Onorato <joeo@google.com> Don't give the user tag to host modules automatically.

Change-Id: I12d0a84786e5bf2224efd8684526b6097e6105d7
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
65d785274e7898d2dc89e7fffb26715f081ff284 11-Aug-2012 Ying Wang <wangying@google.com> Don't pass LOCAL_CFLAGS when compiling assembly code.

Bug: 6967574
Change-Id: Id428884dde3026c32fa6abcabbc88d188b7e9a38
85480629220c9afb0d138ff1ce5ea1ccbe66c7f7 10-Aug-2012 Ying Wang <wangying@google.com> Automatically add Java resources carried by static Java libraries.

Bug: 6892294
Change-Id: I3ff71ee3d7b9ccdfde6a5284cc350864fbffa71f
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>
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
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
e44705a86f80fe356ba83b3030864f5fcff3d394 18-May-2012 Joe Onorato <joeo@google.com> Add copy-many-files macro.

Change-Id: I327fc19bdf9c1ada18b3ba695fe4104e2a241156
3ceecfa3daeb187c0631a84e6ee6b4dd89f111f8 14-May-2012 Ying Wang <wangying@google.com> Check the well-formedness of an xml file before copying.

Bug: 6491991
Change-Id: I3dbf9a7e1fefd9fea2636c78a85bae63ea8391b8
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
3024d2394f1d1f51abeb45467094ec0bf82aeb0b 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: Idbd504fd415b488c397e67ab487a22bff4fa188e
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
64cd96ce7f1922b20b622dc0ac7971344f9a0751 10-Apr-2012 Jean-Baptiste Queru <jbq@google.com> Bump DX Java heap to 2GB.

Change-Id: I240a24f9bb8511fea8f420f76b4541018ae79a0c
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
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
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
d38c870d2e168b051692b20ade0fc966c9e2daf7 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
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
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
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
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
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
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
fd626f2d21a55aec9133424f4303d5450ad9622e 12-Dec-2011 Ying Wang <wangying@google.com> Collect the GPL source files.

Bug: 5693205
Change-Id: I045b83949f8b29d7c5cf5c0ab32c5b83cf398e71
914f7a2990ef0e02d4632dd77076c6c7bb11e6dd 07-Dec-2011 Stephen Hines <srhines@google.com> Enable -Wall/-Werror with LOCAL_RENDERSCRIPT_FLAGS.

Change-Id: Ia2a058e6711839d89072c2e96f0c60aa4cedda6b
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
293f9392ba39115a9429b5c8f98a5ca4054b3e21 19-Nov-2011 Jeff Hamilton <jham@android.com> Bypass alias for grep in the tapas command.

Change-Id: I82705535bda927ddc7e9aebb9610d712b68a50d2
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
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
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
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
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
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
ebd1e25272de54b4b874a24c7740a6e30b1f38eb 11-Feb-2011 David 'Digit' Turner <digit@android.com> core/binary.mk: Add missing Objective-C objects to the build. DO NOT MERGE

NOTE: This is a back-port from AOSP into the internal gingerbread branch.

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: I03e179f3216ed95908bf8e8011d34109accff1b9
Orig-Change-Id: I173811cf11cdb5b045073aade59364236145bc77
c963eae72ca502ac847fa03e87644c660b868295 10-Aug-2011 Stephen Hines <srhines@google.com> Update build to properly use prebuilt llvm-rs-cc.

Change-Id: I52a83066b6c08d05d69db4f93631eeaf9c0b41c6
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
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
c101e27d547ee218337b2600e8158dedd0a064af 31-May-2011 Bruce Beare <bruce.j.beare@intel.com> Refactor Stripper. Allow a stripper other than SOSLIM to be specified

Orig-Change-Id: I61137f5bb123dc5f610af9928ed3debdf85ba74d
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
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
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
149dd914b8799d67b8c4a6fb502b44058a3e14b8 01-Jun-2011 Joe Onorato <joeo@google.com> Switch the java encoding from ascii to utf8.

Change-Id: Iee0972df68b44fc8c653812cf165b57350a7ec5d
7d83ef8ff7679239063bb8484f0c1fdcf31abf8b 26-May-2011 Ying Wang <wangying@google.com> Support custom RenderScript compiler

Change-Id: I85e38e84565e04f99dd26217f280274883dc322d
9a8ecf970bf53f7f43a8722212ff4b217a6bb403 11-May-2011 Doug Kwan <dougkwan@google.com> Allow enabling RTTI in a module.

Change-Id: Ie8ce920e3ccb7e53bdf917d8ac5a386df3e7836a
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
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
00985df83acf4c21e0e7243d74348248b1c69e91 27-May-2010 Ying Wang <wangying@google.com> Fix "argument list too long"

Bug http://b/issue?id=2718472

Change-Id: I936e660f87ec5cfbbf95e6580bade624b277228c
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
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
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
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
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
e73c4bbc509f414cb8fbf487b7f44ab94af9cbb9 16-Jan-2011 Chih-Wei Huang <cwhuang@linux.org.tw> Use my-dir in a consistent way as others

Change-Id: I3fd0cc58b48d621b431d7dd05fb689c1917b530d
a67ce69e9a1ff267cb3c01bdd3214b6c68aa6f63 03-Mar-2011 Ying Wang <wangying@google.com> Handle MODULE_LICENSE_MPL the same as MODULE_LICENSE_GPL.

Change-Id: Iefc6df3f3401a591f53ec3f22202044c60acf460
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
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
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
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
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
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
3a7e4ccad9c910ac798a8c324f7718d137bd7692 28-Jan-2011 Ying Wang <wangying@google.com> Unify use of $(hide).

Change-Id: Ib7e17bbb4682caecce5812e63de872b676403d64
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
c61d4c91b6b31776665be3fcc7e4733b53e6c6e8 27-Jan-2011 Jean-Baptiste Queru <jbq@google.com> Extra protobuf-related support

Change-Id: I375d32f0bcb695ccb0603743133034941d584163
79ee7bf896cb03c9c05df9aac644fdb055a37898 27-Jan-2011 Jean-Baptiste Queru <jbq@google.com> Protobuf compiler support in the build system
80e6cce93e36787be9123f9b5dc91da1a0d2f472 25-Jan-2011 Ying Wang <wangying@google.com> Correct misuse of target/host vars.

Change-Id: Ide41aeddc44ca05d85a36035c2d55ea453cfd216
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
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
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
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
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
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
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
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
a5fc87a93713b1976c5bfdd602d1c6bd285e7533 03-Nov-2010 Ying Wang <wangying@google.com> Integrate protocol buffer compiler into the build system.

Bug: 3152546
Change-Id: Ida3ca3d633ce45704dc8e80d044cdbd3ca69aca5
c656030f7d97ef86b4b99ab860cf70a283df7924 23-Oct-2010 Shih-wei Liao <sliao@google.com> Turn off llvm-rs-link to make launch time go faster.

Change-Id: Idbbb5e24a269e3c9a1911b47b4fbb1616cef5803
98582b28e8315f9d9960aeb78143d360500bdfff 13-Oct-2010 Doug Zongker <dougz@android.com> radio files aren't modules, prebuilt or otherwise

Change-Id: Ic21cf9f7d9657819e40c6700c98e61971dab24b4
4a5bd245ff3228ce30ca58bad3ab526806bd1801 12-Oct-2010 Ying Wang <wangying@google.com> Fix typo.

Change-Id: Iabdc6ec1ead4f37294f01ebebc1e71e188455533
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
d01fadb6bc8d72966bf00e0cc375f9fa59479f81 09-Oct-2010 Shih-wei Liao <sliao@google.com> Make naming consistent: llvm-rs-cc and llvm-rs-link.

Change-Id: I8e8ae27548131b47fbbd037d55b472d095d7bb8f
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
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
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
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
912f8286056586da76f1dd03ccfca2990ea5d258 29-Sep-2010 Ying Wang <wangying@google.com> framework-res is not used as regular Java library now.

Change-Id: Ic2b8f7d7bceab3be7884eb4a7dbe721c14bd1ccb
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
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
4074f2377c21ee102916c2f954978fc5eba341cd 04-Sep-2010 Jean-Baptiste Queru <jbq@google.com> Warn when new modules are found that use user tags

Change-Id: I49369cc1596f269e0964f0a6a88bcc7152209bde
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
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
512802772a2516b817ab463659b62c2e6fa7442c 01-Sep-2010 Ying Wang <wangying@google.com> Now slang supports "-I" options.

Change-Id: I32aef6c913d9d30f9982a593397145f1562aecf9
ebfddaa55bfcc981c767ea9e3ddbf2f30b6046d1 31-Jul-2010 Ying Wang <wangying@google.com> Now slang supports multiple rs files in a single run.

Change-Id: I26be766614ee3542d76471e3fc55f485ac65bdee
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
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
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
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>
1ae607add31de4708e732c7139e68d425b920595 23-Jun-2010 Ying Wang <wangying@google.com> Allow to override --version-code and --version-name in LOCAL_AAPT_FLAGS

Change-Id: Ibbcd626e6856d9340d9d3e2f916127feed0b6f5c
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
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
ba16a89dbd61003a3b907d0f5e8fc48fba2afcab 02-Jun-2010 Ying Wang <wangying@google.com> Override LOCAL_CERTIFICATE in inherit-package.

it's to fix typo.

Change-Id: I9a791faa4b7b5967b5d23bfcb4caeebaef94e723
e4b24ebab8757ce52a1bd3b3b9986e4d253f0166 27-May-2010 Ying Wang <wangying@google.com> Fix "argument list too long"

Bug http://b/issue?id=2718472

Change-Id: I07eaf0d9dff2fa7c86f59bc50fb3b28516642301
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
0e27dff167faede2d13dae5d488866bce85c28bc 07-May-2010 Patrick Scott <phanna@android.com> Quiet the build a little more.

Change-Id: Id15808249800f32671bb902872b50051dfcb9909
5b9f19e58f55c67a5ebcbd4988a37142cc7ac770 05-May-2010 Bruce Beare <brucex.j.beare@intel.com> Replace arm with proper variable for CPU/ABI

Change-Id: If8594d9a2abf4d8c08b5ccea612bb700afa9e9b7
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
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
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
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
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
c61d5932d3b1014352dd5cbcb2684a95b3e172a3 11-Mar-2010 Ying Wang <wangying@google.com> Don't force localization for package tagged as tests.

Change-Id: I612598443371fc388cf08ddde7ebdd1d3dec9c7e
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
3b2bdf10338fb048fc749ce9f65a77f917f7d304 01-Feb-2010 Ying Wang <wangying@google.com> Fix and enable proguard on packages.
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.
bb67d21337f8d87628fbc09585be6cfe6ab0336c 06-Feb-2010 Jeff Hamilton <jham@android.com> Get LOCAL_MANIFEST_PACKAGE_NAME working.

Change-Id: Ieafbf2596252ee3a2fe5d1ad433e8863fbf84601
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.
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.
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
a89c990e31b39e58adecd1f72b517d47284b275a 02-Feb-2010 Bjorn Bringert <bringert@android.com> Add all-logtags-files-under macro

Change-Id: Icb4c7e1bb2dfa4df71f07cb022c92e95a9115019
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
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
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.
e6b4e5b20ac8a3b01f1a99dd877a98c92036ce5e 13-Nov-2009 Jean-Baptiste Queru <jbq@google.com> eclair snapshot
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
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
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.)
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
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.
5bbd2294e9ba74462b940e9ef2f879c0ce4ef8a7 08-Oct-2009 Sriram Raman <sriramkraman@google.com> For Ying Wang:

Fix "argument list too long" build error bug.
b392641d9b07d6321aed828c983af04115da8aab 20-May-2009 Dave Bort <dbort@android.com> Make $(my-dir) fail if it's called after including $(CLEAR_VARS)
fe0602f60b971c3b350d47115cba188cc67c7038 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.
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.
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.
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 "$((...))").
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.
f6ff4c5acf428d4b0cba828b836f1e11fa1442b4 18-Aug-2009 Raphael <raphael@google.com> Windows: Fix platform build.
9c0c4b7a588b3afe80dc16c133921fee991f53d3 12-Aug-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2048267: Run zipalign on all prebuilts
ecfad666e365f8606adc44a2e215c1b8863e895a 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.
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.
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
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
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!
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.
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.
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.
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.
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
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>
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.
9bd5404a9d30b82ba3d2750c0cb8cae88b33f82d 16-May-2009 Dianne Hackborn <hackbod@google.com> Use new aapt feature to add default version info to .apks.
214a42bbb6e60f1231aa178c114a55dbe363c845 10-Apr-2009 Joe Onorato <> AI 145655: am: CL 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/...
Original author: android-build

Automated import of CL 145655
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
8bbfe659d76266a8d45e19793d22e34dccfe6610 09-Apr-2009 Joe Onorato <> AI 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.

Automated import of CL 145333
88b607994a148f4af5bffee163e39ce8296750c6 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
05806d7af62e07c6225b2e7103a1b115ecf6c9ad 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
094268cf8cb37b9d904c8a1e3559cdd46d73cf66 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
a9b22497534d404bf956cdcc0941e20057219a2a 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
ed18741e07c5e344ff3375a293100ffb29f19b51 20-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127101
66339ad5cebeae8f4cbf7e335c67368abbb91223 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
4f85cc54b3347e00e32a07cae4fd5473987b71af 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
dcc08f073b6873c69ab891d4f69f7c568e282df7 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
b6c1cf6de79035f58b512f4400db458c8401379a 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution