Clone of official tools

Revision:
2:07730b0f452c
Parent:
1:a99c8e460c5c
Child:
4:517abc9a41c6
--- a/toolchains/__init__.py	Fri May 20 20:16:44 2016 +0100
+++ b/toolchains/__init__.py	Fri May 20 22:27:03 2016 +0100
@@ -183,7 +183,7 @@
     GOANNA_FORMAT = "[Goanna] warning [%FILENAME%:%LINENO%] - [%CHECKNAME%(%SEVERITY%)] %MESSAGE%"
     GOANNA_DIAGNOSTIC_PATTERN = re.compile(r'"\[Goanna\] (?P<severity>warning) \[(?P<file>[^:]+):(?P<line>\d+)\] \- (?P<message>.*)"')
 
-    def __init__(self, target, options=None, notify=None, macros=None, silent=False, extra_verbose=False):
+    def __init__(self, target, options=None, notify=None, macros=None, silent=False, extra_verbose=False, profile=None):
         self.target = target
         self.name = self.__class__.__name__
         self.hook = hooks.Hook(target, self)
@@ -218,9 +218,13 @@
         self.jobs = 1
 
         self.CHROOT = None
+        self.mp_pool = None
 
-        self.mp_pool = None
-        
+        if profile and (TOOLCHAIN_PROFILES.get(self.name, None) and
+            TOOLCHAIN_PROFILES[self.name].get(profile)):
+                self.PROFILE = TOOLCHAIN_PROFILES[self.name].get(profile)
+                self.info("Using toolchain %s profile %s" % (self.name, profile))
+
         if 'UVISOR_PRESENT=1' in self.macros:
             self.target.core = re.sub(r"F$", '', self.target.core)
 
@@ -789,97 +793,71 @@
 TOOLCHAIN_PROFILES = {
     'uARM' : {
             'v5': {
-                'ARMCC_VERSION': '5.06',
-                'COMMON_FLAGS':['-c', '--gnu', '-O3', '-Otime', '--split_sections', '--apcs=interwork'],
-                'COMMON_C_FLAGS':['--no_depend_system_headers'],
-                'COMMON_CC_FLAGS':['--c99'],
-                'COMMON_CPP_FLAGS':['--cpp', '--no_rtti'],
-                'COMPILE_C_AS_CPP': False,
-                'PATCHED_LIBRARY' : False,
+                'ARMCC_VERSION':    '5.06',
+                'COMMON_FLAGS':     ['-c', '--gnu', '-O3', '-Otime', '--split_sections', '--apcs=interwork'],
+                'COMMON_CPP_FLAGS': ['--cpp', '--no_rtti'],
             },
             'v4': {
-                'ARMCC_VERSION': '5.03',
-                'COMMON_FLAGS':['-c', '--gnu', '-O3', '-Otime', '--split_sections', '--apcs=interwork'],
-                'COMMON_C_FLAGS':['--no_depend_system_headers'],
-                'COMMON_CC_FLAGS':['--c99'],
-                'COMMON_CPP_FLAGS':['--cpp', '--no_rtti'],
-                'COMPILE_C_AS_CPP': False,
-                'PATCHED_LIBRARY' : False,
+                'ARMCC_VERSION':    '5.03',
+                'COMMON_FLAGS':     ['-c', '--gnu', '-O3', '-Otime', '--split_sections', '--apcs=interwork'],
+                'COMMON_CPP_FLAGS': ['--cpp', '--no_rtti'],
             },
-
             'v3': {
-                'ARMCC_VERSION': '5.01',
-                'COMMON_FLAGS':['-c', '--gnu', '-Ospace', '--split_sections', '--apcs=interwork'],
-                'COMMON_C_FLAGS':['--no_depend_system_headers'],
-                'COMMON_CC_FLAGS':['--c99'],
-                'COMMON_CPP_FLAGS':['--cpp', '--no_rtti'],
-                'COMPILE_C_AS_CPP': False,
-                'PATCHED_LIBRARY' : False,
+                'ARMCC_VERSION':    '5.01',
+                'COMMON_FLAGS':     ['-c', '--gnu', '-Ospace', '--split_sections', '--apcs=interwork'],
+                'COMMON_CPP_FLAGS': ['--cpp', '--no_rtti'],
             },
-
             'v2': {
-                'ARMCC_VERSION': '4',
-                'COMMON_FLAGS':['-c', '--gnu', '-Ospace', '--split_sections', '--apcs=interwork'],
-                'COMMON_C_FLAGS':['--no_depend_system_headers'],
-                'COMMON_CC_FLAGS':['--c99'],
-                'COMMON_CPP_FLAGS':['--cpp', '--no_rtti'],
-                'COMPILE_C_AS_CPP': False,
+                'ARMCC_VERSION':    '4',
+                'COMMON_FLAGS':     ['-c', '--gnu', '-Ospace', '--split_sections', '--apcs=interwork'],
+                'COMMON_CPP_FLAGS': ['--cpp', '--no_rtti'],
                 'PATCHED_LIBRARY' : True,
             },
-
              'v1': {
-                'ARMCC_VERSION': '4',
-                'COMMON_FLAGS':['-c', '--gnu', '-Otime', '--split_sections', '--apcs=interwork'],
-                'COMMON_C_FLAGS':['--no_depend_system_headers'],
-                'COMMON_CC_FLAGS':['--c99'],
-                'COMMON_CPP_FLAGS':['--cpp'],
+                'ARMCC_VERSION':    '4',
+                'COMMON_FLAGS':     ['-c', '--gnu', '-Otime', '--split_sections', '--apcs=interwork'],
+                'COMMON_CPP_FLAGS': ['--cpp'],
                 'COMPILE_C_AS_CPP': True,
                 'PATCHED_LIBRARY' : True,
             }
     },
     'ARM' : {
             'v5': {
-                'ARMCC_VERSION': '5.06',
-                'COMMON_FLAGS':['-c', '--gnu', '-O3', '-Otime', '--split_sections', '--apcs=interwork'],
-                'COMMON_C_FLAGS':['--no_depend_system_headers'],
-                'COMMON_CC_FLAGS':['--c99'],
-                'COMMON_CPP_FLAGS':['--cpp', '--no_rtti'],
+                'ARMCC_VERSION':    '5.06',
+                'COMMON_FLAGS':     ['-c', '--gnu', '-O3', '-Otime', '--split_sections', '--apcs=interwork'],
+                'COMMON_CPP_FLAGS': ['--cpp', '--no_rtti'],
                 'COMPILE_C_AS_CPP': False,
             },
-
             'v4': {
-                'ARMCC_VERSION': '5.03',
-                'COMMON_FLAGS':['-c', '--gnu', '-O3', '-Otime', '--split_sections', '--apcs=interwork'],
-                'COMMON_C_FLAGS':['--no_depend_system_headers'],
-                'COMMON_CC_FLAGS':['--c99'],
-                'COMMON_CPP_FLAGS':['--cpp', '--no_rtti'],
+                'ARMCC_VERSION':    '5.03',
+                'COMMON_FLAGS':     ['-c', '--gnu', '-O3', '-Otime', '--split_sections', '--apcs=interwork'],
+                'COMMON_CPP_FLAGS': ['--cpp', '--no_rtti'],
+                'COMPILE_C_AS_CPP': False,
+            },
+            'v3': {
+                'ARMCC_VERSION':    '5.01',
+                'COMMON_FLAGS':     ['-c', '--gnu', '-Ospace', '--split_sections', '--apcs=interwork'],
+                'COMMON_CPP_FLAGS': ['--cpp', '--no_rtti'],
                 'COMPILE_C_AS_CPP': False,
             },
-
-            'v3': {
-                'ARMCC_VERSION': '5.01',
-                'COMMON_FLAGS':['-c', '--gnu', '-Ospace', '--split_sections', '--apcs=interwork'],
-                'COMMON_C_FLAGS':['--no_depend_system_headers'],
-                'COMMON_CC_FLAGS':['--c99'],
-                'COMMON_CPP_FLAGS':['--cpp', '--no_rtti'],
+            'v2': {
+                'ARMCC_VERSION':    '5.01',
+                'COMMON_FLAGS':     ['-c', '--gnu', '-Ospace', '--split_sections', '--apcs=interwork'],
+                'COMMON_CPP_FLAGS': ['--cpp', '--no_rtti'],
                 'COMPILE_C_AS_CPP': False,
             },
-
-            'v2': {
-                'COMMON_FLAGS':['-c', '--gnu', '-Ospace', '--split_sections', '--apcs=interwork'],
-                'COMMON_C_FLAGS':['--no_depend_system_headers'],
-                'COMMON_CC_FLAGS':['--c99'],
-                'COMMON_CPP_FLAGS':['--cpp', '--no_rtti'],
-                'COMPILE_C_AS_CPP': False,
-            },
-
              'v1': {
-                'ARMCC_VERSION': '4',
-                'COMMON_FLAGS':['-c', '--gnu', '-Otime', '--split_sections', '--apcs=interwork'],
-                'COMMON_C_FLAGS':['--no_depend_system_headers'],
-                'COMMON_CC_FLAGS':['--c99'],
-                'COMMON_CPP_FLAGS':['--cpp'],
+                'ARMCC_VERSION':    '4',
+                'COMMON_FLAGS':     ['-c', '--gnu', '-Otime', '--split_sections', '--apcs=interwork'],
+                'COMMON_CPP_FLAGS': ['--cpp'],
                 'COMPILE_C_AS_CPP': True,
             }
-    }  # end ARM
+    },
+    'GCC_ARM' : {
+            'v2': {
+                'COMMON_FLAGS':     ["-c", "-O2", "-Wall", "-fmessage-length=0", "-fno-exceptions", "-fno-builtin", "-ffunction-sections", "-fdata-sections"],
+                'COMMON_CPP_FLAGS': ['-std=gnu++98'],
+                'COMMON_LD_FLAGS':  ['-Wl,--gc-sections'],
+            }
+    }
 }