Index: trunk/ppImage/configure.ac
===================================================================
--- trunk/ppImage/configure.ac	(revision 23790)
+++ trunk/ppImage/configure.ac	(revision 23796)
@@ -26,8 +26,5 @@
 CFLAGS="${CFLAGS=} -Wall -Werror"
 
-IPP_VERSION(PPIMAGE)
-AC_SUBST(PPIMAGE_VERSION,[$PPIMAGE_VERSION])
-AC_SUBST(PPIMAGE_BRANCH,[$PPIMAGE_BRANCH])
-AC_SUBST(PPIMAGE_SOURCE,[$PPIMAGE_SOURCE])
+IPP_VERSION
 
 AC_SUBST([PPIMAGE_CFLAGS])
Index: trunk/ppImage/src/Makefile.am
===================================================================
--- trunk/ppImage/src/Makefile.am	(revision 23790)
+++ trunk/ppImage/src/Makefile.am	(revision 23796)
@@ -4,10 +4,28 @@
 	ppImage.h 
 
+if HAVE_SVNVERSION
+PSLIB_VERSION=`$(SVNVERSION) ../..`
+else
+PSLIB_VERSION="UNKNOWN"
+endif
+
+if HAVE_SVN
+PSLIB_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 }'`
+PSLIB_SOURCE=`$(SVN) info | $(SED) -n -e 's/Repository UUID: // p'`
+else
+PSLIB_BRANCH="UNKNOWN"
+PSLIB_SOURCE="UNKNOWN"
+endif
+
 # Force recompilation of ppImageVersion.c, since it gets the version information
-ppImageVersion.c: FORCE
-	touch ppImageVersion.c
+ppImageVersion.c: ppImageVersionDefinitions.h
+ppImageVersionDefinitions.h: ppImageVersionDefinitions.h.in FORCE
+	-$(RM) ppImageVersionDefinitions.h
+	$(SED) -e "s|@PPIMAGE_VERSION@|\"$(PPIMAGE_VERSION)\"|" -e "s|@PPIMAGE_BRANCH@|\"$(PPIMAGE_BRANCH)\"|" -e "s|@PPIMAGE_SOURCE@|\"$(PPIMAGE_SOURCE)\"|" ppImageVersionDefinitions.h.in > ppImageVersionDefinitions.h
 FORCE: ;
 
-ppImage_CFLAGS = $(PPIMAGE_CFLAGS) $(PPSTATS_CFLAGS) $(PSASTRO_CFLAGS) $(PSPHOT_CFLAGS) $(PSMODULE_CFLAGS) $(PSLIB_CFLAGS) -DPPIMAGE_VERSION=$(PPIMAGE_VERSION) -DPPIMAGE_BRANCH=$(PPIMAGE_BRANCH) -DPPIMAGE_SOURCE=$(PPIMAGE_SOURCE)
+BUILT_SOURCES = ppImageVersionDefinitions.h
+
+ppImage_CFLAGS = $(PPIMAGE_CFLAGS) $(PPSTATS_CFLAGS) $(PSASTRO_CFLAGS) $(PSPHOT_CFLAGS) $(PSMODULE_CFLAGS) $(PSLIB_CFLAGS)
 ppImage_LDFLAGS = $(PPIMAGE_LIBS) $(PSASTRO_LIBS) $(PPSTATS_LIBS) $(PSPHOT_LIBS) $(PSMODULE_LIBS) $(PSLIB_LIBS)
 ppImage_SOURCES = \
Index: trunk/ppImage/src/ppImageVersion.c
===================================================================
--- trunk/ppImage/src/ppImageVersion.c	(revision 23790)
+++ trunk/ppImage/src/ppImageVersion.c	(revision 23796)
@@ -4,4 +4,5 @@
 
 #include "ppImage.h"
+#include "ppImageVersionDefinitions.h"
 
 #ifndef PPIMAGE_VERSION
@@ -15,11 +16,8 @@
 #endif
 
-#define xstr(s) str(s)
-#define str(s) #s
-
 psString ppImageVersion(void)
 {
     char *value = NULL;
-    psStringAppend(&value, "%s@%s", xstr(PPIMAGE_BRANCH), xstr(PPIMAGE_VERSION));
+    psStringAppend(&value, "%s@%s", PPIMAGE_BRANCH, PPIMAGE_VERSION);
     return value;
 }
@@ -27,5 +25,5 @@
 psString ppImageSource(void)
 {
-    return psStringCopy (xstr(PPIMAGE_SOURCE));
+    return psStringCopy(PPIMAGE_SOURCE);
 }
 
Index: trunk/ppImage/src/ppImageVersionDefinitions.h.in
===================================================================
--- trunk/ppImage/src/ppImageVersionDefinitions.h.in	(revision 23796)
+++ trunk/ppImage/src/ppImageVersionDefinitions.h.in	(revision 23796)
@@ -0,0 +1,8 @@
+#ifndef PPIMAGE_VERSION_DEFINITIONS_H
+#define PPIMAGE_VERSION_DEFINITIONS_H
+
+#define PPIMAGE_VERSION @PPIMAGE_VERSION@ // SVN version
+#define PPIMAGE_BRANCH  @PPIMAGE_BRANCH@  // SVN branch
+#define PPIMAGE_SOURCE  @PPIMAGE_SOURCE@  // SVN source
+
+#endif
