armv7-a build: allow for board customization of CPU/FPU target

to cover the entire gamut of CPU and FPU compilation types possible
with ARMv7 (uniprocessor vs SMP, no-FPU vs VFPv3 vs Neon, A8 work-
arounds required vs unnecessary), the compilation codepath needs to
be specified by the BoardConfig.mk to ensure that the OS matches the
target hardware.

add TARGET_ARCH_VARIANT_FPU, TARGET_ARCH_VARIANT_CPU and
TARGET_CPU_SMP makefile variables to allow for target-directed
compilation flags.

Change-Id: I7cc6b8b5e765ebefc0eecd75800aefe8c39d8846
Allow a device to generically define its own headers

We have a few cases of devices including specific versions of projects
just because of modified headers (msm_mdp.h comes to mind), and I just
had enough of ifdeffing header files for specific cases (the P990 needs
a lot of these).
Now... if a target defines a TARGET_SPECIFIC_HEADER_PATH, any headers in
there will take precedence over the standard ones; for example, on the
p990, I have

TARGET_SPECIFIC_HEADER_PATH := device/lge/p990/include

which makes, for example, the
device/lge/p990/include/hardware_legacy/AudioHardwareInterface.h be
used instead of
hardware/libhardware_legacy/include/hardware_legacy/AudioHardwareInterface.h
whenever a source file uses <hardware_legacy/AudioHardwareInterface.h>

Change-Id: I41b62668b60e3f62a6ebd3738d8d2675103a81e6a
Initial support for building boot images and cwm recovery.

Conflicts:

	core/Makefile
add support for overriding build.prop settings.

Change-Id: Ie4224d608b7bcb0c2087bd77bc954f8f5f9b6495

Conflicts:

	core/Makefile
Added support for overriding of device asserts.

Conflicts:

	core/Makefile
	tools/releasetools/ota_from_target_files
Force insecure mode for userdebug builds.
build: Add per-platform "barrier" makefiles
initial changes for bsgX (based on eXistZ)

(also fixes a previous conflict I didn't resolve)
Don't build the extra input methods.
ota: Force correct permissions for init.d
Disable 'dataRoaming' by default

Per the T.C GSM-BTR-1-5154, the
default data-roaming should be turned off

Change-Id: I6e2cd248fea0e52068c9d08f07192476e4d2f6e4
CRs-Fixed: 327043
Set JVM -Xmx to 512M

In fact, so large JVM memory is not needed.

With 512M setting, my machine with 2G memory and 32 bit OS runs well.

Change-Id: Ib45e9d30af10315adf0f1a4216e09be069260086
build/core: Bring back support for TARGET_EXTRA_CFLAGS

This commit re-introduces support for setting TARGET_EXTRA_CFLAGS
(such as -march=SomethingNotCompatibleWithOtherBoards) in board
specific config files.

Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
build: Add kernel-building as part of the process

Kernel image integration is now done in the build system. The
"one true way" of doing this is to download the kernel source
into kernel/TARGET_BOOTLOADER_NAME (by usage of the cm.dependencies
mechanism or otherwise), and defining the TARGET_KERNEL_CONFIG
variable in the device's AndroidBoard makefile

If the kernel's location doesn't match the automagic location
(multi-device kernel source, for instance), TARGET_KERNEL_SOURCE
can be used to specify a kernel path (i.e.,
"TARGET_KERNEL_SOURCE := kernel/shared-whatever")

If the device requires out-of-kernel-tree modules to be built,
the TARGET_KERNEL_MODULES variable can be used, pointing to a
_make target_ that will build and install such modules. Definition
of such a target is the device author's responsibility, the only
restriction is that it is a normal makefile recipe (example
below)

Optionally (or as an alternative), a prebuilt binary can also be
defined at AndroidBoard, by usage of the TARGET_PREBUILT_KERNEL
variable. This binary will be used if the kernel source is absent
(or undefined).

A minimal AndroidBoard.mk should look something like this:

TARGET_KERNEL_CONFIG := cyanogenmod_<device>_defconfig
TARGET_PREBUILT_KERNEL := device/<vendor>/<device>/kernel

To include, for example, the TI WLAN modules, this can be used:

-----------------------------
TIWLAN_MODULES:
       make -C hardware/ti/wlan/wl1283/platforms/os/linux/ KERNEL_DIR=$(KERNEL_OUT) ARCH="arm" CROSS_COMPILE="arm-eabi-" TNETW=1273 RANDOM_MAC=n REPORT_LOG=n
       mv hardware/ti/wlan/wl1283/platforms/os/linux/tiwlan_drv.ko $(KERNEL_MODULES_OUT)
       make -C hardware/ti/wlan/wl1283_softAP/platforms/os/linux/ KERNEL_DIR=$(KERNEL_OUT) ARCH="arm" CROSS_COMPILE="arm-eabi-" TNETW=1273 REPORT_LOG=n
       mv hardware/ti/wlan/wl1283_softAP/platforms/os/linux/tiap_drv.ko $(KERNEL_MODULES_OUT)

TARGET_KERNEL_MODULES := TIWLAN_MODULES
---------------------------

Change-Id: I8634fa4c788a42dc6f62e62ca170825b66db126a
build: Fix kernel module building on Darwin/OSX

Darwin/OSX build host does not have module-init-tools which is
required to generated modules.dep file. Switch to modules.order
file marker which is always generated instead.

Change-Id: I20c0fccd905fa668202c3e7284a8778db3728a65
kernel: Change path to kernel/<vendor>/<device>

Derive the kernel path from the device's own path (just replace "device"
with "kernel")

Change-Id: Idd44a0489e1ce280adf5ec4d9cfe2385c75dd115
kernel: Improve support for non-arm architectures

Remove hardwired references to the ARM arch and toolchains, and replace
them with the respective android build variables

Change-Id: Iae3eb548ca1d58ac808b5fa430d415283a809106
kernel: Fix ARM building

The default android ARM compiler, arm-androideabi-, does NOT work
for the Linux kernel. Special-case the ARM architecture to target
the ARM_EABI_TOOLCHAIN path directly

Change-Id: Ib672c99f114cb89d5fda3343d4dc68810d042d35
kernel: Allow build-time overload of ARM kernel compiler

Since ARM uses a default toolchain to build userspace that isn't
compatible with the Linux kernel, changing the global TARGET_TOOLS_PREFIX
variable does not work for ARM kernels.

Use ARM_CROSS_COMPILE=CROSS_COMPILE=/path/to/chain for this case.

This is not meant for use in board configuration files, and should
always be accompanied by a similar TARGET_TOOLS_PREFIX overload
for the Android userspace

Change-Id: Idf60705a9cfb625a6b28647ca59812cc4d4317c6
Set path to Linaro based off aospx toolchain placement

Change-Id: I35de392016a1c2510764424eb191911bb2092a7d