config.h file is now generated
authorMatthias Braun <matze@braunis.de>
Sat, 20 Nov 2004 02:08:33 +0000 (02:08 +0000)
committerMatthias Braun <matze@braunis.de>
Sat, 20 Nov 2004 02:08:33 +0000 (02:08 +0000)
SVN-Revision: 2110

SConstruct
TODO

index d071c5c..45bce45 100644 (file)
@@ -2,6 +2,31 @@
 # SConstruct build file. See http://www.scons.org for details.
 import os
 
+class ConfigHeader:
+    def __init__(self):
+        self.defines = { }
+        self.prefix = ""
+        self.postfix = ""
+
+    def SetPrefix(self, prefix):
+        self.prefix = prefix
+
+    def SetPostfix(self, postfix):
+        self.postfix = postfix
+
+    def Define(self, name, value = ""):
+        self.defines[name] = value
+
+    def Save(self, filename):
+        file = open(filename, 'w')
+        file.write("/* %s. Generated by SConstruct */\n" % (filename))
+        file.write("\n")
+        file.write(self.prefix + "\n")
+        for key, value in self.defines.iteritems():
+            file.write("#define %s \"%s\"\n" % (key, value))
+        file.write(self.postfix + "\n")
+        file.close()
+
 def Glob(dirs, pattern = '*' ):
     import os, fnmatch
     files = []
@@ -39,7 +64,14 @@ def CheckSDLConfig(context, minVersion):
     context.Result(ret)
     return ret
 
+# Package options
+PACKAGE_NAME = "SuperTux"
+PACKAGE_VERSION = "0.2-cvs"
+PACKAGE_BUGREPORT = "supertux-devel@lists.sourceforge.net"
+PACKAGE = PACKAGE_NAME.lower()
+PACKAGE_STRING = PACKAGE_NAME + " " + PACKAGE_VERSION
 
+# User configurable options
 opts = Options('build_config.py')
 opts.Add('CXX', 'The C++ compiler', 'g++')
 opts.Add('CXXFLAGS', 'Additional C++ compiler flags', '')
@@ -56,13 +88,20 @@ opts.Add(EnumOption('VARIANT', 'Build variant', 'optimize',
 
 env = Environment(options = opts)
 
-if not os.path.exists("build_config.py"):
-    print "build_config.py doesn't exist - Generating new build config..."
+# Create build_config.py and config.h
+if not os.path.exists("build_config.py") or not os.path.exists("config.h"):
+    print "build_config.py or config.h don't exist - Generating new build config..."
+
+    header = ConfigHeader()
+    header.Define("PACKAGE", PACKAGE)
+    header.Define("PACKAGE_NAME", PACKAGE_NAME)
+    header.Define("PACKAGE_VERSION", PACKAGE_VERSION)
+    header.Define("PACKAGE_BUGREPORT", PACKAGE_BUGREPORT)
+    header.Define("PACKAGE_STRING", PACKAGE_STRING)
         
     conf = Configure(env, custom_tests = {
         'CheckSDLConfig' : CheckSDLConfig
     })
-
     if not conf.CheckSDLConfig('1.2.4'):
         print "Couldn't find libSDL >= 1.2.4"
         Exit(1)
@@ -83,9 +122,9 @@ if not os.path.exists("build_config.py"):
         {'DATA_PREFIX':"'\"" + env['PREFIX'] + "/share/supertux\"'" ,
          'LOCALEDIR'  :"'\"" + env['PREFIX'] + "/locales\"'"})
     opts.Save("build_config.py", env)
+    header.Save("config.h")
 else:
     print "Using build_config.py"
-    
 
 if env['VARIANT'] == "optimize":
     env.Append(CXXFLAGS = "-O2 -g -Wall")
diff --git a/TODO b/TODO
index 3e5015d..8913843 100644 (file)
--- a/TODO
+++ b/TODO
@@ -19,7 +19,6 @@ L: low priority
 
 --Scons--
  * [H] Add an install target
- * [H] Generate the config.h file
  * [M] improve opengl check to work on win32 and eventually more strange
    systems again
  * [H] Make sure compilation on win32 and cross-compilation works