When the build is invoked with the fake target "sdk_repo" and
a main target of sdk, win_sdk or sdk_addon, we now create
packages in DIST_DIR that can directly be used to populate the
SDK Repository.
This is quite close to how we actually distribute the SDK.
Change-Id: I863ac8baf159432d7c95df46cba6e4f3b9122629
When the build is invoked with the fake target "sdk_repo" and
a main target of sdk, win_sdk or sdk_addon, we now create
packages in DIST_DIR that can directly be used to populate the
SDK Repository.
This is quite close to how we actually distribute the SDK.
Change-Id: Id08a3a55a564938dbeb6e3dd170d4a9a7153ae6e
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
When the build is invoked with the fake target "sdk_repo" and
a main target of sdk, win_sdk or sdk_addon, we now create
packages in DIST_DIR that can directly be used to populate the
SDK Repository.
This is quite close to how we actually distribute the SDK.
Change-Id: Ie7e0f789bafd73d5ee2461349155a6e562e2edd9
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
To be able to "make llvm-rs-cc" as a Windows SDK tool, we
first need to let the build system know which folders can be
built.
Once this is done, building can be done using the mingw32
package to do cross-compiling under Linux:
$ USE_MINGW=1 make llvm-rs-cc
Change-Id: I5538f4c52c74dad18dd50b59c9bdbcd6de3fd191
Any module that does not build in apps_only build should not dist for the
default goal "droid" -- they sould dist for "dist_files" instead.
Change-Id: I8696f1ea803fbd8554ec03352e0ef369f5d7be0d
Commit e334d255 added the `all' pseudo-goal (aka internal modifier
target) to have make dex all Java modules. Unfortunately the new
pseudo-goal wasn't added to INTERNAL_MODIFIER_TARGETS so no actual
phony goal was added, resulting in the obvious
make: *** No rule to make target `all'. Stop.
error message when running `make all'. This commit changes
INTERNAL_MODIFIER_TARGETS to also include `all' so that the
pseudo-goal is treated just like `showcommands' and `checkbuild'.
Change-Id: I7905c1e27d1b17bdc1b4331744bf06e18937406f
Bug: 3209290
It turns out that gmake 3.82 on Mac OSX crashes with segmentation fault
at some point.
Change-Id: I7b632abe1cafc5f0ff2ea45611d8ccf0aa3f976a
This eliminates one of the way a module could insert itself into
a build without going through a product definition file.
Change-Id: I1d537764d73c52ceaec96b64b6b6925e2f6a8d8e
Merge commit 'e7874c430895b9a4e631c89f1e7729da9264d167' into gingerbread-plus-aosp
* commit 'e7874c430895b9a4e631c89f1e7729da9264d167':
Integrate dexpreopt into the build system.
Merge commit '77070aa757806d1617d707db4d2bd7931b2353fc'
* commit '77070aa757806d1617d707db4d2bd7931b2353fc':
Turn dalvikvm host builds on by default when linux is the host OS.
Merge commit 'ce7d5023c3df4c16ae395d64d51dd8345e40a39e' into gingerbread-plus-aosp
* commit 'ce7d5023c3df4c16ae395d64d51dd8345e40a39e':
Turn dalvikvm host builds on by default when linux is the host OS.
Previously host builds were only enabled under user and user-debug
builds. This will make it easier for Androids to find out if they've
inadvertently broken host compatibility in native code.
Change-Id: Id1f2d5e189c4c1b6462fe03bab1b0f75e98a599c
Merge commit '659adc0b54e40b3b194c84ad4ac8d2e775276e60' into gingerbread-plus-aosp
* commit '659adc0b54e40b3b194c84ad4ac8d2e775276e60':
Change "make PRODUCT-XXX-tests" to build only tests-build-target
Merge commit 'ca917dc2b2140b9fc4e331f94907cd27c8b6a91f' into gingerbread-plus-aosp
* commit 'ca917dc2b2140b9fc4e331f94907cd27c8b6a91f':
Enable WITH_HOST_DALVIK for "user" builds on Linux.
Merge commit 'c5b8d4ceb63909e5f0811fa80dca205996fd8644' into gingerbread-plus-aosp
* commit 'c5b8d4ceb63909e5f0811fa80dca205996fd8644':
The old clean target had bit rotted.
Merge commit '200f25984ccc8a9e5fc13bfbcde22c17bc80d410' into gingerbread-plus-aosp
* commit '200f25984ccc8a9e5fc13bfbcde22c17bc80d410':
Build without OpenCore by default, remove obsolete opt-in to stagefright.
Merge commit '6ba4b59c9067b747ab2a4c85621e656c4d4614e3' into gingerbread-plus-aosp
* commit '6ba4b59c9067b747ab2a4c85621e656c4d4614e3':
SDK: add hierarchyviewer2 to windows target list.
Besides that, add enough magic to build everything tagged
as "shell_$(TARGET_SHELL)" and permit ash/mksh as not unusual
Change-Id: I36c0590ba49f45251d24dc179cb27c8368c3662a
Merge commit 'ddf08caafa9644a502c0804450b9b6572010eb0d'
* commit 'ddf08caafa9644a502c0804450b9b6572010eb0d':
Add easymock for list of Windows SDK targets.
Merge commit 'ddeb150d8d300806de576430444bf1a84ff35e96' into gingerbread-plus-aosp
* commit 'ddeb150d8d300806de576430444bf1a84ff35e96':
Add easymock for list of Windows SDK targets.
Merge commit 'b96e8a8cc629c3e3a196263cc548bd55824e4ade'
* commit 'b96e8a8cc629c3e3a196263cc548bd55824e4ade':
add phony target "all_modules" and use it as make goal for "mm"/"mmm"
Merge commit 'd9dea715e5841028b1a30aa3f357b05c9de3e8c7' into gingerbread-plus-aosp
* commit 'd9dea715e5841028b1a30aa3f357b05c9de3e8c7':
add phony target "all_modules" and use it as make goal for "mm"/"mmm"
Merge commit 'd5c217aca18726f0ed9f2ea034f750620d4bdf7d' into gingerbread
* commit 'd5c217aca18726f0ed9f2ea034f750620d4bdf7d':
add phony target "all_modules" and use it as make goal for "mm"/"mmm"
So that mm/mmm don't depend on phony target "files", which brings in
unwanted files for apps-only build.
Also allow "dist" for mmm.
Bug: http://b/issue?id=2811503
Change-Id: I2c0794aebd1d171d8a0f44eb8cda67855704d6bd
Merge commit '7d735133cd6f019ce839fa824f4507f19aff2e8f' into gingerbread-plus-aosp
* commit '7d735133cd6f019ce839fa824f4507f19aff2e8f':
Add ramdisk.img to the dist dir, again (was removed at some point) - from master - please do no merge
http://b/issue?id=2796939
This can fix commands mm and mmm in an unbundled branch.
The cause is that mm & mmm depends on phony target "files", which includes apns-conf.xml.
Change-Id: I72ce1c7c5ddfdcd3bbea5cb9645ca3a48ff8ac12
The path to the Java toolchain is now explicitly
specified so no manual configuration should be
required.
Change-Id: I84abc122c557372e77e4579e9a9efe56af2b412c
The java version changed, and we made envsetup automatically find the right JAVA_HOME.
This change forces everyone to re-source envsetup.sh
Change-Id: Ieb9512d5725cca26a83debf9b0480bc20e19d5ee
Fix javadoc for Java 6.
If you don't set bootclasspath, there would be errors like:
javadoc: error - In doclet class DroidDoc, method start has thrown an exception java.lang.reflect.InvocationTargetException
Change-Id: I1b83360cb595d50577c6043d6e91b0f92e4c04d6
Avoid inheriting PRIVATE_BOOTCLASSPATH from moduels that depend on api-stubs-timestamp
The inherited value has caused build breakage on Mac build.
Change-Id: I8a1b1d6c6d411f6aaaee2d8dbd0297e3d60ab5c2
Ignore STAY_OFF_MY_LAWN when setting JAVA_HOME.
Don't check STAY_OFF_MY_LAWN in set_java_home. That function already
refuses to update JAVA_HOME if it's set to something, which should
be sufficient for anybody who doesn't want the script to mess with it.
With this change, you can get the benefits of the 1.5/1.6 auto-selection
without having to suffer through window title changes.
Change-Id: I5cfc5d6fdf26a10b42b52925f877012c0506b9a5
So that "tapas" without argument won't end in makefile-could-not-load error in unbundled branch.
Also, the magic "all" apps will build only apps, not other things.
Change-Id: Iac6dd928ee4e42996147acdab31930cd4ffa1768
Merge commit 'c55bb9ecc92d34e448adec76bc06abdcd3c35f0e'
* commit 'c55bb9ecc92d34e448adec76bc06abdcd3c35f0e':
Remove now unnecessary property overrides to opt into stagefright.
The path to the Java toolchain is now explicitly
specified so no manual configuration should be
required.
Change-Id: I84abc122c557372e77e4579e9a9efe56af2b412c
Merge commit '2b8d2383043a2b16e53538f9ebf123bfffd27ba1' into froyo-plus-aosp
* commit '2b8d2383043a2b16e53538f9ebf123bfffd27ba1':
Add a tapas command.
Rename is_unbundled_app_build and UNBUNDLED_APP_BUILD to TARGET_BUILD_APPS.
(Actually there was a tapas command that just called choosecombo).
The new better tapas command is for building unbundled apps. Run
it with one or more modules to build and optionally a build variant.
tapas [variant] App1 App2 ...
If you don't supply a build variant, it defaults to eng.
Change-Id: I02214abd0b5ad02e364fcb024e10cf6ad17a9e68
1. build only apps specified in APP-xxx.
2. support building multiple apps in a single make: make APP-Gmail-GmailTests-xxx
Change-Id: I863d3b503a240ae43652e9b18043b60416bcc25a
With this CL, run "make APP-{appname}" to build unbundled app in
the unbundled app src tree.
See http://b/issue?id=2667113
Change-Id: I1d753db795142508bc841ae66b4408220ab687c5
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
Merge commit '95f862bcb0418fd931c574157a5c90312ea2fb77' into kraken
* commit '95f862bcb0418fd931c574157a5c90312ea2fb77':
Fix "make modules" script bug under Mac OS X.
Merge commit 'ae4e14556bb3a789c4263ebba7ed42b3035e13f6' into kraken
* commit 'ae4e14556bb3a789c4263ebba7ed42b3035e13f6':
Adapt to new location of libcore
Make expr more POSIXy
generic_x86 support
Remove obsolete machine-setup.html reference.
For Mac OS uses BSD sed, it doesn't support "\n". Then, "make modules"
command cannot work correctly under Mac OS. Using tr command to replace
sed command, it has the same behavior under both Mac OS and Linux.
Change-Id: I29e044cc66bf24f6459cbb33164fd9f55f772e3c
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
See http://b/issue?id=2468418
After this CL, add "samplecode" to your make goals, you will get the sample apks
built and installed at out/target/common/samples/.
Change-Id: Iff83f2ba6b6c2fe6ac1c78ca4a9d4bc6953dac8a
- envsetup.mk & config.mk: we define a new BUILD_OS and a minimal set
of things like BUILD_OUT to be able to use some local tools when
doing cross-compilation. This allows us to use the Linux version of
ACP when cross-compiling the tools to Windows.
- Makfile: include windows_sdk.mk when needed to build a Windows SDK.
- main.mk: support a win_sdk target (e.g. PRODUCT-sdk-win_sdk)
(Merge master Change I9d08d0df)
- envsetup.mk & config.mk: we define a new BUILD_OS and a minimal set
of things like BUILD_OUT to be able to use some local tools when
doing cross-compilation. This allows us to use the Linux version of
ACP when cross-compiling the tools to Windows.
- Makfile: include windows_sdk.mk when needed to build a Windows SDK.
- main.mk: support a win_sdk target (e.g. PRODUCT-sdk-win_sdk)
Change-Id: I9d08d0df598b8a7292532d23c55f48101a95a240
Merge commit 'ccd0338ce637e62c483a727de04236aa05f989aa'
* commit 'ccd0338ce637e62c483a727de04236aa05f989aa':
Fix windows make: layoutlib_api moved to sdk.git too.
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
Also add a warning when there's TAG=user on a CLASS=apps module,
as this is not what people normally intend (this should be handled
in core.mk instead).
This used to be a source of confusion, with people using TAGS=user on
APPS and non-APPS modules, and being surprised to see some of those
included but not others.
Change-Id: I56b5618a556abdc6b841bf7a943d77c20fe9a4c5
commit b03d5f537dee393affddf89663ae6977a5512d98
Author: Andreas Huber <andih@google.com>
Date: Thu Dec 17 14:00:37 2009 -0800
Update cleanspec to facilitate incremental building with full stagefright lib.
commit b92560a1989f8b9cb27a8772cec5346d3d90dc84
Author: Andreas Huber <andih@google.com>
Date: Thu Dec 17 13:31:48 2009 -0800
Enable building stagefright in all builds, make stagefright the default player.
Merge commit '81d88c31be80493886e6844ebf8af8a03273208c' into eclair-mr2
* commit '81d88c31be80493886e6844ebf8af8a03273208c':
Fix a Windows-only discrepency in the Windows SDK build.
Merge commit 'f15e028fe822069e44b0e06fa91f537048538f94' into eclair-mr2
* commit 'f15e028fe822069e44b0e06fa91f537048538f94':
Fix the Windows SDK build for the development to sdk split.
Merge commit 'd920ec8354940653e6cf53a1540360cca3bcc5f7' into eclair
* commit 'd920ec8354940653e6cf53a1540360cca3bcc5f7':
Fix a Windows-only discrepency in the Windows SDK build.
Merge commit 'a62a442129a28bf3a62139183868a13b91e976ad' into eclair
* commit 'a62a442129a28bf3a62139183868a13b91e976ad':
Fix the Windows SDK build for the development to sdk split.
For some reason, there's a slight behavior difference between
my Windowss machine and the Windows build servers, that is on
mine the include of framework/base results in duplicate build
rules being defined. My machine used to work like the Windows
build server and the behavior mysteriously changed a while
ago. This change should make it all work the same on all boxes.
Change-Id: I45e02e9eadfc586f86caa6a2690deda9648e600d
I removed these lines because for some reason building under Windows
fails for me when they are present. However the build server breaks
so I'll rolling them back and I'll try to understand that later.
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
That way we don't have to wait for clearsilver to write the thousands
of html files during every build.
(This is the build change, there is also a frameworks/base change)
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!
This allows TARGET_ARCH_VARIANT to be set by the vendor before we choose the
architecture in core/combo/select.mk.
Also add a primitive armv7-a.mk for turning on hardware floating point.
Merge commit 'eefd0212f10ec83b21d1792130b4cad02d2ce4d5'
* commit 'eefd0212f10ec83b21d1792130b4cad02d2ce4d5':
Print the platform version and version codename in the big build header.
This is only a preliminary CL. More will follow but this is
a good start, with the following caveats:
What it does:
- take an input jar, a list of includes, a list of excludes.
- generate actual Java source for the filtered classes.
What it doesn't do yet:
- some more work on filtering inner elements (methods, etc.)
- properly generate inner classes.
- hide synthetic fields.
- some classes body are missing
- directly generate a stubbed bytecode/jar rather than source.
I'll likely want to keep the source generator for debugging
purposes or if we want to integrate with a build system instead.
- classpath will be changed in the final CL to refer to the external
ASM lib rather than the project. I need the source for debugging
rigth now.
- will review comments before submitting.
Original author: raphael
Merged from: //branches/cupcake/...
Original author: android-build
Automated import of CL 146498
This is only a preliminary CL. More will follow but this is
a good start, with the following caveats:
What it does:
- take an input jar, a list of includes, a list of excludes.
- generate actual Java source for the filtered classes.
What it doesn't do yet:
- some more work on filtering inner elements (methods, etc.)
- properly generate inner classes.
- hide synthetic fields.
- some classes body are missing
- directly generate a stubbed bytecode/jar rather than source.
I'll likely want to keep the source generator for debugging
purposes or if we want to integrate with a build system instead.
- classpath will be changed in the final CL to refer to the external
ASM lib rather than the project. I need the source for debugging
rigth now.
- will review comments before submitting.
Original author: raphael
Merged from: //branches/cupcake/...
Automated import of CL 145983
- rename the directory and zip file
- make it build to the dist directory
Original author: joeo
Merged from: //branches/cupcake/...
Original author: android-build
Automated import of CL 146003
This is only a preliminary CL. More will follow but this is
a good start, with the following caveats:
What it does:
- take an input jar, a list of includes, a list of excludes.
- generate actual Java source for the filtered classes.
What it doesn't do yet:
- some more work on filtering inner elements (methods, etc.)
- properly generate inner classes.
- hide synthetic fields.
- some classes body are missing
- directly generate a stubbed bytecode/jar rather than source.
I'll likely want to keep the source generator for debugging
purposes or if we want to integrate with a build system instead.
- classpath will be changed in the final CL to refer to the external
ASM lib rather than the project. I need the source for debugging
rigth now.
- will review comments before submitting.
BUG=1778786
Automated import of CL 145911
- rename the directory and zip file
- make it build to the dist directory
Original author: joeo
Merged from: //branches/cupcake/...
Automated import of CL 145850