+# This script makes the declaration of builds declarative. In the past, our build system involved constructing a set of command lines
+# that would get executed with parameters such as the name of the distribution, the kernel version and so on. Unfortunately, the code
+# that went into creating these command lines was shared between people and often when someone modified his build, other builds would
+# break. With this script, each build is declared as a Python dict, such as in the following example:
+#
+# caglars_k32_build = {
+# 'tags':'planetlab-k32-tags.mk',
+# 'fcdistro':['centos5', 'f12','f8'],
+# 'personality':['linux32','linux64'],
+# 'test':0,
+# 'release':'k32'
+# }
+#
+# This declaration corresponds to 6 builds - with static values of 'tags', 'test' and 'release' and every combination of the values provided for
+# 'fcdistro' and 'personality', i.e. 3x2.
+#
+# More complex dependencies can be added, e.g. to build linux64 only for f12, you can set the values of the options to functions:
+#
+# caglars_k32_build = {
+# 'tags':'planetlab-k32-tags.mk',
+# 'fcdistro':['centos5', 'f12','f8'],
+# 'personality': lambda build: if (build['fcdistro']=='f12') then return ['linux32', 'linux64'] else return ['linux32']
+# 'test':0,
+# 'release':'k32'
+# }
+#
+# Naturally, you can achieve the same result by breaking the above declaration into two dicts, rather than using only one
+
+
+import os
+import re
+import shlex
+import subprocess
+import time
+from optparse import OptionParser
+
+PARALLEL_BUILD = False