Index: firmware/Makefile |
diff --git a/firmware/Makefile b/firmware/Makefile |
index 2dc804801a37818c431a85c1f7152e4a31c436ee..952a1b6bd70bdd076ec50143d1faa35f9bc44eba 100644 |
--- a/firmware/Makefile |
+++ b/firmware/Makefile |
@@ -39,12 +39,22 @@ STUB_SRCS = \ |
./stub/tlcl.c \ |
./stub/utility_stub.c |
-ALL_SRCS = ${LIB_SRCS} ${STUB_SRCS} |
+ALL_SRCS = ${LIB_SRCS} ${STUB_SRCS} version.c |
-test : $(FWLIB) |
+test : $(FWLIB) update-version |
$(CC) $(CFLAGS) $(INCLUDES) -o $(BUILD_ROOT)/a.out \ |
$(TESTDIR)/main.c $(FWLIB) |
+# This is executed at every make, to see if anything has changed |
+update-version : |
+ find \( -name '*.[ch]' -o -name 'Makefile*' \) -a \! -name version.c \ |
+ | sort | xargs cat | md5sum | cut -c 25-32 > x.tmp |
+ echo "char* VbootVersion = \"VBOOv=$$(cat x.tmp)\";" > version.tmp |
+ cmp -s version.tmp version.c || \ |
+ ( echo "** Updating version.c **" && \ |
+ cp version.tmp version.c ) |
+ |
+ |
include ../common.mk |
$(FWLIB) : $(ALL_OBJS) |