* 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
# Compiling entire program or any subproject
# ------------------------------------------
-all: checkconf $(TARGET)
+all: checkconf version.h $(TARGET)
$(PORT_LIBS): FORCE
$(MAKE) -C `dirname $@`
SDCClex.c: SDCC.lex SDCCy.h
$(LEX) -t $< >$@
+version.h: ../ChangeLog
+ $(AWK) -f version.awk $< > $@
+
.y.c:
rm -f $*.cc $*.h
$(YACC) -d $<
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));
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);
}
/* no error if processor was not specified. */
}
+
/*-----------------------------------------------------------------*/
/* printVersionInfo - prints the version info */
/*-----------------------------------------------------------------*/
#ifdef SDCC_SUB_VERSION_STR
"/" SDCC_SUB_VERSION_STR
#endif
- " (" __DATE__ ")"
+ " #%s (" __DATE__ ")"
#ifdef __CYGWIN__
" (CYGWIN)\n"
#elif defined __MINGW32__
#else
" (UNIX) \n"
#endif
- );
+ , getBuildNumber() );
}
static void
#include "findme.h"
#endif
+#include "version.h"
+
/** Given an array of name, value string pairs creates a new hash
containing all of the pairs.
*/
}
+/*-----------------------------------------------------------------*/
+/* 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, ...)
{
*/
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 *, ...);
--- /dev/null
+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"
+}