]> git.sur5r.net Git - cc65/commitdiff
Print the SVN version number when -V or --version is used.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 31 Aug 2009 17:17:18 +0000 (17:17 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 31 Aug 2009 17:17:18 +0000 (17:17 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4100 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/main.c
src/cc65/make/gcc.mak
src/cc65/make/watcom.mak
src/cc65/svnversion.h [new file with mode: 0644]

index abcd090bfd4fe21c306724191e8f7033c740b29d..ef8f648c03ac38eae7e2a7ea8e444919ab28b78b 100644 (file)
@@ -64,8 +64,9 @@
 #include "macrotab.h"
 #include "output.h"
 #include "scanner.h"
-#include "standard.h"
 #include "segments.h"
+#include "standard.h"
+#include "svnversion.h"
 
 
 
@@ -670,8 +671,9 @@ static void OptVersion (const char* Opt attribute ((unused)),
 /* Print the compiler version */
 {
     fprintf (stderr,
-                    "cc65 V%u.%u.%u\n",
-                    VER_MAJOR, VER_MINOR, VER_PATCH);
+                    "cc65 V%u.%u.%u\n"
+            "SVN version: %s\n",
+                    VER_MAJOR, VER_MINOR, VER_PATCH, SVNVersion);
 }
 
 
index 882f1898cddf8e5a1e3e626b53bcc8947c49515a..27399eec8a5638de4447e3ca2feb2fccd4858b2e 100644 (file)
@@ -4,6 +4,7 @@
 
 
 
+
 # ------------------------------------------------------------------------------
 
 # The executable to build
@@ -22,6 +23,17 @@ CC=gcc
 EBIND=emxbind
 LDFLAGS=-lm
 
+# Determine the svn version number if possible
+ifneq "$(shell which svnversion 2>/dev/null)" ""
+ifneq "$(wildcard .svn)" ""
+SVNVERSION=$(shell svnversion)
+else
+SVNVERSION=unknown
+endif
+else
+SVNVERSION=unknown
+endif
+
 # ------------------------------------------------------------------------------
 # Object files and libraries to link
 
@@ -86,6 +98,7 @@ OBJS =        anonname.o      \
        stdfunc.o       \
         stdnames.o      \
         stmt.o                 \
+        svnversion.o    \
        swstmt.o        \
        symentry.o      \
        symtab.o        \
@@ -104,7 +117,7 @@ LIBS =      $(COMMON)/common.a
 # Main target - must be first
 .PHONY: all
 ifeq (.depend,$(wildcard .depend))
-all:   $(EXE)
+all:   svnversion $(EXE)
 include .depend
 else
 all:   depend
@@ -112,14 +125,23 @@ all:      depend
 endif
 
 $(EXE):        $(OBJS) $(LIBS)
-       $(CC) $^ $(LDFLAGS) -o $@
+       $(CC) $(OBJS) $(LIBS) $(LDFLAGS) -o $@
        @if [ $(OS2_SHELL) ] ;  then $(EBIND) $(EXE) ; fi
 
+.PHONY:        svnversion
+svnversion:
+       @$(RM) svnversion.c
+       @echo "/* This file is auto-generated - do not modify! */" >> svnversion.c
+       @echo "" >> svnversion.c
+       @echo "const char SVNVersion[] = \"$(SVNVERSION)\";" >> svnversion.c
+
+svnversion.c:  svnversion
+
 clean:
        $(RM) *~ core.* *.map
 
 zap:   clean
-       $(RM) *.o $(EXE) .depend
+       $(RM) $(OBJS) $(EXE) .depend svnversion.c
 
 # ------------------------------------------------------------------------------
 # Make the dependencies
index 2aaefbbfc63dd41b2442ea591e629dfccc1b29fc..6e2dc83b95264dbe38861072d8cd480778d1c160 100644 (file)
@@ -27,6 +27,17 @@ CFLAGS  = -d1 -onatx -zp4 -5 -zq -w2 -i=..\\common
 # Target files
 EXE    = cc65.exe
 
+# Determine the svn version number if possible
+ifneq "$(shell which svnversion 2>/dev/null)" ""
+ifneq "$(wildcard .svn)" ""
+SVNVERSION=$(shell svnversion)
+else
+SVNVERSION=unknown
+endif
+else
+SVNVERSION=unknown
+endif
+
 # Create NT programs by default
 ifndef TARGET
 TARGET = NT
@@ -121,6 +132,7 @@ OBJS =      anonname.obj    \
        stdfunc.obj     \
         stdnames.obj    \
        stmt.obj        \
+       svnversion.obj  \
        swstmt.obj      \
        symentry.obj    \
        symtab.obj      \
@@ -136,7 +148,7 @@ LIBS = ../common/common.lib
 # ------------------------------------------------------------------------------
 # Main targets
 
-all:           $(EXE)
+all:           svnversion $(EXE)
 
 
 # ------------------------------------------------------------------------------
@@ -152,11 +164,20 @@ $(EXE):   $(OBJS) $(LIBS)
        @$(LD) system $(SYSTEM) @$(LNKCFG)
        @rm $(LNKCFG)
 
+.PHONY:        svnversion
+svnversion:
+       @$(RM) svnversion.c
+       @echo "/* This file is auto-generated - do not modify! */" >> svnversion.c
+       @echo "" >> svnversion.c
+       @echo "const char SVNVersion[] = \"$(SVNVERSION)\";" >> svnversion.c
+
+svnversion.c:  svnversion
+
 clean:
        @rm -f *~ core
 
 zap:   clean
-       @rm -f *.obj $(EXE)
+       @rm -f $(OBJS) $(EXE) svnversion.c
 
 strip:
        @-$(WSTRIP) $(EXE)
diff --git a/src/cc65/svnversion.h b/src/cc65/svnversion.h
new file mode 100644 (file)
index 0000000..c5ab5e9
--- /dev/null
@@ -0,0 +1,57 @@
+/*****************************************************************************/
+/*                                                                           */
+/*                               svnversion.h                                */
+/*                                                                           */
+/*                       Keep track of the svn version                       */
+/*                                                                           */
+/*                                                                           */
+/*                                                                           */
+/* (C) 1998-2008 Ullrich von Bassewitz                                       */
+/*               Roemerstrasse 52                                            */
+/*               D-70794 Filderstadt                                         */
+/* EMail:        uz@cc65.org                                                 */
+/*                                                                           */
+/*                                                                           */
+/* This software is provided 'as-is', without any expressed or implied       */
+/* warranty.  In no event will the authors be held liable for any damages    */
+/* arising from the use of this software.                                    */
+/*                                                                           */
+/* Permission is granted to anyone to use this software for any purpose,     */
+/* including commercial applications, and to alter it and redistribute it    */
+/* freely, subject to the following restrictions:                            */
+/*                                                                           */
+/* 1. The origin of this software must not be misrepresented; you must not   */
+/*    claim that you wrote the original software. If you use this software   */
+/*    in a product, an acknowledgment in the product documentation would be  */
+/*    appreciated but is not required.                                       */
+/* 2. Altered source versions must be plainly marked as such, and must not   */
+/*    be misrepresented as being the original software.                      */
+/* 3. This notice may not be removed or altered from any source              */
+/*    distribution.                                                          */
+/*                                                                           */
+/*****************************************************************************/
+
+
+
+#ifndef SVNVERSION_H
+#define SVNVERSION_H
+
+
+
+/*****************************************************************************/
+/*                                  Data                                    */
+/*****************************************************************************/
+
+
+
+/* This variable contains the SVN version string */
+extern const char SVNVersion[];
+
+
+
+/* End of svnversion.h */
+
+#endif
+
+
+