summaryrefslogtreecommitdiffstats
path: root/waf_generator.py
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2016-04-23 17:37:27 +1000
committerChris Johns <chrisj@rtems.org>2016-04-23 17:37:27 +1000
commite1e10cddee4be72c2a66218c2bc0393e578a7fdc (patch)
treebe28236f336ed07b491020c3ebf3cd0ed08e9373 /waf_generator.py
parentwaf: Move the generated content to libbsd_waf.py. (diff)
downloadrtems-libbsd-e1e10cddee4be72c2a66218c2bc0393e578a7fdc.tar.bz2
waf: Add the ability to set FreeBSD options on the configure command line.
Add --freebsd-options to add specific FreeBSD compile time options to the build. This is a developer tool.
Diffstat (limited to 'waf_generator.py')
-rwxr-xr-xwaf_generator.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/waf_generator.py b/waf_generator.py
index 9c65ebc5..9d5939a8 100755
--- a/waf_generator.py
+++ b/waf_generator.py
@@ -294,6 +294,11 @@ class ModuleManager(builder.ModuleManager):
self.add(' cflags = %r + common_flags' % (builder.cflags()))
self.add(' cxxflags = %r + common_flags' % (builder.cxxflags()))
self.add('')
+ self.add(' # Defines')
+ self.add(' defines = []')
+ self.add(' for o in bld.env.FREEBSD_OPTIONS.split(","):')
+ self.add(' defines += ["%s=1" % (o.strip().upper())]')
+ self.add('')
self.add(' # Include paths')
self.add(' includes = []')
self.add(' for i in %r:' % (builder.cpu_includes()))
@@ -409,7 +414,7 @@ class ModuleManager(builder.ModuleManager):
if 'lex' in data:
lexes = data['lex']
self.add(' # Lex')
- for l in lexes:
+ for l in sorted(lexes.keys()):
lex = lexes[l]['all']
if 'cflags' in lex:
lex_defines = [d[2:] for d in lex['cflags']]
@@ -428,7 +433,7 @@ class ModuleManager(builder.ModuleManager):
self.add(' features = "c",')
self.add(' cflags = cflags,')
self.add(' includes = %r + includes,' % (lex_includes))
- self.add(' defines = %r,' % (lex_defines))
+ self.add(' defines = defines + %r,' % (lex_defines))
self.add(' source = "%s.c")' % (lex['file'][:-2]))
self.add(' libbsd_use += ["lex_%s"]' % (lex['sym']))
self.add('')
@@ -436,7 +441,7 @@ class ModuleManager(builder.ModuleManager):
if 'yacc' in data:
yaccs = data['yacc']
self.add(' # Yacc')
- for y in yaccs:
+ for y in sorted(yaccs.keys()):
yacc = yaccs[y]['all']
yacc_file = yacc['file']
if yacc['sym'] is not None:
@@ -462,7 +467,7 @@ class ModuleManager(builder.ModuleManager):
self.add(' features = "c",')
self.add(' cflags = cflags,')
self.add(' includes = %r + includes,' % (yacc_includes))
- self.add(' defines = %r,' % (yacc_defines))
+ self.add(' defines = defines + %r,' % (yacc_defines))
self.add(' source = "%s.c")' % (yacc_file[:-2]))
self.add(' libbsd_use += ["yacc_%s"]' % (yacc_sym))
self.add('')
@@ -496,7 +501,7 @@ class ModuleManager(builder.ModuleManager):
self.add(' features = "c",')
self.add(' cflags = cflags,')
self.add(' includes = %r + includes,' % (includes))
- self.add(' defines = %r,' % (defines))
+ self.add(' defines = defines + %r,' % (defines))
self.add(' source = objs%02d_source)' % objs)
self.add(' libbsd_use += ["objs%02d"]' % (objs))
self.add('')
@@ -518,6 +523,7 @@ class ModuleManager(builder.ModuleManager):
self.add(' cflags = cflags,')
self.add(' cxxflags = cxxflags,')
self.add(' includes = includes,')
+ self.add(' defines = defines,')
self.add(' source = source,')
self.add(' use = libbsd_use)')
self.add('')