The new option WITH_SYNTAX_CHECK=1 instructs build system to invoke
"clang -fsyntax-only" to utilize clang's better diagnostics before calling
LOCAL_CC/LOCAL_CXX for code generation. The compilation time is slightly
longer, and the generated object file should be the same as w/o WITH_SYNTAX_CHECK
Project use lots of GCC extensions (eg. nested function) not supported
by clang may opt out by adding LOCAL_NO_SYNTAX_CHECK:=true
Change-Id: I5689586788ef049bd967364f71f31f1e359bd121
The new option WITH_SYNTAX_CHECK=1 instructs build system to invoke
"clang -fsyntax-only" to utilize clang's better diagnostics before calling
LOCAL_CC/LOCAL_CXX for code generation. The compilation time is slightly
longer, and the generated object file should be the same as w/o WITH_SYNTAX_CHECK
Project use lots of GCC extensions (eg. nested function) not supported
by clang may opt out by adding LOCAL_NO_SYNTAX_CHECK:=true
Change-Id: Iaeedd07d5719f9df9675ab57e307e28a9c855c1b
Support using custom mkbootimg to allow boards to specify custom
boot image formats. Also export this as the environment variable
MKBOOTIMG to the *_from_target_files releasetools scripts.
Change-Id: I2084273b1175de097fb7da5c4f2264ea8014d74f
Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Don't bother going through the source tree in more circumstances:
all cleaning goals, helping goals, no-deps goals.
Bug: 10244578
Change-Id: Id53a249085c62838e4193962a85e0ac34f46954f
AndroidProducts.mk allows for a maxdepth of 4 in device and vendor while
vendorsetup.sh and BoardConfig.mk only allow for smaller depth.
Make search depth consistent for these files.
Change-Id: I406770c1423d4f27fe097956a7c705a0da937e35
Signed-off-by: Beare, Bruce J <bruce.j.beare@intel.com>
Signed-off-by: Laurent Fert <laurent.fert@intel.com>
Signed-off-by: Guilhem Imberton <guilhem.imberton@intel.com>
Author: Laurent Fert <laurent.fert@intel.com>
To pick up a NOTICE file in LOCAL_PATH and attach it to
/system/lib/libfoo.so, use the following syntax:
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := NOTICE_FILES
LOCAL_INSTALLED_MODULE := $(PRODUCT_OUT)/system/lib/libfoo.so
include $(BUILD_NOTICE_FILE)
Bug: 7460213
Change-Id: Ie692be72deab37be04d1b578578c131a0885a090
Default to 4.6, but can overwritten to something else in
prebuilts/gcc/$os/$arch/$arch-linux-android*-$ver
Change-Id: I16f99d642b8ff8e831d392261a0c536041107051
To reduce the start time.
With the change and previous change of doing clean step in only given paths,
start time of mm/mmm is reduced from ~5s to about 1s;
lunch time is reduced from ~40s to 3.5s.
(cherry-pick of 157a5e1695593f935c3223430f4530e21f990378.)
Bug: 7186768,7169854
Change-Id: I0be5e2721efa66a80f112acf8f95e177ebc2f65b
To reduce the start time.
With the change and previous change of doing clean step in only given paths,
start time of mm/mmm is reduced from ~5s to about 1s;
lunch time is reduced from ~40s to 3.5s.
Bug: 7186768,7169854
Change-Id: Ifd72ba1c6362a5e1125a23c505fd47947ab56675
To reduce the start time.
With the change and previous change of doing clean step in only given paths,
start time of mm/mmm is reduced from ~5s to about 1s;
lunch time is reduced from ~40s to 3.5s.
Bug: 7186768,7169854
Change-Id: Ifd72ba1c6362a5e1125a23c505fd47947ab56675
Bug: 6987838
- With this change, use "EMMA_INSTRUMENT=true" to enable emma in full or
unbundled build.
- You don't need to add "LOCAL_STATIC_JAVA_LIBRARIES += emma" any more for
unbundled apps.
- Now a single var LOCAL_EMMA_INSTRUMENT replaces the previous
LOCAL_NO_EMMA_INSTRUMENT and LOCAL_NO_EMMA_COMPILE.
- By default, if EMMA_INSTRUMENT is true, emma is enabled for only
non-test apps.
- A new global var EMMA_INSTRUMENT_STATIC. It enables EMMA_INSTRUMENT
and builds emma into apk/jar as static library, instead of using emma
as part of shared library core.jar.
Change-Id: I0aa219e83074879ececc159b5b07c39eb07ccc00
We are now unifying the NDK versions of unbundled native code to always
use the latest NDK.
We don't need the variable LOCAL_NDK_VERSION now.
To build native code with NDK, you need set just LOCAL_SDK_VERSION.
Bug: 6932421
Change-Id: I86f05a264249cda6bae97b4b1616f03700cd9dfa
We are now unifying the NDK versions of unbundled native code to always
use the latest NDK.
We don't need the variable LOCAL_NDK_VERSION now.
To build native code with NDK, you need set just LOCAL_SDK_VERSION.
Bug: 6932421
Change-Id: I86f05a264249cda6bae97b4b1616f03700cd9dfa
Bug: 6167394
$make lint-<app-name> # to lint on a single module
$make lintall # to lint on all packages in the source
tree.
Change-Id: I4decc76fb75793ce44809232b0ec72b766fbb434
So, just add the output include directory to the include path
Change-Id: Ia370454237913a748288124f65a6b731b17d6e1a
Signed-off-by: Dima Zavin <dima@android.com>
This is useful when a device inherits from an architecture
product, such as omap4.mk. The architecture specific product
can provide kernel headers to all the devices that use
that architecture.
Change-Id: I0c9d3120a6089fb535a3fa8eccf10775a271cd21
Signed-off-by: Dima Zavin <dima@android.com>
Currently, we need to pollute the common bionic/libc/kernel/...
directory with device specific kernel headers. This has created a giant
dumping ground of headers from all the projects we have ever done.
Allow each device to provide their own headers and thus eventually allow
bionic/libc/kernel to become *just* the common linux kernel headers.
This change will automatically add device/oem/name/kernel-headers to
the include list and also allow the BoardConfig.mk to specify
additional directories with TARGET_BOARD_KERNEL_HEADERS variable.
The requirement is that the final dir name must be kernel-headers to
mark explicitly where kernel headers are kept.
Change-Id: I7d32a979eef1f464db06c1bc448a04ddc3575efd
Signed-off-by: Dima Zavin <dima@android.com>
Sometimes TARGET_TOOLS_PREFIX is passed in as command line makefile
variable or environmental variable without TARGET_TOOLCHAIN_ROOT.
This change computes TARGET_TOOLCHAIN_ROOT from TARGET_TOOLS_PREFIX in
that case.
Change-Id: I0a37dc1f4d1e3e1951faeffd5e9f926f0a6614dd
We used to do that unconditionally but that caused lots of spurious
warnings in gcc-4.4.x about an unrecognized gcc option.
Change-Id: Idb5118b069871859e07a7efa04914ab6ed0b1372
Switch the emulator builds to ash to make sure it still
works, in case we find that we need to go back to using ash.
Change-Id: Id5641940b63cc4225011be1c375f4c86ec4d21cc
This patch removes support for prelinking from the build system. By now, the
prelinker has outlived its usefulness for several reasons. Firstly, the
speedup that it afforded in the early days of Android is now nullified by the
speed of hardware, as well as by the presence of Zygote. Secondly, the space
savings that come with prelinking (measued at 17MB on a recent honeycomb
stingray build) are no longer important either. Thirdly, prelinking reduces
the effectiveness of Address-Space-Layout Randomization. Finally, since it is
not part of the gcc suite, the prelinker needs to be maintained separately.
The patch deletes apriori, soslim, lsd, isprelinked, and iself from the source
tree. It also removes the prelink map.
LOCAL_PRELINK_MODULE becomes a no-op. Individual Android.mk will get cleaned
separately. Support for prelinking will have to be removed from the recovery
code and from the dynamic loader as well.
Change-Id: I5839c9c25f7772d5183eedfe20ab924f2a7cd411
With gLucid protoc is installed in the base system, by renaming
our version there will be no confusion about which compiler is
being used.
Change-Id: Id6900baacc7d57abee5dc5f694b013d7a42b35c6
This allows one to declare a meta-package that depends on a list
of modules. This is extremely useful for vendor provided prebulit
libraries where there is a big list of libraries/binaries to include.
Specifying that list in multiple places would be error prone and
eventually lead to very annoying bug hunts.
With a fake package, one does:
LOCAL_MODULE := my_fake_package
LOCAL_REQUIRED_MODULES := <list of required module names>
LOCAL_MODULE_TAGS := optional
include $(BUILD_PHONY_PACKAGE)
Change-Id: Idcfe91f6f2d6d886aba094981a70690e5a808bfc
Signed-off-by: Dima Zavin <dima@android.com>
Merge commit 'e7874c430895b9a4e631c89f1e7729da9264d167' into gingerbread-plus-aosp
* commit 'e7874c430895b9a4e631c89f1e7729da9264d167':
Integrate dexpreopt into the build system.
Merge commit '1c4f64b59491eb8f3f7cb7b992a9fb06f2c475a1'
* commit '1c4f64b59491eb8f3f7cb7b992a9fb06f2c475a1':
[build] move dumpvar.mk include after select.mk include
Merge commit '1e80c294ffef26a6a7fe435411cd7557003b1d3f' into gingerbread-plus-aosp
* commit '1e80c294ffef26a6a7fe435411cd7557003b1d3f':
[build] move dumpvar.mk include after select.mk include
because the dumpvar target was included early in envsetup.mk, it was
not possible to use it to dump variables that were defined by makefiles
included later (like the toolchain variables in combo/select.mk).
move dumpvar.mk to after select.mk and javac.mk, so that shell functions
can be created using the toolchain build variables
Change-Id: I1c22025a8981fa91c183846fb28be26fb562adfb
Signed-off-by: Gary King <gking@nvidia.com>
Besides that, add enough magic to build everything tagged
as "shell_$(TARGET_SHELL)" and permit ash/mksh as not unusual
Change-Id: I36c0590ba49f45251d24dc179cb27c8368c3662a
Merge commit '065521be4fd6965058fbd599bb43fe13101fee7c' into gingerbread-plus-aosp
* commit '065521be4fd6965058fbd599bb43fe13101fee7c':
Backport ext4 support from master [DO NOT MERGE]
With the CL, "include $(BUILD_NATIVE_TEST)" to build native test;
"include $(BUILD_HOST_NATIVE_TEST)" to build a host native test.
Change-Id: Icdbbcf906cd4c5c35e65962897490052cd051102
http://b/issue?id=1505957
Before this change, if tools.jar can not be found, make reports error like:
make: *** No rule to make target `Please-install-JDK-5.0,-update-12-or-higher,-which-you-can-download-from-java.sun.com'...
With this change, the error message is much nicer:
build/core/config.mk:264: *** Error: could not find jdk tools.jar, please install JDK-5.0, update 12 or higher, which you can download from java.sun.com. Stop.
Change-Id: Id33cfb6ee7676d66f00d0a41d07c1f27abc6a402
With this change, you can add your .rs files to LOCAL_SRC_FILES.
The .rs files will be compiled by slang and the output .java files
will be compiled into the jar, while the generated .bc files will
be put into the final apk as raw resources.
Change-Id: Icde3d6139951d6d039b4b37376e72e1fc5c8b0d4
Merge commit '90cf34c72e204eb1d23f43d1fccbf2076e8ff67b'
* commit '90cf34c72e204eb1d23f43d1fccbf2076e8ff67b':
Support to build native libraries with prebuilt NDK
Merge commit 'f0f60cdd8f4f74b2480774887606afdebec8d891' into gingerbread-plus-aosp
* commit 'f0f60cdd8f4f74b2480774887606afdebec8d891':
Support to build native libraries with prebuilt NDK
Merge commit 'c9d118615161d8b94d4abedac86e3bdf510b251b'
* commit 'c9d118615161d8b94d4abedac86e3bdf510b251b':
Allow TARGET_ARCH to be set from BoardConfig.mk
Merge commit '0fd96df49ccecbf3628c95dabf3b94dfc27323e5'
* commit '0fd96df49ccecbf3628c95dabf3b94dfc27323e5':
Refactor Stripper. Allow a stripper other than SOSLIM to be specified
Merging from master because I'm bringing my maps API work into
gingerbread.
Fix and enable JarJar in Java builds.
java.mk contained a target to enable JarJar in Java builds, but it was
being bypassed. This change enabled JarJar as part of the build
process, and fixes a slight bug with the way it was set up.
Change-Id: I814e64eb30b41bf249a63d683c03040e2658fe0d
java.mk contained a target to enable JarJar in Java builds, but it was
being bypassed. This change enabled JarJar as part of the build
process, and fixes a slight bug with the way it was set up.
Change-Id: If24113f399a168939a1a1d0738c5df57caf8d05f
- envsetup.mk & config.mk: we define a new BUILD_OS and a minimal set
of things like BUILD_OUT to be able to use some local tools when
doing cross-compilation. This allows us to use the Linux version of
ACP when cross-compiling the tools to Windows.
- Makfile: include windows_sdk.mk when needed to build a Windows SDK.
- main.mk: support a win_sdk target (e.g. PRODUCT-sdk-win_sdk)
(Merge master Change I9d08d0df)
Construct the /system/etc/event-log-tags file by unioning together any
*.logtags files included in LOCAL_SRC_FILES throughout the system (with
appropriate error checking for dup tag numbers, etc.)
For java packages, generate a java source file from the logtags file for
that package that contains static integer constants for each tag name.
BoardConfig.mk typically defines TARGET_CPU_ABI to the name of the
native machine code CPU ABI supported by the target device. For example,
existing devices today use the value 'armeabi' corresponding to an
ARMv5TE instruction set with soft-float implementation.
This patch allows this file to also define TARGET_CPU_ABI2 to name
a secondary (minor) CPU ABI also supported by the device. This is useful
when the main ABI is ARMv7-A (identified as 'armeabi-v7a') which also
supports ARMv5TE. Such devices should have TARGET_CPU_ABI defined to
'armeabi-v7a' and TARGET_CPU_ABI2 defined to 'armeabi'.
TARGET_CPU_ABI2 will be translated into the ro.product.cpu.abi2 property
in build.prop. This value will be used by the PackageManager to handle
"fat-binaries" generated with the NDK.
to make not having a virtual destructor in classes with virtual
methods an error. I already fixed all code that had this problem,
so now it's a matter of turning the option on.
Also, as long as we don't have any C-specific options, it's
probably best to copy the CPP flags from the C flags. We can
always break them out later.
Merge commit 'e41accf68eedfd17bc569aee8480cf8c48d82e61'
* commit 'e41accf68eedfd17bc569aee8480cf8c48d82e61':
Pass compiler flags for C++ too, and add a flag that enables warnings about missing virtual destructors
This allows TARGET_ARCH_VARIANT to be set by the vendor before we choose the
architecture in core/combo/select.mk.
Also add a primitive armv7-a.mk for turning on hardware floating point.
Use zlib's minigzip utility, built as part of our source tree, instead of
whatever installation of GNU gzip happens to be on the user's machine.
Using zlib's deflater, which is nicely available as a library (unlike
GNU gzip's deflater) will ultimately let us do binary patches to the
boot and recovery images.