Commit Graph

1109 Commits

Author SHA1 Message Date
Anton Hansson 9d2c04e39c Merge "Add support enforcing all path requirements." 2018-06-15 09:08:10 +00:00
Colin Cross a81e5c743d Merge "Dist installed-files*.json"
am: 8b4c72dc1c

Change-Id: I13389075d4b3b87d23a96a194f17163a3ab22b03
2018-06-14 22:11:16 -07:00
Colin Cross 23dded0ffd Dist installed-files*.json
installed-files*.json provides hashes of each file, which will allow
a quick comparison of what has changed between builds.

Test: m checkbuild
Change-Id: I87f6c1fa89aaa83c7bcc7cbefb799e9e26d7bfa5
2018-06-14 14:51:20 -07:00
Anton Hansson 727e5d9f59 Merge "Add a new macro for products to make artifact path requirements."
am: 2b0ea222c1

Change-Id: I3bb0f6a885ef190c0eebc5cf73ac748ff25c4afd
2018-06-14 03:39:45 -07:00
Anton Hansson 427d855728 Add support enforcing all path requirements.
Setting PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS to be non-empty will
verify that when an inherited product file makes an path requirement
claim, no files other than the ones it produces are allowed inside its
paths. This allows more rigorous control of what goes where, and
specifically stops accidental inclusion of modules in the wrong places
(which is very easy to do otherwise).

In order to enable iterative improvements to current offenders, support
for a whitelist is also added (via the new
PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST property). Verification is
done that this variable corresponds to exactly the list of current
offenders.

Example use:
  PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := true
  PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := system/priv-app/Dialer/Dialer.apk

Bug: 80410283
Test: In a downstream CL specifying the above.
Change-Id: I58047db08bde34da21759cfc55f398892b1c809a
2018-06-14 11:35:05 +01:00
Anton Hansson 6147e61699 Merge "Extract the product to file mapping logic to a macro."
am: df832133ad

Change-Id: Ic92eb8d9c9631f5eaac57bb4f41c157954f85193
2018-06-14 03:14:24 -07:00
Anton Hansson 837425b0c0 Add a new macro for products to make artifact path requirements.
When a product adds a path requirement, the build system will verify
that all its artifacts are produced inside these paths, and fail
otherwise.

The paths are all relative to PRODUCT_OUT, and the macro also supports
giving a whitelist, for known existing offenders in the hierarchy. The
build will fail if redundant whitelist entries are present.

Example invocation:
_paths := $(TARGET_COPY_OUT_SYSTEM)/
_whitelist := root/init root/init.rc
$(call require-artifacts-in-path $(_paths), $(_whitelist))

Bug: 80410283
Test: Downstream with a new product definition.
Change-Id: I235de681f65254087a42e345af69b2113b682072
2018-06-13 18:48:53 +01:00
Anton Hansson 5efe88df63 Extract the product to file mapping logic to a macro.
This way, the logic can be reused for multiple products during
the same build step. This will be used to track files output
by different subtrees in the product makefile hierarchy.

Bug: 80410283
Test: diff produt_FILES before and after
Change-Id: I6dd1cf586410b9809fdd9d75441128acb07cab08
2018-06-13 18:48:42 +01:00
Yifan Hong b64f5b5145 Merge "Add ro.boot.logical_partitions" am: 78f3983e98
am: 6d3dbb927e

Change-Id: I9bd5760ffbb5e9dd76ae6376a23057504719046f
2018-05-29 13:07:30 -07:00
Yifan Hong ebba19759d Add ro.boot.logical_partitions
Test: boot and getprop
Bug: 79885414
Change-Id: I2c1468a7a625deda8887106c3a087204a1ee8353
2018-05-29 11:17:45 -07:00
Alan Ma 4292ea6696 Merge "Add a build task for cts_instant" into pi-dev
am: 07d33802b3

Change-Id: Ide0ee7a30700a34823abed77493fba4f55458517
2018-05-21 13:30:41 -07:00
Alan Ma c2e074c081 Add a build task for cts_instant
Test: With other CLs in the topic, run 'm -j30 cts_instant'

bug: 79750671
Change-Id: Ib0381017300108a22919892070540b9e7f92aaf9
2018-05-18 14:09:03 -07:00
Isaac Chen a13b3153c1 Enable vndk_package if BOARD_VNDK_VERSION is set
This is a first attempt to enable build system support to include
vndk_package automatically (if BOARD_VNDK_VERSION is set), so devices
don't need to add it via PRODUCT_PACKAGE manually.

Bug: b/67002788
Test: Booted on the x86 emulator and a physical device and checked
      their /system/lib*/vndk-* directories for vndk_package libraries.
    # The commands below are for the x86 emulator:
    $ lunch aosp_x86_64-userdebug; m -j
Change-Id: Iea927b9535c7ee1b64ca130a4ac54f0fd8b3f758
Merged-In: Iea927b9535c7ee1b64ca130a4ac54f0fd8b3f758
(cherry picked from commit 5364f5a298)
2018-04-24 10:07:10 +08:00
Dan Willemsen 52e14a617d Merge "Add variables for configuring Soong plugins" into pi-dev 2018-04-17 19:35:35 +00:00
Andrew Hsieh f88438aa37 Merge "Enable vndk_package if BOARD_VNDK_VERSION is set" into pi-dev
am: 0dd11dc0b5

Change-Id: I192316dd07972167e2d5e4a687e15f7f1611f0f8
2018-04-16 16:41:23 -07:00
Isaac Chen 5364f5a298 Enable vndk_package if BOARD_VNDK_VERSION is set
This is a first attempt to enable build system support to include
vndk_package automatically (if BOARD_VNDK_VERSION is set), so devices
don't need to add it via PRODUCT_PACKAGE manually.

Bug: b/67002788
Test: Booted on the x86 emulator and a physical device and checked
      their /system/lib*/vndk-* directories for vndk_package libraries.
    # The commands below are for the x86 emulator:
    $ lunch aosp_x86_64-userdebug; m -j
Change-Id: Iea927b9535c7ee1b64ca130a4ac54f0fd8b3f758
2018-04-13 15:33:44 +08:00
Dan Willemsen 79657520ee Add variables for configuring Soong plugins
See the Soong commit for detailed usage.

Bug: 76168832
Test: define some variables, use them
Change-Id: Ia8af5b6ec1cb3f12cbc1fee582a309eebb340b7c
Merged-In: Ia8af5b6ec1cb3f12cbc1fee582a309eebb340b7c
(cherry picked from commit eaacf5b285)
2018-04-11 15:31:35 -07:00
Dan Willemsen fb3eeea64a Merge "Add variables for configuring Soong plugins" am: de61b23ffc
am: 3ae1f7af36

Change-Id: I5abe5931423d25a8314914bc81ba2a38a3439a94
2018-04-10 18:58:05 -07:00
Dan Willemsen eaacf5b285 Add variables for configuring Soong plugins
See the Soong commit for detailed usage.

Bug: 76168832
Test: define some variables, use them
Change-Id: Ia8af5b6ec1cb3f12cbc1fee582a309eebb340b7c
2018-04-10 15:51:53 -07:00
Zach Riggle 9358db72c6 Merge "Add PRODUCT_PACKAGES_DEBUG_ASAN" am: c22e207c50
am: ac6cd7414d

Change-Id: I6ac2c7bf82d305f49a3c8962c0bf8107c1d86373
2018-04-02 21:29:21 +00:00
Treehugger Robot c22e207c50 Merge "Add PRODUCT_PACKAGES_DEBUG_ASAN" 2018-04-02 21:15:59 +00:00
Zach Riggle 9323b7faf3 Add PRODUCT_PACKAGES_DEBUG_ASAN
This is a list of modules which should be installed by default, but only on
builds which are set up for Address Sanitizer (via SANITIZE_TARGET=address).

Additionally, add sanitizer-status to PRODUCT_PACKAGES_DEBUG so that all
userdebug builds will have the binary.  Currently, the module has the
"debug" tag but it may go away in the future.

Change-Id: I0bea4faf9c2a65380292471437e51ef8324b5af3
2018-03-30 21:09:50 +00:00
Elliott Hughes 0f0068eddc Merge "Remove unused dalvik.vm.stack-trace-dir." am: e67bbf39fc
am: 5aea4cf3f8

Change-Id: Ic3eb15c8389d37b2b7047207df495932ade5a5e4
2018-03-29 22:05:17 +00:00
Elliott Hughes f12e8f81bd Remove unused dalvik.vm.stack-trace-dir.
Bug: http://b/73140330
Test: boots
Change-Id: I6145b7af8224165546b1fbdb95b4d2ac2c1f0997
2018-03-28 14:57:58 -07:00
Dan Willemsen 389bbe45a2 Support a pre-extracted PDK zip
Pre-extracting the zip files are more sustainable for git, so that
objects can be shared if unchanged, rather than the 900MB zip file
changing on every build.

This also has the advantage that we could put an Android.bp file inside
the PDK, and Soong would just pick it up.

Bug: 68767391
Test: Build mini_arm64 PDK with platform.zip
Test: Build mini_arm64 PDK with extracted zip file
Change-Id: I16db030a731aea55b69c1d6e2260dbd70b167544
Merged-In: I16db030a731aea55b69c1d6e2260dbd70b167544
(cherry picked from commit 0663f685c2)
2018-03-09 00:27:56 -08:00
Dan Willemsen 5a11a24234 Merge "Support a pre-extracted PDK zip" am: 1cfafdd9fc
am: d34cc3915c

Change-Id: I4996d7e056f48c128e8cf90679562562283d3e15
2018-03-09 05:08:10 +00:00
Dan Willemsen 0663f685c2 Support a pre-extracted PDK zip
Pre-extracting the zip files are more sustainable for git, so that
objects can be shared if unchanged, rather than the 900MB zip file
changing on every build.

This also has the advantage that we could put an Android.bp file inside
the PDK, and Soong would just pick it up.

Bug: 68767391
Test: Build mini_arm64 PDK with platform.zip
Test: Build mini_arm64 PDK with extracted zip file
Change-Id: I16db030a731aea55b69c1d6e2260dbd70b167544
2018-03-08 13:50:21 -08:00
Jayant Chowdhary e47e3d302f Merge "Collect all lsdump paths and write them to $(OUT_DIR)." am: 1fa15d7491
am: 210dc9010b

Change-Id: Ib589fa0c952eaa0cdf762c7cc550e6ed9714203c
2018-03-02 18:02:48 +00:00
Jayant Chowdhary 67e0cc5d63 Collect all lsdump paths and write them to $(OUT_DIR).
$(OUT_DIR)/target/product/$(TARGET_DEVICE)/lsdump_paths.txt will contain all
.lsdump paths relative to $(ANDROID_BUILD_TOP). This helps faster lookup while
running scripts to generate reference dumps.

Test: m -j findlsdumps for aosp_arm64_ab.
      $OUT_DIR/lsdump_paths/generic_arm64_ab/paths.txt has paths to lsdump files
      generated for the build.

Test: m -j findlsdumps for aosp_arm_ab.
      $OUT_DIR/target/product/generic_arm_ab/lsump_paths.txt has paths to
      lsdump files generated for the build.

Change-Id: Iab1640f57bf9d0af5e88e6dda64a610fedcbe87e
2018-02-28 16:29:51 -08:00
Nan Zhang 7e634580ba Merge "Use BUILD_NUMBER_FROM_FILE instead of BUILD_NUMBER in Make." am: d3bec931cd
am: 90b8d087e6

Change-Id: I7360282931fa4646e733f7326aea5a2a3cea1a97
2018-02-22 02:29:18 +00:00
Nan Zhang 0abdb5811d Use BUILD_NUMBER_FROM_FILE instead of BUILD_NUMBER in Make.
<Two phase commits> Since internal master code has more places that use
BUILD_NUMBER (mostly in vendor/) than AOSP (conflict). We can't
deprecate BUILD_NUMBER directly. Therefore, we try to switch to
BUILD_NUMBER_FROM_FILE as much as possible at first. Then we will do
a one-off deprecation for BUILD_NUMBER in internal master next step.

Test: m -j
Bug: b/70351683
Change-Id: I14ffee7381933c9fde14c4bde8c0c14e45fe98bf
2018-02-21 14:12:18 -08:00
Nan Zhang 649f5b3c9a Merge "Remove BUILD_DATETIME from Make." am: 4babe39d0f
am: 03bca8c4a8

Change-Id: I3f8e13a53dbd3217f3ae15b9512d3bb917695df1
2018-02-15 22:53:02 +00:00
Nan Zhang 975f41ed34 Remove BUILD_DATETIME from Make.
Soong_UI will handle build timestamp and export date file to Make.

Test: m -j32
Bug: b/70351683
Change-Id: Ibe4ceb1b224c5e8f3e1a8a59cfee89217765a901
2018-02-14 13:30:53 -08:00
Simran Basi 605ab4554a Merge "LOCAL_HOST_REQUIRED_MODULES support" am: 9ffbc10126
am: 79a2a1e889

Change-Id: Ide6abb89c676bcf8785e60e4f798740b835cbede
2018-02-07 02:39:18 +00:00
Simran Basi 893098b06c LOCAL_HOST_REQUIRED_MODULES support
Allows target modules to directly request host modules they
require to be built and installed as well.

Bug: 72761631
Test: Added LOCAL_HOST_REQUIRED_MODULES to a target apk test and
      the host module was built.

Change-Id: I5aca11b3ba8b54676f068d337f1c9ba0e0b01997
2018-02-06 14:18:45 -08:00
David Brazdil ebbd39f4fd Merge "Add flag to control hidden API warning toasts" am: 4e6c5218db
am: 744c286b07

Change-Id: Ib0734cf6c5a127c2f2c55fd381b10631839a7229
2018-01-29 10:30:33 +00:00
David Brazdil 41847e1917 Add flag to control hidden API warning toasts
Just like visual warnings about improper use of native libraries,
warnings about the usage of hidden APIs will be displayed in non-
final, non-user builds only.

Bug: 64382372
Test: make
Change-Id: Id0a4200f912ac3303026cb26b6d8974c47332828
2018-01-26 12:19:32 +00:00
Jaekyun Seok f430ea5ebf Merge "Support /product partition" am: 8fe7f9bfa2
am: 039e0991d5

Change-Id: I325ae6518c55f1fc310233a5f67ce3df1ae4940f
2018-01-25 04:11:49 +00:00
Jaekyun Seok b7735d8105 Support /product partition
This CL adds the following build flags to support building product partition
from Android build system.
- BOARD_AVB_PRODUCT_ADD_HASHTREE_FOOTER_ARGS
- BOARD_AVB_PRODUCT_KEY_PATH
- BOARD_AVB_PRODUCT_ALGORITHM
- BOARD_AVB_PRODUCT_ROLLBACK_INDEX_LOCATION
- BOARD_PREBUILT_PRODUCTIMAGE
- BOARD_PRODUCTIMAGE_EXTFS_INODE_COUNT
- BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE
- BOARD_PRODUCTIMAGE_PARTITION_SIZE
- BOARD_PRODUCTIMAGE_SQUASHFS_BLOCK_SIZE
- BOARD_PRODUCTIMAGE_SQUASHFS_COMPRESSOR
- BOARD_PRODUCTIMAGE_SQUASHFS_COMPRESSOR_OPT
- BOARD_PRODUCTIMAGE_SQUASHFS_DISABLE_4K_ALIGN
- BOARD_USES_PRODUCTIMAGE
- LOCAL_PRODUCT_MODULE
- PRODUCT_FOOTER_ARGS
- PRODUCT_PRODUCT_BASE_FS_PATH
- PRODUCT_PRODUCT_VERITY_PARTITION
- TARGET_COPY_OUT_PRODUCT
- TARGET_OUT_PRODUCT*

And PRODUCT_PRODUCT_PROPERTIES is added to save product-specific
properties in /product/build.prop.

Bug: 64195575
Test: succeeded building product.img with BOARD_PRODUCTIMAGE_PARTITION_SIZE,
BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE and PRODUCT_PRODUCT_VERITY_PARTITION.

Change-Id: I774e6a38003734421591e51bed103802ff84f432
2018-01-25 09:33:58 +09:00
Jaekyun Seok b82c709942 Merge "Enforce PRODUCT_COMPATIBLE_PROPERTY for products shipping with Android P" am: 8b4b0cc5a1
am: 3b4329ab47

Change-Id: I1f4969866235eb28e555f5092f8c7b3b753e7025
2018-01-19 04:55:26 +00:00
Jaekyun Seok 0538ff796f Enforce PRODUCT_COMPATIBLE_PROPERTY for products shipping with Android P
PRODUCT_COMPATIBLE_PROPERTY will be set as true for products shipping
with Android P, and ro.actionable_compatible_property.enabled will be set
as a system default property accordingly.
But if PRODUCT_ACTIONABLE_COMPATIBLE_PROPERTY_DISABLE is set,
ro.actionable_compatible_property.enabled will be false.

Bug: 38146102
Test: tested on walleye with PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE=true
Merged-In: Ifc1279a360b140c4d94edd32db7de3c6c7317297
Change-Id: Ifc1279a360b140c4d94edd32db7de3c6c7317297
(cherry picked from commit 2528cd26c0)
2018-01-18 21:11:53 +09:00
Steven Moreland 9874ee6c54 Merge changes from topic "kati-obsolete-full-treble" am: 2b1f0d1810
am: a710d44086

Change-Id: I39b94bef18b12f0e55bc1d0eaabde2ba85f00146
2017-12-18 17:57:42 +00:00
Steven Moreland 5dcea5de76 .KATI_obsolete PRODUCT_FULL_TREBLE.
It has been broken up into subflags, and usage has been cleaned up.

Bug: 69865032
Test: can't use PRODUCT_FULL_TREBLE
Change-Id: Ia38366a30132f129d09c6f4a985402c202bace62
2017-12-18 17:45:55 +00:00
Colin Cross c95bf7aa1d Merge "Add soong_docs to droidcore" am: f027511929
am: 5d8b68daca

Change-Id: Idac784ec8ef50063faa3d772b9b52beebd7a3b3a
2017-12-13 00:00:22 +00:00
Colin Cross 2c1da1e95f Add soong_docs to droidcore
Bug: 70516282
Test: treehugger
Change-Id: I818ad6f948502f4beb0205b583687c1d9fa563ac
2017-12-12 11:11:48 -08:00
Xin Li 5f03da0404 Merge "DO NOT MERGE: Merge Oreo MR1 into master" 2017-12-06 23:18:30 +00:00
Jeff Gaston c0715eb231 Merge "Enable SKIP_BOOT_JARS_CHECK by default when instrumenting" am: 5313503663
am: a659799786

Change-Id: I878bdedce803df1b4e74c429901e1e04b7d73002
2017-12-06 21:43:29 +00:00
Jeff Gaston a659799786 Merge "Enable SKIP_BOOT_JARS_CHECK by default when instrumenting"
am: 5313503663

Change-Id: Iefc4b4cecb6f22b39ec66675fffe65ac62a18e79
2017-12-06 21:37:10 +00:00
Jeff Gaston 5313503663 Merge "Enable SKIP_BOOT_JARS_CHECK by default when instrumenting" 2017-12-06 21:28:28 +00:00
Badash d269f266aa initial add sts to build am: bb7a920294 am: b4bd17c9ad
am: 2f8a8b8a18

Change-Id: I34a6d4c7e16c0340d0a74bb1bcc2a29a2e850b1e
2017-12-06 18:34:32 +00:00
Badash 2f8a8b8a18 initial add sts to build am: bb7a920294
am: b4bd17c9ad

Change-Id: I94ff95c77545981dfe7e466e4e1a105f45e38472
2017-12-06 18:19:05 +00:00
Badash b4bd17c9ad initial add sts to build
am: bb7a920294

Change-Id: I63038aeb98fa6008e1217f8caf7ec749a0ea749e
2017-12-06 18:16:11 +00:00
Badash bb7a920294 initial add sts to build
Test: Local build with other CLs in topic

Bug: 67456333
Change-Id: Ieea499fc22b6dff87dfb19fb8b9446fa449152ea
(cherry picked from commit a4560bb0cb)
2017-12-05 22:17:31 +00:00
Xin Li 44dd4881de Merge commit '66b8b530187b129934a685bf0c4349eef00e4b0c' from
oc-mr1-dev-plus-aosp-without-vendor into stage-aosp-master.

Change-Id: I7594bb72dd7e847292eb502edd918e41318aac29
Merged-In: Ide82473d358719f7e01cd2a4a85db954f3722f14
2017-11-14 11:36:22 -08:00
Dan Willemsen 207b009c86 Merge "Enable missing dependency checks" 2017-11-11 00:35:00 +00:00
Dan Willemsen e43d8ee8ff Enable missing dependency checks
With this enabled, we'll check the entire build graph for missing
dependencies -- even if you don't need to build the module. So it'll
present more errors, but surface them earlier.

These can be turned off manually with an environment variable if the
branch is expected to have missing dependencies:

  ALLOW_MISSING_DEPENDENCIES=true
  SOONG_ALLOW_MISSING_DEPENDENCIES=true   (previous method)

That will be set automatically when using 'mm', which doesn't load the
entire build graph. It will also be set when using 'tapas' to build
unbundled apps, since those are usually on reduced branches.

This provides better error messages when a library is missing:

system/core/init/Android.mk: error: init_tests (NATIVE_TESTS android-arm64) missing libinit (SHARED_LIBRARIES android-arm64)
Available variants:
  libinit (STATIC_LIBRARIES android-arm64)
  libinit (STATIC_LIBRARIES android-arm)
You can set ALLOW_MISSING_DEPENDENCIES=true in your environment if this is intentional, but that may defer real problems until later in the build.
system/core/init/Android.mk: error: init_tests (NATIVE_TESTS android-arm) missing libinit (SHARED_LIBRARIES android-arm)
Available variants:
  libinit (STATIC_LIBRARIES android-arm64)
  libinit (STATIC_LIBRARIES android-arm)
You can set ALLOW_MISSING_DEPENDENCIES=true in your environment if this is intentional, but that may defer real problems until later in the build.
build/core/main.mk:852: error: exiting from previous errors.

instead of:

ninja: error: 'out/target/product/generic_arm64/obj/SHARED_LIBRARIES/libinit_intermediates/export_includes', needed by 'out/target/product/generic_arm64/obj/NATIVE_TESTS/init_tests_intermediates/import_includes', missing and no known rule to make it

Test: Manually introduce errors, check for expected output
Test: multiproduct_kati on AOSP and internal master, no new breakages
Change-Id: I5847f813045929813214137403c499b44ef67907
Merged-In: I5847f813045929813214137403c499b44ef67907
2017-11-10 01:13:07 +00:00
Colin Cross 31638ff73b Merge "Move BUILD_*_FROM_FILE to config.mk" am: ab5ce7e1fe
am: 9159f4b08c

Change-Id: Ib946129ef14cf91aa57a1fb880dae3f29adace63
2017-11-04 01:32:19 +00:00
Colin Cross e96bfdb337 Move BUILD_*_FROM_FILE to config.mk
BUILD_NUMBER_FROM_FILE and BUILD_DATETIME_FROM_FILE may need to
be referenced before main.mk has been parsed, move them to config.mk.

Bug: 68865363
Test: m -j TARGET_PRODUCT=full TARGET_BUILD_APPS=Gallery
      aapt dump xmltree out/target/product/generic/obj/APPS/Gallery_intermediates/package.apk AndroidManifest.xml | grep Version
Change-Id: I9361a394469e61fcdf5a2b9509ef2bb2b373d6e7
2017-11-03 16:35:02 -07:00
bohu 49415ab9b1 emualtor: keep libopenjdkjvmti*.so on sdk images
BUG: 38353037

Those libopenjdkjvmti*.so files are needed by profilers.
Those files are shipped on real devices as well.

Change-Id: I28dad25eb61da424dcf87ab1f17277df340f9124
Merged-In: Iac7dd2844b0f3ea5194dec8732fbaacf53c4bf4a
2017-10-26 16:45:05 -07:00
Colin Cross 40be14c239 Merge "Update references to build/core to build/make/core" am: 6db8597174 am: bce301801f
am: 4ffa2e1ebc

Change-Id: I9ff0a8d8e2abd407935e691be324894a5da09f8c
2017-10-20 23:53:47 +00:00
Colin Cross bce301801f Merge "Update references to build/core to build/make/core"
am: 6db8597174

Change-Id: I4be5bc1805d1900991966d24fda15f2705ee248d
2017-10-20 23:49:17 +00:00
Colin Cross 6cdc5d20f3 Update references to build/core to build/make/core
sed -i -e 's"\([^/]\)build/core"\1build/make/core"g' $(git grep -l build/core)

Test: m checkbuild
Change-Id: Idf3a2fed79aee5d2c07bd8e42f0c0660f253ddc2
2017-10-20 12:49:28 -07:00
Colin Cross 69ced5de5e Delete jack support am: a6bc3a8a4c
am: 37bf2b1250

Change-Id: I19133aedbfe91f7cd49588b33f517dc4bb17b91c
2017-10-02 20:00:16 +00:00
Colin Cross e673deb280 Delete jack support
Remove all support for running jack.

Bug: 65302138
Test: m -j checkbuild
Change-Id: I1ef87c88af3f2689f8b0dcf1a01c958b16159631
Merged-In: I1ef87c88af3f2689f8b0dcf1a01c958b16159631
(cherry picked from commit 5db5d31d73)
2017-10-02 11:15:19 -07:00
Colin Cross a6bc3a8a4c Delete jack support
Remove all support for running jack.

Bug: 65302138
Test: m -j checkbuild
Change-Id: I1ef87c88af3f2689f8b0dcf1a01c958b16159631
Merged-In: I1ef87c88af3f2689f8b0dcf1a01c958b16159631
(cherry picked from commit 5db5d31d73)
2017-10-02 18:06:56 +00:00
Bo Hu 35149ca0b7 Merge changes from topic "aosp-emulator-oc"
* changes:
  emulator: fix widevine drm vndbinder denial
  emulator: fix selinux issues
  emulator: squash misc modifications from oc-emu-dev
  emualtor: keep libopenjdkjvmti*.so on sdk images
  emulator: move rild.libpath to vendor
  sdk:enable emulator to launch in build environment
  build-emulator: fully treblize emulator image
  Build vendor image for emulator
2017-08-31 22:56:31 +00:00
Jeff Gaston 3db1d9b84a Merge "Implement LOCAL_TARGET_REQUIRED_MODULES" am: 2c0442238b am: d7fe023444
am: 1923a31e9c

Change-Id: I05fc00b6ae97efcf8f11cabb334166e5355a2d83
2017-08-31 20:33:20 +00:00
Jeff Gaston d7fe023444 Merge "Implement LOCAL_TARGET_REQUIRED_MODULES"
am: 2c0442238b

Change-Id: Ifb9dccdde667dbbbe93bf9626fd9e0cf9f5f3152
2017-08-31 20:22:49 +00:00
bohu b7e2fabe38 emualtor: keep libopenjdkjvmti*.so on sdk images
BUG: 38353037

Those libopenjdkjvmti*.so files are needed by profilers.
Those files are shipped on real devices as well.

Change-Id: Iac7dd2844b0f3ea5194dec8732fbaacf53c4bf4a
Merged-In: Iac7dd2844b0f3ea5194dec8732fbaacf53c4bf4a
2017-08-30 17:13:42 -07:00
Jeff Gaston 9557cae873 Implement LOCAL_TARGET_REQUIRED_MODULES
to allow a host module to specify LOCAL_TARGET_REQUIRED_MODULES
to indicate that the device module should be built.

Bug: b/64580523
Test: add "LOCAL_TARGET_REQUIRED_MODULES := \
      CtsDeviceOsTestApp CtsHostProcfsTestApp" to \
      cts/hostsidetests/os/Android.mk, run \
      `m -j CtsOsHostSideTestCases`, check \
      that CtsDeviceOsTestApp.apk was built

Change-Id: I1457a51f7cd922c059aa62955d8693b1a7539fd9
2017-08-30 13:44:26 -07:00
Dan Willemsen 664484189e Merge "Split CleanSpec processing out of main Kati run" am: acb4ace77d am: f1c8fdede5 am: 57385f5ff1
am: 377e870b9e

Change-Id: I7d20339c9f6b8203ecc42108f7d38a25c517161f
2017-08-23 02:08:38 +00:00
Dan Willemsen 377e870b9e Merge "Split CleanSpec processing out of main Kati run" am: acb4ace77d am: f1c8fdede5
am: 57385f5ff1

Change-Id: I44c20a2c3b51b4d33c3a09a192eef51059c543b4
2017-08-23 02:05:08 +00:00
Dan Willemsen 514d49979c Split CleanSpec processing out of main Kati run
Bug: 35970961
Test: m clean; m nothing; m nothing
Test: Add CleanSpec.mk line, see it executing
Change-Id: Ied59ac9dbcbeec00e1ada8271b1f66cae33edb8d
2017-08-22 13:08:24 -07:00
Jeff Gaston 9829f9a607 Merge "Revert "Revert "Use the Finder's results for faster searching""" am: 30928b0c6f am: b339102f67 am: 401b75c299
am: e05961ed95

Change-Id: Ib5ce6e22df36e1590333eb179ed33b1c44d12c88
2017-08-18 19:47:43 +00:00
Jeff Gaston e05961ed95 Merge "Revert "Revert "Use the Finder's results for faster searching""" am: 30928b0c6f am: b339102f67
am: 401b75c299

Change-Id: I02702cfafe58b6e6c249a37ee9e3ea3178d5bdcc
2017-08-18 19:41:12 +00:00
Jeff Gaston b339102f67 Merge "Revert "Revert "Use the Finder's results for faster searching"""
am: 30928b0c6f

Change-Id: I8571745e8e37b87e5762438aff589f3132a3a428
2017-08-18 19:29:44 +00:00
Jeff Gaston 30928b0c6f Merge "Revert "Revert "Use the Finder's results for faster searching""" 2017-08-18 19:21:38 +00:00
Jeff Gaston d05050ee9c Revert "Revert "Use the Finder's results for faster searching""
This reverts commit 6f2aea5636.

Reason for revert: Fix went in ( I70b08023b94b5789dc8394651bbac4c49c82787f ); trying again to use this

Change-Id: I0f58c21a7312dda01980d338401e756f610fe3b4
2017-08-18 02:46:39 +00:00
Jeff Gaston 46c9cfa1d1 Merge "Revert "Use the Finder's results for faster searching"" am: 6df0626e58 am: 8467fba043 am: 12a4b403c2
am: 97079e0557

Change-Id: I19389b739e792372fa1d189d030c5a1d618b7b19
2017-08-17 20:36:11 +00:00
Jeff Gaston 97079e0557 Merge "Revert "Use the Finder's results for faster searching"" am: 6df0626e58 am: 8467fba043
am: 12a4b403c2

Change-Id: I54466fe90cdab68e4c23cb09e2389ace494384ba
2017-08-17 20:31:35 +00:00
Jeff Gaston 8467fba043 Merge "Revert "Use the Finder's results for faster searching""
am: 6df0626e58

Change-Id: I93d5c8df8500a5ea99751842b3585708e23fc251
2017-08-17 20:23:35 +00:00
Jeff Gaston 6df0626e58 Merge "Revert "Use the Finder's results for faster searching"" 2017-08-17 20:15:43 +00:00
Jeff Gaston 6f2aea5636 Revert "Use the Finder's results for faster searching"
This reverts commit 4e3ea546d7.

Reason for revert: New Build Breakage: aosp-master/build_test @ 4283735

Change-Id: Icf62c628c1d0cb0b1fd4b401ae1a866f7f88c477
2017-08-17 20:13:08 +00:00
Jeff Gaston a92b602b4b Merge "Use the Finder's results for faster searching" am: 2d71b221cb am: 1b1997c028 am: 285812156b
am: b0839fc05b

Change-Id: Ib9341113134249f2978b2d59b75719e6f58bde02
2017-08-17 19:59:06 +00:00
Jeff Gaston b0839fc05b Merge "Use the Finder's results for faster searching" am: 2d71b221cb am: 1b1997c028
am: 285812156b

Change-Id: I72fc55c1f915ae798fce870c1cdb50a22e9416e3
2017-08-17 19:55:35 +00:00
Jeff Gaston 1b1997c028 Merge "Use the Finder's results for faster searching"
am: 2d71b221cb

Change-Id: I4e78ca9eabeb8259be4a5996d53737719485d9df
2017-08-17 19:48:33 +00:00
Jeff Gaston 2d71b221cb Merge "Use the Finder's results for faster searching" 2017-08-17 19:40:56 +00:00
Colin Cross 4a18f97b9d Merge "Sort files in directories passed to jar" am: 966ed15a1d am: 604a2423b6 am: da54a77928
am: 18c92897a7

Change-Id: I59d5bcd8557bac4ff176c3354dab556254ca3b85
2017-08-17 01:20:13 +00:00
Colin Cross 18c92897a7 Merge "Sort files in directories passed to jar" am: 966ed15a1d am: 604a2423b6
am: da54a77928

Change-Id: I5cc539e58d655dbd1730acd368ad98071079a57d
2017-08-17 01:06:44 +00:00
Colin Cross 604a2423b6 Merge "Sort files in directories passed to jar"
am: 966ed15a1d

Change-Id: If01ba7d294e4308a28580b157b9efdb6c860bb35
2017-08-17 01:00:13 +00:00
Colin Cross 128800f2c8 Sort files in directories passed to jar
jar -C <dir> . produces a jar containing files in filesystem order,
which can vary between builds.  Manually find and sort the list of
files, and convert them into a list of -C <dir> <file> pairs.

Fixes: 64634025
Test: m -j checkbuild
Test: m -j out/target/product/sailfish/system/framework/ext.jar, check
      that entries are sorted
Test: m -j out/target/product/generic_arm64/system/framework/ext.jar on mac
Change-Id: I7dced6acbe621a60cd49daf17872941485602732
2017-08-16 13:37:00 -07:00
bohu e5e0742444 emualtor: keep libopenjdkjvmti*.so on sdk images
BUG: 38353037

Those libopenjdkjvmti*.so files are needed by profilers.
Those files are shipped on real devices as well.

Change-Id: Iac7dd2844b0f3ea5194dec8732fbaacf53c4bf4a
2017-08-13 22:31:53 -07:00
Jeff Gaston 4e3ea546d7 Use the Finder's results for faster searching
Bug: 64363847
Test: m -j

Change-Id: Ie0905d8c5c54cd4c0c3b3edda6c3f1c4135ed7ed
2017-08-10 18:43:00 -07:00
Alexey Polyudov 19e0320ccb build: aux: Fix link type checking for AUX builds
AUX build environent is volatile and is only instantiated in
a context of AUX-aware module.
link-type checking is happening outside such context, and
is not able to correctly determine AUX build dependencies.

1. Save enough of context in LINK_TYPE variable;
   Use AUX-<variant-name> instead of AUX
2. Load correct set of AUX meta build vars before
   building link_type rules

Bug: 62060489
Test: make auxiliary

build no longer tries to access "/STATIC_LIBRARIES" path

Change-Id: I9764d4a0740da1c55a6f8429398872fc4362942c
(cherry picked from commit 55ebe631b4)
2017-08-04 12:45:02 -07:00
Alexey Polyudov f53b7b79c4 Merge "build: aux: Fix link type checking for AUX builds" am: 1e8c34b95f am: 7ed81ccadd
am: 1101804ca8

Change-Id: Ifb15bb2bdf5441e4e67f3009b956516b8c4a5b1d
2017-08-01 23:18:59 +00:00
Alexey Polyudov 7ed81ccadd Merge "build: aux: Fix link type checking for AUX builds"
am: 1e8c34b95f

Change-Id: Icc2581867c1adad52b29d3ca7c68f08c89a906c0
2017-08-01 22:57:52 +00:00
Alexey Polyudov 55ebe631b4 build: aux: Fix link type checking for AUX builds
AUX build environent is volatile and is only instantiated in
a context of AUX-aware module.
link-type checking is happening outside such context, and
is not able to correctly determine AUX build dependencies.

1. Save enough of context in LINK_TYPE variable;
   Use AUX-<variant-name> instead of AUX
2. Load correct set of AUX meta build vars before
   building link_type rules

Bug: 62060489
Test: make auxiliary

build no longer tries to access "/STATIC_LIBRARIES" path

Change-Id: I9764d4a0740da1c55a6f8429398872fc4362942c
2017-08-01 13:37:35 -07:00
Mathieu Chartier 7f7faa1bea Add product system server compiler filter property
The product only needs to specify
PRODUCT_SYSTEM_SERVER_COMPILER_FILTER. This determines what compiler
filter system server jars are compiled with.

(cherry picked from commit 6a90210c62)

Test: update marlin device
Test: make and look at services.odex

Bug: 62356545

Merged-In: Id51726ae03576d7b4eb784b861158bb451c39deb
Change-Id: Id51726ae03576d7b4eb784b861158bb451c39deb
2017-07-28 19:41:34 -07:00
Mathieu Chartier 954551bb24 Merge changes Ic89cc4c0,I189cd144,Id51726ae,I8b777c88,Ia4573464, ...
am: dce396a70f

Change-Id: Id0d0ec4bc219b8fc0ce8b7bd13868d236b865153
2017-07-29 00:07:32 +00:00
Mathieu Chartier 6228ec2d07 Add product system server compiler filter property
The product only needs to specify
PRODUCT_SYSTEM_SERVER_COMPILER_FILTER. This determines what compiler
filter system server jars are compiled with.

(cherry picked from commit 6a90210c62)

Test: update marlin device
Test: make and look at services.odex

Bug: 62356545

Merged-In: Id51726ae03576d7b4eb784b861158bb451c39deb
Change-Id: Id51726ae03576d7b4eb784b861158bb451c39deb
2017-07-28 11:17:17 -07:00
Jeff Gaston c1d097ccab Merge "Update to latest jacoco usage" am: 483fae7430 am: 6264b662f3 am: 7ce0d9c1e7
am: a72da88c31

Change-Id: Ifba3d8ecec0aad8065f51525e68c3e2a7b6631fd
2017-07-17 20:55:14 +00:00
Jeff Gaston a72da88c31 Merge "Update to latest jacoco usage" am: 483fae7430 am: 6264b662f3
am: 7ce0d9c1e7

Change-Id: Id57cc47edc61a7e30dc4fcf4f113ee9ce85a4b7f
2017-07-17 20:52:40 +00:00
Jeff Gaston 6264b662f3 Merge "Update to latest jacoco usage"
am: 483fae7430

Change-Id: Ibc94d5ba6db7690441825dd655b6cb26d989b78d
2017-07-17 20:44:10 +00:00
Dan Willemsen 545c356675 Merge "Enable missing dependency checks" 2017-07-15 04:18:34 +00:00
Jeff Gaston 3cf0c95502 Enable SKIP_BOOT_JARS_CHECK by default when instrumenting
Bug: 36792868
Test: make -j EMMA_INSTRUMENT=true
Change-Id: I8f52418c97adc67c4c0a02ef8e2b84be620a6aee
2017-07-14 13:04:05 -07:00
Jeff Gaston aaae43cd24 Update to latest jacoco usage
Bug: 36792868
Test: EMMA_INSTRUMENT_STATIC=true m -j

Change-Id: I419b543283b52be9a72f5c6b10e4cbea68782174
2017-07-14 13:04:05 -07:00
Narayan Kamath b945982cb3 Merge "main.mk: Set dalvik.vm.stack-trace-dir" 2017-07-04 11:29:38 +00:00
Dan Willemsen de05f89bd3 Enable missing dependency checks
With this enabled, we'll check the entire build graph for missing
dependencies -- even if you don't need to build the module. So it'll
present more errors, but surface them earlier.

These can be turned off manually with an environment variable if the
branch is expected to have missing dependencies:

  ALLOW_MISSING_DEPENDENCIES=true
  SOONG_ALLOW_MISSING_DEPENDENCIES=true   (previous method)

That will be set automatically when using 'mm', which doesn't load the
entire build graph. It will also be set when using 'tapas' to build
unbundled apps, since those are usually on reduced branches.

This provides better error messages when a library is missing:

system/core/init/Android.mk: error: init_tests (NATIVE_TESTS android-arm64) missing libinit (SHARED_LIBRARIES android-arm64)
Available variants:
  libinit (STATIC_LIBRARIES android-arm64)
  libinit (STATIC_LIBRARIES android-arm)
You can set ALLOW_MISSING_DEPENDENCIES=true in your environment if this is intentional, but that may defer real problems until later in the build.
system/core/init/Android.mk: error: init_tests (NATIVE_TESTS android-arm) missing libinit (SHARED_LIBRARIES android-arm)
Available variants:
  libinit (STATIC_LIBRARIES android-arm64)
  libinit (STATIC_LIBRARIES android-arm)
You can set ALLOW_MISSING_DEPENDENCIES=true in your environment if this is intentional, but that may defer real problems until later in the build.
build/core/main.mk:852: error: exiting from previous errors.

instead of:

ninja: error: 'out/target/product/generic_arm64/obj/SHARED_LIBRARIES/libinit_intermediates/export_includes', needed by 'out/target/product/generic_arm64/obj/NATIVE_TESTS/init_tests_intermediates/import_includes', missing and no known rule to make it

Bug: 37572490
Test: Manually introduce errors, check for expected output
Test: multiproduct_kati, no new breakages
Change-Id: I5847f813045929813214137403c499b44ef67907
2017-06-23 23:39:58 +00:00
Mathieu Chartier 6a90210c62 Add product system server compiler filter property
The product only needs to specify
PRODUCT_SYSTEM_SERVER_COMPILER_FILTER. This determines what compiler
filter system server jars are compiled with.

Test: update marlin device
Test: make and look at services.odex

Bug: 62356545

Change-Id: Id51726ae03576d7b4eb784b861158bb451c39deb
2017-06-23 13:20:47 -07:00
Dimitry Ivanov a7955c286e Enable linker warning toast for userdebug/eng builds
am: 7caea14111

Change-Id: I292da7d7d6b9f85a4108e8150a5e032fd5833e0a
2017-06-23 00:35:35 +00:00
Dimitry Ivanov 7caea14111 Enable linker warning toast for userdebug/eng builds
We did not want this to appear for dogfood devices before
because it was noisy, most of popular apps fixed this
problem and it should be much less noisy.

Bug: http://b/62455348
Test: make
Change-Id: Icd28e9ef87f2d1edf456d178741c67ef42670ae1
2017-06-22 14:53:10 -07:00
Jiyong Park 3487a6127d Merge "Add LOCAL_OVERRIDES_MODULES" am: f1610d82f9
am: 9089f867d4

Change-Id: I3966676c72a0bb734da8c71765fc900fcfe85eb9
2017-06-22 04:56:12 +00:00
Treehugger Robot f1610d82f9 Merge "Add LOCAL_OVERRIDES_MODULES" 2017-06-22 04:49:41 +00:00
Narayan Kamath fbba7fe063 main.mk: Set dalvik.vm.stack-trace-dir
... instead of dalvik.vm.stack-trace-file. Turns on the new
stack dumping scheme. Each dump is now output to a separate file.

Bug: 32064548
Test: Manual, unit tests included in other components.
Change-Id: I762b09148786e8533fd285d5bae0121ed46dfbe0
2017-06-06 14:33:02 +01:00
Jeff Gaston a236fa5d12 Merge "Add blueprint_tools as default target" am: 81787c1bbc am: 2cbed51e36
am: 61510fa696

Change-Id: I0c368aa1a12a8c670e2a459c7c7883f733608772
2017-05-30 19:45:52 +00:00
Jeff Gaston 143f2b1fe5 Add blueprint_tools as default target
Bug: 38351765
Test: rm out -rf && m -j && stat out/soong/host/*/bin/bpfmt

Change-Id: I60ededa1b13fb575616162d6dc1b0b8159f97f20
2017-05-26 17:12:40 -07:00
Dan Willemsen 118ceaea9a Merge changes I73787aff,I0d149812 am: 64caaf4679 am: 060e215f84
am: 6106d440c1

Change-Id: I509ee75ca9ee6c8dcacb839103d499bfe790dd23
2017-05-26 22:16:34 +00:00
Dan Willemsen 562baccae8 Remove the rest of showcommands, dist goal
showcommands is all handled in soong_ui, make/kati/ninja never see the
argument.

Remove the dist goal, since we'll never pass it to ninja, only to Kati
as a modifier.

Remove DUMP_%, since that's not used anywhere (it appears to be in our
code search via the NDK build system)

Test: m -j showcommands dist
Change-Id: I0d1498128caece685e98c2c2b5b0c3f545da0e11
2017-05-26 12:57:04 -07:00
Michael Schwartz d1dd861eda Merge "Add ro.treble.enabled" into oc-dev
am: 84cbb4e903

Change-Id: Ic5120885ae16d5ed4c53dd3935e370fa5b0d7d05
2017-05-24 21:45:56 +00:00
Dan Willemsen 50ecd4abf2 Merge "Move dataclean and installclean to soong_ui" am: 5d80b734f2 am: 303a902ac6
am: 5851c47ec0

Change-Id: I4b40be30baeb9a8f557c1900fc9e096f2fc0c1b3
2017-05-23 22:48:42 +00:00
Treehugger Robot 5d80b734f2 Merge "Move dataclean and installclean to soong_ui" 2017-05-23 22:32:34 +00:00
Michael Schwartz c4aa482501 Add ro.treble.enabled
Allow users to determine PRODUCT_FULL_TREBLE at runtime.

Bug: 36814984
Test: m -j sailfish and getprop ro.treble.enabled
Change-Id: I58515b1b3742062ae49358ed32bb02a5977e865d
2017-05-22 09:16:41 -07:00
Steven Moreland 841508562d Merge "Add soong variable for PRODUCT_FULL_TREBLE." am: ec0dec8599 am: 7c318e8914
am: 094743b773

Change-Id: I3e44906669e251241b94029087040bdeab49c662
2017-05-20 00:19:34 +00:00
Steven Moreland f32645f1f4 Add soong variable for PRODUCT_FULL_TREBLE.
Required to preserve sane defaults for old codebases.

Test: inspect soong.variables
Test: ensure PRODUCT_SHIPPING_API_LEVEL is set in config.mk
Bug: 38415912
Merged-In: I0244fb02754663be3106391c9360fd1b2cc00d4a
Change-Id: I0244fb02754663be3106391c9360fd1b2cc00d4a
2017-05-19 15:54:18 -07:00
Steven Moreland 2b32469c47 Add soong variable for PRODUCT_FULL_TREBLE.
Required to preserve sane defaults for old codebases.

Test: inspect soong.variables
Test: ensure PRODUCT_SHIPPING_API_LEVEL is set in config.mk
Bug: 38415912
Change-Id: I0244fb02754663be3106391c9360fd1b2cc00d4a
2017-05-18 17:16:09 -07:00
Dan Willemsen 0f2ab46038 Move dataclean and installclean to soong_ui
This can be a little faster, but also means that we don't need to call
kati/ninja twice when we need to handle the automatic installclean.

Test: m -j installclean
Test: m -j dataclean
Change-Id: I8f5e5544bcf30c58bf9abee30a37256cb18436ac
2017-05-18 13:42:40 -07:00
Dan Willemsen e74e77fe01 Merge changes from topics 'soong_ui_installclean', 'soong_ui_version', 'soong_ui_clean' am: 212c418ee7 am: 39187e8882
am: c6f9429171

Change-Id: Iedcb0edf8d51ac18ddbfaa25e36e2a6a25299912
2017-05-16 18:16:39 +00:00
Dan Willemsen 3eb44160e0 Move version checking to soong_ui
This removes versions_checked.mk that caused kati to regenerate the
ninja file 3 times for a clean out directory. Kati needs to regenerate
every time that we write a file that we also read. soong_ui doesn't have
this problem.

Bug: 35970961
Test: m clean; m -j blueprint_tools; m -j blueprint_tools; m -j blueprint_tools
Test: $OUT_DIR/versions_checked.mk no longer exists
Change-Id: I14b67dc275ea3daa77a7315c2985dc73d77fd07c
2017-05-15 14:02:38 -07:00
Dan Willemsen bd8ac3284d Move clean/clobber to soong_ui
So that we don't have to load up all the makefile state just to remove
the output directory.

Starting from a completely empty out directory:
 kati:    16s
 soong_ui: 2.0s

From a minimal out directory (m -j blueprint_tools):
 kati:     3.8s
 soong_ui: 0.4s

Test: m -j clean
Test: m -j clobber
Change-Id: Iec1ce032c7cc7ed102430080e857fc421b66309c
2017-05-15 14:02:38 -07:00
Colin Cross b16f288bee Make javac checkbuilds match jack
Building all java to dex is very slow.  Make javac checkbuilds act
like jack checkbuilds and only build to class files for unused
modules, and add a java-dex target that can be used to build
everything to dex.

Bug: 33105206
Test: m -j checkbuild
Change-Id: Idcf9c9e0223b9dd88aaa53beb0cb50a230034b0f
Merged-In: Idcf9c9e0223b9dd88aaa53beb0cb50a230034b0f
(cherry picked from commit 9eff830fa2)
2017-05-03 12:42:20 -07:00
Colin Cross 5730186686 Merge "Make javac checkbuilds match jack" am: cb8077df16 am: 9f1e58aab9
am: 2e2758b69d

Change-Id: I7d62da41492c2a4aae39d5f29b9b6086be9f58e6
2017-05-02 23:10:30 +00:00
Treehugger Robot cb8077df16 Merge "Make javac checkbuilds match jack" 2017-05-02 22:56:38 +00:00
Steven Moreland 9a1ba2e8b1 Merge "Allow PRODUCT_FULL_TREBLE_OVERRIDE to be false." am: 0f56f197fa am: 05e43e6005
am: 28a13d0d9e

Change-Id: I72ed2d7ebbd7077d2377b4f0aa44ee8b0203cf56
2017-05-02 16:57:06 +00:00
Treehugger Robot 0f56f197fa Merge "Allow PRODUCT_FULL_TREBLE_OVERRIDE to be false." 2017-05-02 16:45:36 +00:00
Steven Moreland 3a0afa7f57 Allow PRODUCT_FULL_TREBLE_OVERRIDE to be false.
Devices which are not Android phones may want to set
PRODUCT_FULL_TREBLE_OVERRIDE (and therefore
PRODUCT_FULL_TREBLE) to false.

Test: confirm expected values when putting in expected values of:
  PRODUCT_FULL_TREBLE_OVERRIDE
  PRODUCT_SHIPPING_API_LEVEL
Fixes: 37869308

Change-Id: If5a383210ea282a3a274e5eba0d32ef6cfebafd0
2017-05-01 18:11:35 -07:00
Jaekyun Seok 9e7eab53c1 Split vendor license notices into vendor partition
Xml files will be generated instead of html files, and then Settings
will generate html file on runtime from xml files of partitions.

Test: build succeeded and tested on sailfish
Bug: 37099941
Merged-In: Id7899381a537b1947cbb6164ed2b4a98492334af
Change-Id: Id7899381a537b1947cbb6164ed2b4a98492334af
(cherry picked from commit 3b7560bf88)
2017-05-01 22:07:50 +00:00
Jaekyun Seok 035a49f301 Split vendor license notices into vendor partition
am: 3b7560bf88

Change-Id: Ib2926d1b97a5bdc9ef59738bd9e993487da0730d
2017-05-01 21:26:51 +00:00
Colin Cross 9eff830fa2 Make javac checkbuilds match jack
Building all java to dex is very slow.  Make javac checkbuilds act
like jack checkbuilds and only build to class files for unused
modules, and add a java-dex target that can be used to build
everything to dex.

Test: m -j checkbuild
Change-Id: Idcf9c9e0223b9dd88aaa53beb0cb50a230034b0f
2017-04-28 13:39:16 -07:00
Jaekyun Seok 3b7560bf88 Split vendor license notices into vendor partition
Xml files will be generated instead of html files, and then Settings
will generate html file on runtime from xml files of partitions.

Test: build succeeded and tested on sailfish
Bug: 37099941
Change-Id: Id7899381a537b1947cbb6164ed2b4a98492334af
2017-04-28 16:29:17 +09:00
Narayan Kamath db37b37afa Merge "Update stale comment for dalvik.vm.stack-trace-file." am: 5b50433f19 am: ba8e91ded3
am: 1898053ffb

Change-Id: Ibd01e7463a69995a31c721c1922a0fb7ce459a14
2017-04-26 08:36:01 +00:00
Narayan Kamath 5b50433f19 Merge "Update stale comment for dalvik.vm.stack-trace-file." 2017-04-26 08:23:49 +00:00
Narayan Kamath d5068605f9 Update stale comment for dalvik.vm.stack-trace-file.
Test: make
Change-Id: Ia14494b146f58937aed203271be340747817519b
2017-04-25 15:41:04 +01:00
Dan Willemsen b50bbcc72a Overridden packages shouldn't install vdex files either
Bug: 37348494
Test: internal marlin, check for WebViewGoogle.vdex
Change-Id: I16469f7d84b972cee5b13aed58f4ec3f995cb83e
Merged-In: I16469f7d84b972cee5b13aed58f4ec3f995cb83e
(cherry picked from commit e224725c95)
2017-04-20 13:34:44 -07:00
Dan Willemsen 4e9e5d526c Merge "Rewrite link type checking" am: e4d92ef568 am: d76aaed983
am: e834d5f059

Change-Id: I02342b80077a7e1e36e61d1f9384d3b104a982c1
2017-04-20 15:15:19 +00:00
Dan Willemsen b47d4e9cf1 Rewrite link type checking
All the new features are turned off for now, since multiple branches and
products need to be verified before they can be turned on. So everything
should behave the same as today, except for no partition-based
warnings.

Instead of the current link type checks that happen during the build,
run as many as possible immediately after loading all the Android.mk
files. If we're allowing missing dependencies ('mm',
ALLOW_MISSING_DEPENDENCIES, tapas, etc), we'll defer the link type
checks to during the build. If we're not allowing missing dependencies,
we'll produce a better error message to the user about the missing
dependencies.

See core/main.mk for a description of the storage format.

This also remove the partition-based type checking. It hasn't worked all
that well, particularly with ASAN builds. The new VNDK checks will
handle the most pressing cases.

Test: Verify all link_type files and dependencies are the same:
  grep link_type: out/build-aosp_arm64.ninja | sed -E "s/ rule[0-9]+//" | sort
Change-Id: Id643658b9d9e84f99f5db0d526aad88c1f5d3417
2017-04-19 22:41:32 -07:00
Dan Willemsen 21ec75dbbe Merge "Overridden packages shouldn't install vdex files either" am: 01f4e20172 am: 5a8b1617ae
am: e78154614c

Change-Id: Iba7acc968fb9da65a418d3d94a8a50b9b3232bde
2017-04-15 00:28:52 +00:00
Dan Willemsen e224725c95 Overridden packages shouldn't install vdex files either
Bug: 37348494
Test: internal marlin, check for WebViewGoogle.vdex
Change-Id: I16469f7d84b972cee5b13aed58f4ec3f995cb83e
2017-04-14 13:33:58 -07:00
Jaekyun Seok 1b2242895e Use product-based inclusive rule for enforcing RRO
Board-based rule can cause unexpected regression because build-time overlays
are different among products. So each product should be tested with its own
product-based rule considering its build-time overlays before applying
enforcing RRO.

Additionally RRO conversion is mandatory only for overlays of which target is
included in AOSP system image and is critical for CTS/VTS tests with AOSP
system image. So inclusive rule is more suitable instead of exclusive rule
to avoid unexpected regression due to unnecessary RRO conversion.

Note that we still support conversion for all the overlays by specifying
PRODUCT_ENFORCE_RRO_TARGETS as "*".

Test: building succeeded and tested with auto-generated RROs.
Bug: 36231603
Change-Id: I8e1d701d4f78b818c89ef3e7638110105370c5bc
(cherry picked from commit 2a209997e8)
2017-04-04 11:31:24 +09:00
Jaekyun Seok 2a209997e8 Use product-based inclusive rule for enforcing RRO
Board-based rule can cause unexpected regression because build-time overlays
are different among products. So each product should be tested with its own
product-based rule considering its build-time overlays before applying
enforcing RRO.

Additionally RRO conversion is mandatory only for overlays of which target is
included in AOSP system image and is critical for CTS/VTS tests with AOSP
system image. So inclusive rule is more suitable instead of exclusive rule
to avoid unexpected regression due to unnecessary RRO conversion.

Note that we still support conversion for all the overlays by specifying
PRODUCT_ENFORCE_RRO_TARGETS as "*".

Test: building succeeded and tested with auto-generated RROs.
Bug: 36231603
Change-Id: I8e1d701d4f78b818c89ef3e7638110105370c5bc
2017-03-31 07:11:09 +09:00
Jaekyun Seok 39f97ae22a Enforce RROs for all the build-time ROs
This CL is to generate every static RRO package for its target package
automatically at build-time.

BOARD_ENFORCE_RRO build variable is added to specify whether enforcing
RRO is required or not.

BOARD_ENFORCE_RRO_EXEMPT_SOURCES build variable is added to specify
the module list of which item should be exempt from enforcing RRO.

Test: tested on bullhead and sailfish
Bug: 34097942
Change-Id: I455b2ce34e66c57a540c299b5e378b7c4e78d5b8
(cherry picked from commit 3070610b72)
2017-03-30 10:43:38 +09:00
Jiyong Park cbf76f6353 Add LOCAL_OVERRIDES_MODULES
LOCAL_OVERRIDES_MODULES is similar to LOCAL_OVERRIDES_PACKAGES, but is
for executables.

Bug: 36491275
Test: LOCAL_OVERRIDES_MODULES := foo should prevent a target executable
foo from being installed. If foo is not a target executable, error
should be reported.

Change-Id: I558f3d94105f9e319f8413c1290799f1c70ee131
2017-03-24 19:31:49 +09:00
TreeHugger Robot 19453bfe7d Merge "Use BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED for system props split (2)" 2017-03-21 05:32:32 +00:00
Jaekyun Seok 04a168f86b Use BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED for system props split (2)
http://ag/1955051 is already submitted for the same purpose, but this
was missed from it.

Test: building succeeded and tested with sailfish
Bug: 34116668
Change-Id: I662b68d5b07e65bfdcf41fcd0782640582246318
2017-03-21 11:46:49 +09:00
Dan Willemsen 6be7d01e05 Merge "Remove USE_SOONG_UI=false" am: ebf57f6f0a am: 35bdbdfdc3
am: 0a5905c139

Change-Id: I74719ac53bd7c477c71e3680657139d7dfa9db5c
2017-03-20 23:21:22 +00:00
Dan Willemsen 25e9607a46 Remove USE_SOONG_UI=false
Test: m -j
Change-Id: I4eccbf9884385f11db84f6e0f28d55d21d06cac3
2017-03-20 14:22:20 -07:00
Jaekyun Seok 3070610b72 Enforce RROs for all the build-time ROs
This CL is to generate every static RRO package for its target package
automatically at build-time.

BOARD_ENFORCE_RRO build variable is added to specify whether enforcing
RRO is required or not.

BOARD_ENFORCE_RRO_EXEMPT_SOURCES build variable is added to specify
the module list of which item should be exempt from enforcing RRO.

Test: tested on bullhead and sailfish
Bug: 34097942
Change-Id: I455b2ce34e66c57a540c299b5e378b7c4e78d5b8
2017-03-14 23:55:50 +09:00
Steven Moreland 5a9cfecc85 Merge "Add PRODUCT_FULL_TREBLE." am: 5236e11c54 am: 848e9430bc
am: e1de7cd45a

Change-Id: I335f68e8d49538a7539cfb2e751d2c34cb52e260
2017-03-02 04:49:28 +00:00
Steven Moreland c10f1413d5 Add PRODUCT_FULL_TREBLE.
PRODUCT_FULL_TREBLE: whether the device has Treble fully enabled (no
passthrough hals, vendor.img, split sepolicy, etc..)

PRODUCT_FULL_TREBLE_OVERRIDE: used if someone wants to consider a device
as full Treble even if it didn't launch with Android O.

Bug: 35809750
Test: PRODUCT_FULL_TREBLE set appropriately with
PRODUCT_FULL_TREBLE_OVERRIDE and PRODUCT_SHIPPING_API_LEVEL = 24/25

Change-Id: I069448beaf26c70acb6c45d4228d8fdfe9476410
2017-03-01 19:08:24 -08:00
Dan Willemsen 3571f256a2 Merge "Turn USE_SOONG_UI on by default" am: 39a6418d76 am: d9b773845d
am: 1614715054

Change-Id: I634496e0b0887e18fa39be5b8fb380d3780b4f17
2017-02-28 20:46:29 +00:00
Dan Willemsen 73da612ed0 Turn USE_SOONG_UI on by default
Set USE_SOONG_UI=false to disable the new soong_ui wrapper.

Test: m -j blueprint_tools
Test: USE_SOONG_UI=false m -j blueprint_tools
Change-Id: I0b217939a29fd51e69ef594f824b14e25a4c8c4d
2017-02-28 18:57:12 +00:00
Dan Willemsen 433e7e4d45 Merge "Add progress indicator to Android.mk includes" am: 353a659a31 am: 100edc4a4c
am: d2445ea0b2

Change-Id: Ib60190f62fc78e261b6d02287bf8f68891bd7d12
2017-02-24 18:01:52 +00:00
Dan Willemsen 353a659a31 Merge "Add progress indicator to Android.mk includes" 2017-02-24 17:50:13 +00:00
Simran Basi a7886dc417 Merge "Add device-tests and general-tests make targets." am: c436f9eeec am: 0d0f7e1c7b
am: c1eb9a69c8

Change-Id: I6288642e2dcfa7210605030e968dae4122c8deb6
2017-02-22 19:49:48 +00:00
Dan Willemsen 33631b3580 Add progress indicator to Android.mk includes
Test: m -j
Change-Id: I1e6fd020a06b49c243be14953d9f417e64ac7b8b
2017-02-22 11:20:51 -08:00
Simran Basi 9c295b4415 Add device-tests and general-tests make targets.
Adds the device-tests and general-tests makefiles and
added include lines to main.mk so that individual test
modules can be built properly.

These targets do not build any special tradefed wrapper
that normal *TS's usually employ. They are not necessary
here.

Bug: 35350788
Test: Updated several CTS test modules to belong to these
      suites instead and ran:
      `rm -rf out; make clean; make device-tests general-tests -j`
      then verified the output.

Change-Id: I40e3958375f7b39cb56508f2812ce9760d403f6f
2017-02-21 17:04:47 -08:00
Colin Cross 44d4e9c844 Merge "Don't build tests in normal builds" am: 4bf332a56b am: d364511ce7 am: 3ad23fd09e
am: 762c8f0ba3

Change-Id: Ifa05ce9bf30e504b7dc606c34f2afb3037b7806b
2017-02-13 22:51:35 +00:00
Colin Cross 4bf332a56b Merge "Don't build tests in normal builds" 2017-02-13 22:38:28 +00:00
Dan Willemsen d326af8253 Merge "Fix "Nothing to be done" messages when launching soong_ui" am: 576c76160b am: b7075868bd am: 990bcc985a
am: 05b6cf7516

Change-Id: I4e6049827c80cacf90b71bdfc36a8e4c389c8c87
2017-02-09 05:53:54 +00:00
Dan Willemsen c5bb5a8238 Fix "Nothing to be done" messages when launching soong_ui
When specifying multiple arguments to make, we were getting messages
about nothing to be done:

m -j USE_SOONG_UI=true checkbuild tests cts blueprint_tools
...
make: Nothing to be done for `tests'.
make: Nothing to be done for `cts'.
make: Nothing to be done for `blueprint_tools'.

Test: m -j USE_SOONG_UI=true blueprint_tools libc adb
Change-Id: Id448bf0e09736fcd92ba058aec7ce556f6f778a3
2017-02-08 19:50:16 -08:00
Dan Willemsen d0a11311e9 Merge "Add USE_SOONG_UI to trigger soong_ui in Make mode" am: 86a1c9f916 am: 807f6927c7 am: b2d74278a7
am: 9c2e892f4c

Change-Id: Ibf9b9a2b8ba9c24a4110c94d9c2792023d065684
2017-02-07 02:36:37 +00:00
Dan Willemsen 3eb10cf6fa Add USE_SOONG_UI to trigger soong_ui in Make mode
Test: USE_SOONG_UI=true m -j
Change-Id: Ic7a0b4e0881757b0324722d7d316fb8d13dabd9b
2017-02-06 15:04:40 -08:00
Jaekyun Seok 8bee120006 Split vendor's system prop overrides into vendor partition
If ENABLE_TREBLE and early mount of vendor partition are enabled,
overrides in PRODUCT_DEFAULT_PROPERTY_OVERRIDES will be stored in
vendor/default.prop.

If ENABLE_TREBLE and vendor partition are enabled, overrides in
PRODUCT_PROPERTY_OVERRIDES will be stored in vendor/build.prop.

default.prop of recovery image will include all the contents of
vendor/default.prop and vendor/build.prop additionally.

ENABLE_EARLY_MOUNT is added to specify whether early mount is enabled
or not, but it should be removed later when early mount becomes
default for all ENABLE_TREBLE products.

Test: building succeeded, and verified on bullhead.
Bug: 34116668
Change-Id: Ic2eb8882ae71921a76c02b3d62d3289c45949295
2017-02-03 12:42:33 +09:00
Jaekyun Seok 7ace0d60ef Prevent abuse of property overrides
To prevent abuse of PRODUCT_*PROPERTY_OVERRIDES and
ADDITIONAL*PROPERTIES, the following rules should be applied.

- Mark PRODUCT_*PROPERTY_OVERRIDES readonly after reading product
 specs.
- Disallow any changes on ADDITIONAL*PROPERTIES from product specs
 and BoardConfig.mk.
- Mark ADDITIONAL*PROPERTIES readonly before reading Android.mk
 files.

Test: building succeeded on marlin-userdebug.
Bug: 34116668
Change-Id: I93d8de086ec85ba787165a156bdcc7df04310be1
(cherry picked from commit 294286d95c)
2017-01-25 13:00:25 +09:00
Jaekyun Seok 294286d95c Prevent abuse of property overrides
To prevent abuse of PRODUCT_*PROPERTY_OVERRIDES and
ADDITIONAL*PROPERTIES, the following rules should be applied.

- Mark PRODUCT_*PROPERTY_OVERRIDES readonly after reading product
 specs.
- Disallow any changes on ADDITIONAL*PROPERTIES from product specs
 and BoardConfig.mk.
- Mark ADDITIONAL*PROPERTIES readonly before reading Android.mk
 files.

Test: building succeeded on marlin-userdebug.
Bug: 34116668
Change-Id: I93d8de086ec85ba787165a156bdcc7df04310be1
2017-01-24 17:55:31 +09:00
Dan Willemsen cf324af6b8 Remove generated java source post clean logic
Just move the proto and renderscript sources into their own directories
-- the entire directory is wiped if the file list changes since the
command line will change. So we can just enable/disable pulling sources
from those directories based on whether there were files in the list or
not.

Bug: 30947985
Test: m -j java
Test: Remove a proto file from a java lib, ensure the generated source
      is not included.
Change-Id: If7529979de6fa62a651933a3a974f47b033851d6
2016-12-22 10:37:31 -08:00
Colin Cross 7a14ec7968 Don't build tests in normal builds
Treehugger will catch test breakages before they are submitted, it
is no longer necessary for all developers to wait for all tests to
build.

Test: m -j
Bug: 32221202
Change-Id: Ia1ed939fa28a80df10248b9f5c2f298b1e5d2053
2016-12-20 16:18:04 -08:00
Dan Willemsen 56c6a9d1ff Remove variables exported by Soong
LLVM_RELEASE_VERSION is unused from envsetup.sh and during product
config loading.  LLVM_PREBUILTS_VERSION is still used in envsetup.sh, so
needs to stay.

Delay reading core/clang/config.mk until after Soong's variables are
read so that we don't need a copy of LLVM_PREBUILTS_BASE.

Test: Compare build-aosp_flounder.ninja
Change-Id: I85b5836a2230838c8f3766fb19c6108fc5c9ca50
2016-12-14 16:27:08 -08:00
Dan Willemsen 01a19a116f Move some configuration from main.mk to config.mk
When dumping make configuration (dump-many-var, dump-var-*), we only
load config.mk, not main.mk. One of the first things that main.mk does
is to include config.mk, so these moves are safe.

Turning off the implicit rules and other make configuration / sanity
checks should happen in all cases, so move them to config.mk

Move dont_bother_rules to config.mk so that it can be used by the ninja
configuration (which is moving in a later change). Move dont_bother into
the kati section, since it's not used elsewhere.

Test: m clean
Test: get_build_var dont_bother_goals
Change-Id: Ib3ec8aa8eebcaf743d2cdcc31f89827c4e8470a1
2016-11-10 03:32:37 +00:00
Colin Cross e402dd8bb8 Merge "Revert "Revert "Check prebuilt sources during checkbuild"""
am: 515f43bb6e

Change-Id: Ia749b34011e02df8ceb9d0fe0e4aba34da743cb1
2016-10-30 22:14:23 +00:00
Colin Cross 01e1b8ff4b Revert "Revert "Check prebuilt sources during checkbuild""
This reverts commit 409ea88c47.

Bug: 32332829
Change-Id: Ifc8a511762cb44b455cc821f5ac712c294c321c6
2016-10-27 22:10:55 +00:00
Colin Cross 96fdb76947 Merge "Revert "Check prebuilt sources during checkbuild""
am: 526ddfb172

Change-Id: I2bd28f5b35b27e2339eb2952b9e3acdd6a470773
2016-10-26 23:32:47 +00:00
Colin Cross 409ea88c47 Revert "Check prebuilt sources during checkbuild"
This reverts commit ec8fae6f2e.

Revert this until a few oddball branches can be fixed.

Bug: 32332829
Change-Id: Ic95fa50e36cb32a4d29bf765b1f3d8384140fb0b
2016-10-26 23:25:57 +00:00
Colin Cross 84ba353fd1 Merge "Check prebuilt sources during checkbuild"
am: 0f26c64ef5

Change-Id: I961221a3e7cdcd00ea4dcbb1c88a36f138962113
2016-10-26 19:47:57 +00:00
Colin Cross ec8fae6f2e Check prebuilt sources during checkbuild
Add prebuilt files as dependencies during checkbuild.  This will flag
prebuilt modules that have files that don't exist as errors, and also
fix building soong modules with make native, etc.

Bug: 32332829
Test: m -j checkbuild
Test: m -j host
Change-Id: Ia4e22cb640978c181de039202baf02f4fb5a94d5
2016-10-22 00:00:40 +00:00
Dan Willemsen 829ab04c9b Merge "Replace product variable stashing with .KATI_READONLY" am: 157ad04cfc am: 9d2208441c
am: 34d8c31258

Change-Id: Idc49bb5ad4890c368762cd73ac34e995b2633d1d
2016-10-06 23:53:30 +00:00
Dan Willemsen c1f17ffc7d Replace product variable stashing with .KATI_READONLY
Instead of using rot13 / rot26, use the Kati extension to mark these
variables as readonly.

Move $(strip) for a few variables to before they're marked readonly. Use
a different variable for modifications to BOARD_KERNEL_CMDLINE in
build/core/Makefile.

Test: build/tools/kati_all_products.mk on AOSP and internal master
Test: build-aosp_bullhead.ninja the same before / after
Change-Id: If98b24af763831a9c5c2de38037a69ab1bf9e023
2016-10-06 10:50:26 -07:00
Colin Cross 46e7aa81e0 Merge "Enable toc optimization for host builds" am: 5d8c73e373 am: 4276c12d20
am: e4e04c2f92

Change-Id: I4db91a8f0893faa317ec7afb2e3f5d84dfcc91cf
2016-10-04 21:08:47 +00:00
Colin Cross d2ff157159 Enable toc optimization for host builds
The toc optimization had been disabled for host builds to ensure that
the timestamp of the final binary changed whenever its implementation
changed, in order to support rerunning host tools that were modified
during incremental builds.  However, only the final install rule must be
re-run to update the timestamp, and not the link rule.

Update the shared library install dependencies to use normal
dependencies instead of order-only dependencies for host modules, and
then enable the the toc optimization for host modules.  If the
implementation of a library changes it will be reinstalled, and
libraries or binaries that depend on it will also be reinstalled.

Bug: 26015464
Test: m -j; touch art/disassembler/disassembler_x86.cc; m -j, verify
      out/host/linux-x86/bin/oatdump is updated
Change-Id: I0a14decc1994eb55ad269d841943aef66e320c63
2016-10-03 17:53:44 -07:00
David Zeuthen 27ac0e34fe resolve merge conflicts of c36ab42 to nyc-mr1-dev-plus-aosp
Change-Id: Iaf78fb6c723955fd92cc64194cb32bba73a9dafb
2016-09-29 14:25:03 -04:00
David Zeuthen 2ce63edab7 Update for new Android Verified Boot (AVB).
This updates the build system for the new Android Verified Boot
codebase. As this is based on Brillo Verified Boot, this change replaces
the existing BVB support.

Android Verified Boot is enabled by the BOARD_AVB_ENABLE variable

 BOARD_AVB_ENABLE := true

This will make the build system create vbmeta.img which will contain a
hash descriptor for boot.img, a hashtree descriptor for system.img, a
kernel-cmdline descriptor for setting up dm-verity for system.img and
append a hash-tree to system.img.

Additionally, the descriptors are left in boot.img and system.img so a
third party can create their own vbmeta.img file linking - using the
option --chain_partition - to these images. If this is not needed
footers can be erased using the 'avbtool erase_footer' command. It's
also harmless to just leave them in the images.

By default, the algorithm SHA256_RSA4096 is used with a test key from
the AVB source directory. This can be overriden by the
BOARD_AVB_ALGORITHM and BOARD_AVB_KEY_PATH variables to use e.g. a
4096-bit RSA key and SHA-512:

 BOARD_AVB_ALGORITHM := SHA512_RSA4096
 BOARD_AVB_KEY_PATH := /path/to/rsa_key_4096bits.pem

To prevent rollback attacks, the rollback index should be increased on a
regular basis. The rollback index can be set with the
BOARD_AVB_ROLLBACK_INDEX variable:

 BOARD_AVB_ROLLBACK_INDEX := 5

If this is not set, the rollback index defaults to 0.

The variable BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS can be used to specify
additional options passed to 'avbtool make_vbmeta_image'. Typical
options to be used here include '--prop', '--prop_from_file', and
'--chain_partition'.

The variable BOARD_AVBTOOL_BOOT_ADD_HASH_FOOTER_ARGS can be used to
specify additional options passed to 'avbtool add_hash_footer' for
boot.img. Typical options to be used here include '--hash_algorithm' and
'--salt'.

The variable BOARD_AVBTOOL_SYSTEM_ADD_HASHTREE_FOOTER_ARGS can be used
to specify additional options passed to 'avbtool add_hashtree_footer'
for systems.img. Typical options to be used here include
'--hash_algorithm', '--salt', and '--block_size'.

BUG=31264226
TEST=Manually tested on edison-eng by inspecting {boot, system,
  vbmeta}.img in out/ directory as well as their counterparts in
  the IMAGES/ directory of edision-target_files-eng.zeuthen.zip

Merged-In: Ic9a61cfc65c148b12996e57f04da5432eef6b982

Change-Id: I97042655bca15e7eac899f12c5bada2f6184d307
2016-09-29 11:19:36 -04:00
Dan Willemsen 83aba3a7ab Merge "Fix link_type checking" am: 665cda08f0 am: 1347d959de
am: 8459bbca6f

Change-Id: I22da0f1703995c4734a72901abe2dbcee62c1406
2016-09-20 01:01:38 +00:00
Dan Willemsen 121e284b46 Fix link_type checking
This was printing "error:", but not actually triggering an error.
Instead of trying to write a single line bash script to handle this,
move the actual check into python. This allows us to print all of the
errors for a single module before triggering the failure.

Also updates the warning format and the warn.py script to properly parse
these warning. Many of the java:sdk -> java:platform warnings are false
positives due to the lack of LOCAL_SDK_VERSION markings on prebuilts.

Individual tags can be marked as warnings now, which lets us check for
system libraries linking against vendor libraries (which won't work on
AOSP). I'm not sure this is a completely valid check, which one reason
that it's just a warning.

Test: m all_link_types (with some missing libs commented out)
Change-Id: I333e418c9a4511b7c7e826891ae481da08fbf6f9
2016-09-15 14:40:39 -07:00
Dan Willemsen 196f190592 Merge "Fix shared library install dependencies outside of /system" am: 0b3f97b0d6 am: f9fc0ea6fe
am: 7c4ced5337

Change-Id: Ibc3c3fca687f7541d779d390e3cbc6123f88e149
2016-09-13 22:51:35 +00:00
Dan Willemsen 5bdd08b2d9 Fix shared library install dependencies outside of /system
For properly picking the shared library install dependencies, HOST_OUT
and HOST_CROSS_OUT are necessary so that we don't add a dependency
between Linux and Windows. But for target modules, we must use
TARGET_OUT_ROOT instead of TARGET_OUT, or modules in /data and /vendor
won't have proper install dependencies.

Bug: 31462199
Test: m bionic-unit-tests; manual diff of generated ninja file
Change-Id: I828fa2664613296cc6c431813f5657abffdd2b8f
2016-09-13 13:47:06 -07:00
Ryan Campbell 5a63fe6856 Merge "Implement path-based enabling of code coverage." am: 1e1ecd5d07 am: 6b92bb4ebb
am: 577eab3323

Change-Id: I36a4fc67e87e8561486111263b0d6b6ed1bdefcc
2016-09-13 20:01:23 +00:00
Ryan Campbell 81c9d29dad Implement path-based enabling of code coverage.
Native coverage is enabled by setting NATIVE_COVERAGE to true
and specifying a list of paths in the COVERAGE_PATHS
environment variable. Files are exported to a zip file in the
target out directory.

Change-Id: I66a2ddd88e849bec1cc0cdae1b51fe18a007e2c3
2016-09-13 10:27:25 -07:00
Dan Willemsen 7d72b5ef71 Merge "Fix GET-INSTALL-PATH to work with Soong" am: 6b9aa6938d am: 9fc9cac0ac
am: 0e642c3e55

Change-Id: Ic608a11b5b7ccf78f75bbf4ce7086ed92e1b9e14
2016-08-15 21:26:31 +00:00
Dan Willemsen 9fc9cac0ac Merge "Fix GET-INSTALL-PATH to work with Soong"
am: 6b9aa6938d

Change-Id: I9f433cb383846ec6ccb8e39be4b30110d60d54fd
2016-08-15 21:17:33 +00:00
Dan Willemsen 53e3899222 Fix GET-INSTALL-PATH to work with Soong
This was printing all of the Soong modules in addition to the modules
defined in the ONE_SHOT_MAKEFILE. So replicate what we did with
MODULES-IN-* with GET-INSTALL-PATH-IN-* and update all the users.

Bug: 30191725
Change-Id: Ib1e4bf00f64d7a3e8cd91f44eaf1ff82fdfbf162
2016-08-12 05:10:51 +00:00
Alexey Polyudov 74140b99c4 Merge "introduce AUX build class of targets" am: 556526bf95 am: 755391d77e
am: 30937fbde2

Change-Id: I73aa67afa95b8c45c5a4e310a340bc709d0b3da0
2016-08-02 22:55:18 +00:00
Alexey Polyudov 755391d77e Merge "introduce AUX build class of targets"
am: 556526bf95

Change-Id: I52b4b3a561ceb9c1fbe71ce75a4ef4aa252a9665
2016-08-02 22:50:21 +00:00
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
Dan Albert dee194df54 Merge changes from topic \\\'soong-sysroots\\\' am: 65de8e446c am: 01efd46bca
am: cce7b4f00a

Change-Id: Ia5f4f59a5d53c852905a50f1a54d1ec3b9e6e2a7
2016-07-28 16:12:25 +00:00
Dan Albert 01efd46bca Merge changes from topic \'soong-sysroots\'
am: 65de8e446c

Change-Id: I8c8951364c5ddd6f99a27111acdb72097ab5db42
2016-07-28 16:06:24 +00:00
Dan Albert c61174aac1 Add a phony target for the NDK sysroots.
`make ndk` will build all the NDK sysroots.

Test: make ndk
Bug: http://b/27533932
Change-Id: Ic2f5bf61f8911f7b8d08a473f2fe0576f3e06224
2016-07-28 00:06:20 -07:00
Colin Cross 64755b9ec5 Merge \\\"Remove Android.bp logic from makefiles\\\" am: 8bc18d35ec am: 7dc26e8aa8
am: 95ebfddd5f

Change-Id: I22073f2e6788db034f7a904600100d590efec272
2016-07-12 16:31:52 +00:00
Colin Cross 7dc26e8aa8 Merge \"Remove Android.bp logic from makefiles\"
am: 8bc18d35ec

Change-Id: I50c8180c8297feb48ff5c5eba10670b36f631921
2016-07-12 16:20:29 +00:00
Colin Cross 65543c7bc2 Remove Android.bp logic from makefiles
When Soong was optional, the make build system needed extra complexity
to ignore Android.mk files that had an associated Android.bp file.  Now
that Soong is required and the Android.mk files that were obsoleted by
an associated Android.bp file have been removed, remove all of the logic
that found associated Android.bp files.  Android.mk files and Android.bp
files are now handled independently.

Change-Id: Ia6643d151b920689219ca8abd59ede44d230ba35
2016-07-11 16:57:33 -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
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 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
Daniel Micay 888a623881 disable unpriv perf by default in user{,debug} builds
(Cherry picked from commit fe01f56c0d5c42508e1e82f5976e4c10bb00f632)

Bug: 29054680

Change-Id: If04bc63fc366006cde842a50b7c764f89d7449a6
2016-06-01 17:01:18 -07:00
Jeffrey Vander Stoep 3728ebcfaf Merge "disable unpriv perf by default in user{,debug} builds" am: 4bc8280a98
am: 13f2b4cf2f

* commit '13f2b4cf2f9ec4e17bedf75b01263b88d08982d6':
  disable unpriv perf by default in user{,debug} builds

Change-Id: Id14069a95cba23aff3540b3a43998cedd52b6ac7
2016-06-01 23:53:42 +00:00
Jeffrey Vander Stoep 4bc8280a98 Merge "disable unpriv perf by default in user{,debug} builds" 2016-06-01 23:18:46 +00:00
Colin Cross 01437aa5d3 Merge "Update Android.mk finder to work with Android.bp files" am: 520442f053
am: 18023b557b

* commit '18023b557b6d33836de380df397fce10598931a9':
  Update Android.mk finder to work with Android.bp files

Change-Id: I87915d75c3bda9c41c926a7c8ad7c650ac085199
2016-06-01 05:05:33 +00:00
Daniel Micay f2ac912b19 disable unpriv perf by default in user{,debug} builds
Bug: 29054680

Change-Id: If04bc63fc366006cde842a50b7c764f89d7449a6
2016-05-31 17:43:48 -04:00
Colin Cross 4cbf8eb9f5 Update Android.mk finder to work with Android.bp files
The Android.mk finder should stop traversing when it finds an Android.bp
file, and any Android.soong.mk file at the same path should be included.

Update filter-soong-makefiles to accept a mixed list of Android.bp files
and Android.mk files, convert Android.bp files to Android.soong.mk files
if they exist, and ignore Android.mk files that have an Android.bp file.

Update first-makefiles-under to use the new --dir syntax for
findleaves.py and search for both Android.bp and Android.mk files.

Update all-makefiles-under and all-named-subdir-makefiles to search for
both Android.bp and Android.mk files.

Change-Id: Iddc51bf84593d5de3add02f2b2c065da08962af4
2016-05-30 13:42:19 -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
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
Colin Cross 44cf069b30 Merge "Remove USE_SOONG=false option" am: 5413fb4b3e
am: a36de73331

* commit 'a36de73331b92e5e75ba92e7a4707e5850e3486d':
  Remove USE_SOONG=false option

Change-Id: Iba393dadd32a55e910cf0ab980a1e82887f60bb9
2016-05-26 01:04:52 +00:00
Colin Cross a61d672529 Remove USE_SOONG=false option
Soong is always required to build now.

Change-Id: I4e310e98e912b370ebf980bf609f04212a7e9a50
2016-05-25 12:55:43 -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
Dan Willemsen 958dc6098e Merge "Remove TARGET_LIBGCC/LIBATOMIC/LIBGCOV" am: a794f4db22
am: 19fdc4428f

* commit '19fdc4428f9036b059a1174a3236eef03180e826':
  Remove TARGET_LIBGCC/LIBATOMIC/LIBGCOV

Change-Id: I143bf88ad5031764644dfb2c8b279513c809b50b
2016-05-17 03:05:32 +00:00
Dan Willemsen db16dd2384 Remove TARGET_LIBGCC/LIBATOMIC/LIBGCOV
Instead, use the libgcc/libatomic/libgcov from the static libraries dir,
which is provided by Soong. Copy the libraries using the Soong script if
Soong is disabled - this can be removed once USE_SOONG is removed.

Change-Id: Iad2ad20ad5c3cfc48bf1e46e594a482609098d7a
2016-05-16 17:26:54 -07:00
Colin Cross 9d888e37bb Merge "Default USE_SOONG to true" am: ac33935ac1
am: c33da56ff3

* commit 'c33da56ff30e89f5b09ec02d0b50815b27ab833e':
  Default USE_SOONG to true

Change-Id: Ib795a91a609da4402984c56a493e20dee90ec54f
2016-05-13 22:46:50 +00:00
Colin Cross ac33935ac1 Merge "Default USE_SOONG to true" 2016-05-13 22:40:23 +00:00
Dan Willemsen 2697421213 Merge "Read Soong-exported configuration" am: c7b610a67e
am: bcbba61a25

* commit 'bcbba61a2500da9c51690ef8956e15020e9f6fea':
  Read Soong-exported configuration

Change-Id: Ia23208e26bae53bd74bb77b0a0ebbe63ac6f8a9c
2016-05-13 01:43:09 +00:00
Dan Willemsen 8b999ac63d Read Soong-exported configuration
This is to ensure that Make and Soong agree on configuration variables
like TARGET_GLOBAL_CFLAGS. Only a few variables are actually checked
currently until we make more actually the same.

Bug: 23566674
Change-Id: Ibede43d933ede4d470e182f9490ea6ec4ef52fbc
2016-05-12 13:36:33 -07:00
Colin Cross 42a5da7ca1 Default USE_SOONG to true
Change-Id: Iad88aed4060b84aef2381f6300f16bad14f3a6ca
2016-05-05 16:34:58 -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 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
Ying Wang 2e2c137913 Reject Google's build of JDK.
Bug: 28097637

(cherry picked from commit 22b23b9b00)

Change-Id: Ieb809cdd0ba930b9ea65b8b0d31a81be112cc52e
2016-04-14 12:30:25 -07:00
Ying Wang 55fb35281e Merge "Reject Google\'s build of JDK." am: 98f7a5c
am: cb9847c

* commit 'cb9847c8abb89bb37d9429aeb1862d04d378ccce':
  Reject Google's build of JDK.

Change-Id: Ia33b50111b7dc8ea09552bc89ba6beb913ddd7ab
2016-04-14 19:01:56 +00:00
Ying Wang 98f7a5c744 Merge "Reject Google's build of JDK." 2016-04-14 18:49:07 +00:00
Ying Wang 22b23b9b00 Reject Google's build of JDK.
Bug: 28097637
Change-Id: I8afbd48230bdd1f198a873f72df1c178bed38d0e
2016-04-14 11:34:04 -07: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
Dan Willemsen ae18638b04 Handle symlinked OUT_DIRs (again)
My previous attempt at properly handling symlinked OUT_DIRs only worked
if the symlink was to a different directory, not one in the same
directory.

This time, make sure that both make and soong use the same
representation of the output directory by passing BUILDDIR to
bootstrap.bash. Soong has been updated to pick whether to use a relative
or absolute path back to the source tree depending on what makes sense.
If the BUILDDIR or the path back to the source tree change, re-run the
bootstrap.

Also, move the $OUT_DIR/Android.mk and $OUT_DIR/CleanSpec.mk generation
to before Kati runs. In the case that $TOP/out was symlinked to
$TOP/out.angler:

 1) Soong generates out.angler/soong/Android.mk
 2) Kati's find generator produces in-memory tree of the filesystem
 3) $(shell ) creates out.angler/Android.mk
 4) The emulated findleaves Android.mk search finds
    out.angler/soong/Android.mk since the in-memory tree is never updated.

This doesn't happen in the normal case, because we pass --prune=$OUT_DIR
to findleaves.

Change-Id: Ib0fdae2e80f75ddcf33a3c8c5ea0978f5308b437
(cherry picked from commit cc60f01357)
[ccross: resolved conflicts in nyc-dev]
2016-03-30 12:24:57 -07:00
Ying Wang 77f67cd048 Merge "Support x86+arm multilib build."
am: d314805

* commit 'd314805c29fdbee3508b99c14ca63e1a8d170c3b':
  Support x86+arm multilib build.
2016-03-25 21:51:21 +00: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
Colin Cross 6e6a167521 Merge "Ignore Android.mk files with USE_SOONG=true" into nyc-dev
am: c031c75

* commit 'c031c758c63c83679cf55abb50ba9e4474d22814':
  Ignore Android.mk files with USE_SOONG=true
2016-03-25 19:59:02 +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
Colin Cross 946a08cf51 Ignore Android.mk files with USE_SOONG=true
When USE_SOONG=true, ignore any Android.mk file that has an Android.bp
file in the same directory.

Change-Id: Id79bd90c2aed5dafc2f8ad2c5b7eb0aa6e81dc18
(cherry picked from commit 861ab99536)
2016-03-24 14:36:48 -07:00
Dan Willemsen b101826b15 Merge "Handle symlinked OUT_DIRs (again)"
am: fe09018

* commit 'fe09018b39920715607a19a0807863c95e0b8372':
  Handle symlinked OUT_DIRs (again)
2016-03-24 21:08:54 +00:00
Dan Willemsen fe09018b39 Merge "Handle symlinked OUT_DIRs (again)" 2016-03-24 20:38:08 +00:00
Ying Wang f3920d0aac Merge "Add phony target javac-check."
am: 49b524c

* commit '49b524cb4a6d74b3fee49a728714d74202ce76f0':
  Add phony target javac-check.
2016-03-24 18:39:12 +00:00
Ying Wang cddeb6c4f0 Add phony target javac-check.
javac-check covers all classes.jars that are compiled with javac
instead of jack. This target is required by tools that still need java
class files as input.

Bug: 26705771
Change-Id: I6896b9a6026a2a0dae6145d1ef5a839756aa3458
2016-03-24 11:12:16 -07:00
Dan Willemsen 1e061d789a Merge "Remove ALL_PREBUILT, all users have been removed"
am: cfb5545

* commit 'cfb554566447b31cd045a5b67b960018418fe874':
  Remove ALL_PREBUILT, all users have been removed
2016-03-23 23:19:27 +00:00
Dan Willemsen 3006962257 Remove ALL_PREBUILT, all users have been removed
Change-Id: I37154506ef419e7a68ce7e2d864624d2ae53206f
2016-03-23 14:15:16 -07:00