Go to file
Martin Stjernholm 49a4e9b52e Preserve symlinks in the Soong prebuilt install steps for host binaries
and shared libs.

If a prebuilt module file is a symlink in the .intermediates tree it is
preserved when copied to the final install location. This preserves
symlinks to prebuilt binaries, so that they are run from their prebuilt
source location and can find libraries in relative paths from there.

Symlinks are converted to absolute, to not fail if they are relative in
the source tree.

Test: m clean && m droid dist checkbuild
  with and without the change, then compare the lists of symlinks in
  the out/ trees
Test: build/soong/soong_ui.bash --make-mode \
    TARGET_PRODUCT=crosshatch_hwasan TARGET_BUILD_VARIANT=userdebug \
    droid SANITIZE_TARGET=hwaddress \
    continuous_instrumentation_tests_api_coverage \
    continuous_native_tests device-tests platform_tests
  check that libclang_rt.hwasan_static-aarch64-android.a isn't a
  symlink in out/target/product/crosshatch/obj
Bug: 145934348
Change-Id: I7600e5b0754f8ea6cd0ffc8e1ba6d39153f182aa
2020-09-01 00:24:54 +01:00
common Change use of sanity-check to "test". Makes comment line more clear what the code does. 2020-07-30 22:11:58 +00:00
core Preserve symlinks in the Soong prebuilt install steps for host binaries 2020-09-01 00:24:54 +01:00
packaging Fix creating _dist_<goal> targets under !dist 2018-10-21 08:56:27 -07:00
target Set BOARD_KERNEL_MODULE_INTERFACE_VERSIONS for aosp_arm64 2020-08-24 12:23:27 -07:00
tests Only set TARGET_PLATFORM version in lunch when explicitly requested 2017-05-01 14:26:40 -07:00
tools Searches for debugfs_static in search path 2020-08-21 14:13:13 -04: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 Remove /system/etc/prop.default 2020-05-14 16:28:19 +09:00
Deprecation.md Obsolete unused module types 2020-04-18 21:00:18 -07:00
OWNERS Merge "Update OWNERS for version_defaults.mk with pscovanner & lubomir Bug: 141272605" into qt-dev am: 5d0a024d7b am: 479c9c549b 2019-10-16 11:30:32 -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 Do not print environment variables if ANDROID_QUIET_BUILD is set. 2020-06-04 10:48:15 -07:00
help.sh Add odm_dlkm partition. 2020-07-16 12:34:29 -07:00
navbar.md Mark envsetup.sh vars as deprecated in makefiles 2017-11-28 14:19:50 -08:00
rbesetup.sh Add function to export default values for RBE related variables 2020-08-13 14:41:32 -04: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.