clockwwork recovery build fixes
fix BOARD_CUSTOM_BOOTIMG_MK
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
ota: Remove cruft we don't care about

Skip the date check (downgrade to your content), and don't include
recovery in otapackages.
fix up ota_from_target_files symlink detection.
Add ext2, ext3, and vfat to releasetools

Support some non-standard partition that may be found in recovery.fstab

Change-Id: I0026a1d3ae5d432db10150d1a15f7bc8e7a6054b
build: allow use of openjdk and other versions of make

Change-Id: I2e3c7f89ce51888afb9cda30eeaf6d757b057e2e
Add recoveryzip target. Import recovery building/porting tools.
add support for overriding build.prop settings.

Change-Id: Ie4224d608b7bcb0c2087bd77bc954f8f5f9b6495

Conflicts:

	core/Makefile
CWR does not support writing a partition from memory. Use /tmp to store the extracted file, then write it.
remove unused BOARD_USES_COMBINED_RECOVERY

Change-Id: I79520c510488d63d469b0d1a3a099420f7de1fe6
add support for custom releasetools
create a target for utilities
Fix up the autoinclusion rules for the utilities and recoveryimage target.
Allow override of device asserts, including multi-device support.

Set in board file with TARGET_OTA_ASSERT_DEVICE.
(cherry-picked from commit 0f452f21fc9323b9d1fe746161761cf40aaa5030)

Change-Id: I3d06bdc0e3e26bde0c0e646accd050364f9713b9

Conflicts:

	core/Makefile
	tools/releasetools/ota_from_target_files
Fix up the recovery.fstab for adv recovery

Add options found in cm7 to allow for more complex recovery.fstabs with
multiple fstypes.

Change-Id: Id249c8f6766a1490a80fb3bd17bd7aa4e7dd9f2f
Allow low memory machine to build with a smaller java emulator.

This allows the default for 64 bit machines and adjusts the size
on lower memory machines. If you are on 32 bit you can't build
without this change, even using pae kernel with high mem.

Patch 5: found a better way to do this. Removed import string.
Change-Id: Iac1ef3b5db96029ca62897f6b64646bf6224e752
build: Realign product libraries with corresponding applications

VideoEditor requires a build to call the full_base, but the libraries
are called in generic_no_telephony. This patch places the library
packages in the same product specification as the application using
them.
build libjni_pinyinime together with PinyinIME

PinyinIME needs libjni_pinyinime to work, so build them together.
Otherwise it FCs because the JNI lib is missing.

Change-Id: I5027fa588e5bc49636914ff5c8d305280aaa4936
build: Inline kernel building as a buildtime task

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 BoardConfig 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 BoardConfig, by usage of the TARGET_PREBUILT_KERNEL
variable. This binary will be used if the kernel source is absent
(or undefined).

A minimal BoardConfig.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