Index: tools/config.py
===================================================================
--- tools/config.py	(revision 96a2e45d41bf3367cd7ec049870161e948f7515e)
+++ tools/config.py	(revision fa024ce932aff7f238e5cabadb9fdd510c75fca9)
@@ -38,10 +38,12 @@
 
 INPUT = sys.argv[1]
-OUTPUT = 'Makefile.config'
+MAKEFILE = 'Makefile.config'
+MACROS = 'config.h'
+DEFS = 'config.defs'
 
 def read_defaults(fname, defaults):
 	"Read saved values from last configuration run"
 	
-	inf = file(fname,'r')
+	inf = file(fname, 'r')
 	
 	for line in inf:
@@ -217,12 +219,26 @@
 	return True
 
-def create_output(fname, defaults, ask_names):
+def create_output(mkname, mcname, dfname, defaults, ask_names):
 	"Create output configuration"
 	
-	outf = file(fname, 'w')
-	
-	outf.write('#########################################\n')
-	outf.write('## AUTO-GENERATED FILE, DO NOT EDIT!!! ##\n')
-	outf.write('#########################################\n\n')
+	revision = commands.getoutput('svnversion . 2> /dev/null')
+	timestamp = commands.getoutput('date "+%Y-%m-%d %H:%M:%S"')
+	
+	outmk = file(mkname, 'w')
+	outmc = file(mcname, 'w')
+	outdf = file(dfname, 'w')
+	
+	outmk.write('#########################################\n')
+	outmk.write('## AUTO-GENERATED FILE, DO NOT EDIT!!! ##\n')
+	outmk.write('#########################################\n\n')
+	
+	outmc.write('/***************************************\n')
+	outmc.write(' * AUTO-GENERATED FILE, DO NOT EDIT!!! *\n')
+	outmc.write(' ***************************************/\n\n')
+	
+	outdf.write('#########################################\n')
+	outdf.write('## AUTO-GENERATED FILE, DO NOT EDIT!!! ##\n')
+	outdf.write('#########################################\n\n')
+	outdf.write('CONFIG_DEFS =')
 	
 	for varname, vartype, name, choices, cond in ask_names:
@@ -235,9 +251,25 @@
 			default = defaults[varname]
 		
-		outf.write('# %s\n%s = %s\n\n' % (name, varname, default))
-	
-	outf.write('REVISION = %s\n' % commands.getoutput('svnversion . 2> /dev/null'))
-	outf.write('TIMESTAMP = %s\n' % commands.getoutput('date "+%Y-%m-%d %H:%M:%S"'))
-	outf.close()
+		outmk.write('# %s\n%s = %s\n\n' % (name, varname, default))
+		
+		if ((vartype == "y") or (vartype == "y/n") or (vartype == "n/y")):
+			if (default == "y"):
+				outmc.write('/* %s */\n#define %s\n\n' % (name, varname))
+				outdf.write(' -D%s' % varname)
+		else:
+			outmc.write('/* %s */\n#define %s %s\n\n' % (name, varname, default))
+			outdf.write(' -D%s=%s' % (varname, default))
+	
+	outmk.write('REVISION = %s\n' % revision)
+	outmk.write('TIMESTAMP = %s\n' % timestamp)
+	
+	outmc.write('#define REVISION %s\n' % revision)
+	outmc.write('#define TIMESTAMP %s\n' % timestamp)
+	
+	outdf.write(' "-DREVISION=%s" "-DTIMESTAMP=%s"\n' % (revision, timestamp))
+	
+	outmk.close()
+	outmc.close()
+	outdf.close()
 
 def main():
@@ -249,11 +281,11 @@
 	
 	# Read defaults from previous run
-	if os.path.exists(OUTPUT):
-		read_defaults(OUTPUT, defaults)
+	if os.path.exists(MAKEFILE):
+		read_defaults(MAKEFILE, defaults)
 	
 	# Default mode: only check defaults and regenerate configuration
 	if ((len(sys.argv) >= 3) and (sys.argv[2] == 'default')):
 		if (check_choices(defaults, ask_names)):
-			create_output(OUTPUT, defaults, ask_names)
+			create_output(MAKEFILE, MACROS, DEFS, defaults, ask_names)
 			return 0
 	
@@ -294,8 +326,11 @@
 					# If there is just one option, use it
 					if (len(choices) == 1):
-						default = choices[0][0]
-						defaults[varname] = default
+						defaults[varname] = choices[0][0]
+						continue
 					
 					options.append("     %s [%s] --> " % (name, default))
+				elif (vartype == 'y'):
+					defaults[varname] = 'y'
+					continue
 				elif (vartype == 'y/n'):
 					if (default == None):
@@ -347,5 +382,5 @@
 		xtui.screen_done(screen)
 	
-	create_output(OUTPUT, defaults, ask_names)
+	create_output(MAKEFILE, MACROS, DEFS, defaults, ask_names)
 	return 0
 
