Commit Graph

605 Commits

Author SHA1 Message Date
Dan Willemsen
ffb643e487 Merge \"Use more prebuilt build-tools\"
am: 6c0c720389

Change-Id: Icb67388bf084f2de872e9df8747b70cbde42b5f9
2016-06-14 22:28:02 +00:00
Dan Willemsen
7c2d228701 Use more prebuilt build-tools
For acp, we've been using an old prebuilt in prebuilts/sdk, but it's not
part of the SDK. Instead, we'll use a prebuilt in the build-tools
repository.

For ijar, we've been using the host libstdc++ to workaround the lack of
libc++ on some unbundled branches. Instead, use a prebuilt that can use
libc++.

For ziptime, we've been disabling it on unbundled branches, due to the
lack of libc++. Instead, use a prebuilt version of ziptime that can use
the prebuilt libc++.

Change-Id: If80f845ea06f76e3fe6765964e77c864eaf303d0
2016-06-14 13:50:38 -07:00
Yohann Roussel
9530d9131c Merge \\"Do not force turn off of Jack warning\\" am: 0a26fc0ace
am: 5185323de9

Change-Id: I054396d9bdb88822ca75be61a88e18f08213242d
2016-06-13 14:48:53 +00:00
Yohann Roussel
0a26fc0ace Merge "Do not force turn off of Jack warning" 2016-06-13 14:33:48 +00:00
Dan Willemsen
74da7c9272 Merge \\"Rewrite LDLIBS and SHARED_LIBRARIES\\" am: a8d13592ac
am: d8210177af

Change-Id: If466674f33ba7d98a0f8da249bc0dc57efdcf621
2016-06-08 21:17:05 +00:00
Yohann Roussel
bf17172521 Do not force turn off of Jack warning
When ANDROID_JACK_EXTRA_ARGS is defined there is no reason to still turn
off those warnings.

Change-Id: Ic7ac02c72ed3b7b0eaca9394c9fc7d92d5dfa871
2016-06-08 17:00:09 +02:00
Dan Willemsen
6731b495ca Rewrite LDLIBS and SHARED_LIBRARIES
LOCAL_LDLIBS was the only correct way to use NDK libraries, but few used
it correctly. It also often got confused with LOCAL_LDFLAGS, so move the
flags to the correct variable.

For binaries that weren't using the NDK (empty LOCAL_SDK_VERSION), it
was never valid to use LOCAL_LDLIBS, as dependencies would not be
properly set up, and could lead to random build failures. So convert any
-l linker flags to using LOCAL_SHARED_LIBRARIES automatically.

For binaries built using the NDK (LOCAL_SDK_VERSION set), they were
required to use LOCAL_LDLIBS for prebuilt NDK libraries, otherwise they
would get headers and dependencies to the platform versions. Any
non-prebuilt LOCAL_LDLIBS would miss dependencies. So move the NDK
prebuilt libraries to LDLIBS from SHARED_LIBRARIES, and move everything
else to SHARED_LIBRARIES.

So now, for device modules, LOCAL_SHARED_LIBRARIES should always be
used, and we'll do the right thing. LOCAL_LDLIBS should only be used for
host libraries from the system.

Change-Id: Ide34c7afdcfb6507a378d45a42471729e489a9e0
2016-06-07 21:59:55 -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
3f6927a862 Merge "Remove (C|CPP|CONLY|LD)FLAGS checked by Soong" am: 15409e8f20
am: c78767f66d

* commit 'c78767f66d06f2edd46e10fcc5c1ee2053565549':
  Remove (C|CPP|CONLY|LD)FLAGS checked by Soong

Change-Id: I9e63f52a421f9a4358887fdb76c055b51d7903ea
2016-05-19 22:20:34 +00:00
Dan Willemsen
174feb906f Remove (C|CPP|CONLY|LD)FLAGS checked by Soong
At the beginning of every build, Soong has exported its version of these
variables, and has been ensuring that when sorted, the result is the
same. So these variables all have the same flags of the Soong ones, but
may be in different orders. We don't believe any of the remaining order
differences matter. As we remove the Make definitions, the exported
Soong variables will take over.

This only removes lines that change one of these variables:

  [2ND_][CLANG_]HOST_CROSS_GLOBAL_CFLAGS
  [2ND_][CLANG_]HOST_CROSS_GLOBAL_CONLYFLAGS
  [2ND_][CLANG_]HOST_CROSS_GLOBAL_CPPFLAGS
  [2ND_][CLANG_]HOST_CROSS_GLOBAL_LDFLAGS
  [2ND_][CLANG_]HOST_GLOBAL_CFLAGS
  [2ND_][CLANG_]HOST_GLOBAL_CONLYFLAGS
  [2ND_][CLANG_]HOST_GLOBAL_CPPFLAGS
  [2ND_][CLANG_]HOST_GLOBAL_LDFLAGS
  [2ND_][CLANG_]TARGET_GLOBAL_CFLAGS
  [2ND_][CLANG_]TARGET_GLOBAL_CONLYFLAGS
  [2ND_][CLANG_]TARGET_GLOBAL_CPPFLAGS
  [2ND_][CLANG_]TARGET_GLOBAL_LDFLAGS

Many other variables are unnecessary now too, but those will be removed
in another change. For those we can ensure the build.ninja file does not
change, but we expect it to change here due to the ordering differences.

Change-Id: I0bd0778706d02ee27b2784dd8dc6b2c71d37bd3a
2016-05-18 18:10:04 -07:00
Dan Willemsen
7ec97fdc16 Merge "Remove make variables exported from Soong" am: 30b57cd7d5
am: f85807f794

* commit 'f85807f794266ccebbcba8aaf2732b1fb945519d':
  Remove make variables exported from Soong

Change-Id: I453366e23996f4b68acc5367146829050f00798e
2016-05-18 00:43:02 +00:00
Dan Willemsen
4863dafcb1 Remove make variables exported from Soong
These have all been strictly checked by Soong, so the values currently
match. Just remove them so that the make variables exported by Soong
will take over.

This also removes some of the GCC reconfiguration, since we haven't
implemented that in Soong. If it becomes useful in the future, we'll
implement it there.

Some things like TARGET_TOOCHAIN_ROOT can nearly be removed, but are
used before the Soong-exported make_vars.mk is loaded. In that case,
added to the clang cflags, so it can be removed once the cflags are
removed.

Others, like LLVM_PREBUILTS_VERSION are loaded even earlier -- in
envsetup.sh before we've even configured Soong. So for now, keep the
Make definition, and continue ensuring it's the same as the Soong
version.

Change-Id: I554b27062ac43610828a8c06d640d919a2dc21ca
2016-05-16 20:39:58 -07:00
Colin Cross
5f1660ebf4 Merge "Update prebuilt build tools path" am: 405b73ea10
am: f51ed4020f

* commit 'f51ed4020fcabe9d7a8e7f72fb3852ff2871f0a1':
  Update prebuilt build tools path

Change-Id: I99082fbc8427454265e50ae2ca4235f48c426761
2016-05-05 19:07:28 +00:00
Colin Cross
facdca17d5 Update prebuilt build tools path
Build tools have been moved from prebuilts/sdk/tools to
prebuilts/build-tools.

Bug: 27857138
Change-Id: I60be42c197d420897dab77808c25818c9d2e81df
2016-05-04 16:02:02 -07:00
Keun Soo Yim
46a259651f resolve merge conflicts of 72b82dc to nyc-dev-plus-aosp
Change-Id: I6e62226774584154ad1a802594e386fe7942504b
2016-04-25 15:27:21 -07:00
Keun Soo Yim
3d4847525f build rule change for VTS (vendor test suite)'s metadata files
Change-Id: I76b81529a97b672e08632703d2f6a2777ee8811e
2016-04-25 13:06:57 -07:00
Alex Deymo
5a84381b87 Merge "Update the path to clean_header.py on the documentation." am: 93fdee98a9
am: 83285f39ed

* commit '83285f39ed037b5eff390c6bbd367512f301251d':
  Update the path to clean_header.py on the documentation.

Change-Id: Ic0f57a44ddf9a3173b67a346357a3ba5581acaeb
2016-04-22 18:21:49 +00:00
Treehugger Robot
93fdee98a9 Merge "Update the path to clean_header.py on the documentation." 2016-04-22 18:11:18 +00:00
Alex Deymo
be0e7c9894 Update the path to clean_header.py on the documentation.
Bug: None
Change-Id: I8064c67b6066613b51a581ec67476797690418ae
2016-04-22 10:18:15 -07:00
Chih-hung Hsieh
7a8e69eea2 Merge "Call clang-tidy based on WITH_TIDY* variables." am: 3f03b10654
am: c72f50d49f

* commit 'c72f50d49fb95794039f270d4083b9cfed4cd482':
  Call clang-tidy based on WITH_TIDY* variables.

Change-Id: I4eb0afd79b56ad2ddea42b33791df27da6ab8820
2016-04-21 21:11:00 +00:00
Chih-hung Hsieh
3f03b10654 Merge "Call clang-tidy based on WITH_TIDY* variables." 2016-04-21 21:01:45 +00:00
Chih-Hung Hsieh
a9a55c7c7e Call clang-tidy based on WITH_TIDY* variables.
* Call clang-tidy before every C/C++ compilation if
  (1) clang-tidy is found at $(PATH_TO_CLANG_TIDY)
  (2) $(my_clang) is true
  (3) LOCAL_TIDY is 1 or true, or
      LOCAL_TIDY is undefined and WITH_TIDY is 1 or true.
* clang-tidy is called with -checks=$(my_tidy_checks),
  which has default '-*,google*,-google-readability*'
  and can be overwritten by WITH_TIDY_CHECKS.
* LOCAL_TIDY_CHECKS is appended to $(my_tidy_checks)
* Extra flags are passed to clang-tidy through
  WITH_TIDY_FLAGS or LOCAL_TIDY_FLAGS.
* To quickly find and fix clang-tidy warnings, set $(WITH_TIDY_ONLY)
  to 1 or true to skip compilation of C/C++ files.
* Add a PHONY tidy_only target,
  which includes all $(cpp_objects) and $(c_objects).
* The 'mm' and 'mmm' functions are changed to call make with
  the 'tidy_only' target when WITH_TIDY_ONLY is true or 1.
  In that case, only clang-tidy is called for C and C++ files.

Bug: http://b/27779618
Change-Id: I8adcfff217d68af49849b79aacee7d7654cafb1b
2016-04-21 12:31:13 -07:00
Shinichiro Hamaji
506668bccf Merge "Add input dependencies to .img targets" am: bd0bab233d
am: 8196646d27

* commit '8196646d2782ce7847ab081843a7ad5c2b553055':
  Add input dependencies to .img targets

Change-Id: I3053b20a56804b268dbd78e793d3d5da71ecd487
2016-04-21 06:17:47 +00:00
Shinichiro Hamaji
3deb87d5fd Add input dependencies to .img targets
They should have build/tools/releasetools/*.py as their
prerequisites.

Bug: 27954979
Change-Id: I51595fc91caaad38be3e47befb5df7ac2683bf14
2016-04-19 18:41:27 +09:00
David Zeuthen
39b6a8db6a Merge "Add support for Brillo partitioning." am: 2528968
am: 93a3423

* commit '93a34234c6a032251163992728def631c14a6e90':
  Add support for Brillo partitioning.

Change-Id: I349463c75e8ddb312cf83bad845864e530c50405
2016-04-14 16:20:15 +00:00
David Zeuthen
25328627ba Add support for Brillo partitioning.
To generate partition tables in the Android build system, simply add
the path to a .bpt file to the BOARD_BPT_INPUT_FILES variable.

 BOARD_BPT_INPUT_FILES += "hardware/bsp/vendor/soc/board/board-specific.bpt"

The variable BOARD_BPT_DISK_SIZE can be used to specify or override
the disk size, for example:

 BOARD_BPT_DISK_SIZE := "10 GiB"

Additional arguments to 'bpttool make_table' can be specified in the
variable BOARD_BPT_MAKE_TABLE_ARGS.

If BOARD_BPT_INPUT_FILES is set, the build system generates two files

 partition-table.img
 partition-table.bpt

in ${ANDROID_PRODUCT_OUT} using 'bpttool make_table'. The former is
the binary partition tables generated using bptool's --output_gpt
option and the latter is a JSON file generated using the --output_json
option. These files will also be put in the IMAGES/ directory of
target-files.zip when running 'm dist'.

BUG=27831397
TEST=Manually tested.

Change-Id: Iedd15354afb2dd483dcb9bc001360b2a37fd6dc0
2016-04-13 12:45:20 -04:00
Shinichiro Hamaji
f84255570d Merge "Add jack\'s argument files to prerequisites" am: 06dbe19
am: ac61fed

* commit 'ac61fedf9e9a68206d2f2507557cce14ee8524e6':
  Add jack's argument files to prerequisites

Change-Id: Id6959d79000252ab91823d2252297500a4dd6dd4
2016-04-08 08:13:04 +00:00
Shinichiro Hamaji
4eaeef8df7 Add jack's argument files to prerequisites
Dex files should be updated when jack-default.args or
proguard*.flags are modified.

Bug: 27954979
Change-Id: I72a7084302f4ef92a89a8068f03f790dd7acd582
2016-04-07 18:56:42 +09:00
Shinichiro Hamaji
bae8b3f2d9 Merge "Add Bison binary and its data to prerequisite" am: 4d69fbf
am: 06af80f

* commit '06af80f6c4c1702b1aebea8cec56b49f43e88d4f':
  Add Bison binary and its data to prerequisite

Change-Id: I5039150bcb4d06677bd6d5fd4acea8e643fccb89
2016-04-07 03:56:24 +00:00
Shinichiro Hamaji
3a192c0246 Merge "Fix dependencies of protoc with nanopb-c plugin" am: 5e2d7f3
am: ae91743

* commit 'ae917433aaa92941bc2ad515f8bdb4f77c462ac0':
  Fix dependencies of protoc with nanopb-c plugin

Change-Id: Ib548b09c87f9be296e6e1fcb60ec0fcd4ddd0908
2016-04-07 03:56:23 +00:00
Shinichiro Hamaji
4d69fbf5be Merge "Add Bison binary and its data to prerequisite" 2016-04-07 03:48:31 +00:00
Shinichiro Hamaji
a3184dc2ae Fix dependencies of protoc with nanopb-c plugin
Bug: 27954979
Change-Id: Ic06b5288b092d8ea5225516069845bfc2ffa9cd1
2016-04-06 13:54:03 +09:00
Shinichiro Hamaji
b708bc5533 Add Bison binary and its data to prerequisite
Bug: 27954979
Change-Id: Id68425ef85c07b9bd06d9640f4bf96270af1b893
2016-04-06 13:46:02 +09:00
Mohamad Ayyash
5c30f5b4bb Merge "Always build squashfs host tools" am: ce30869
am: c7f86d7

* commit 'c7f86d7fdacfd8f97729114c7ea4887519c20111':
  Always build squashfs host tools

Change-Id: I820fdf1e50f1c745248c3dcf1a4771c137eff9c5
2016-04-04 19:52:26 +00:00
Mohamad Ayyash
95fe0025c1 Always build squashfs host tools
Now that mac compatibility has been fixed

BUG: 27657762
Change-Id: I49933ccedf74b9d172967dad721971a752047da6
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2016-04-04 12:33:24 -07:00
Mohamad Ayyash
5d65020e44 Always build squashfs host tools
Now that mac compatibility has been fixed

BUG: 27657762
Change-Id: I49933ccedf74b9d172967dad721971a752047da6
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2016-04-04 12:31:41 -07:00
Miao Wang
5d4d1d8ebb Merge "[RenderScript] Update the build rules for x86_64 support lib." 2016-04-01 20:22:41 +00:00
Miao Wang
1c46869386 Merge "[RenderScript] Update the build rules for x86_64 support lib." into nyc-dev
am: a529ceb

* commit 'a529cebde857380adec4d14d4779b405666f7599':
  [RenderScript] Update the build rules for x86_64 support lib.

Change-Id: Id7f375df86af08cc9b273d445e1fe9bc97885973
2016-03-31 22:37:29 +00:00
Miao Wang
4121aa9bb8 [RenderScript] Update the build rules for x86_64 support lib.
Bug: 19735423

  - Unlike other archs, x86_64 has both usr/lib and usr/lib64. we need
    to search for libm.so and libc.so in lib64/. Otherwise the linker
    will report error.

Change-Id: I2859bee066a9eb100828d90da8adf0f9817d77e6
(cherry picked from commit 57ef7ea490)
2016-03-31 15:26:24 -07:00
Miao Wang
57ef7ea490 [RenderScript] Update the build rules for x86_64 support lib.
Bug: 19735423

  - Unlike other archs, x86_64 has both usr/lib and usr/lib64. we need
    to search for libm.so and libc.so in lib64/. Otherwise the linker
    will report error.

Change-Id: I2859bee066a9eb100828d90da8adf0f9817d77e6
2016-03-31 14:05:33 -07:00
Ying Wang
81ef4714f4 Merge commit '1f07720f8518236e8438ae0f25ea7211da8c8c45' into manual_merge_1f07720
Change-Id: I5ad50aacbe99b4ebf8ae7e630f169100128b5b3c
2016-03-31 10:10:42 -07:00
Ying Wang
858657366f Remove support of disabling Jack.
We removed code and variables related to running dx on classes.jar in
this change. Also removed target emma rules (but kept the emma rules for
host java libraries), for it's now done by Jack.
We still support to build classes.jar (and javalib.jar for static Java
libraries) using javac, because tools like javadoc need class files as
input.
Removed the obsolete install-dex-debug.

Bug: 27400061
Change-Id: If0bcdfe62cb181a98754fb0dbe1c12c92e38d3e8
2016-03-30 14:03:12 -07:00
Shinichiro Hamaji
fbd5d8de0f Merge "Fix dependencies around tools/*-event-log-tags.py" am: 4487319
am: a2be61e

* commit 'a2be61ed16bcb406030ff01a30e4dec90a8ff5de':
  Fix dependencies around tools/*-event-log-tags.py

Change-Id: I8fee3f7846e723d46eb26356798eedb9566f3a28
2016-03-29 20:51:05 +00:00
Shinichiro Hamaji
d3ce14c325 Fix dependencies around tools/*-event-log-tags.py
We should regenerate merged tag files and java sources when
these scripts are updated.

Change-Id: Id5f11d6f480f3f74dab08f01e929ee2d7fafd2d0
2016-03-30 03:04:40 +09:00
Ying Wang
dcb1da9093 Merge "Remove rmtypedefs from the build system."
am: 6557ba5

* commit '6557ba5335798627572669512489fdc8c59915a6':
  Remove rmtypedefs from the build system.
2016-03-25 18:08:55 +00:00
Ying Wang
fbc5b9f56b Rebuild odex files in PDK fusion build.
To rebuild odex files of Java libraries and apps,
we store the jars/apks without stripping the classes.dex inside the
platform.zip. We also save the build variables that may affect how we
rebuild an odex in pdk_dexpreopt_config.mk in the platform.zip.
We store the files and configuration only for libraries/apps that get
installed to the system.img (or vendor.img).

In PDK fusion build, we auto-generate prebuilt module definitions for
the javalib.jar and package.dex.apk carried in the platform.zip, using
configuration stored in pdk_dexpreopt_config.mk.
With the prebult modules, we override the implicit rule that directly
copies the odex from the platform.zip.
To rebuild odex of javalib.jar, we added support for prebuilt shared Java
library to prebiult_internal.mk. An installable prebuilt Java library is
treated as shared Java library, i.e. with classes.dex in the jar instead
of a set of .class files.
For apks in the platform.zip, we install the stripped version from
platform files inside platform.zip, instead of the package.dex.apk,
using a new variable LOCAL_REPLACE_PREBUILT_APK_INSTALLED. We can't
strip package.dex.apk because we can't re-sign the stripped apk at this
point.

We generate prebuilt module only if it's not already defined in the
source tree.

Bug: 27543283
Change-Id: I9e146f8b713d6f57c397fd28d88c9ab700757ca1
(cherry-pick from commit 3a61eeb6cb)
2016-03-25 11:06:04 -07:00
Ying Wang
72bc59ce8b Remove rmtypedefs from the build system.
We don't need to run rmtypedefs in javac compilation now, because the
runtime libraries are compiled by only jack, which takes care of
rmtypedefs by itself.

Bug: 27828139
Change-Id: Ie480ae5aead8f3f58f956978fc4a05c28a35dec6
2016-03-24 12:25:56 -07:00
David Zeuthen
1b61e038e6 Merge "Add support for Brillo Verified Boot."
am: 003bec4

* commit '003bec431cc133134bbb29040f6c01d3f608e6ee':
  Add support for Brillo Verified Boot.
2016-03-21 15:55:23 +00:00
David Zeuthen
d995f4b04d Add support for Brillo Verified Boot.
The following variables are introduced

 BOARD_BVB_ENABLE: can be set to true to build boot.img and system.img
 files compatible with Brillo Verfied Boot.

 BOARD_BVB_ROLLBACK_INDEX: can be set to an integer to use for the
 rollback index.

 BOARD_BVB_KEY_PATH, BOARD_BVB_ALGORITHM: If set, the former must be a
 path to the private key used to sign the boot image and the latter must
 be the algorithm to use. If unset, a test-key stored in the tree will
 be used.

 BOARD_BVB_MAKE_BOOT_IMAGE_ARGS: Extra options to pass to 'bvbtool
 make_boot_image'.

 BOARD_BVB_SIGN_BOOT_IMAGE_ARGS: Extra options to pass to 'bvbtool
 sign_boot_image'.

 BOARD_BVB_ADD_IMAGE_HASHES_ARGS: Extra options to pass to 'bvbtool
 add_image_hashes'.

 BOARD_CUSTOM_BVBTOOL: Can be set to specify what bvbtool program to
 use.

The existing BOARD_KERNEL_CMDLINE variable is also used, as are existing
kernel and initrd-related variables. Therefore, simply adding

 BOARD_BVB_ENABLE := true

to an existing Makefile should do the trick.

Bug: 26185038
TEST=Added 'BOARD_BVB_ENABLE := true' to hardware/bsp/intel/soc/edison/soc.mk
  and built an image and then ran bvbtool's info_boot_image and
  info_image_hashes commands on the resulting boot.img and system.img
  files and verified that the information was correct. Also ran 'm dist'
  and verified that the boot.img and system.img files in the resulting
  target_files.zip file had similar information.

Change-Id: I08045ed8b0cbddc7c3acdd3a6f2c4bb75cb44bbc
2016-03-18 15:25:43 -04:00