build: allow adding kernel specific cflags

use TARGET_EXTRA_CFLAGS if available but allow using separate KERNEL_CFLAGS
this is for mako so i can tune the gcc4.7 built kernel for cortex-a15
while tuning the gcc4.6 built os for cortex-a9

Change-Id: I3a3410a99d19161254c297d8060ccee97ec51a68
kernel.mk: set KERNEL_OUT properly

It was hardcoded to $(ANDROID_BUILD_TOP)/$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ
which wouldn't exist if OUT_DIR_COMMON_BASE was set to use another dir
(e.g. ramdisk)

Fix it so that it now points to $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ
if OUT_DIR is not out

Change-Id: I1bf767d86548e41270d9cbb8f0c00512708501c5
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
kernel: allow skipping the module build

kernels that dont need modules or have modules disabled can define
TARGET_KERNEL_NO_MODULES:=true to skip building them

Change-Id: I51f00e23f47bf3c9663ae9a553e9cbe0d7ef62b0
build: Add support for extra kernel build variables

 * This allows specifying a variant defconfig, and an selinux defconfig
   which are simply configuration fragments.

Change-Id: I66a458ae000312c947a49e8c2e91680d7bf61e6b
kernel: start building by default

now that we use kernel headers everywhere
prebuilt kernels just dont work anymore

can still force prebuilt with BUILD_KERNEL:=false
or lack of kernel source in tree

also added fallback defconfig {board}_defconfig

Change-Id: I152cbae9351c0c64134f9127e1a264b490004fa6
Make the kernel image format parametric instead of a chain of if/elses

Change-Id: I54bfcdecb8647f7bcf744e72b2de19fcf4e4e7ac