summaryrefslogtreecommitdiffstats
path: root/waf_generator.py
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2016-04-18 10:53:20 +1000
committerChris Johns <chrisj@rtems.org>2016-04-18 10:53:20 +1000
commit97c5024a79eda757180eab27949735722030daf1 (patch)
treecb99723a4ad3bdfd5be1a08bebf2c972d0a2f52e /waf_generator.py
parentlibkern.h: Deal with latest <stdlib.h> of Newlib (diff)
downloadrtems-libbsd-97c5024a79eda757180eab27949735722030daf1.tar.bz2
Add RTEMS version support, update all python to 2 and 3.
Add support to force the RTEMS version. This remove the need for using the --rtems-version command line option if the automatic detection fails. Update all python code to support python 2 and 3. Update rtems_waf to the latest version to support the RTEMS version, check environment variables and to display the CC version. Sort all tests. I think the unsorted list is dependent on the version of python and so would result in repo noise as if it regenerted.
Diffstat (limited to 'waf_generator.py')
-rwxr-xr-xwaf_generator.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/waf_generator.py b/waf_generator.py
index 0af712a3..adc7a4c4 100755
--- a/waf_generator.py
+++ b/waf_generator.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2015 Chris Johns <chrisj@rtems.org>. All rights reserved.
+# Copyright (c) 2015-2016 Chris Johns <chrisj@rtems.org>. All rights reserved.
#
# Copyright (c) 2009-2015 embedded brains GmbH. All rights reserved.
#
@@ -32,7 +32,10 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+from __future__ import print_function
+
import os
+import sys
import tempfile
import builder
@@ -146,7 +149,10 @@ class ModuleManager(builder.ModuleManager):
def write(self):
try:
out = tempfile.NamedTemporaryFile(delete = False)
- out.write(self.script)
+ try:
+ out.write(bytes(self.script, sys.stdin.encoding))
+ except:
+ out.write(self.script)
out.close()
wscript = builder.RTEMS_DIR + '/wscript'
builder.processIfDifferent(out.name, wscript, "wscript")
@@ -176,7 +182,7 @@ class ModuleManager(builder.ModuleManager):
self.generator['lex'] = LexFragmentComposer
self.generator['yacc'] = YaccFragmentComposer
- def generate(self):
+ def generate(self, rtems_version):
def _source_list(lhs, files, append = False):
if append:
@@ -257,8 +263,12 @@ class ModuleManager(builder.ModuleManager):
self.add('# To use see README.waf shipped with this file.')
self.add('#')
self.add('')
+ self.add('from __future__ import print_function')
+ self.add('')
self.add('import os.path')
self.add('')
+ self.add('rtems_version = "%s"' % (rtems_version))
+ self.add('')
self.add('try:')
self.add(' import rtems_waf.rtems as rtems')
self.add('except:')
@@ -267,7 +277,7 @@ class ModuleManager(builder.ModuleManager):
self.add(' sys.exit(1)')
self.add('')
self.add('def init(ctx):')
- self.add(' rtems.init(ctx)')
+ self.add(' rtems.init(ctx, version = rtems_version)')
self.add('')
self.add('def options(opt):')
self.add(' rtems.options(opt)')
@@ -569,7 +579,7 @@ class ModuleManager(builder.ModuleManager):
self.add(' # Tests')
tests = data['tests']
- for test_name in tests:
+ for test_name in sorted(tests):
files = ['testsuite/%s/%s.c' % (test_name, f) for f in data['tests'][test_name]['all']['files']]
_source_list(' test_%s' % (test_name), sorted(files))
self.add(' bld.program(target = "%s.exe",' % (test_name))