Commit Graph

444 Commits

Author SHA1 Message Date
Calin Juravle 68b246401d Push ISA features into system properties
We need to know instruction set featues at runtime as well so that the
apps get compiled on target with the proper features. The properties are
read by installd and passed to dex2oat.

Bug: 16716262

(cherry picked from commit 28be9d8884)

Change-Id: I45b363558dea17e9b049e4a83a55990b4911d9d8
2014-08-26 18:47:44 +01:00
Brian Carlstrom 4d30e5e260 Move from dalvik.vm.image-dex2oat-flags to dalvik.vm.dex2oat-filter [build]
This will allow us to conditionally change the compiler-filter based on other properties.

Bug: 15165413
Change-Id: Ie3f9292d35e9d4abf93271b7d22b72d185ee5ce2
2014-07-30 15:57:16 -07:00
Ying Wang 495630f653 Don't fail the build for dangling module names.
Change-Id: I939253552e7ca6a672f662ae6be3eac41f5bab41
2014-07-30 10:20:56 -07:00
Ying Wang b2be5ffded Remove linker64 and debuggerd64
We don't have separate *64 module names any more.
Now both 32-bit and 64-bit variants are built under the same module name.

Change-Id: I1956a6a88ec6fe280798be01928239d098dfe27a
2014-07-17 14:01:12 -07:00
Ying Wang 7e73eb3f7c Resolve :32 to 32-bit variant only if the variant exists.
Otherwise we just use the original module name.
With this change :32 in 32-bit product configuration will be installed
as expected.

Change-Id: Ibbbf3e8807a17b47f4259c00000a63336bc02f92
2014-06-24 10:22:17 -07:00
Colin Cross ae2986e51a build: delete 64-bit blacklist
The last projects in the blacklist have been fixed, delete the code.

Change-Id: I0fe7809bd18e32516374c9cb2a6f71df1d3c62ee
2014-06-17 21:35:44 -07:00
Ying Wang ff3a904522 Check existence of both 64-bit and 32-bit module variants.
- Do the module name resolving for both host and target modules.
- Check existence of both 64-bit and 32-bit module variants.

Change-Id: I8ada0e734efac6c8dafade8708fff9797b19a78d
2014-06-10 19:23:29 -07:00
Ying Wang e1b867dde7 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
2014-06-10 14:30:30 -07:00
Brian Carlstrom 3f5ff08dc5 Only enable WITH_DEXPREOPT by default for libdvm.so
Bug: 14298175

(cherry picked from commit 9f8e214a91)

Change-Id: I96ba4e198b7bc1b7d9a502c432590f41c87d05c4
2014-05-29 09:38:04 -07:00
Ying Wang 966c1e0cae 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
2014-05-20 18:03:21 -07:00
Ying Wang 6feb6d5607 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
2014-05-14 16:55:04 -07:00
David 'Digit' Turner f6e2694dd2 Disable emulator from platform builds.
Now that emulator prebuilts are available under prebuilts/android-emulator/,
disable building the emulator from source in all platform builds, except
if one defines BUILD_EMULATOR to 'true' in its environment.

NOTE: This patch should be applied after this one to avoid issues
      with the GPU emulation libraries:
            https://android-review.googlesource.com/93980

Change-Id: I53b2ada9ca0c2e159dccee7cdca7f55f6b0d1d42
2014-05-09 15:32:39 +02:00
Ying Wang 07b2055d3e Target "tests" now only builds the modules tagged as "tests"
But not install them.
This prevents "make tests" polluting system.img or userdata.img.
We have new mechanism to build and package up modules into zip file in
build/core/tasks/tools.
Change package-modules.mk to install DATA/ instead of data/ in the
zip file; Better handle of module name conflicting.

Bug: 13585955
Change-Id: I7586a8c7995b984c9ead0ba2fa84dd5d2dd20bd1
2014-05-08 17:01:25 -07:00
Brian Carlstrom fceb115bd6 Add dalvik.vm.dex2oat-flags for eng build
Bug: 12869646
Change-Id: I794320267c846225931f12075c7f32d7848081e9
2014-05-06 20:40:11 -07:00
Narayan Kamath c84889b80a Build with java7 by default.
All introduce a flag LEGACY_USE_JAVA6 to force java6 builds.
This is an unsupported configuration, and provided temporarily
to iron out regressions and compare build output (if required.).

- Increment the version check sequence number.
- Move a more specific check (OpenJDK vs non OpenJDK) after
  the more general version check.
- Update the link in the version check error message to the
  "initializing" page instead of the "download" page. The latter
  talks about repo, mainly.

bug: 8992787

Change-Id: I313e17b1911768d4f3bc318c4162c53dec6eaf0d

Conflicts:
	core/main.mk
2014-04-04 18:44:47 -07:00
Ying Wang 8a52b231d2 Unset _JAVA_OPTIONS before running "java -version".
Unfortunately the previous approach of grepping out java version before
"head -n 1" clash with the effort of running "java -version" only once.

Change-Id: Ic78719c3bf1a54a45342d74bbbfa8e83bbc1bce1
2014-04-02 18:15:10 -07:00
Narayan Kamath bee0ec4196 Add warning message for java6 builds.
The instruction URL has been amended and a few additional
details have been added.

(cherry picked from 8c06afdea3)

Change-Id: Icaffc3b13ed881ac7e29f2021ed31eb1f877a5ab
2014-04-02 13:16:15 +01:00
Ying Wang 8d45e51803 Call "java[c] -version" only once
and print out the full output if error occurs.
Bug: 11672548

(cherry picked from 7b66d366bf)

Change-Id: I8e2f2ffa2f28146405273b04667efe3c8d1c03ad
2014-04-02 10:45:17 +00:00
Narayan Kamath d5fb782682 Bring main.mk in sync with master.
These lines were removed in aosp in commit e2d27887b
but a bad merge conflict resolution left them in master.

Subsequent changes on master started using these variables
so they're being brought back.

Change-Id: Ic8f3c295130c47eb0d66057880f9d4f70c89af94
2014-04-01 13:13:13 +01:00
Peter Ammon bb406bf4c0 Fix java version detection when _JAVA_OPTIONS is set.
_JAVA_OPTIONS is an environment variable that
can be used to affect the behavior of java and javac.
It is currently required to get Android to build on
some configurations, where the default Java heap size
is too small. Unfortunately, if _JAVA_OPTIONS is set,
both java and javac will output its value to the console
as the first line on every invocation, including trivial
ones like java -version. This will confuse main.mk’s
version detection, which only looks at the first line of
output. Tweak the version detection to run grep before
head, so that the _JAVA_OPTIONS line is filtered by the grep.

Change-Id: I69aee52b56d27711b7d3087ec6b3ebab07ffc3af
2014-03-31 15:36:02 -07:00
Ying Wang c6848b398d Remove the redundant DISABLE_DEXPREOPT
To disable dexpreopt, use just:
WITH_DEXPREOPT=false

Change-Id: I5804f3774f8ec50eb16c5336776dbce0c28b16d9
2014-03-20 13:01:31 -07:00
Ying Wang 48fbc42f93 Conditionally include the 'samplecode' rules.
Not sure goal 'samplecode' is still used by anybody these days.

Change-Id: I808a021a6e4be6a97c4b5c256b94374c1b3dae47
2014-02-26 11:55:38 -08:00
Ying Wang 940d68af53 Don't check the existence for the 64-bit modules for 32-bit SDK build.
Change-Id: I0d5d6ecc07332bef6854466fd98380eb12fc08fc
2014-02-13 15:56:34 -08:00
Colin Cross 02e31d240a HACK: add 64-bit directory blacklist
Change-Id: I431e8b220db81d51930dc0b3d95995df120c179a
2014-02-12 12:17:55 -08:00
Ying Wang bec954d05e Merge "Clean up dangling module names" 2014-02-12 01:31:22 +00:00
Ying Wang d18e570fba Clean up dangling module names
Those modules have disappeared from the source tree.

https://code.google.com/p/android/issues/detail?id=61210

Change-Id: Iab369d2f591f46eb86b9fccf2087515edf974662
2014-02-11 17:28:30 -08:00
Ying Wang 14a6cbd902 Refine module name resolving in multilib build
-- Added TARGET_PREFER_32_BIT, which sets LOCAL_32_BIT_ONLY for an
   executable, if LOCAL_NO_2ND_ARCH is not true.

Name resolving in 64-bit multilib build:
-- Name resolving in PRODUCT_PACKAGES:
   foo:32 resolves to foo_32;
   foo:64 resolves to foo;
   foo resolves to both foo and foo_32 (if foo_32 is defined).

-- Name resolving for LOCAL_REQUIRED_MODULES:
   If a module is built for 2nd arch, its required module resolves to
   32-bit variant, if it exits;
   Otherwise for executable and shared library, a required module
   resolves to the default 64-bit variant; for other module classes,
   required module foo resolves to both foo and foo_32 (if foo_32 is
   defined)

Bug: 12898862
Change-Id: I5fda1a77f58814097b10b5ad2743ee25adfaecc4
2014-02-10 22:39:14 -08:00
Ying Wang 3136010cdd Dedup the targets and dependencies of required modules.
For whatever reason, two modules may have the same file as their
installed module. In that case circular dependency is created if the two
modules have requited-by relation.

Change-Id: I15ed271ca3f3c343e4662182ded5ccc63d6c42cc
2014-01-31 19:22:35 -08:00
Ying Wang 4d2cc665ea 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
2014-01-24 13:35:30 -08:00
Brian Carlstrom 0cf57dc99f Add missing paren in "java -version" check
Change-Id: Id66e795423e8d25b48ac996956748a93060ea5db
2014-01-20 23:48:45 -08:00
Narayan Kamath e2d27887be A few more Java7 related clean ups.
- Separate SDK checking from version checking and
  make messages clearer.
- Add explicit source & target versions for javac to
  make things clearer.
- Rename flag from EXPERIMENTAL_USE_JAVA7_OPENJDK to
  EXPERIMENTAL_USE_JAVA7.
- Allow Oracle JDK 1.7 to be used on Mac OS, since there's
  no official OpenJDK support for that platform.

Change-Id: I454d2c917ed78f03ec7559a99659fefe7e7d50f3
2013-12-05 13:23:06 +00:00
Ying Wang 7a77261988 Merge "core: support make 4.00" 2013-12-02 19:16:02 +00:00
Ying Wang ad69099131 Add experimental flag to support OpenJDK builds.
bug: 8992787

(cherry picked from commit d1dbe7f5a2)

Change-Id: Ie977d4f26ae8d3eee9d7b9cf2c0c270bee5b54b3
2013-11-26 10:30:14 +00:00
The Android Open Source Project b9041a45b1 Merge commit 'c73341006286c391ae4d268a77f5e008045d5308' into HEAD
Change-Id: I4bf7d32d65e19dfa1f0533fdd3b2295c50b13005
2013-11-22 11:06:11 -08:00
Elliott Hughes 12f87a5b77 am a05365ce: Merge "Remove the hacks needed to support ash and mksh concurrently."
* commit 'a05365ceceaead86651f61f7ba66153e36b7be5d':
  Remove the hacks needed to support ash and mksh concurrently.
2013-11-07 08:35:17 -08:00
Elliott Hughes 32bfd70333 Remove the hacks needed to support ash and mksh concurrently.
We no longer have ash, and we'd rather not have unnecessary symbolic links
on the system.

Change-Id: Icfb1a51f1baaf1861c203f6ed93843b094deb65d
2013-11-05 11:13:49 -08:00
synergydev 2b537262fe core: support make 4.00
Make 4.00 is now out, and builds work fine with it.

Change-Id: I49e36d651a7997a52270badb0e8badd975f64e8f
2013-10-17 12:49:07 -07:00
Ying Wang 293ad10d25 Remove unnecessary dependencies between host and target modules.
With this change, modules introduced by LOCAL_REQUIRED_MODULES will be
split by host/target: target modules only depend on target modules and
host modules only depend on host modules.

Bug: 9303948
Change-Id: I4078a7983aa3c00e99534f3f170dfe4b66b12287
2013-09-18 09:01:03 -07:00
Ying Wang 20ef354e8c Load the ONE_SHOT_MAKEFILE even in dont_bother mode
This makes "mmm <path> snod" work again.
Note that snod has dependency on the rest of the command line goals,
which is all_modules for ONE_SHOT_MAKEFILE,
so build race condition is avoided.

Change-Id: Ib0c0e622530cde773180a095e5ec4dde1149b8e5
2013-09-09 12:13:25 -07:00
Ying Wang 39e08f2827 Delete dead code.
frameworks/policies/base/PolicyConfig.mk does no longer exist.

Change-Id: I34d4820bc7c1e19ac84095f5f2caf6aefdfe1bd3
2013-09-09 11:35:42 -07:00
Ying Wang 495f684024 In apps_only build dist a module only if it has a BUILT file.
This allows you to specify a PHONY target in TARGET_BUILD_APPS.

Change-Id: Idd813cd0dbdb14c705fbd3187596d4c64b99d045
2013-08-27 15:04:57 -07:00
Ying Wang 62c81f821f Collect NOTICE files for apps_only build.
In apps_only build (after running tapas or exporting TARGET_BUILD_APPS),
run "make notice_files" to collect and combine the NOTICE files of
modules that are needed by the apps.

Bug: 10445634
Change-Id: I6555bba1104e43b48c723c82143c46d444a75e80
2013-08-24 13:55:59 -07:00
Ying Wang b6cf5b2f41 am b88ca53a: am ddce2eb0: am de32713f: Merge "Collect and store proguard obfuscation dictionary files." into jb-mr2-dev
* commit 'b88ca53a465ef004a60ceb9c4c641c3c997edeb5':
  Collect and store proguard obfuscation dictionary files.
2013-08-23 12:19:48 -07:00
Ying Wang ae9115a525 Collect and store proguard obfuscation dictionary files.
Collect and store proguard obfuscation dictionary files.
Only do this for apps_only build for now.

Bug: 9407666
Change-Id: I51c78bf0f42f959dc920de230e60e0f71ed0d0ea
2013-08-23 12:13:24 -07:00
Ying Wang c3e977acf1 am 2363485c: am 06de9f94: am 8709497e: Merge "Revert "Collect and store proguard obfuscation dictionary files."" into jb-mr2-dev
* commit '2363485c2fb3f08d36e8cdbb2240b9c3993b470c':
  Revert "Collect and store proguard obfuscation dictionary files."
2013-08-23 10:17:47 -07:00
Ying Wang 58ad70618d am 93b95dc4: am aa87a11d: am afd7457a: Merge "Collect and store proguard obfuscation dictionary files." into jb-mr2-dev
* commit '93b95dc4b9f9b4e04e8a0fac25c958d5c52266e4':
  Collect and store proguard obfuscation dictionary files.
2013-08-23 10:12:26 -07:00
Ying Wang df8b48449a Revert "Collect and store proguard obfuscation dictionary files."
This reverts commit 41dbe1e535.

Change-Id: I023594779128083b75a069fd860cd29dd7951ef5
2013-08-23 17:11:18 +00:00
Ying Wang 41dbe1e535 Collect and store proguard obfuscation dictionary files.
Collect and store proguard obfuscation dictionary files.
Only do this for apps_only build for now.

Bug: 9407666
Change-Id: I0324eed6bb236abb0d3725f8d2a0b6c5c31935fe
2013-08-22 20:54:31 -07:00
Ying Wang a7deb0857c Add phony goal GET-INSTALL-PATH
It can be used as a goal of mm/mmm.
It prints out modules' install paths, which can be used by the runtest
utility.

Change-Id: If113e4c990b672acbacf723104583c0157d43c3b
2013-08-16 13:24:47 -07:00
Ying Wang ad7fd29b31 Don't bother going through the source tree
Don't bother going through the source tree in more circumstances:
all cleaning goals, helping goals, no-deps goals.

Bug: 10244578
Change-Id: Id53a249085c62838e4193962a85e0ac34f46954f
2013-08-09 10:08:30 -07:00