Index: tools/buildtag
===================================================================
--- tools/buildtag	(revision 54257ba8d869f32e91e441efd77b5069cfb725c5)
+++ tools/buildtag	(revision 54257ba8d869f32e91e441efd77b5069cfb725c5)
@@ -0,0 +1,10 @@
+#! /bin/sh
+ARCH=$1
+TAG="`svnversion . 2> /dev/null`"
+TIMESTAMP="`date "+%Y-%m-%d %H:%M:%S" 2> /dev/null`"
+if [ -z "$TAG" ] || [ "$TAG" == "exported" ]; then
+	TAG="Built on $TIMESTAMP for $ARCH"
+else
+	TAG="Revision $TAG (built on $TIMESTAMP for $ARCH)"
+fi
+echo $TAG
Index: tools/config.py
===================================================================
--- tools/config.py	(revision 45ab770b33b9c928aa6c222d73573bdb4795d228)
+++ tools/config.py	(revision 54257ba8d869f32e91e441efd77b5069cfb725c5)
@@ -310,5 +310,16 @@
             if cmd == 'saveas':
                 outf.write('%s = %s\n' % (args[1],defaults[args[0]]))
-                
+            elif cmd == 'shellcmd':
+                varname = args[0]
+                args = args[1:]
+                for i,arg in enumerate(args):
+                    if arg.startswith('$'):
+                        args[i] = defaults[arg[1:]]
+
+                subc = os.popen(' '.join(args),'r')
+                data = subc.read().strip()
+                if subc.close():
+                    raise RuntimeError('Error running: %s' % ' '.join(args))
+                outf.write('%s = %s\n' % (varname,data))
             continue
             
