commit | 837425b0c0f7b4d85cdeadf6db80ac129b064494 | [log] [tgz] |
---|---|---|
author | Anton Hansson <hansson@google.com> | Fri Jun 01 14:18:14 2018 +0100 |
committer | Anton Hansson <hansson@google.com> | Wed Jun 13 18:48:53 2018 +0100 |
tree | d29c4adf1f75f491375d39a6b770d1de1fce429a | |
parent | 5efe88df63abde538828ae7ec3713a4d6ed2c06d [diff] |
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
This is the Makefile-based portion of the Android Build System.
For documentation on how to run a build, see Usage.txt
For a list of behavioral changes useful for Android.mk writers see Changes.md
For an outdated reference on Android.mk files, see build-system.html. Our Android.mk files look similar, but are entirely different from the Android.mk files used by the NDK build system. When searching for documentation elsewhere, ensure that it is for the platform build system -- most are not.
This Makefile-based system is in the process of being replaced with Soong, a new build system written in Go. During the transition, all of these makefiles are read by Kati, and generate a ninja file instead of being executed directly. That's combined with a ninja file read by Soong so that the build graph of the two systems can be combined and run as one.