Martin L Roth has uploaded this change for review.

View Change

Makefile: Update build for include-what-you-use

This patch saves the output of the IWYU build into $(obj)/iwyu.txt. It
will also automatically adds -k to the MAKEFLAFGS when IWYU is selected,
so that the build doesn't halt after the first operation.

When IWYU is not selected, there is no change to the build.

This will allow us to create an automated IWYU build on jenkins.

Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: I0ea300d4c64bb923e9f7cc0e595885c3006ec3ca
---
M Makefile
1 file changed, 6 insertions(+), 1 deletion(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/92/77192/1
diff --git a/Makefile b/Makefile
index 9f0b679..fac1dca 100644
--- a/Makefile
+++ b/Makefile
@@ -316,6 +316,11 @@
# Eliminate duplicate mentions of source files in a class
$(foreach class,$(classes),$(eval $(class)-srcs:=$(sort $($(class)-srcs))))

+ifeq ($(CONFIG_IWYU),y)
+MAKEFLAGS += -k
+SAVE_IWYU_OUTPUT := 2>&1 | grep "should\|\#include\|---\|include-list\|^[[:blank:]]\?\'" | tee -a $$(obj)/iwyu.txt
+endif
+
# Build Kconfig .ads if necessary
ifeq ($(CONFIG_ROMSTAGE_ADA),y)
romstage-srcs += $(obj)/romstage/$(notdir $(KCONFIG_AUTOADS))
@@ -382,7 +387,7 @@
@printf " CC $$$$(subst $$$$(obj)/,,$$$$(@))\n"
$(CC_$(1)) \
-MMD $$$$(CPPFLAGS_$(1)) $$$$(CFLAGS_$(1)) -MT $$$$(@) \
- $(3) -c -o $$$$@ $$$$<
+ $(3) -c -o $$$$@ $$$$< $(SAVE_IWYU_OUTPUT)
end$(EMPTY)if
en$(EMPTY)def
end$(EMPTY)if

To view, visit change 77192. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I0ea300d4c64bb923e9f7cc0e595885c3006ec3ca
Gerrit-Change-Number: 77192
Gerrit-PatchSet: 1
Gerrit-Owner: Martin L Roth <gaumless@gmail.com>
Gerrit-MessageType: newchange