aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfigure.py24
1 files changed, 16 insertions, 8 deletions
diff --git a/configure.py b/configure.py
index 876108a9f..123c91259 100755
--- a/configure.py
+++ b/configure.py
@@ -511,7 +511,13 @@ def lex_me_harder(infofile, to_obj, allowed_groups, name_val_pairs):
lexer.lineno)
elif token in name_val_pairs.keys():
- to_obj.__dict__[token] = lexer.get_token()
+ next_val = lexer.get_token()
+
+ if type(to_obj.__dict__[token]) is list:
+ to_obj.__dict__[token].append(next_val)
+ else:
+ to_obj.__dict__[token] = next_val
+
else: # No match -> error
raise LexerError('Bad token "%s"' % (token), lexer.lineno)
@@ -533,7 +539,7 @@ class ModuleInfo(object):
'comment'],
{
'load_on': 'auto',
- 'define': None,
+ 'define': [],
'uses_tr1': 'false',
'need_isa': None,
'mp_bits': 0 })
@@ -598,6 +604,9 @@ class ModuleInfo(object):
def internal_headers(self):
return self.header_internal
+ def defines(self):
+ return ['HAS_' + d for d in self.define]
+
def compatible_cpu(self, archinfo, options):
arch_name = archinfo.basename
@@ -940,10 +949,10 @@ def canon_processor(archinfo, proc):
return (ainfo.basename, submodel)
logging.debug('Known CPU names: ' + ' '.join(
- sorted(sum([[ainfo.basename] + \
- ainfo.aliases + \
- [x for (x,_) in ainfo.all_submodels()]
- for ainfo in archinfo.values()], []))))
+ sorted(flatten([[ainfo.basename] + \
+ ainfo.aliases + \
+ [x for (x,_) in ainfo.all_submodels()]
+ for ainfo in archinfo.values()]))))
raise Exception('Unknown or unidentifiable processor "%s"' % (proc))
@@ -1131,8 +1140,7 @@ def create_template_vars(build_config, options, modules, cc, arch, osinfo):
'link_to': ' '.join([cc.add_lib_option + lib for lib in link_to()]),
- 'module_defines': make_cpp_macros(
- sorted(['HAS_' + m.define for m in modules if m.define])),
+ 'module_defines': make_cpp_macros(sorted(flatten([m.defines() for m in modules]))),
'target_os_defines': make_cpp_macros(osinfo.defines()),