Add ext2, ext3, and vfat to releasetools

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

Change-Id: I0026a1d3ae5d432db10150d1a15f7bc8e7a6054b
CWR does not support writing a partition from memory. Use /tmp to store the extracted file, then write it.
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
ota: Build uboot bootable images when necessary
build: allow use of openjdk and other versions of make

Change-Id: I2e3c7f89ce51888afb9cda30eeaf6d757b057e2e
Allow Device specific ramdisk address

Change-Id: If0bb3d3a2b51f87a92c0b657fbc6d0277ce53532
Allow OTA mkbootimg to include ramdiskaddr if defined

Change-Id: Ia52ea1db06fb99d0f4831ab5045bd4e10ec3d7a8
Better handling of ramdisk during make

make clobber used to call rm -rf out/
so if out is a soft link to i.e. /tmp/out
the soft link is deleted instead the content
so i changed the makefile to rm -rf out/*

Change-Id: Id1991161617da8ec34307a30412c134e31f589b4
Extract uboot image creation from core/Makefile

http://memegenerator.net/instance/12495768

This change utilizes BOARD_CUSTOM_BOOTIMG_MK to extract out the Uboot boot and
recovery image generation out into it's own file (approx 130 lines).

This should:
    * Clean up the already huge Makefile and the keep ifdeffyness down
    * Make sure Uboot changes don't effect other builds
    * Extract a lot of code that is only for 3 devices

This depreciates BOARD_USES_UBOOT but BOARD_USES_UBOOT_MULTIIMAGE is still valid.

Boards who use uboot boot images should remove BOARD_USES_UBOOT and add
  BOARD_CUSTOM_BOOTIMG_MK := device/common/uboot-bootimg.mk
to their BoardConfig.mk
(location of the makefile is not finalized)

Change-Id: I90505a99cbcda11731ac3318cfe7f76b4bf6e1c7
Include the primary bootloader and ramdisk in the BOOT/

This will copy over the primary bootloader (if it exists and defined)
over to the zip_root/BOOT.

This is required by encore as we need to make sure we have the correct
primary bootloader to go with the kernel.

Change-Id: I3fef417011b9c7a63109d10fc8e6794e58f73c31
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
Revert "build: Inline kernel building as a buildtime task (rmcc)"

This reverts commit c0d48050dbc4c12f3b9586d98ac3128086646c93.
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: 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
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 TARGET_KERNEL_MODULES to overwrite kernel modules

This is necessary to use compat-wireless since it needs to build a newer
version of cfg80211 (and sometimes mac80211) than the kernel sources version.
There are probably other instances of this type of need.

Change-Id: Ib5bf818286bc20987d8b9f9480a43f3e7690e239
kernel.mk: make use of ccache when requested

Change-Id: I9b6e28711bd5f590a76ac2b62a50b1d2de014e3e