Adding version extension according to ChangeLog CVS revision
authorvrokas <vrokas@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 24 Jul 2004 09:30:14 +0000 (09:30 +0000)
committervrokas <vrokas@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 24 Jul 2004 09:30:14 +0000 (09:30 +0000)
* src/Makefile.in (target all): added dependency 'version.h'
* (rule version.h): added rule to create version.h from ChangeLog
* src/version.awk: AWK script to create version.h
* src/SDCCdwarf2.c (dwWriteModule),
* src/SDCCglue.c (initialComments),
* src/SDCCmain.c (printVersionInfo): modified to write after
version string the version extension number,
* src/SDCCutil.c: included "version.h"
* (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
number,
* src/SDCCutil.h: added prototype for getBuildNumber

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3390 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/Makefile.in
src/SDCCdwarf2.c
src/SDCCglue.c
src/SDCCmain.c
src/SDCCutil.c
src/SDCCutil.h
src/version.awk [new file with mode: 0644]

index 8dcdf7feac9e8f02d915ebefe4eea19befc06e4d..226d81e6cb16e055ec6c84f34d49c686b090a20a 100644 (file)
@@ -44,7 +44,7 @@ TARGET                = $(PRJDIR)/bin/sdcc$(EXEEXT)
 
 # Compiling entire program or any subproject
 # ------------------------------------------
-all: checkconf $(TARGET)
+all: checkconf version.h $(TARGET)
 
 $(PORT_LIBS): FORCE 
        $(MAKE) -C `dirname $@`
@@ -117,6 +117,9 @@ SDCCy.c: SDCC.y
 SDCClex.c: SDCC.lex SDCCy.h
        $(LEX) -t $< >$@
 
+version.h: ../ChangeLog
+       $(AWK) -f version.awk $< > $@
+
 .y.c:
        rm -f $*.cc $*.h
        $(YACC) -d $<
index a84afe26d32be3b23669e9d9ac4aca91048e3b3b..258c74486e9779afe96c730ffc03d759a5b6ad19 100644 (file)
@@ -2866,12 +2866,15 @@ int dwWriteType(structdef *sdef, int block, int inStruct, char *tag)
 int dwWriteModule(char *name)
 {
   dwtag * tp;
+  char verid[125];
   
   dwModuleName = Safe_strdup (name);
+  
+  sprintf(verid, "SDCC version %s #%s", SDCC_VERSION_STR, getBuildNumber());
     
   tp = dwNewTag (DW_TAG_compile_unit);
-  dwAddTagAttr (tp, dwNewAttrString (DW_AT_producer, "SDCC version "
-                                            SDCC_VERSION_STR));
+  dwAddTagAttr (tp, dwNewAttrString (DW_AT_producer, verid));
+
   dwAddTagAttr (tp, dwNewAttrConst (DW_AT_language, DW_LANG_C89));
 
   dwAddTagAttr (tp, dwNewAttrString (DW_AT_name, fullSrcFileName));
index 3e2fb4b61f04432b67575209a4a0628341bff286..c4acdfe5e96c3322465e7c106d989cc653095cbc 100644 (file)
@@ -1426,7 +1426,7 @@ initialComments (FILE * afile)
   time_t t;
   time (&t);
   fprintf (afile, "%s", iComments1);
-  fprintf (afile, "; Version " SDCC_VERSION_STR " (%s)\n", __DATE__);
+  fprintf (afile, "; Version " SDCC_VERSION_STR " #%s (%s)\n", getBuildNumber(), __DATE__);
   fprintf (afile, "; This file generated %s", asctime (localtime (&t)));
   fprintf (afile, "%s", iComments2);
 }
index 7427f55591e52774e0782a9178a47253241fd149..9aa914aa0f33f814474c63bb169e409ced7ead42 100644 (file)
@@ -400,6 +400,7 @@ _findProcessor (int argc, char **argv)
   /* no error if processor was not specified. */
 }
 
+
 /*-----------------------------------------------------------------*/
 /* printVersionInfo - prints the version info        */
 /*-----------------------------------------------------------------*/
@@ -417,7 +418,7 @@ printVersionInfo (void)
 #ifdef SDCC_SUB_VERSION_STR
           "/" SDCC_SUB_VERSION_STR
 #endif
-           " (" __DATE__ ")"
+           " #%s (" __DATE__ ")"
 #ifdef __CYGWIN__
           " (CYGWIN)\n"
 #elif defined __MINGW32__
@@ -431,7 +432,7 @@ printVersionInfo (void)
 #else
           " (UNIX) \n"
 #endif
-    );
+    , getBuildNumber() );
 }
 
 static void
index d100aa463d54e407c00ad1f9a1504dc66524d440..32c7bf74d4f2af67886c93850f24825ed1ab7257 100644 (file)
@@ -36,6 +36,8 @@
 #include "findme.h"
 #endif
 
+#include "version.h"
+
 /** Given an array of name, value string pairs creates a new hash
     containing all of the pairs.
 */
@@ -286,6 +288,16 @@ char *strncatz(char *dest, const char *src, size_t n)
 }
 
 
+/*-----------------------------------------------------------------*/
+/* getBuildNumber - return build number                            */
+/*-----------------------------------------------------------------*/
+const char *getBuildNumber(void)
+{
+  return (SDCC_BUILD_NUMBER);
+}
+
+
+
 #if defined(HAVE_VSNPRINTF) || defined(HAVE_VSPRINTF)
 size_t SDCCsnprintf(char *dst, size_t n, const char *fmt, ...)
 {
index e5f64d74ad35c50e3bfbcc802adb81b688731cfd..d8956d49322aa078b6daed1a9f4f3b7eb00b0eaf 100644 (file)
@@ -85,6 +85,9 @@ char *strncpyz(char *dest, const char *src, size_t n);
  */
 char *strncatz(char *dest, const char *src, size_t n);
 
+/* return SDCC build number */
+const char *getBuildNumber(void);
+
 /* snprintf, by hook or by crook. */
 size_t SDCCsnprintf(char *, size_t, const char *, ...);
 
diff --git a/src/version.awk b/src/version.awk
new file mode 100644 (file)
index 0000000..b7a1d06
--- /dev/null
@@ -0,0 +1,26 @@
+BEGIN {
+print "/*"
+print " * version.h"
+print " * controllong build version number"
+print " *"
+print " * Created automatically with version.awk script"
+print " *"
+print " */"
+print ""
+print "#ifndef __VERSION_H__"
+print "#define __VERSION_H__"
+print ""
+
+FS="[ \t.]"
+}
+
+/Revision/ { printf "#define SDCC_BUILD_NUMBER\t\"%s\"\n", $3 }
+
+END {
+print ""
+print "#ifndef SDCC_BUILD_NUMBER"
+print "#define SDCC_BUILD_NUMBER       \"0\""
+print "#endif"
+print ""
+print "#endif"
+}