Go to file
Ulya Trafimovich 156c719179 Quick and dirty filtering of present LOCAL_OPTIONAL_USES_LIBRARIES.
Filter LOCAL_OPTIONAL_USES_LIBRARIES by PRODUCT_PACKAGES. This has the
drawback that some present libraries may be filtered out as well, as the
full list of product packages is unknown until all Android.mk files have
been read.

This CL unblocks <uses-library> fixes for individual apps, which will be
necessary to dexpreopt them in the nearest future when the &-classpath
hack is removed in ART. Apps that are not fixed by then will loose
dexpreopt completely. This fix, although not perfect, lowers the risk of
loosing dexpreopt for many apps. In the future it may be replaced with a
better solution.

Bug: 132357300
Test: lunch aosp_cf_x86_64_phone-userdebug && m && launch_cvd \
        adb wait-for-device && adb root && adb logcat \
        | grep -E 'ClassLoaderContext [a-z ]+ mismatch'
        # empty grep output, no errors
Change-Id: I188cf240259f7a448623450e6a949e0784a21f87
2021-02-03 15:05:42 +00:00
common Add a rule to get numbers greater or equal to a minimum number. 2020-10-29 22:29:27 +00:00
core Quick and dirty filtering of present LOCAL_OPTIONAL_USES_LIBRARIES. 2021-02-03 15:05:42 +00:00
packaging Fix creating _dist_<goal> targets under !dist 2018-10-21 08:56:27 -07:00
target Add top level product definitions for module_* devices. 2021-01-27 20:29:19 +00:00
tests Only set TARGET_PLATFORM version in lunch when explicitly requested 2017-05-01 14:26:40 -07:00
tools Merge "Only add apex_info for compressed apexes" 2021-01-29 10:34:21 +00:00
.gitignore Add build subprojects to .gitignore 2015-07-23 13:18:47 -07:00
Changes.md Require required modules to exist 2020-08-06 06:41:09 +00:00
CleanSpec.mk Add clean step to remove Soong's host copies of libconscrypt_openjdk_jni.so 2020-10-09 08:42:13 +00:00
Deprecation.md Obsolete unused module types 2020-04-18 21:00:18 -07:00
OWNERS Refactor OWNERS files in platform/build/make. 2020-10-08 16:14:44 -07:00
README.md Mark envsetup.sh vars as deprecated in makefiles 2017-11-28 14:19:50 -08:00
Usage.txt Remove the PRODUCT-* goal 2019-07-29 14:27:04 -07:00
buildspec.mk.default Add TARGET_PLATFORM_VERSION to lunch 2017-03-23 09:44:08 -07:00
envsetup.sh Add outmod and installmod commands 2021-01-26 01:50:18 +00:00
help.sh Revert "Add modules partition." 2020-09-15 19:09:26 +00:00
navbar.md Mark envsetup.sh vars as deprecated in makefiles 2017-11-28 14:19:50 -08:00
rbesetup.sh Switch default execution strategy to racing for developer builds 2020-11-25 12:14:16 -05:00
tapasHelp.sh Remove unused mips workarounds. 2020-03-06 16:46:59 -08:00

README.md

Android Make Build System

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.