[LinuxBIOS] [PATCH] superiotool: Make --version actually work correctly

Ulf Jordan jordan at chalmers.se
Sat Oct 6 18:24:35 CEST 2007


On Sat, 6 Oct 2007, Ulf Jordan wrote:

> On Sat, 6 Oct 2007, Robinson Tryon wrote:
>
>> What about pulling the version directly out of SVN at build time?  Like this:
>>
>> svn info | sed -n 's/.*Revision: \([0-9]*\)/\1/ p'
>>
>> As long as the Makefile lives at the top level of the project, this
>> value should always reflect the latest commit in the current checkout.
>
> That looks like a good solution.

Attached is the much shorter patch using Robinson's suggestion to get
the svn revision number as the superiotool version number.

/ulf
-------------- next part --------------
Set the superiotool version number from svn.

Signed-off-by: Ulf Jordan <jordan at chalmers.se>

Index: superiotool.c
===================================================================
--- superiotool.c	(revision 2828)
+++ superiotool.c	(working copy)
@@ -167,12 +167,7 @@
 
 static void print_version(void)
 {
-	char tmp[80];
-
-	strncpy((char *)&tmp,
-		(const char *)&SUPERIOTOOL_VERSION[6],
-		strlen(SUPERIOTOOL_VERSION) - 8);
-	printf("superiotool r%s\n", (char *)&tmp);
+	printf("superiotool r" SUPERIOTOOL_VERSION "\n");
 }
 
 int main(int argc, char *argv[])
Index: superiotool.h
===================================================================
--- superiotool.h	(revision 2828)
+++ superiotool.h	(working copy)
@@ -29,7 +29,7 @@
 #include <getopt.h>
 #include <sys/io.h>
 
-#define SUPERIOTOOL_VERSION "$Rev$"
+#include "version.h"
 
 #define USAGE "Usage: superiotool [-d] [-D] [-V] [-v] [-h]\n\n\
   -d | --dump            Dump Super I/O registers\n\
Index: Makefile
===================================================================
--- Makefile	(revision 2828)
+++ Makefile	(working copy)
@@ -32,6 +32,13 @@
 
 all: $(PROGRAM)
 
+superiotool.o: version.h
+
+version.h: *.c superiotool.h
+	svn info \
+	| sed -n 's/.*Revision: \([0-9]*\)/\1/ p' \
+	| sed 's/.*/#define SUPERIOTOOL_VERSION "&"/' >$@
+
 $(PROGRAM): $(OBJS) superiotool.h
 	$(CC) $(CFLAGS) -o $(PROGRAM) $(OBJS)
 
@@ -39,7 +46,7 @@
 	$(INSTALL) $(PROGRAM) $(PREFIX)/bin
 
 clean:
-	rm -f $(PROGRAM) *.o
+	rm -f $(PROGRAM) *.o version.h
 
 .PHONY: all install clean
 


More information about the coreboot mailing list