Commit graph

262 commits

Author SHA1 Message Date
Alexey Polyudov
ccdc311b33 introduce AUX build class of targets
AUX is a new class, similar to TARGET
While TARGET defines toolchain for Application Processors
AUX is defining toolchains for arbitrary utility cores (DSPs, GPUs,
MCUs, etc). This allows building of non-android sources as part
of Android tree and avoid using prebuilts if source code is avaliable

Bug: 29635686
Change-Id: Ie755ea054b16c3e86369f5fb2ba6eb0b384af77f
Signed-off-by: Alexey Polyudov <apolyudov@google.com>
2016-08-02 08:06:28 -07:00
Hung-ying Tyan
665e740792 Define TARGET_OUT_VENDOR_APPS_PRIVILEGED for 2nd arch
Build error when LOCAL_PROPRIETARY_MODULE, LOCAL_PRIVILEGED_MODULE,
and LOCAL_MULTILIB := 32 are set for a module in 64-bit build.

The patch adds path definition for
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS_PRIVILEGED

Change-Id: I2fe0c0f28fb7e4a27defd3a1b04f84c8b296294f
2016-07-20 17:51:56 +08:00
Andreas Gampe
397a0fe021 Merge \\\"Build: Fix vendor sanitizer library for secondary arch\\\" am: 2302a76966 am: 80b32402dc
am: 2aac82f27c

Change-Id: I55e4d2c2718a49c9929601edefaf2845456eb854
2016-07-01 04:41:35 +00:00
Andreas Gampe
80b32402dc Merge \"Build: Fix vendor sanitizer library for secondary arch\"
am: 2302a76966

Change-Id: I2b21579df22b08655cdc9eab2d570304b167b5b6
2016-07-01 04:33:43 +00:00
Andreas Gampe
cf6268f471 Build: Fix vendor sanitizer library for secondary arch
Fix the directory for secondary-architecture libraries under
sanitization. These incorrectly wrote into vendor/lib instead
of data/vendor/lib.

Bug: 29498013
Change-Id: Iee08422a1f7ad42cbe71a322347e98cb74e3ef7f
2016-06-30 20:20:38 -07:00
Alex Light
a3e8e9c6f3 resolve merge conflicts of 3f7c348 to nyc-mr1-dev-plus-aosp
Bug: 29278988

Change-Id: Icffb9a280311c7d3c45f096243ddf18f7ebecd9d
2016-06-29 15:43:54 -07:00
Dan Willemsen
db9f3489bc Merge \"Detect \uname -m\ == i686 as a 32-bit host\"
am: 55d4a46f6d

Change-Id: Ia66952b98541755c55df1eb98775d749d2155dc1
2016-06-29 20:39:42 +00:00
Dan Willemsen
88225fdfbe Detect uname -m == i686 as a 32-bit host
Change-Id: I0350629ce6ea7a5f0224489bafc98bc190e70932
Test: UNAME from https://groups.google.com/d/msg/android-building/nGQna2xuW5s/eEcXSo9ZBgAJ
2016-06-29 12:30:56 -07:00
Alex Light
4e358ab2c3 Add system_other partition, install odex files
For AB devices, support flashing two system partitions for factory use.
The normal system image on one partition, but without dex preopt. And a
system_other image that just contains the odex files. The dex files will
not be stripped out of the system image, in case the second system
partition is wiped.

Setting BOARD_USES_SYSTEM_OTHER_ODEX := true in the BoardConfig.mk
enables this behavior.

One can control which directories are placed in system_other by the
SYSTEM_OTHER_ODEX_FILTER configuration variable. Currently we default
to only copying only app and priv-app odexs.

Bug: 29278988
Change-Id: I7f4e87da919e7dc6a89fd8c668193cd4e98631bc
2016-06-24 11:07:15 -07:00
Dan Willemsen
edc6ed7aa0 Merge \"Clean up vendor image handling\"
am: 4f807026e2

Change-Id: I637ed099a6f127aa8abca980329ddc6ecad5e3ec
2016-06-21 22:00:21 +00:00
Dan Willemsen
6c3e79b8e3 Clean up vendor image handling
Standardize symlinking /system/vendor -> /vendor for aosp_* devices,
since some /vendor binaries still use /system/vendor/... paths.

Support using a prebuilt vendor image and including it into all the
normal packaging steps.

Bug: 28987532
Change-Id: I27040e8a8d1df0777e16cd1e3c3a9f1b28695e96
2016-06-18 17:47:12 -07:00
Dan Willemsen
32b36a8819 Merge "Add NATIVE_TESTS class, move host native tests" am: e72fc63901
am: 10461b78f0

* commit '10461b78f0955d9dba8d32045d1e35ff0f9a5c8c':
  Add NATIVE_TESTS class, move host native tests

Change-Id: Ia11b54676d3b33e58c177a5a375f29233657524e
2016-06-07 00:09:39 +00:00
Dan Willemsen
e72fc63901 Merge "Add NATIVE_TESTS class, move host native tests" 2016-06-06 23:59:23 +00:00
Dan Willemsen
6532011f9f Merge "Add Soong tools to PATH" am: b09e644e1d
am: 28874dc0c1

* commit '28874dc0c1c790005672406ea50729579096d6f4':
  Add Soong tools to PATH

Change-Id: I5a8f9a27a651c1c79469e53daa1cc34a6febbbc8
2016-06-01 02:49:05 +00:00
Dan Willemsen
60d9c673d7 Add Soong tools to PATH
Change-Id: I8f8649106df4ba7cefbfa37a724ebe0635d90b76
2016-05-31 18:32:35 -07:00
Colin Cross
6f8244b62d Merge "Fix mm and mmm in Android.bp directories" am: 8ed91b6624
am: 323396993c

* commit '323396993c6651b4b98974df9e9d53118f27a840':
  Fix mm and mmm in Android.bp directories

Change-Id: I95d6bde7a0ea72b47779f1a5b0577ff423524b6f
2016-05-27 00:29:14 +00:00
Treehugger Robot
8ed91b6624 Merge "Fix mm and mmm in Android.bp directories" 2016-05-27 00:23:24 +00:00
Colin Cross
8642525726 Fix mm and mmm in Android.bp directories
mm and mmm were not parsing out/soong/Android.mk, so they were ignoring
all modules defined in an Android.bp file.  Always include
out/soong/Android.mk when ONE_SHOT_MAKEFILE is set, and convert the mm
and mmm functions to build MODULES-IN-$DIR instead of all_modules so
that only the subset of modules defined in out/soong/Android.mk for the
requested directory are built.

Bug: 28986194
Change-Id: I6e1ff8cacfc668a4154a0d5937450db840bb7a6b
2016-05-26 15:56:21 -07:00
Dan Willemsen
238f4aafd2 resolve merge conflicts of dfcf2e0 to nyc-dev-plus-aosp
Change-Id: I5473ac42db3dba12dffb1d40eb9096d738ef977b
2016-05-26 15:01:20 -07:00
Dan Willemsen
056609ccfe Remove unnecessary variables
These are all either recently unused due to the removal of CFLAGS/etc,
or have been exported by Soong and are no longer necessary.

Change-Id: I5930d43fda21acc8202b3d8ea010fbefb6ae4cf1
2016-05-25 21:23:20 -07:00
Dan Willemsen
7fe992c0cc Add NATIVE_TESTS class, move host native tests
Host native tests have been getting installed into
out/host/linux-x86/bin/..., but this pollutes the bin directory with a
lot of poorly named tests. Also, to support 32-bit and 64-bit tests, we
need to have different names with different suffixes. This causes
problems when tests expect to be named something specific (like gtest).
It's also convenient to store test data next to the test itself.

So with this change, native tests will be installed in
out/host/linux-x86/nativetest[64]/$(LOCAL_MODULE)/$(LOCAL_MODULE_STEM)
just like target tests get installed into /data/nativetest[64].

Implement this using a new NATIVE_TESTS class, which is like
EXECUTABLES, but sets up the install path differently, and configures
the rpath to load shared libraries with the proper relative path.
LOCAL_MODULE_RELATIVE_PATH can be used to control the directory name, it
will default to $(LOCAL_MODULE). This way multiple related tests can be
grouped together.

Target native tests also use NATIVE_TESTS now, but nothing should change
other than LOCAL_MODULE_RELATIVE_PATH can be used.

Change-Id: I535e42b1a6b21c5b8d6a580aa2f944d2be35e27d
2016-05-24 12:43:16 -07:00
Colin Cross
ca5083195e Merge "Error on USE_CLANG_PLATFORM_BUILD=" am: 7b31dd1094
am: 893f32053f

* commit '893f32053f78def4582ceb54b19ddb1253b73495':
  Error on USE_CLANG_PLATFORM_BUILD=

Change-Id: Ibc43aee7aecb6526436be08e78622a2e4690e71c
2016-05-23 22:21:46 +00:00
Colin Cross
b267cbabba Error on USE_CLANG_PLATFORM_BUILD=
A blank USE_CLANG_PLATFORM_BUILD= on the command line for make causes
confusion between make and kati.  make ignores writes to variables set
on the command line, so envsetup.mk cannot set it to true,
USE_CLANG_PLATFORM_BUILD is still empty in soong.mk, and soong.variables
gets DeviceUsesClang: false.  kati gets USE_CLANG_PLATFORM_BUILD= in its
environment instead of on its command line, so envsetup.mk when parsed
by kati sets USE_CLANG_PLATFORM_BUILD=true.

Error out early if USE_CLANG_PLATFORM_BUILD is not true or false after
attempting to set it to true if it is empty.

Change-Id: I0e2731315711db9a6ac6ea2bf49c88bccacd35f7
2016-05-19 13:39:37 -07:00
Guang Zhu
97069b07c3 resolve merge conflicts of bc3720c to nyc-dev-plus-aosp
Change-Id: I2372a61a39131ede33cda95afc3c3ddd19e542f0
2016-04-12 13:06:20 -07:00
Julien Desprez
188a1dd18f Benchmark have their own folder
Benchmark tests use a separate folder from native tests.

Bug: 27465556
Change-Id: Ife0f43062e36ffc856f41683ddc4d91a7787333e
2016-04-12 18:57:36 +01:00
Ying Wang
87538e4f8b Support x86+arm multilib build.
Support TARGET_2ND_ARCH as the binary translation arch.
See target/board/generic_x86_arm/BoardConfig.mk and
target/product/aosp_x86_arm.mk as example for the setup.

In BoardConfig, use the TARGET_2ND_ARCH/etc. variables to set up the
binary translation arch;
Set "TARGET_TRANSLATE_2ND_ARCH := true" to tell the build system it's
not a typical 64-bit multilib configuration.
In product makefile, use "PRODUCT_PACKAGES += libfoo_<2nd_arch>" to
install the TARGET_2ND_ARCH libraries. This also pulls in any dependency
libraries.
By default we don't install any TARGET_2ND_ARCH modules, unless it's
pulled in by PRODUCT_PACKAGES.

Bug: 27526885
Change-Id: I0578e9c80da0532d2fa886a8fcdb140bbc703009
(cherry-pick from commit 277e75a488)
2016-03-25 13:29:53 -07:00
Todd Kennedy
27c3223a77 Merge "Define TARGET_OUT_VENDOR_APPS_PRIVILEGED" 2016-03-09 20:54:22 +00:00
Ying Wang
7dfdb843b2 Speed up lunch/tapas/etc. shell utility functions.
1. Combined ~10 calls to the make build system to only one.
   We added a phony target "dump-many-vars" to the build system to dump
   "<var>=<value>" pairs. We then store the pairs as shell variables.
   With this cache get_build_var/get_abs_build_var can just return
   the shell variables instead of querying the build system.
2. Prune .git when we search for AndroidProduct.mks.

In internal source tree lunch time was reduced from ~15s to ~1.5s.

Bug: 27429759

(cherry picked from commit 08800fd905)

Change-Id: I862a0ec3c1aae97c552054dacec133e857042edf
2016-03-04 14:02:03 -08:00
Ying Wang
08800fd905 Speed up lunch/tapas/etc. shell utility functions.
1. Combined ~10 calls to the make build system to only one.
   We added a phony target "dump-many-vars" to the build system to dump
   "<var>=<value>" pairs. We then store the pairs as shell variables.
   With this cache get_build_var/get_abs_build_var can just return
   the shell variables instead of querying the build system.
2. Prune .git when we search for AndroidProduct.mks.

In internal source tree lunch time was reduced from ~15s to ~1.5s.

Bug: 27429759
Change-Id: I24e88598f6fab598ef26518885fd5e86e71a772d
2016-03-04 11:01:57 -08:00
Dan Willemsen
7e57b8ca57 Add 64-bit windows cross-compiles
This is mostly the same as the existing 2ND_HOST / HOST_CROSS support.

The interesting thing I did here was make x86 the 'first' architecture,
and x86_64 the second. This way LOCAL_MULTILIB := first defaults to
32-bit windows modules.

  windows-x86/bin   <- defaults to 32-bit executables
  windows-x86/lib   <- 32-bit libraries, like before
  windows-x86/lib64 <- 64-bit libraries
  windows-x86/obj   <- 32-bit intermediates
  windows-x86/obj64 <- 64-bit intermediates

Then modules are registered with the names:

  host_cross_liblog    <- 32-bit, like before
  host_cross_liblog_64 <- 64-bit

Bug: 26957718

(cherry picked from commit 9ecbf83259)

Change-Id: Iab2d36e20d7002568c3534e7781e9ac8ab21a4a9
2016-02-26 18:51:26 -08:00
Dan Willemsen
c12ad5c5c0 Define a class for renderscript bitcode files
These have been using SHARED_LIBRARIES, but aren't elf shared libraries.
Continue installing them to /system/lib[64], but do not apply any other
normal shared library logic to them.

(cherry picked from commit c6e194ffad)

Change-Id: I0041650af92cd8063ca33215010d5eff514a89bc
2016-02-18 17:34:53 -08:00
Dan Willemsen
c6e194ffad Define a class for renderscript bitcode files
These have been using SHARED_LIBRARIES, but aren't elf shared libraries.
Continue installing them to /system/lib[64], but do not apply any other
normal shared library logic to them.

Change-Id: I3055ff86bb7b116c7107c41578ed6f0f304b1cf1
2016-02-13 00:19:40 -08:00
Dan Willemsen
9ecbf83259 Add 64-bit windows cross-compiles
This is mostly the same as the existing 2ND_HOST / HOST_CROSS support.

The interesting thing I did here was make x86 the 'first' architecture,
and x86_64 the second. This way LOCAL_MULTILIB := first defaults to
32-bit windows modules.

  windows-x86/bin   <- defaults to 32-bit executables
  windows-x86/lib   <- 32-bit libraries, like before
  windows-x86/lib64 <- 64-bit libraries
  windows-x86/obj   <- 32-bit intermediates
  windows-x86/obj64 <- 64-bit intermediates

Then modules are registered with the names:

  host_cross_liblog    <- 32-bit, like before
  host_cross_liblog_64 <- 64-bit

Bug: 26957718
Change-Id: I9f119411acb43e973ec1e6bca3c1dc291c91556c
2016-02-05 16:33:18 -08:00
Josh Gao
f3e7204bef Error out if MALLOC_IMPL is defined.
Bug: http://b/26390299
Change-Id: Icd3ce6853c8207b1a9ce1f9d546a61d5b113f15a
2016-01-22 11:25:24 -08:00
Chih-Hung Hsieh
8dd69d97f6 Set USE_CLANG_PLATFORM_BUILD to default true.
BUG: 26102335
Change-Id: I3b9fa2dfbee361410caf163147945ab448bb8ddf
2016-01-19 11:43:44 -08:00
Will Drewry
c13f9c952d envsetup,product,ninja: enable symlink traversal
When searching device, product, or hardware, allow
find to follow symlinks.

Add KATI_EMULATE_FIND=false to allow disabling the find
emulator which changes findleaves.py behavior wrt
symlinks.

BUG=24605247
TEST=works with CL:783781 (without the find wrapper in that CL)

Change-Id: Ia9d0e4add391a56f34828a09a6cec3f435ccc548
2015-11-02 14:18:45 -08:00
Benjamin Pujol
e68a277e59 Define TARGET_OUT_VENDOR_APPS_PRIVILEGED
When LOCAL_PROPRIETARY_MODULE is set to true when building an apk with,
LOCAL_PRIVILEGED_MODULE set to true, the path is unknown.

Add TARGET_OUT_VENDOR_APPS_PRIVILEGED to path definitions.

Change-Id: Icbbafba96b7880f51ca3afcee53d5f3dd5b86a45
Signed-off-by: Benjamin Pujol <benjamin.pujol@intel.com>
Signed-off-by: Zhiquan Liu <zhiquan.liu@intel.com>
2015-10-21 12:00:04 +08:00
Dan Willemsen
05bb4fed0d am edc3e6cd: Merge "Sort more instances of wildcard and find"
* commit 'edc3e6cd6a0d6af4df3d6f07f40de17980b66ad0':
  Sort more instances of wildcard and find
2015-09-30 23:44:10 +00:00
Dan Willemsen
7c3e3f8314 Sort more instances of wildcard and find
Many of these may not make a difference in the output images, but it's a
good idea to keep the make system as repeatable as possible.

Change-Id: I31804b8ad5805148ed08be7426a242a16f4d0df3
2015-09-30 22:25:49 +00:00
Steve Fung
db4cba4a08 am 562ad0b5: Merge "Package breakpad symbols in target files zip"
* commit '562ad0b5e4f5d49fc62e72ca1d6eb18acab6e90b':
  Package breakpad symbols in target files zip
2015-09-28 20:24:32 +00:00
Steve Fung
dfbab49bed Package breakpad symbols in target files zip
When BREAKPAD_GENERATE_SYMBOLS is set to true, package the breakpad
symbols into the target files zip thats generated with `make dist`.

Bug: 24165970
Change-Id: I11c0d9a9d9e159475bfdb7bc338f9e9ac60aeada
2015-09-25 18:34:15 -07:00
Evgenii Stepanov
f267f7147f am 908260a5: Merge "Add support of SANITIZE_TARGET=\'address coverage\' for fuzzing."
* commit '908260a56631cad51196c7b197f720bc88d7f5c7':
  Add support of SANITIZE_TARGET='address coverage' for fuzzing.
2015-09-18 20:31:54 +00:00
Ivan Krasin
74b32b8dfc Add support of SANITIZE_TARGET='address coverage' for fuzzing.
Also, add trace-cmp instrumentation to fuzz_test and host_fuzz_test.

Bug: 22850550
Change-Id: Ifff7b8be693ae991feb0a64e19439370a19b2748
2015-09-18 11:54:43 -07:00
Dan Willemsen
c98d9a9d0f am f1c09d7f: Merge "Add HOST_CROSS_OS"
* commit 'f1c09d7fbd92a08cc51950a7d35fb5f7fc564a20':
  Add HOST_CROSS_OS
2015-09-09 18:19:13 +00:00
Dan Willemsen
057aaea54a Add HOST_CROSS_OS
Instead of using recursive make to change the HOST_OS when building the
windows SDK under linux, add the concept of cross-building to another
host os.

Bug: 23566667
Change-Id: I6dc525b601b6251d458d197c30bf4660d7485502
2015-09-09 18:12:29 +00:00
Dan Willemsen
1b14846717 am 48d95e75: am 05d97fe7: Merge "Remove legacy windows platform build support"
* commit '48d95e752536dc7a81c141e435e8a90b7929cf02':
  Remove legacy windows platform build support
2015-08-18 04:43:04 +00:00
Dan Willemsen
145ae32069 Remove legacy windows platform build support
We still support HOST_OS=windows for the SDK host tools cross-builds, but
that's only when USE_MINGW is set when running under linux.

Change-Id: I37da87dc9fbbd69ba10ce4d7f2668ab3f6482d92
2015-08-17 12:35:04 -07:00
Ying Wang
0a1026ce27 am ede3e310: am 2c0c1e56: Merge "Build 64-bit host tools in Linux/Mac SDK build."
* commit 'ede3e3103565175fc15b76cd6f9daf7e2b93393b':
  Build 64-bit host tools in Linux/Mac SDK build.
2015-08-01 17:35:31 +00:00
Ying Wang
5c28bda966 Build 64-bit host tools in Linux/Mac SDK build.
With this we build 32-bit host tools in only MinGW Windows build.

Bug: 22776595
Change-Id: Icca02b0f629460449a3437ff1769d4d081e92413
2015-07-31 09:24:15 -07:00
Evgenii Stepanov
ff57fb45c7 am be8dd615: am 473dfdf7: Merge "Move sanitized vendor libraries to /data/vendor/lib(|64)."
* commit 'be8dd6154b021b78422df44c4a7841899cc24866':
  Move sanitized vendor libraries to /data/vendor/lib(|64).
2015-06-30 22:02:47 +00:00
Evgenii Stepanov
bf140974b2 Move sanitized vendor libraries to /data/vendor/lib(|64).
Sanitized RPATH now mentions /system/vendor/lib to preserve overlay
in the case when a sanitized version of a vendor library can not be
built.

Bug: 22199458
Change-Id: I3222d2e1d6c08fdd1e0404fcb7db347aa4a92bb7
2015-06-30 14:04:45 -07:00
Evgenii Stepanov
a43f213c78 am 5f41fc3d: am eac1f6ed: Merge "With SANITIZE_TARGET, move shared libraries to /data."
* commit '5f41fc3d4d12cd5d1dd195c7369661e5b516c310':
  With SANITIZE_TARGET, move shared libraries to /data.
2015-06-19 21:27:42 +00:00
Evgenii Stepanov
4d3d4141ae With SANITIZE_TARGET, move shared libraries to /data.
A fully (or even mostly) asan-instrumented device will have 2 copies of each
shared library, which might not fit on system partition. Moving instrumented
libraries to /data.

Bug: 21785137
Change-Id: I64184261da2eb24a1382c67e4931c34a5a38b3c0
2015-06-19 11:15:50 -07:00
C. Sean Young
3c11468252 am 6f44670a: am cbaead4c: am 540772fa: am cf469989: Add new variable SCAN_EXCLUDE_DIRS; specifies directories to exclude when searching source tree.
* commit '6f44670ada093f4a11a343dddf0f8d0a0a8280d6':
  Add new variable SCAN_EXCLUDE_DIRS; specifies directories to exclude when searching source tree.
2015-06-12 18:05:03 +00:00
C. Sean Young
cbaead4cfe am 540772fa: am cf469989: Add new variable SCAN_EXCLUDE_DIRS; specifies directories to exclude when searching source tree.
* commit '540772fa2287e63a0c745229fb72b78903c9cd70':
  Add new variable SCAN_EXCLUDE_DIRS; specifies directories to exclude when searching source tree.
2015-06-12 16:29:25 +00:00
C. Sean Young
cf4699895a Add new variable SCAN_EXCLUDE_DIRS; specifies directories to exclude when searching source tree.
These directories are excluded in addition to OUT_DIR.
This can be useful if your build system has other output directories
beyond what OUT_DIR is set to.

Change-Id: I6d98a85bcc8c89279e939406a7fec32547e8922f
2015-06-10 13:00:13 -05:00
Ying Wang
080f57aed7 Merge "Remove the unnecessary full_x86_64 and full_mips64." 2015-06-08 19:01:47 +00:00
Ying Wang
0a76df5ce7 Remove the unnecessary full_x86_64 and full_mips64.
For historical reason, the aosp_* products were named full_*.
We keep the full, full_x86 and full_mips in case some tools still
reference these legacy names; But no reason the have the full_* product
names for the new 64-bit archs.

Change-Id: I240ed0c6ded0ded2d80603bd0c5ff24750999afc
2015-06-08 11:57:26 -07:00
Ying Wang
4540a85dd4 Support to configure and build multiple custom images.
Build additional images requested by the product makefile.
This script gives the ability to build multiple additional images and
you can configure what modules/files to include in each image.
1. Define PRODUCT_CUSTOM_IMAGE_MAKEFILES in your product makefile.
   PRODUCT_CUSTOM_IMAGE_MAKEFILES is a list of makefiles.
   Each makefile configures an image.
   For image configuration makefile foo/bar/xyz.mk, the built image
   file name
   will be xyz.img. So make sure they won't conflict.
2. In each image's configuration makefile, you can define variables:
  - CUSTOM_IMAGE_MOUNT_POINT, the mount point, such as "oem", "odm"
    etc.
  - CUSTOM_IMAGE_PARTITION_SIZE
  - CUSTOM_IMAGE_FILE_SYSTEM_TYPE
  - CUSTOM_IMAGE_DICT_FILE, a text file defining a dictionary
    accepted by BuildImage() in tools/releasetools/build_image.py.
  - CUSTOM_IMAGE_MODULES, a list of module names you want to include
    in the image; Not only the module itself will be installed to proper
    path in the image, you can also piggyback additional files/directories
    with the module's LOCAL_PICKUP_FILES.
  - CUSTOM_IMAGE_COPY_FILES, a list of "<src>:<dest>" to be copied to
    the image. <dest> is relativ to the root of the image.

To build all those images, run "make custom_images".

Bug: 19609718
Change-Id: Ic73587e08503a251be27797c7b00329716051927
(cherry picked from commit 5fcf1094f9)
2015-06-03 09:56:29 -07:00
Dan Albert
dc94137927 Make Windows a non-multilib target.
We don't have a toolchain for 64-bit windows.

This allows running `USE_MINGW=1 mm` in a directory that has a host
module with LOCAL_MULTILIB := both.

Change-Id: I31f981b38fb80b0d6582bab0a4bd580a3c654c91
2015-05-05 15:46:50 -07:00
Dan Albert
216ecac61e Fix prebuilts for target builds with USE_MINGW=1.
USE_MINGW=1 mm didn't work in directories that contained target modules
because the build system would use the Windows locations and extensions
when trying to find the host GCC prebuilts. Windows is the target OS,
not the OS we're building from.

Change-Id: Ic994fed15388d0c7d393f71ba28fe7afdc659f5c
2015-05-04 22:44:39 +00:00
Brian Carlstrom
3ba88e7d2d am b7fe2e62: am f7683b81: Merge "Clearly explain that 32-bit x86 is not supported"
* commit 'b7fe2e622d7a6a696749d5441358b84569de6f75':
  Clearly explain that 32-bit x86 is not supported
2015-03-20 22:09:36 +00:00
Brian Carlstrom
2cd8a74b2d Clearly explain that 32-bit x86 is not supported
Change-Id: I7f352fae8fa3742c61dc74e20aacd32254451bce
2015-03-20 12:50:42 -07:00
Ying Wang
d4ca3b38d9 am 4cbc4b39: am ae61f50a: Support to configure and build multiple custom images.
* commit '4cbc4b392da57c34626af38a4ea0fe4dc115af57':
  Support to configure and build multiple custom images.
2015-03-14 00:31:44 +00:00
Ying Wang
ae61f50a68 Support to configure and build multiple custom images.
Build additional images requested by the product makefile.
This script gives the ability to build multiple additional images and
you can configure what modules/files to include in each image.
1. Define PRODUCT_CUSTOM_IMAGE_MAKEFILES in your product makefile.
   PRODUCT_CUSTOM_IMAGE_MAKEFILES is a list of makefiles.
   Each makefile configures an image.
   For image configuration makefile foo/bar/xyz.mk, the built image
   file name
   will be xyz.img. So make sure they won't conflict.
2. In each image's configuration makefile, you can define variables:
  - CUSTOM_IMAGE_MOUNT_POINT, the mount point, such as "oem", "odm"
    etc.
  - CUSTOM_IMAGE_PARTITION_SIZE
  - CUSTOM_IMAGE_FILE_SYSTEM_TYPE
  - CUSTOM_IMAGE_DICT_FILE, a text file defining a dictionary
    accepted by BuildImage() in tools/releasetools/build_image.py.
  - CUSTOM_IMAGE_MODULES, a list of module names you want to include
    in the image; Not only the module itself will be installed to proper
    path in the image, you can also piggyback additional files/directories
    with the module's LOCAL_PICKUP_FILES.
  - CUSTOM_IMAGE_COPY_FILES, a list of "<src>:<dest>" to be copied to
    the image. <dest> is relativ to the root of the image.

To build all those images, run "make custom_images".

Bug: 19609718
Change-Id: Ic73587e08503a251be27797c7b00329716051927
(cherry picked from commit 5fcf1094f9)
2015-03-14 00:06:54 +00:00
Ying Wang
14cc23d433 Remove support of factory ramdisk/bundle.
Bug: 18779515
Change-Id: Ia6d51d43965447e2e95944a7d2b4b41adb121cb7
2015-02-04 11:00:01 -08:00
Ying Wang
38074e8eb0 am 80ff45ba: am 0850330c: Merge "Default host module to 64-bit except for SDK builds."
* commit '80ff45ba98922b56ca70cc39fdb530482d366684':
  Default host module to 64-bit except for SDK builds.
2014-09-02 23:28:51 +00:00
Ying Wang
7ba7d7f4f5 Default host module to 64-bit except for SDK builds.
Set "HOST_PREFER_32_BIT := true" only if "sdk" or "win_sdk" is among the
make command line goals, or it's a MinGW windows build, which only builds
host SDK tools.

Bug: 13751317
Change-Id: I8ec1a97a5d1af065a153b16523c2ee3434d0dd71
2014-09-02 16:04:31 -07:00
Ying Wang
f58dd4fd2a am 798c8430: am 3c6e4910: Merge "Fix HOST_LIBRARY_PATH."
* commit '798c8430d5d5389e15379d64119dfc75cfc61ff8':
  Fix HOST_LIBRARY_PATH.
2014-08-14 20:09:00 +00:00
Ying Wang
d481b112f2 Fix HOST_LIBRARY_PATH.
Since we switched to $(HOST_OUT)/lib64 for 64-bit libraries and
$(HOST_OUT)/lib for 32-bit libraries.

Change-Id: Ie43bc03c37e2ac8542412a7543a6af5d60c6f725
2014-08-14 11:03:56 -07:00
Ying Wang
5bac962903 Fix HOST_LIBRARY_PATH.
Since we switched to $(HOST_OUT)/lib64 for 64-bit libraries and
$(HOST_OUT)/lib for 32-bit libraries.

Change-Id: Ie43bc03c37e2ac8542412a7543a6af5d60c6f725
2014-08-14 12:48:25 -07:00
Ying Wang
5a5d443f15 am 8ac188ff: am 6dbbb159: Merge "Consistent use of USE_MINGW"
* commit '8ac188ff0e739ea75ea02166c54428245200f088':
  Consistent use of USE_MINGW
2014-08-08 03:26:07 +00:00
Ying Wang
594a10ae77 Consistent use of USE_MINGW
Change-Id: I05e212e5a99639d0196006b9c2ec35072c54f399
2014-08-07 20:08:04 -07:00
Ying Wang
6aef047362 Support to set up TARGET_COPY_OUT_VENDOR in board config.
We first define TARGET_COPY_OUT_VENDOR as a placeholder. In product
config makefiiles we actually get the placeholders in
PRODUCT_COPY_FILES. A device can set up TARGET_COPY_OUT_VENDOR in its
BoardConfig.mk. We substitute the placeholder with the real
TARGET_COPY_OUT_VENDOR value after loading the BoardConfig.mk.
With this change, we can support building vendor stuff to
system.img (the default) or a separate vendor.img.

Bug: 16515152
Change-Id: I5b601d7a8b34fe032a1bac02aa5c204a3765691d
2014-07-23 22:26:32 -07:00
Ying Wang
26dbc3e6e4 am d3b5d574: am ce40d5f9: am bc7501e1: Merge "More consistent use of 64-bit build variable."
* commit 'd3b5d574defd565d6e810cbb86e3943837f94065':
  More consistent use of 64-bit build variable.
2014-07-09 15:07:12 +00:00
Ying Wang
4b1c95d8d2 More consistent use of 64-bit build variable.
Set up TARGET_IS_64_BIT and HOST_IS_64_BIT early so we don't need 2
mechanisms to judge if it's 64-bit build;
Remove the unnecessary 32-bit host variables.

Change-Id: I08d6d4d9ea70f91135fe2ee05463fb9a0d1cee42
2014-07-08 18:04:17 -07:00
Ying Wang
e050245b7a am 0d0b7b36: am 2530c787: am 4b539d15: Merge "More consistent host library path in multilib build."
* commit '0d0b7b3669d3cb309ddd26cf23ddddbe4d42fd8e':
  More consistent host library path in multilib build.
2014-07-01 00:35:21 +00:00
Ying Wang
36ef50f2a2 More consistent host library path in multilib build.
In 64-bit multilib host build, changed from
32-bit lib: out/host/<platform>/lib32
64-bit lib: out/host/<platform>/lib
to
32-bit lib: out/host/<platform>/lib
64-bit lib: out/host/<platform>/lib64
.
That way the host library path is consistent with the multilib target
build's. Also with this change prebuilt 32-bit libraries can be reused
in 64-bit host build as 2nd arch binaries. (With previous setup, they
can't be used because they have rpath ../lib in it while the 2nd arch
library path needs ../lib32.

Change-Id: I020199d0c7dd52cdc8dcb7d3a1d22cd6178672e1
2014-06-30 17:06:21 -07:00
Colin Cross
a58f8e04c9 build: fix vendor symbols in gdb
Set TARGET_OUT_VENDOR_SHARED_LIBRARIES_UNSTRIPPED
Append '64' for 64-bit libraries

Change-Id: Ief289bb23950d4bed84cf616cff6038fbd8caf95
2014-06-27 10:48:22 -07:00
Ying Wang
f15250ed86 Set up oem.img directory structure for TARGET_2ND_ARCH.
Change-Id: Ia931a10708225c428b658cb4a30e8bba66fa7308
2014-06-26 14:12:35 -07:00
Ying Wang
70ae5e23fc am 0d276266: am 128cd1b7: am 6cc4598d: Merge "Add global variable HOST_LIBRARY_PATH."
* commit '0d27626620676dbe72bf5c020008bb2dad20d75f':
  Add global variable HOST_LIBRARY_PATH.
2014-06-11 20:24:22 +00:00
Ying Wang
f7988507f4 am 2d19cbd2: resolved conflicts for merge of 135e11df to klp-modular-dev-plus-aosp
* commit '2d19cbd279ed69c7202f089be174c35c1585f709':
  Switch to 32-bit-by-default host multilib build.
2014-06-11 19:26:30 +00:00
Ying Wang
c4595868c4 Add global variable HOST_LIBRARY_PATH.
With multilib host build, the build system installs host
shared libraries to different directories depending on a
library's bitness:
- HOST_OUT_SHARED_LIBRARIES points to the library path of 64-bit;
- 2ND_HOST_OUT_SHARED_LIBRARIES points to the library path of 32-bit;
- If you don't care the bitness of the libraries and just want whatever
  version the librareies are built by default, use HOST_LIBRARY_PATH.

Bug:13751317
Change-Id:Id4c818941dc4ea35d795767c76f698529bd6aebb
2014-06-10 12:04:56 -07:00
Ying Wang
2713fcebba Switch to 32-bit-by-default host multilib build.
Also we don't need to force LLVM built from source, for we already force
LLVM to be built as 32-bit.

Bug: 13751317
Change-Id: Ifadf1988d28b60cb06316de50f5bdc1834f1acc0
2014-06-09 17:48:05 -07:00
Ying Wang
1dc4f0bace am 2bf10a72: am cdcb6926: am 6cb69bd4: Merge "Add HOST_PREFER_32_BIT to support 32-bit-by-default multilib build"
* commit '2bf10a72f87a8e97923286aa331f7db81e2361ca':
  Add HOST_PREFER_32_BIT to support 32-bit-by-default multilib build
2014-05-23 19:43:57 +00: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
8200231ae1 am e50f2d9f: am 40b49d30: am a74ade94: Merge "Support host multilib build"
* commit 'e50f2d9f32a27d8290692dbf99ab8b247ef9d553':
  Support host multilib build
2014-05-15 01:09:49 +00: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
Ying Wang
b8888432f0 Set up rules to build oem.img
To build oem.img:
- You must define BOARD_OEMIMAGE_PARTITION_SIZE in your BoardConfig.mk
- The file system type will be the same as system.img and userdata.img.
- To install a module to oem.img, use "LOCAL_OEM_MODULE := true"
- run "make -j48 showcommands oem_image dist". By default it's not
  built.

Bug: 13367676
Change-Id: I1a26d4d0c61b72ecffe60279667b1b3de050780d
2014-04-28 09:43:51 -07:00
Narayan Kamath
110ea46e09 resolved conflicts for merge of 8af7e8ed to master
Change-Id: Ib427b36e133e29d1c2e9cea065e4e63c1e2e2122
2014-04-09 12:33:03 +01:00
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
b4d757b1b2 am f6811abe: am 9fbd3afd: am 431b4bb3: Merge "Extend the CPU ABI specification mechanism."
* commit 'f6811abe12601c9753f329cb34da568f0072ca76':
  Extend the CPU ABI specification mechanism.
2014-03-31 12:35:14 +00: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
40826c170c am 8c89a9ff: am 4695598d: am ae49acbd: am 1acb1b64: Merge changes I62504bad,I16208cca,I4e4ceec6
* commit '8c89a9ff9cd461e4bc077a91a0c7c32b17a92ebd':
  add new gen/ directory for generated sources
  warn on LOCAL_MODULE_PATH in multiarch shared libraries
  Support LOCAL_MODULE_RELATIVE_PATH
2014-01-27 23:48:52 +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
f6c0e042fd am 088319dd: am dda94546: am 4a1f42d7: am 7c7f28e7: Merge changes Ib1d950e1,I3d020a3c,Ic9594718
* commit '088319dd22ac4bc65eb284dfeeab368ac2e90ca9':
  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:58:58 +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
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
e3d067926f 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
2014-01-23 15:12:51 -08:00
Ying Wang
72b01d6121 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-21 11:26:39 -08:00
Ying Wang
61d499b965 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-16 14:34:13 -08:00
Ying Wang
e1d44c3b4a 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
2014-01-16 14:30:02 -08:00
Ying Wang
734afe4e42 am 94ff79ea: am adc66128: am b6c57051: am f5ce4fa9: Merge "Install 64-bit libraries to /system/lib64."
* commit '94ff79eaf2d66be4c83656a41b4efa38ad34a970':
  Install 64-bit libraries to /system/lib64.
2014-01-14 20:15:45 +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
Ying Wang
ec900ac4dc Support host phony package.
Bug: 11467421
Change-Id: I146387aecc57aaabbbb81f8c8bc9b5c9a5e81f05
2013-11-13 15:56:18 -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
Jeff Hamilton
77dfeaed2a Switch the required host Java environment to 1.6.
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
2010-06-30 13:36:27 -05:00