michael@0: # This Source Code Form is subject to the terms of the Mozilla Public michael@0: # License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: # file, You can obtain one at http://mozilla.org/MPL/2.0/. michael@0: michael@0: import imp michael@0: import os michael@0: import sys michael@0: michael@0: path = os.path.dirname(__file__) michael@0: while not os.path.exists(os.path.join(path, 'config.status')): michael@0: parent = os.path.normpath(os.path.join(path, os.pardir)) michael@0: if parent == path: michael@0: raise Exception("Can't find config.status") michael@0: path = parent michael@0: michael@0: path = os.path.join(path, 'config.status') michael@0: config = imp.load_module('_buildconfig', open(path), path, ('', 'r', imp.PY_SOURCE)) michael@0: michael@0: # Copy values from the config.status namespace into this module namespace. michael@0: # This effectively imports topsrcdir, topobjdir, defines, substs, files, michael@0: # headers and non_global_defines michael@0: for var in config.__all__: michael@0: value = getattr(config, var) michael@0: if isinstance(value, list) and value and isinstance(value[0], tuple): michael@0: value = dict(value) michael@0: setattr(sys.modules[__name__], var, value) michael@0: michael@0: for var in os.environ: michael@0: if var != 'SHELL' and var in substs: michael@0: substs[var] = os.environ[var]