Index: /trunk/ppMerge/configure.ac
===================================================================
--- /trunk/ppMerge/configure.ac	(revision 23799)
+++ /trunk/ppMerge/configure.ac	(revision 23800)
@@ -21,8 +21,5 @@
 PKG_CHECK_MODULES([PPSTATS], [ppStats >= 1.0.0]) 
 
-IPP_VERSION(PPMERGE)
-AC_SUBST(PPMERGE_VERSION,[$PPMERGE_VERSION])
-AC_SUBST(PPMERGE_BRANCH,[$PPMERGE_BRANCH])
-AC_SUBST(PPMERGE_SOURCE,[$PPMERGE_SOURCE])
+IPP_VERSION
 
 IPP_STDOPTS
Index: /trunk/ppMerge/src/Makefile.am
===================================================================
--- /trunk/ppMerge/src/Makefile.am	(revision 23799)
+++ /trunk/ppMerge/src/Makefile.am	(revision 23800)
@@ -1,10 +1,27 @@
 bin_PROGRAMS = ppMerge
 
+if HAVE_SVNVERSION
+PPMERGE_VERSION=`$(SVNVERSION) ../..`
+else
+PPMERGE_VERSION="UNKNOWN"
+endif
+
+if HAVE_SVN
+PPMERGE_BRANCH=`$(SVN) info ../.. | $(SED) -n -e '/URL:/ h' -e '/Repository Root:/ { x; H; x; s|Repository Root: \(.*\)\nURL: \1\(.*\)|\2| ; s|^/|| ; s|/[a-zA-Z]*/src.*|| ; p }'`
+PPMERGE_SOURCE=`$(SVN) info | $(SED) -n -e 's/Repository UUID: // p'`
+else
+PPMERGE_BRANCH="UNKNOWN"
+PPMERGE_SOURCE="UNKNOWN"
+endif
+
 # Force recompilation of ppMergeVersion.c, since it gets the version information
-ppMergeVersion.c: FORCE
-	touch ppMergeVersion.c
+ppMergeVersion.c: ppMergeVersionDefinitions.h
+ppMergeVersionDefinitions.h: ppMergeVersionDefinitions.h.in FORCE
+	-$(RM) ppMergeVersionDefinitions.h
+	$(SED) -e "s|@PPMERGE_VERSION@|\"$(PPMERGE_VERSION)\"|" -e "s|@PPMERGE_BRANCH@|\"$(PPMERGE_BRANCH)\"|" -e "s|@PPMERGE_SOURCE@|\"$(PPMERGE_SOURCE)\"|" ppMergeVersionDefinitions.h.in > ppMergeVersionDefinitions.h
 FORCE: ;
 
-ppMerge_CFLAGS = $(PPMERGE_CFLAGS) $(PPSTATS_CFLAGS) $(PSMODULE_CFLAGS) $(PSLIB_CFLAGS) -DPPMERGE_VERSION=$(PPMERGE_VERSION) -DPPMERGE_BRANCH=$(PPMERGE_BRANCH) -DPPMERGE_SOURCE=$(PPMERGE_SOURCE)
+
+ppMerge_CFLAGS = $(PPMERGE_CFLAGS) $(PPSTATS_CFLAGS) $(PSMODULE_CFLAGS) $(PSLIB_CFLAGS)
 ppMerge_LDFLAGS = $(PPMERGE_LIBS) $(PPSTATS_LIBS) $(PSMODULE_LIBS) $(PSLIB_LIBS)
 
Index: /trunk/ppMerge/src/ppMergeVersion.c
===================================================================
--- /trunk/ppMerge/src/ppMergeVersion.c	(revision 23799)
+++ /trunk/ppMerge/src/ppMergeVersion.c	(revision 23800)
@@ -21,4 +21,5 @@
 
 #include "ppMergeVersion.h"
+#include "ppMergeVersionDefinitions.h"
 
 #ifndef PPMERGE_VERSION
@@ -32,11 +33,8 @@
 #endif
 
-#define xstr(s) str(s)
-#define str(s) #s
-
 psString ppMergeVersion(void)
 {
     char *value = NULL;
-    psStringAppend(&value, "%s@%s", xstr(PPMERGE_BRANCH), xstr(PPMERGE_VERSION));
+    psStringAppend(&value, "%s@%s", PPMERGE_BRANCH, PPMERGE_VERSION);
     return value;
 }
@@ -44,5 +42,5 @@
 psString ppMergeSource(void)
 {
-    return psStringCopy(xstr(PPMERGE_SOURCE));
+    return psStringCopy(PPMERGE_SOURCE);
 }
 
Index: /trunk/ppMerge/src/ppMergeVersionDefinitions.h.in
===================================================================
--- /trunk/ppMerge/src/ppMergeVersionDefinitions.h.in	(revision 23800)
+++ /trunk/ppMerge/src/ppMergeVersionDefinitions.h.in	(revision 23800)
@@ -0,0 +1,8 @@
+#ifndef PPMERGE_VERSION_DEFINITIONS_H
+#define PPMERGE_VERSION_DEFINITIONS_H
+
+#define PPMERGE_VERSION @PPMERGE_VERSION@ // SVN version
+#define PPMERGE_BRANCH  @PPMERGE_BRANCH@  // SVN branch
+#define PPMERGE_SOURCE  @PPMERGE_SOURCE@  // SVN source
+
+#endif
