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 $$@