[PATCH v2 3/6] waf: Fix freebsd-to-rtems.py.

Christian Mauderer christian.mauderer at embedded-brains.de
Mon Apr 9 13:53:28 UTC 2018


---
 builder.py    | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 waf_libbsd.py | 156 ----------------------------------------------------------
 2 files changed, 153 insertions(+), 156 deletions(-)

diff --git a/builder.py b/builder.py
index 2faf98d0..e334f1a1 100755
--- a/builder.py
+++ b/builder.py
@@ -66,6 +66,20 @@ verboseDetail = 2
 verboseMoreDetail = 3
 verboseDebug = 4
 
+def _cflagsIncludes(cflags, includes):
+    if type(cflags) is not list:
+        if cflags is not None:
+            _cflags = cflags.split(' ')
+        else:
+            _cflags = [None]
+    else:
+        _cflags = cflags
+    if type(includes) is not list:
+        _includes = [includes]
+    else:
+        _includes = includes
+    return _cflags, _includes
+
 def verbose(level = verboseInfo):
     return verboseLevel >= level
 
@@ -447,6 +461,119 @@ class BuildSystemFragmentComposer(object):
     def compose(self, path):
         return ''
 
+class SourceFileFragmentComposer(BuildSystemFragmentComposer):
+
+    def __init__(self, cflags = "default", includes = None):
+        self.cflags, self.includes = _cflagsIncludes(cflags, includes)
+
+    def compose(self, path):
+        if None in self.includes:
+            flags = self.cflags
+        else:
+            flags = self.cflags + self.includes
+        return ['sources', flags, ('default', None)], [path], self.cflags, self.includes
+
+class SourceFileIfHeaderComposer(SourceFileFragmentComposer):
+
+    def __init__(self, headers, cflags = "default", includes = None):
+        if headers is not list:
+            headers = [headers]
+        self.headers = headers
+        super(SourceFileIfHeaderComposer, self).__init__(cflags = cflags, includes = includes)
+
+    def compose(self, path):
+        r = SourceFileFragmentComposer.compose(self, path)
+        define_keys = ''
+        for h in self.headers:
+            h = h.upper()
+            for c in '\/-.':
+                h = h.replace(c, '_')
+            define_keys += ' ' + h
+        r[0][2] = (define_keys.strip(), self.headers)
+        return r
+
+class TestFragementComposer(BuildSystemFragmentComposer):
+
+    def __init__(self, testName, fileFragments, runTest = True, netTest = False):
+        self.testName = testName
+        self.fileFragments = fileFragments
+        self.runTest = runTest
+        self.netTest = netTest
+
+    def compose(self, path):
+        return ['tests', self.testName, ('default', None)], { 'files': self.fileFragments,
+                                                              'run': self.runTest,
+                                                              'net': self.netTest }
+
+class TestIfHeaderComposer(TestFragementComposer):
+
+    def __init__(self, testName, headers, fileFragments, runTest = True, netTest = False):
+        if headers is not list:
+            headers = [headers]
+        self.headers = headers
+        super(TestIfHeaderComposer, self).__init__(testName, fileFragments,
+                                                   runTest = runTest, netTest = netTest)
+
+    def compose(self, path):
+        r = TestFragementComposer.compose(self, path)
+        define_keys = ''
+        for h in self.headers:
+            h = h.upper()
+            for c in '\/-.':
+                h = h.replace(c, '_')
+            define_keys += ' ' + h
+        r[0][2] = (define_keys.strip(), self.headers)
+        return r
+
+class KVMSymbolsFragmentComposer(BuildSystemFragmentComposer):
+
+    def compose(self, path):
+        return ['KVMSymbols', 'files', ('default', None)], [path], self.includes
+
+class RPCGENFragmentComposer(BuildSystemFragmentComposer):
+
+    def compose(self, path):
+        return ['RPCGen', 'files', ('default', None)], [path]
+
+class RouteKeywordsFragmentComposer(BuildSystemFragmentComposer):
+
+    def compose(self, path):
+        return ['RouteKeywords', 'files', ('default', None)], [path]
+
+class LexFragmentComposer(BuildSystemFragmentComposer):
+
+    def __init__(self, sym, dep, cflags = None, includes = None):
+        self.sym = sym
+        self.dep = dep
+        self.cflags, self.includes = _cflagsIncludes(cflags, includes)
+
+    def compose(self, path):
+        d = { 'file': path,
+              'sym': self.sym,
+              'dep': self.dep }
+        if None not in self.cflags:
+            d['cflags'] = self.cflags
+        if None not in self.includes:
+            d['includes'] = self.includes
+        return ['lex', path, ('default', None)], d
+
+class YaccFragmentComposer(BuildSystemFragmentComposer):
+
+    def __init__(self, sym, header, cflags = None, includes = None):
+        self.sym = sym
+        self.header = header
+        self.cflags, self.includes = _cflagsIncludes(cflags, includes)
+
+    def compose(self, path):
+        d = { 'file': path,
+              'sym': self.sym,
+              'header': self.header }
+        if None not in self.cflags:
+            d['cflags'] = self.cflags
+        if None not in self.includes:
+            d['includes'] = self.includes
+        return ['yacc', path, ('default', None)], d
+
 #
 # File - a file in the source we move backwards and forwards.
 #
@@ -677,3 +804,29 @@ class ModuleManager(object):
     def generateBuild(self):
         for m in self.getEnabledModules():
             self.modules[m].generate()
+
+    def setGenerators(self):
+        self.generator['convert'] = Converter
+        self.generator['no-convert'] = NoConverter
+        self.generator['from-FreeBSD-to-RTEMS-UserSpaceSourceConverter'] = FromFreeBSDToRTEMSUserSpaceSourceConverter
+        self.generator['from-RTEMS-To-FreeBSD-SourceConverter'] = FromRTEMSToFreeBSDSourceConverter
+        self.generator['buildSystemFragmentComposer'] = BuildSystemFragmentComposer
+
+        self.generator['file'] = File
+
+        self.generator['path'] = PathComposer
+        self.generator['freebsd-path'] = FreeBSDPathComposer
+        self.generator['rtems-path'] = RTEMSPathComposer
+        self.generator['cpu-path'] = CPUDependentFreeBSDPathComposer
+        self.generator['target-src-cpu--path'] = TargetSourceCPUDependentPathComposer
+
+        self.generator['source'] = SourceFileFragmentComposer
+        self.generator['test'] = TestFragementComposer
+        self.generator['kvm-symbols'] = KVMSymbolsFragmentComposer
+        self.generator['rpc-gen'] = RPCGENFragmentComposer
+        self.generator['route-keywords'] = RouteKeywordsFragmentComposer
+        self.generator['lex'] = LexFragmentComposer
+        self.generator['yacc'] = YaccFragmentComposer
+
+        self.generator['source-if-header'] = SourceFileIfHeaderComposer
+        self.generator['test-if-header'] = TestIfHeaderComposer
diff --git a/waf_libbsd.py b/waf_libbsd.py
index eddfaf99..05293061 100644
--- a/waf_libbsd.py
+++ b/waf_libbsd.py
@@ -49,133 +49,6 @@ if windows:
 else:
     host_shell = ''
 
-def _cflagsIncludes(cflags, includes):
-    if type(cflags) is not list:
-        if cflags is not None:
-            _cflags = cflags.split(' ')
-        else:
-            _cflags = [None]
-    else:
-        _cflags = cflags
-    if type(includes) is not list:
-        _includes = [includes]
-    else:
-        _includes = includes
-    return _cflags, _includes
-
-class SourceFileFragmentComposer(builder.BuildSystemFragmentComposer):
-
-    def __init__(self, cflags = "default", includes = None):
-        self.cflags, self.includes = _cflagsIncludes(cflags, includes)
-
-    def compose(self, path):
-        if None in self.includes:
-            flags = self.cflags
-        else:
-            flags = self.cflags + self.includes
-        return ['sources', flags, ('default', None)], [path], self.cflags, self.includes
-
-class SourceFileIfHeaderComposer(SourceFileFragmentComposer):
-
-    def __init__(self, headers, cflags = "default", includes = None):
-        if headers is not list:
-            headers = [headers]
-        self.headers = headers
-        super(SourceFileIfHeaderComposer, self).__init__(cflags = cflags, includes = includes)
-
-    def compose(self, path):
-        r = SourceFileFragmentComposer.compose(self, path)
-        define_keys = ''
-        for h in self.headers:
-            h = h.upper()
-            for c in '\/-.':
-                h = h.replace(c, '_')
-            define_keys += ' ' + h
-        r[0][2] = (define_keys.strip(), self.headers)
-        return r
-
-class TestFragementComposer(builder.BuildSystemFragmentComposer):
-
-    def __init__(self, testName, fileFragments, runTest = True, netTest = False):
-        self.testName = testName
-        self.fileFragments = fileFragments
-        self.runTest = runTest
-        self.netTest = netTest
-
-    def compose(self, path):
-        return ['tests', self.testName, ('default', None)], { 'files': self.fileFragments,
-                                                              'run': self.runTest,
-                                                              'net': self.netTest }
-
-class TestIfHeaderComposer(TestFragementComposer):
-
-    def __init__(self, testName, headers, fileFragments, runTest = True, netTest = False):
-        if headers is not list:
-            headers = [headers]
-        self.headers = headers
-        super(TestIfHeaderComposer, self).__init__(testName, fileFragments,
-                                                   runTest = runTest, netTest = netTest)
-
-    def compose(self, path):
-        r = TestFragementComposer.compose(self, path)
-        define_keys = ''
-        for h in self.headers:
-            h = h.upper()
-            for c in '\/-.':
-                h = h.replace(c, '_')
-            define_keys += ' ' + h
-        r[0][2] = (define_keys.strip(), self.headers)
-        return r
-
-class KVMSymbolsFragmentComposer(builder.BuildSystemFragmentComposer):
-
-    def compose(self, path):
-        return ['KVMSymbols', 'files', ('default', None)], [path], self.includes
-
-class RPCGENFragmentComposer(builder.BuildSystemFragmentComposer):
-
-    def compose(self, path):
-        return ['RPCGen', 'files', ('default', None)], [path]
-
-class RouteKeywordsFragmentComposer(builder.BuildSystemFragmentComposer):
-
-    def compose(self, path):
-        return ['RouteKeywords', 'files', ('default', None)], [path]
-
-class LexFragmentComposer(builder.BuildSystemFragmentComposer):
-
-    def __init__(self, sym, dep, cflags = None, includes = None):
-        self.sym = sym
-        self.dep = dep
-        self.cflags, self.includes = _cflagsIncludes(cflags, includes)
-
-    def compose(self, path):
-        d = { 'file': path,
-              'sym': self.sym,
-              'dep': self.dep }
-        if None not in self.cflags:
-            d['cflags'] = self.cflags
-        if None not in self.includes:
-            d['includes'] = self.includes
-        return ['lex', path, ('default', None)], d
-
-class YaccFragmentComposer(builder.BuildSystemFragmentComposer):
-
-    def __init__(self, sym, header, cflags = None, includes = None):
-        self.sym = sym
-        self.header = header
-        self.cflags, self.includes = _cflagsIncludes(cflags, includes)
-
-    def compose(self, path):
-        d = { 'file': path,
-              'sym': self.sym,
-              'header': self.header }
-        if None not in self.cflags:
-            d['cflags'] = self.cflags
-        if None not in self.includes:
-            d['includes'] = self.includes
-        return ['yacc', path, ('default', None)], d
-
 #
 # The waf builder for libbsd.
 #
@@ -202,35 +75,6 @@ class Builder(builder.ModuleManager):
             sources = sorted(files)
         return sources
 
-    def setGenerators(self):
-        #
-        # Called when the builder.ModuleManager.__init__ is run
-        #
-        self.generator['convert'] = builder.Converter
-        self.generator['no-convert'] = builder.NoConverter
-        self.generator['from-FreeBSD-to-RTEMS-UserSpaceSourceConverter'] = builder.FromFreeBSDToRTEMSUserSpaceSourceConverter
-        self.generator['from-RTEMS-To-FreeBSD-SourceConverter'] = builder.FromRTEMSToFreeBSDSourceConverter
-        self.generator['buildSystemFragmentComposer'] = builder.BuildSystemFragmentComposer
-
-        self.generator['file'] = builder.File
-
-        self.generator['path'] = builder.PathComposer
-        self.generator['freebsd-path'] = builder.FreeBSDPathComposer
-        self.generator['rtems-path'] = builder.RTEMSPathComposer
-        self.generator['cpu-path'] = builder.CPUDependentFreeBSDPathComposer
-        self.generator['target-src-cpu--path'] = builder.TargetSourceCPUDependentPathComposer
-
-        self.generator['source'] = SourceFileFragmentComposer
-        self.generator['test'] = TestFragementComposer
-        self.generator['kvm-symbols'] = KVMSymbolsFragmentComposer
-        self.generator['rpc-gen'] = RPCGENFragmentComposer
-        self.generator['route-keywords'] = RouteKeywordsFragmentComposer
-        self.generator['lex'] = LexFragmentComposer
-        self.generator['yacc'] = YaccFragmentComposer
-
-        self.generator['source-if-header'] = SourceFileIfHeaderComposer
-        self.generator['test-if-header'] = TestIfHeaderComposer
-
     def generate(self, rtems_version):
 
         def _dataInsert(data, cpu, frag):
-- 
2.13.6



More information about the devel mailing list