Index: trunk/psastro/src/Makefile.am
===================================================================
--- trunk/psastro/src/Makefile.am	(revision 23195)
+++ trunk/psastro/src/Makefile.am	(revision 23229)
@@ -1,15 +1,12 @@
 lib_LTLIBRARIES = libpsastro.la
 
-PSASTRO_VERSION=`if [ -e ../../VERSION ]; then cat ../../VERSION; else svnversion; fi`
-PSASTRO_BRANCH=`if [ -e ../../BRANCH ]; then cat ../../BRANCH; else 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 }'; fi`
-PSASTRO_SOURCE=`if [ -e ../../SOURCE ]; then cat ../../SOURCE; else svn info | sed -n -e 's/Repository UUID: // p'; fi`
+libpsastro_la_CFLAGS = $(PSASTRO_CFLAGS) $(PPSTATS_CFLAGS) $(PSMODULE_CFLAGS) $(PSLIB_CFLAGS) -DPSASTRO_VERSION=$(SVN_VERSION) -DPSASTRO_BRANCH=$(SVN_BRANCH) -DPSASTRO_SOURCE=$(SVN_SOURCE)
+libpsastro_la_LDFLAGS = $(PSASTRO_LIBS) $(PPSTATS_LIBS) $(PSMODULE_LIBS) $(PSLIB_LIBS)
 
 # Force recompilation of psastroVersion.c, since it gets the version information
-psastroVersion.c: FORCE
-	touch psastroVersion.c
-FORCE: ;
-
-libpsastro_la_CFLAGS = $(PSASTRO_CFLAGS) $(PPSTATS_CFLAGS) $(PSMODULE_CFLAGS) $(PSLIB_CFLAGS) -DPSASTRO_VERSION=\"$(PSASTRO_VERSION)\" -DPSASTRO_BRANCH=\"$(PSASTRO_BRANCH)\" -DPSASTRO_SOURCE=\"$(PSASTRO_SOURCE)\"
-libpsastro_la_LDFLAGS = $(PSASTRO_LIBS) $(PPSTATS_LIBS) $(PSMODULE_LIBS) $(PSLIB_LIBS)
+# can we do this with dependency info?
+# psastroVersion.c: FORCE
+# touch psastroVersion.c
+# FORCE: ;
 
 bin_PROGRAMS = psastro psastroModel psastroModelFit gpcModel
Index: trunk/psastro/src/psastroVersion.c
===================================================================
--- trunk/psastro/src/psastroVersion.c	(revision 23195)
+++ trunk/psastro/src/psastroVersion.c	(revision 23229)
@@ -10,6 +10,4 @@
 #include "psastroInternal.h"
 
-psString psastroVersion(void)
-{
 #ifndef PSASTRO_VERSION
 #error "PSASTRO_VERSION is not set"
@@ -18,13 +16,21 @@
 #error "PSASTRO_BRANCH is not set"
 #endif
-    return psStringCopy(PSASTRO_BRANCH "@" PSASTRO_VERSION);
+#ifndef PSASTRO_SOURCE
+#error "PSASTRO_SOURCE is not set"
+#endif
+
+#define xstr(s) str(s)
+#define str(s) #s
+
+psString psastroVersion(void)
+{
+    char *value = NULL;
+    psStringAppend(&value, "%s@%s", xstr(PSASTRO_BRANCH), xstr(PSASTRO_VERSION));
+    return value;
 }
 
 psString psastroSource(void)
 {
-#ifndef PSASTRO_SOURCE
-#error "PSASTRO_SOURCE is not set"
-#endif
-    return psStringCopy(PSASTRO_SOURCE);
+  return psStringCopy(xstr(PSASTRO_SOURCE));
 }
 
