Commit Graph

14743 Commits

Author SHA1 Message Date
Colin Cross d826264621 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
2014-01-27 14:45:44 -08:00
Colin Cross d0378b3f2d warn on LOCAL_MODULE_PATH in multiarch shared libraries
Using LOCAL_MODULE_PATH in a shared library module while building a
multiarch target will cause build rules for both architectures to install
into the same path.  Warn and suggest LOCAL_MODULE_RELATIVE_PATH.

Change-Id: I16208ccada6d43a26a342af35096f49d8df26e81
2014-01-27 14:43:24 -08:00
Colin Cross 639c336dc1 Support LOCAL_MODULE_RELATIVE_PATH
Most users of LOCAL_MODULE_PATH are setting a subdirectory of the
normal install path, for example to install HALs into system/lib/hw.
This is problematic for multiarch builds, where the install location
depends on the arch.  Allow modules to specify LOCAL_MODULE_RELATIVE_PATH.
HALs will generally use:
LOCAL_MODULE_RELATIVE_PATH := hw

Change-Id: I4e4ceec61d026bbe74ba604554c06104bde42e5e
2014-01-27 14:43:14 -08:00
Ying Wang 18294fbf8c Merge "Support arch-specific LOCAL_C_INCLUDES." 2014-01-27 18:28:35 +00:00
Ying Wang dbdafdb865 Support arch-specific LOCAL_C_INCLUDES.
Bug: 11654773
Change-Id: I89c7ce7ff8bea15cb81f9cd9b0188b54beed3422
2014-01-27 10:27:19 -08:00
Colin Cross 7c7f28e710 Merge changes Ib1d950e1,I3d020a3c,Ic9594718
* changes:
  Add 2nd arch directories for apps
  Set up rules to build prebuilts for TARGET_2ND_ARCH
  Set up rules to build packages for TARGET_2ND_ARCH
2014-01-25 00:46:33 +00:00
Colin Cross d9574462d8 Add 2nd arch directories for apps
Apps built for 2nd arch install in the same directories as when
built for the 1st arch.

Change-Id: Ib1d950e186eef88212b44d04e6bc6c30a3d56155
2014-01-24 16:44:06 -08:00
Colin Cross 0b70c4374c Set up rules to build prebuilts for TARGET_2ND_ARCH
Prebuilts built for the 2nd arch will install into 2nd arch
directories.

Change-Id: I3d020a3c1fb0f2eb0579933f8a66e410e66fdd44
2014-01-24 16:44:02 -08:00
Colin Cross 2343cfbe3d Set up rules to build packages for TARGET_2ND_ARCH
Packages built for the 2nd arch will depend on jni libraries
build for the 2nd arch.

Change-Id: Ic9594718849b2577920c500c35d46150eb948c8d
2014-01-24 16:04:19 -08:00
Ying Wang 2c0260abc7 Merge "build: print module that has unhandled install path" 2014-01-24 21:45:49 +00:00
Colin Cross b34911cadf build: print module that has unhandled install path
Print the name of the module that is providing an unhandled install
path.

Change-Id: I0e8b02f01de1dde715f0985034ad943f793218ba

Conflicts:
	core/base_rules.mk
2014-01-24 13:44:11 -08:00
Ying Wang 125ddab1fb Merge "build: use correct arm vs thumb arguments for 2nd arch builds" 2014-01-24 21:42:43 +00:00
Colin Cross 6e087a339b build: use correct arm vs thumb arguments for 2nd arch builds
Set arm_objects_mode and normal_objects_mode when building a
module for arm when it is the 2nd arch.

Change-Id: I5f7df519b6e1dde6cbf92d106681f07a58e1f1f2
2014-01-24 13:42:01 -08:00
Ying Wang f2044b41cf Merge "build: use arm kernel headers for arm 2nd arch builds" 2014-01-24 21:41:25 +00:00
Colin Cross c3256c770d build: use arm kernel headers for arm 2nd arch builds
Compiling for arm requires using the arm kernel headers and not
the aarch64 kernel headers.  Add $(combo_2nd_arch_prefix) to get
asm-$(TARGET_2ND_ARCH) when arm is the 2nd arch.

Change-Id: I15270d0ef35e48c034bf4d0d5e35b76f67b2a8e1
2014-01-24 13:41:00 -08:00
Ying Wang e778ec89fd Merge "Support arch-specific LOCAL_ variables" 2014-01-24 21:40:39 +00:00
Ying Wang 3beb831c79 Merge "Make sure to install the .odex when running "make <module_name>"" 2014-01-24 21:40:26 +00:00
Ying Wang 9e21bcdc88 Merge "Support to build executables for TARGET_2ND_ARCH" 2014-01-24 21:40:12 +00:00
Ying Wang 7da9740acd Merge "Replace all references to LOCAL_GENERATED_SOURCES with my_generated_sources" 2014-01-24 21:39:59 +00:00
Ying Wang a07de328e0 Merge "Set up rules to build shared libraries for TARGET_2ND_ARCH" 2014-01-24 21:39:48 +00:00
Ying Wang e7345edc11 Merge "Set up rules to build static libraries for TARGET_2ND_ARCH" 2014-01-24 21:39:29 +00:00
Ying Wang 732bdb28f2 Merge "Load compiler environment for a second arch." 2014-01-24 21:39:15 +00:00
Ying Wang b8e0185489 Support arch-specific LOCAL_ variables
With those variables, you can set up different values for TARGET_ARCH
and TARGET_2ND_ARCH.
Also fixed a couple of variables.

Bug: 11654773
Change-Id: I4c7684a562cd5877d18f67d4f848b8df07d0103b

Conflicts:
	core/base_rules.mk
2014-01-24 13:38:34 -08:00
Ying Wang 5c7fed28f2 Make sure to install the .odex when running "make <module_name>"
Change-Id: I64195294dad15b7d379d667f4c4738c2808fd384
2014-01-24 13:37:11 -08:00
Ying Wang dd814bf8c2 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
2014-01-24 13:36:30 -08:00
Ying Wang ec6d6262ac Replace all references to LOCAL_GENERATED_SOURCES with my_generated_sources
Now the RS generated sources are only appended to my_generated_sources.

Bug: 11654773
Change-Id: If8dbf3c08fed0b9945dd32b8c809331c17c4bc85
2014-01-24 13:35:47 -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
Ying Wang 6ef6519170 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
2014-01-24 13:35:09 -08:00
Ying Wang 1d274d2686 Load compiler environment for a second arch.
This is the first step to build 32-bit libraries in a 64-bit product.
It will work like this:
1) In the product's BoardConfig.mk, define:
TARGET_2ND_ARCH, TARGET_2ND_ARCH_VARIANT, TARGET_2ND_CPU_VARIANT.
The build system uses those variables to set up an additional compiler
environment for the second arch.

2) When parsing Android.mks, the build system sets up rules to build a
module for both the 1st arch and the 2nd arch, unless it's explicitly
asked to skip so.
Android.mk will be adapted if there is additional rule of generating
source files.
The build system will accept arch-specific LOCAL_ variables, such as
LOCAL_CFLAGS_arm, LOCAL_CFLAGS_armv7-a-neon, LOCAL_CFLAGS_cortex-a15,
LOCAL_CFLAGS_aarch64 etc. Modules use such variables to set up build for
various archs at the same time.

3) Install binary of the 2nd arch by adding "<module_name>:32" to
PRODUCT_PACKAGES. All 2nd-arch libraries linked in by "<module_name>:32"
will be installed automatically.

Bug: 11654773
Change-Id: I2df63cd5463a07bf5358bee2a109f8fb9590fe30

Conflicts:
	core/combo/TARGET_linux-arm.mk
2014-01-24 13:34:26 -08:00
Colin Cross d5227a833c Merge "build: rename aarch64 target to arm64" 2014-01-24 20:33:59 +00:00
Colin Cross 4f0eb7d50c build: rename aarch64 target to arm64
Rename aarch64 build targets to arm64.  The gcc toolchain is still
aarch64.

Change-Id: Ia92d8a50824e5329cf00fd6f4f92eae112b7f3a3
2014-01-23 22:39:38 -08:00
David Turner 51c47855f0 Merge "Vibra: compile and stage vibrator.default on all targets" 2014-01-24 05:33:09 +00:00
David Turner dfc140cd3f Merge "Vibra: emulator: compile and stage vibrator.goldfish" 2014-01-24 05:32:54 +00:00
Ying Wang dbc9eacb27 Merge "Make jgrep, cgrep, resgrep not recurse into 'out' directory." 2014-01-22 20:30:06 +00:00
Narayan Kamath f99a23b10f Merge "Make envsetup.sh set JAVA_HOME correctly for java7." 2014-01-22 10:44:49 +00:00
Narayan Kamath 9260bba06f Make envsetup.sh set JAVA_HOME correctly for java7.
Note that despite the location of this change, this function
is run only during "lunch" and not during ". build/envsetup.sh"

Also, make it easier to switch back and forth between java6 and 7
on the same session.

bug: 8992787

Change-Id: I56ec0ba8552b46c04204a8b96b9abc0180f7605f
2014-01-22 10:41:08 +00:00
Ying Wang 62043de346 Merge "Revert "Fix filter rule when checking for apks in PRODUCT_COPY_FILES."" 2014-01-22 03:48:59 +00:00
Ying Wang 06b3255118 Revert "Fix filter rule when checking for apks in PRODUCT_COPY_FILES."
This reverts commit ca37190711.

Change-Id: I3a76f4cdf92ecbe3059bf5856cf341874e1393cf
2014-01-22 03:48:27 +00:00
Ying Wang 8d1f91fa54 Merge "Fix filter rule when checking for apks in PRODUCT_COPY_FILES." 2014-01-21 20:31:31 +00:00
Ying Wang 6ec3545158 Merge "Add missing paren in "java -version" check" 2014-01-21 19:47:51 +00:00
Brian Carlstrom 0cf57dc99f Add missing paren in "java -version" check
Change-Id: Id66e795423e8d25b48ac996956748a93060ea5db
2014-01-20 23:48:45 -08:00
Robert Craig ca37190711 Fix filter rule when checking for apks in PRODUCT_COPY_FILES.
PRODUCT_COPY_FILES entries can include the src:dest:owner
syntax versus src:dest. This causes the filter to miss
certain cases. Instead use the word-colon function to
grab the dest regardless of syntax.

Change-Id: I1f4e57a236c1db148bada0cfe5bd1e87bb1194d6
Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>
2014-01-17 09:13:50 -05:00
Ying Wang 166bc090ab Merge "[MIPS] Reenable linker fatal-warnings" 2014-01-16 01:02:58 +00:00
Chris Dearman 13eb1eb53d [MIPS] Reenable linker fatal-warnings
Change-Id: I4efbb7d0b1026b49a9b8bf968dd4752fca8a543b
2014-01-15 19:00:37 +00:00
Ben Cheng 365e443995 Merge "Add aosp_aarch64-eng to the default lunch menu." 2014-01-15 00:01:12 +00:00
Ben Cheng 89ccc4895d Add aosp_aarch64-eng to the default lunch menu.
Change-Id: I55f6ab6ea90670def30796fdce76c27031ecef01
2014-01-14 15:55:03 -08:00
Ying Wang c4c71f06ab Merge "Remove aprof support from the build system." 2014-01-14 23:33:35 +00:00
Ying Wang 4587455075 Remove aprof support from the build system.
This reverts the commit 70dc3e1d.

Change-Id: I480b005579805d2608d05dac41e32bb44642e813
2014-01-14 14:26:05 -08:00
Ying Wang f5ce4fa983 Merge "Install 64-bit libraries to /system/lib64." 2014-01-14 20:03:19 +00:00
Ying Wang c634974d37 Install 64-bit libraries to /system/lib64.
/system/lib always contains 32-bit libraries, and /system/lib64 (if
present) always contains 64-bit libraries.
Move things around a little bit, so TARGET_ARCH can be used to define
the build paths.

Bug: 11654773
Change-Id: I2edd91e162c7a20d7719d7bae15e5fa6c2a5b498
2014-01-13 16:20:31 -08:00