Commit graph

63 commits

Author SHA1 Message Date
Narayan Kamath
7303ebda84 Add 32 / 64 bit abi lists to system properties.
Introduce ro.product.cpu.abilist32 / abilist64, which are
comma separated lists of the 32 and 64 bit ABIs that the
device supports. These properties are used by the zygote and
system server to determine what ABI an app should be
started with.

This changes move abilist related make steps out of envsetup.mk
and into config.mk because they depend on variables set by
core/combo/***. Additionally, config.mk performs a few additional
cleanups of these variables (like stripping them) after the
inclusion of envsetup.mk so this seems like a better place to
put them.

bug: 13647418

Change-Id: I3db39bdd761220c5b4966f651892fb592396f9a1
2014-04-08 17:40:40 +01:00
Narayan Kamath
1a43b375b4 Extend the CPU ABI specification mechanism.
Add a (read only) system property that is a comma
separated list of ABIs supported by the device in order
of preference. For example, typical arm-v8 device might
define:

ro.cpu.abilist = arm64-v8a,armeabi-v7a,armeabi

For most purposes, a single flattened list like the above is
probably more useful than the parallel system of variables
TARGET_CPU_ABI{2} / TARGET_2ND_ARCH_CPU_ABI{2} that we use
in the build system.

Change-Id: If9102669ad9f5f8fd89a8bcc5bf88cca1acadc3c
2014-03-28 17:10:47 +00:00
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
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
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
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
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
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
Tsu Chiang Chuang
40da8832c9 add a fake data target.
(cherry picked from commit 3ba7baf14875d3cd360006be7dffe7e4e0cf1882)

Change-Id: I691d4dda65437d3f57e77ed207da406fd1f53355
2013-05-14 10:58:26 -07:00
Ying Wang
5338fbfaca Install to TARGET_OUT_APPS_PRIVILEGED if LOCAL_PRIVILEGED_MODULE is true
Change-Id: I268b8652f18034aa3fdd3126ebf6196f78c4bbb2
2013-05-08 15:49:08 -07:00
Ying Wang
0abb0fd409 Default install path of shared Java library with tag tests
To $(PRODUCT_OUT)/data/framework/.

Change-Id: Iff6bbada47258344c13853d4fd71c7ad4b709c2c
2013-03-26 16:01:02 -07:00
Ying Wang
d0244b395a Remove build variant "tests"
Bug: 5368571
Now we have a phony target "tests" instead.
The target can be built in any other build variant (eg userdebug).
For example, "make PRODUCT-full-userdebug tests dist" will build and
put the *-test-* zip file in the dist dir.
The "tests" target will include all modules tagged as "tests" in
addition to other modules in specific target out directories.

Change-Id: I8383097380d8e6846c3e2107d6dd5f68788cfc39
2012-10-01 10:18:40 -07:00
Joe Onorato
6a185e453d 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
2012-08-16 22:45:56 -07:00
Jean-Baptiste Queru
049d97d778 am 2387857d: am 968f20a4: Merge "MIPS support to *.mk files and envsetup.sh"
* commit '2387857dad06b3437ffcf0c14e2bc9f5956a5888':
  MIPS support to *.mk files and envsetup.sh
2012-08-10 12:43:59 -07:00
Raghu Gandham
8da4310646 MIPS support to *.mk files and envsetup.sh
Change-Id: Iba4d046e3202524b29cfe32980927f8cc0aa8496
Signed-off-by: Chris Dearman <chris@mips.com>
Signed-off-by: Raghu Gandham <raghu@mips.com>
2012-08-10 09:15:38 -07:00
Ying Wang
3f7246a081 Delete unused variable.
Change-Id: I17f0e2c0b911e505c7ddd3c9c9c56e8a38239e17
2012-05-16 10:16:49 -07:00
Ying Wang
b1a4e4e89e Delete the misleading var TARGET_OUT_STATIC_LIBRARIES.
Which can be replaced by TARGET_OUT_INTERMEDIATE_LIBRARIES.

Change-Id: I965ff1ebe70fc3113c19e4896277c876dcedb6a5
2012-05-15 16:12:18 -07:00
Dima Zavin
8e4042cc79 Revert "core: the device/board/product kernel headers will be auto-generated"
This reverts commit 992a52990c.

Change-Id: I9919f13705509a793f856da8ef7207b3feb47092
Signed-off-by: Dima Zavin <dima@android.com>
2012-03-30 10:46:28 -07:00
Dima Zavin
992a52990c core: the device/board/product kernel headers will be auto-generated
So, just add the output include directory to the include path

Change-Id: Ia370454237913a748288124f65a6b731b17d6e1a
Signed-off-by: Dima Zavin <dima@android.com>
2012-03-19 12:32:08 -07:00
Ying Wang
89686538d7 Support to build factory ramdisk image.
Bug: 5769921

With this change, to build factory_ramdisk.img, set
PRODUCT_FACTORY_RAMDISK_MODULES in your product config.
PRODUCT_FACTORY_RAMDISK_MODULES consists of
"<module_name>:<install_path>" pairs.
<install_path> is relative to the root of the factory ramdisk output.
For example:
PRODUCT_FACTORY_RAMDISK_MODULES := \
    toolbox:bin/toolbox adbd:sbin/adbd adb:bin/adb

On the other hand you can use PRODUCT_COPY_FILES to copy prebuilt files
to the factory ramdisk.
Or you can define modules that are specific for the factory ramdisk
(with LOCAL_MODULE_PATH pointing to TARGET_FACTORY_RAMDISK_OUT) and add
the module names to PRODUCT_PACKAGES.

Change-Id: I80ff72606415cd74fe6f3bc93020a05d84e45b70
2011-12-16 13:54:10 -08:00
Jean-Baptiste Queru
316febd715 am 78b68045: am ffe03c98: Set OUT_DIR based on a common base path
* commit '78b680458b3ba53fb2f88a603e371c002eb8944b':
  Set OUT_DIR based on a common base path
2011-12-06 22:53:44 -08:00
Jean-Baptiste Queru
ffe03c984b Set OUT_DIR based on a common base path
Change-Id: I2c4ba8b101d4d186ed4b371b9d07b3bcf75bbcc9
Author: Jean-Baptiste Queru<jbq@google.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
2011-12-06 14:36:49 -08:00
Ying Wang
9f8e8db188 Build cache.img on demand
Bug: 5153694
To build cache.img, set BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE (required,
ext4 only for now), BOARD_CACHEIMAGE_PARTITION_SIZE (optional) in
BoardConfig.mk.

Change-Id: I1d8b91646aa1dba88285e008ad3335768bcbddd2
2011-11-10 14:30:34 -08:00
Ying Wang
c0debb9b5e Revert "Build cache.img."
This reverts commit 531bdb546a.
2011-11-02 11:19:28 -07:00
Ying Wang
531bdb546a Build cache.img.
Change-Id: I3dbe7afa4934fa718ba20605eebd2e3ce2ae82ab
2011-11-01 10:44:19 -07:00
Ying Wang
2b6aaa367a Add TARGET_COPY_OUT_* variables.
They are relative to PRODUCT_OUT so can be used in PRODUCT_COPY_FILES.
If TARGET_COPY_OUT_VENDOR instead of hardcoded system/vendor is used, we
will be able to transition smoothly to a separate vendor staging directory.

Change-Id: Ia9fdb208768cf4699180306280b4c02421b2ea9c
2011-10-27 15:18:39 -07:00
Ying Wang
8f77936dd8 Install path support for vendor modules.
Bug: 5284764
Set "LOCAL_PROPRIETARY_MODULE := true" to install module to vendor
partition.

Change-Id: I1301acc10664a12e313f3b868d9fd6400ac8b133
2011-09-13 13:57:26 -07:00
Jeff Brown
e33ba4c49e Remove the simulator target from all makefiles.
Bug: 5010576

Change-Id: Ie814f4c8d3aa1e7cc7f5735822ab25542f36cf62
2011-07-11 23:51:37 -07:00
Ryo Fujii
cbb3266b47 fix broken build rules for host VM. 2011-06-17 11:58:58 -07:00
Jean-Baptiste Queru
1607ba1c87 am 554eeb6c: am 493306f7: Merge "Fix TARGET_PREBUILT_TAG so that get_build_var can retrieve the correct value across architectures"
* commit '554eeb6c7426c8c1df551516cff903d69ae94f26':
  Fix TARGET_PREBUILT_TAG so that get_build_var can retrieve the correct value across architectures
2010-11-19 16:56:26 -08:00
Jean-Baptiste Queru
554eeb6c74 am 493306f7: Merge "Fix TARGET_PREBUILT_TAG so that get_build_var can retrieve the correct value across architectures"
* commit '493306f7c318d632186bebd732708d4299e66a62':
  Fix TARGET_PREBUILT_TAG so that get_build_var can retrieve the correct value across architectures
2010-11-19 11:15:19 -08:00
Jean-Baptiste Queru
6c75cb3752 am 0332f0ac: Truly default to the full config. 2010-10-22 12:12:52 -07:00
Jean-Baptiste Queru
0332f0ac1e Truly default to the full config.
It is much better than generic for emulator-based work.

Change-Id: I8b69b208bc4969d3f95c3467ca6737de8fd9460d
2010-10-22 10:03:49 -07:00
Bruce Beare
f1582e5499 Fix TARGET_PREBUILT_TAG so that get_build_var can retrieve the correct value across architectures
Change-Id: I5c1010d9caaa8d9ffaf65999fa3649c3c2be8caa
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
2010-10-14 14:31:48 -07:00
Ying Wang
1406613b63 am bf2ed191: am a83940fa: Move odex related files to product-specific dir.
Merge commit 'bf2ed191fe229b6a83684c19a57e11e7b50c8637'

* commit 'bf2ed191fe229b6a83684c19a57e11e7b50c8637':
  Move odex related files to product-specific dir.
2010-10-01 17:07:29 -07:00
Ying Wang
bf2ed191fe am a83940fa: Move odex related files to product-specific dir.
Merge commit 'a83940fa7851b35712e559be2246b56b5666b805' into gingerbread-plus-aosp

* commit 'a83940fa7851b35712e559be2246b56b5666b805':
  Move odex related files to product-specific dir.
2010-10-01 15:51:35 -07:00
Ying Wang
a83940fa78 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
2010-10-01 14:41:43 -07:00
Brian Carlstrom
6d6511bec5 am bdb2e9f3: am 46fc2341: Merge "Allow \'export WITH_HOST_DALVIK=false\' to override Makefile defaulting" into gingerbread
Merge commit 'bdb2e9f3c203655648bd0a4e5ea64e9bb2cb2a13'

* commit 'bdb2e9f3c203655648bd0a4e5ea64e9bb2cb2a13':
  Allow 'export WITH_HOST_DALVIK=false' to override Makefile defaulting
2010-09-30 18:11:02 -07:00
Brian Carlstrom
bdb2e9f3c2 am 46fc2341: Merge "Allow \'export WITH_HOST_DALVIK=false\' to override Makefile defaulting" into gingerbread
Merge commit '46fc2341c535ba624fd2dceec9399ce681a80866' into gingerbread-plus-aosp

* commit '46fc2341c535ba624fd2dceec9399ce681a80866':
  Allow 'export WITH_HOST_DALVIK=false' to override Makefile defaulting
2010-09-30 15:02:49 -07:00
Brian Carlstrom
e947865041 Allow 'export WITH_HOST_DALVIK=false' to override Makefile defaulting
Change-Id: I8915bc1c9f52a3b6ab1a82b404ab61cd0726198d
2010-09-30 14:41:54 -07:00
Dima Zavin
531f524256 core: Make fake packages have real installed files for proper dependencies
Change-Id: I3145440eea0fbbd8ba22a2b3b0511f4c18f90eca
Signed-off-by: Dima Zavin <dima@android.com>
2010-09-27 17:37:59 -07:00
Andy McFadden
9cd6150cf5 am 12165990: am 6474811d: Fix sim-eng build.
Merge commit '12165990162ac3c41aed96d5afd5e228daa16877'

* commit '12165990162ac3c41aed96d5afd5e228daa16877':
  Fix sim-eng build.
2010-09-24 15:55:42 -07:00
Andy McFadden
1216599016 am 6474811d: Fix sim-eng build.
Merge commit '6474811d646153aeab111c1c0586b6ee53dcb0d2' into gingerbread-plus-aosp

* commit '6474811d646153aeab111c1c0586b6ee53dcb0d2':
  Fix sim-eng build.
2010-09-24 12:33:50 -07:00
Andy McFadden
6474811d64 Fix sim-eng build.
Don't try to do the host build if we're configured for sim-eng.  They
seem to be clashing, and it's redundant anyway.

Change-Id: I8e1a24b6e07d28701b32b6559ba39337b211264d
2010-09-24 12:04:17 -07:00
Jesse Wilson
fed45d859a am 77070aa7: am ce7d5023: Turn dalvikvm host builds on by default when linux is the host OS.
Merge commit '77070aa757806d1617d707db4d2bd7931b2353fc'

* commit '77070aa757806d1617d707db4d2bd7931b2353fc':
  Turn dalvikvm host builds on by default when linux is the host OS.
2010-09-22 13:53:41 -07:00
Jesse Wilson
77070aa757 am ce7d5023: 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.
2010-09-22 11:55:29 -07:00
Jesse Wilson
ce7d5023c3 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
2010-09-22 11:39:18 -07:00
Ying Wang
4c681745e6 Flags common for native tests
With the CL, "include $(BUILD_NATIVE_TEST)" to build native test;
"include $(BUILD_HOST_NATIVE_TEST)" to build a host native test.

Change-Id: Icdbbcf906cd4c5c35e65962897490052cd051102
2010-07-21 11:22:52 -07:00
Bruce Beare
b73dc6690b Allow TARGET_ARCH to be set from BoardConfig.mk
Change-Id: I66aed78b763d238719822257c1f4f35301247df6
Signed-off-by: Bruce Beare <brucex.j.beare@intel.com>
2010-07-12 09:42:10 -07:00