From: Matthias Braun Date: Sat, 20 Nov 2004 02:08:33 +0000 (+0000) Subject: config.h file is now generated X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=52c399301af719dd110304ea3043a7744ebc5aaf;p=supertux.git config.h file is now generated SVN-Revision: 2110 --- diff --git a/SConstruct b/SConstruct index d071c5c0c..45bce451d 100644 --- a/SConstruct +++ b/SConstruct @@ -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 3e5015d89..89138435f 100644 --- 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