3b99ecfbab
Many Android.bp files are now no longer needed (since they are all scanned and subdirs are deprecated), so there are many places in a tree where they aren't hit. This still suffers from one bug, given this directory structure: A/B/Android.bp A/B/C/D/Android.bp A/B/C/ A/B/C/E/Android.bp if you call 'mma' from 'A/B/C', then it will make MODULES-IN-A-B. However, for now, this change makes it so given the following directory structure: A/B/C/D/Android.bp A/B/C/ A/B/C/E/Android.bp if you call 'mma' from 'A/B/C', then it will make MODULES-IN-A-B-C as expected (since there are no makefiles in parent directories). This is the expected behavior in this case and it is common in directories where Android.bps have been removed (since they only referenced subdirs) or outside of git projects. The reason why this usecase is supported is so that given this: A/B/C/D/Android.bp A/B/C/D/include/D/foo.h You can, from A/B/C/D/include/D/ (for instance) do an mma, and it will still make the modules defined in A/B/C/D/ which are presumably related to this. This change doesn't fix mm or other binaries. In the long term, either we should just consider mma to make the current directory (and not look for parent directories for the above 'feature') or we should move more of the complexity in the build system itself so that it can intelligently find the first parent directory which contains a makefile in a subdirectory. Fixes: 65407300 Test: mma from following dirs system/tools/hidl/test/hash_test/bad/hash/1.0 MODULES-IN-system-tools-hidl-test-hash_test system/tools/hidl/test/hash_test/ MODULES-IN-system-tools-hidl-test-hash_test system/ MODULES-IN-system hardware/ril/ MODULES-IN-hardware-ril Change-Id: I072d3f382d40cd360ec3d14f8f5b060a4bde9289 |
||
---|---|---|
core | ||
target | ||
tests | ||
tools | ||
.gitignore | ||
Android.mk | ||
buildspec.mk.default | ||
Changes.md | ||
CleanSpec.mk | ||
envsetup.sh | ||
help.sh | ||
navbar.md | ||
OWNERS | ||
README.md | ||
tapasHelp.sh | ||
Usage.txt |
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.