Add support for per-directory/per-library/per-file includes, and per-library CPP flags

The new variables that can be used in sub.mk are:

  1) For includes: incdirs-y, incdirs-lib-y, incdirs-<filename>-y

For example, suppose core/lib/libfoo/sub.mk contains the following:

  # All source files declared in $(srcs-y) in this sub.mk will
  # have -Icore/lib/libfoo/include
  incdirs-y := include

  # All source files for the current library $(libname) will be built
  # with -Icore/lib/libfoo/include/baz (even files that are in other
  # directories)
  incdirs-lib-y := include/baz

  # In addition to the above, bar.c will be compiled with
  # -Icore/lib/libfoo/include/bar
  incdirs-bar.c-y := include/bar

  2) For CPP flags: cppflags-lib-y

For example, to add -DLIBFOO to all the source files that belong to the same
library, add this to any of the sub.mk files:

  cppflags-lib-y := -DLIBFOO

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU virt platform)
diff --git a/mk/compile.mk b/mk/compile.mk
index d4eb259..b4e7e31 100644
--- a/mk/compile.mk
+++ b/mk/compile.mk
@@ -57,6 +57,7 @@
 comp-dep-$2	:= $$(dir $2).$$(notdir $2).d
 comp-cmd-file-$2:= $$(dir $2).$$(notdir $2).cmd
 comp-sm-$2	:= $(sm)
+comp-lib-$2	:= $(libname)
 
 cleanfiles := $$(cleanfiles) $$(comp-dep-$2) $$(comp-cmd-file-$2) $2
 
@@ -81,7 +82,10 @@
 			 $$(cppflags-remove-$2), \
 	      $$(nostdinc) $$(CPPFLAGS) \
 	      $$(addprefix -I,$$(incdirs$$(comp-sm-$2))) \
-	      $$(cppflags$$(comp-sm-$2)) $$(cppflags-$2))
+	      $$(addprefix -I,$$(incdirs-lib$$(comp-lib-$2))) \
+	      $$(addprefix -I,$$(incdirs-$2)) \
+	      $$(cppflags$$(comp-sm-$2)) \
+	      $$(cppflags-lib$$(comp-lib-$2)) $$(cppflags-$2))
 
 comp-cmd-$2 = $$(CC) $$(comp-flags-$2) -c $$< -o $$@