build: Fix cflags for QC targets

Change-Id: I2281bec3afb4d80e80845718d880dc24ef7baf32
build: Include an extra device.mk

Change-Id: I4373f78f57c81e46affc2f6a6bc854bf4c3d00db
qcom_utils: Make "is-vendor-board-platform,XX" depend on BOARD_HAS_XX_HARDWARE

Prevent qc's code from wrongly kicking in for AOSP-derived
configurations
build: Clean up use of vendor/extra

 * extra_config.mk is not needed anymore
 * Include BoardConfigExtra.mk if available

Change-Id: Icd0db0852ceee5cb5c701c9a40b829e1f3ebd69e
build: qcom: Set QCOM_*_PATH variables for hardware/qcom-* projects

This consolidates a bunch of one-off logic scattered throughout the
code base.  Usage in Android.mk files is trivial:

At top level, use e.g. "ifeq ($(call my-dir),$(QCOM_AUDIO_PATH))".
This works for all variants, including non-variants (i.e. AOSP).

Within subdirs, use e.g. hardware/qcom/audio => $(QCOM_AUDIO_PATH)

Change-Id: Iee2497ea9a7efeb4ae9e861b84c532b19da7b69d

build: Introduce project pathmap and use it for qcom variants

The project pathmap tracks the path to the top level of a project.  The
following functions are provided:

 * project-set-path adds an entry.
 * project-set-path-variant adds a "variant" entry.
 * project-path-for retrieves an entry.

To use as a guard in Android.mk:

  ifeq ($(call my-dir),$(call project-path-for,projectname))

To use for include paths in Android.mk:

  LOCAL_C_INCLUDES += $(call project-path-for,projectname)/...

Set project pathmap for qcom project variants.

Change-Id: I8dceca72a1ba80fc7b1830c5ab285d444f530457

build: Set QCOM variants for non-QCOM_HARDWARE defined targets

* Nexus devices and others typically do not define the QCOM_HARDWARE
  flag, so the variant path should always default to the AOSP variant.
* Unconditionally set the variant to the AOSP HAL by default.

Change-Id: I714170897128f92718af266366cfcbf3136e8981
build: Automatically set QCOM audio, display, media variants

* Device platform should determing the HAL that ought to be used. This
  commit forces QCOM_HARDWARE to select the -caf HAL variants, which
  are then broken down by platform within the variant path.

Change-Id: I6fc7a3def7b93112f034a3b89552f302727cdbf8
build: Enable QCOM_BSP, QC_AV with QCOM_HARDWARE

Change-Id: Ibf9dd35272521109fea52e46bacf6e1e3074ed6a
pathmap: Point QC HAL pathmaps directly to the source

Directly map to the actual HAL directory, including the
board platform. This lets project-path-for point directly
to the respective HALs.

Change-Id: Ic4ed61bbdea9d0b5683502bf84a8410e76858527
build: Enable QCOM_BSP, QC_AV with QCOM_HARDWARE

Change-Id: Ibf9dd35272521109fea52e46bacf6e1e3074ed6a
Enable QCOM_BSP_LEGACY flag for pre-8974 targets

Change-Id: I895f1b1cbad0d260e1bca87ccb61e6194de023fd