build: Allow building with OpenJDK

Change-Id: I6348bc1187240729f75f50d7ef91802c68e7788b
Some changes added to compile and run with Java 6 and Java 7.

  - correction of errors with Javac 6:
    - target 1.5 and source empty.
  - correction of errors with Javadoc 7:
    - strange behavior when duplicate classes are given.

Change-Id: Ib814ede143f7799ef18e0fb1b733547519b8b0e5

Conflicts:

	core/main.mk

Change-Id: Ief980703f0ff747166c1ec79ad748c09d5979c01
build: Add bacon target, and mka/brunch/breakfast aliases
Makefile: Fix target display

Change-Id: I07e60e6b9a6b09d798ca50c6295072828b643a50
ota_from_target_files: Don't update recovery image
build: Inline kernel building as a buildtime task
By arcee

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.mk typos

Change-Id: I5980d6a30dd66741a561a95e0dfba60a3ad0ef5d
envsetup: Add pushboot function

This function lets you push a file from your current OUT dir
for your current device. It root/remount the device, push the
file, and reboots it. Example: pushboot system/app/SystemUI.apk

Change-Id: I8a404323a4091e8502fbdd24198c66f1ac598192
build: Add Qualcomm's helper macros

 * This is used everywhere in Qualcomm's code. There's no reason we need
   to constantly replace it with uglier stuff in our Makefiles.

Change-Id: I0183a338470ec96a38f356a47bae65a0d3fb2c95
build: Add board platforms to qcom_utils

Change-Id: I85458167bf2b9c04b029d09b87bf791ff4cfd04d
build: Use common name for QCOM 7K boards.

This is needed to build QCOM HAL without external modifications. The
device would now have to specify msm7x27 or msm7x30 instead of
specifying the full name.

Patch Set 2: Add msm7x27a into the list.

Change-Id: I25018e397b5aad27fab5244731a574ae86752e17
Add new version to qcom_utils.mk

Change-Id: I1ca1532fd4968450715ecd0cca7729e0e6d507ef
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: I41b62668b60e3f62a6ebd3738d8d2675103a81e6
envsetup: set OUT_DIR to an absolute path always

OUT_DIR was set to $(TOPDIR)out previously,
but $(TOPDIR) was null, so it was a relative path.
This broke releasetools, inline kernel building, etc
since they require absolute paths.
Fix it so that it is set to $(shell readlink -f .)/out
if $(TOPDIR) is null.

Also remove hacks which checked if (OUT_DIR) was out
and changed it to $(ANDROID_BUILD_TOP)/out to workaround
the aforementioned problem.

Change-Id: I459a3b1325a1bbea0565cd73f6acf160d4ed9b39

Conflicts:
	core/base_rules.mk
	core/tasks/kernel.mk

Change-Id: I52a7a6024f0f2b708c230e53c0152ed138726cc1
envsetup: Set CUSTOM_BUILD environment variable

This is used to gate a few features, including backuptool

Change-Id: I02fee9e0765cca88c833bb0514762aa3b14642e3
build: Rename ota packages from custom to DJL4.4
build: Build with colors

Based on tpruvot/chirayudesai's commits, add some color to stdout
and but make it a little easier to customize. Colors are now mapped to
categories and can be edited in Makefile if you or your terminal's
background color do not like them. Defaults:

host stuff: yellow
target stuff: cyan
install/copy: green
filesystem/images: green
imports/exports/includes/notices: green
deletes: red
complete msg: bold green

Coloring can be disabled with "export BUILD_WITH_COLORS=0"

Change-Id: Idcfe9bbf925759f88425f914269855da05c5eef0
build: update qcom_utils.mk

This is a combination of 2 commits.

commit 65849f502ad3e16f6916ddc640d4305c36b7bebc
Author: Jake Weinstein <xboxfanj@msn.com>
Date:   Sat Sep 14 13:10:43 2013 -0500

    Build: update qcom_utils.mk

    Add build macro to determine Android Release

    Adding platform sdk version 18 for JB MR2.

    Change-Id: I79aa831ddd335bd14bd777506c210acc5d9960f1

commit 677d8efcb831b4b29c5bb5123897943870a55627
Author: andrew.boren <andrew.boren@gmail.com>
Date:   Sat May 18 22:15:13 2013 -0700

    qcom_utils: Add qsd8k to qcom platforms

    PS2: fix typo

    Change-Id: Id85569d1dd7be2f4c0620827da6d89e63b658aa9

Change-Id: I58d70c079c6ec2c76ab7fc169664f1e4c55fb552
kernel.mk: Use standard toolchain paths

Change-Id: I1225fd05dcedcff03a1cf1102841cbd010b609cf
core: Support GNU make 4.0 and any future releases

http://lists.gnu.org/archive/html/make-w32/2013-10/msg00021.html

Change-Id: Iaf6aa32e64269bf0368c20b0393e3fcfa540558d