No description
Find a file
Rashed Abdel-Tawab a6a4d684dc
build: Automatically replace old-style kernel header includes with new header lib
This is a combination of 3 commits.
This is the 1st commit message:

build: add kernel header dependency if module uses kernel headers

Many of the QCOM components use kernel headers, but don't declare
the dependency on them.  This is fine in CAF because of the way they
build the boot.img before anything else.  In CM, we don't build the
boot.img the same, so we run into a race between the kernel build &
these modules... and the modules lose.

Warn about modules that have this missing dependency, and add it for
them so we don't have to modify each Android.mk.

Change-Id: I95f1e47b5ef440f6f5d8f64a0c3f38d9572e839e

============================================================================
This is the commit message #2:

build: Switch kernel header inclusion

The build is switching to the target INSTALLED_KERNEL_HEADERS to
declare dependencies on kernel headers.

Change-Id: I913e74681b02dfcf1eaed3d1e47ff4ab2300b12d

============================================================================
This is the commit message #3:

build: Automatically replace old-style kernel header includes with new header lib

Since we do this via soong and the result is a header library, just replace all
legacy include paths that point to the old header location with calls to the new
header library. Since we no longer have the legacy include, we can also remove
the additional dependency.

This reverts commit fa798218e5b7f96e12ab3acc9d47a3f26a140777.

Change-Id: I716955534e50831e6568ca01e480aa8b90075d92
2024-10-24 19:25:32 +02:00
ci Add optimized build features in build_test_suites 2024-06-07 15:01:18 -07:00
common math.mk supports larger number comparison 2023-10-30 10:58:25 +09:00
core build: Automatically replace old-style kernel header includes with new header lib 2024-10-24 19:25:32 +02:00
packaging Trace time spent in cp rules for dist targets. 2023-06-26 23:31:30 +00:00
target build: Add tequila build support 2024-10-24 19:25:10 +02:00
teams Add Attack Tools team 2024-06-13 22:35:25 +00:00
tests Remove run_tool_with_logging function from envsetup.sh 2024-06-06 23:53:36 +00:00
tools Merge "Read from new storage in Rust R/W flags" into main 2024-06-14 19:40:38 +00:00
.gitignore ignore .iml files (IntelliJ) 2022-06-17 12:17:53 -04:00
Android.bp Add a facility to log tool invocations 2024-04-17 22:41:58 +00:00
banchanHelp.sh Allow selecting a different product in banchan. 2021-04-19 18:32:00 +01:00
buildspec.mk.default Add TARGET_PLATFORM_VERSION to lunch 2017-03-23 09:44:08 -07:00
Changes.md Revert^2 "Enable genrule sandboxing by default" 2023-10-18 22:50:28 +00:00
CleanSpec.mk Prevent implicit outputs created during dexpreopt_config.zip 2024-06-07 17:45:19 +00:00
cogsetup.sh Do not fail cogsetup.sh if repo is not in PATH 2024-04-26 07:09:41 +00:00
Deprecation.md Obsolete unused module types 2020-04-18 21:00:18 -07:00
envsetup.sh build: Add tequila build support 2024-10-24 19:25:10 +02:00
help.sh Add sync to m help 2022-09-22 02:26:10 +00:00
navbar.md Mark envsetup.sh vars as deprecated in makefiles 2017-11-28 14:19:50 -08:00
OWNERS Remove lberki@google.com from OWNERS 2023-11-30 16:41:22 +00:00
PREUPLOAD.cfg check-flagged-apis: add new CLI to verify @FlaggedApi APIs 2024-04-16 10:32:17 +02:00
rbesetup.sh fix RE for metalava actions 2023-11-15 20:39:45 +00:00
README.md Mark envsetup.sh vars as deprecated in makefiles 2017-11-28 14:19:50 -08:00
shell_utils.sh Move the impl of run_tool_with_logging into shell_utils.sh 2024-06-07 22:54:41 +00:00
tapasHelp.sh Add a keys argument to tapas 2022-02-07 18:50:22 +00:00
Usage.txt Remove the PRODUCT-* goal 2019-07-29 14:27:04 -07:00

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.