summaryrefslogtreecommitdiff
path: root/Kbuild
diff options
context:
space:
mode:
authorAnas Nashif <anas.nashif@intel.com>2015-08-28 15:04:39 -0400
committerAnas Nashif <anas.nashif@intel.com>2016-02-05 20:15:33 -0500
commitbdcf909978dfbeca2718610afa9835a040827f9f (patch)
tree286fa4973b1936a6831baed282a806dcc55b3ba6 /Kbuild
parentfbed1e4bcdd290e057e6cbf88ad413df1a67d129 (diff)
Kbuild: Check if offsets.h was updated
Do not rebuild offsets.h if it was not changed. Change-Id: Idd7a4c0f1dad0575f09b84de1f47a92d20c05e70 Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Diffstat (limited to 'Kbuild')
-rw-r--r--Kbuild21
1 files changed, 18 insertions, 3 deletions
diff --git a/Kbuild b/Kbuild
index cb97e73d4..b90297862 100644
--- a/Kbuild
+++ b/Kbuild
@@ -92,8 +92,23 @@ cmd_cc_o_c_1 = $(CC) $(KBUILD_CFLAGS) $(OFFSETS_INCLUDE) -c -o $@ $<
arch/$(SRCARCH)/core/offsets/offsets.o: arch/$(SRCARCH)/core/offsets/offsets.c
$(Q)mkdir -p $(dir $@)
- $(call if_changed_rule,cc_o_c_1)
+ $(call if_changed,cc_o_c_1)
+
+
+define offsetchk
+ $(Q)set -e; \
+ $(kecho) ' CHK $@'; \
+ mkdir -p $(dir $@); \
+ $(GENOFFSET_H) -i $(1) -o $@.tmp; \
+ if [ -r $@ ] && cmp -s $@ $@.tmp; then \
+ rm -f $@.tmp; \
+ else \
+ $(kecho) ' UPD $@'; \
+ mv -f $@.tmp $@; \
+ fi
+endef
-$(obj)/include/generated/offsets.h: $(GENOFFSET_H) arch/$(SRCARCH)/core/offsets/offsets.o include/config/auto.conf FORCE
- $(Q)$(GENOFFSET_H) -i arch/$(SRCARCH)/core/offsets/offsets.o -o $@
+include/generated/offsets.h: $(GENOFFSET_H) arch/$(SRCARCH)/core/offsets/offsets.o \
+ include/config/auto.conf FORCE
+ $(call offsetchk,arch/$(SRCARCH)/core/offsets/offsets.o)