Changeset 080dbb5 in rtems_waf


Ignore:
Timestamp:
Nov 13, 2015, 9:39:34 AM (4 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
096372fc4504730e50b51b952ce47ca603b35f01
Children:
a0b06b0
Parents:
b2ce230
git-author:
Sebastian Huber <sebastian.huber@…> (11/13/15 09:39:34)
git-committer:
Chris Johns <chrisj@…> (11/13/15 09:48:17)
Message:

Derive default paths from RTEMS version

Close #2440.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • rtems.py

    rb2ce230 r080dbb5  
    3434import subprocess
    3535
    36 default_version = '4.11'
    37 default_label = 'rtems-' + default_version
    38 default_path = '/opt/' + default_label
    39 default_postfix = 'rtems' + default_version
    40 
    4136rtems_filters = None
    4237
    4338def options(opt):
    4439    opt.add_option('--rtems',
    45                    default = default_path,
     40                   default = None,
    4641                   dest = 'rtems_path',
    47                    help = 'Path to an installed RTEMS.')
     42                   help = 'Path to an installed RTEMS (default /opt/rtems-${rtems_version}).')
    4843    opt.add_option('--rtems-tools',
    4944                   default = None,
    5045                   dest = 'rtems_tools',
    51                    help = 'Path to RTEMS tools.')
     46                   help = 'Path to RTEMS tools (defaults to path to installed RTEMS).')
    5247    opt.add_option('--rtems-version',
    53                    default = default_version,
     48                   default = '4.11',
    5449                   dest = 'rtems_version',
    55                    help = 'RTEMS version (default ' + default_version + ').')
     50                   help = 'RTEMS version (default 4.11).')
    5651    opt.add_option('--rtems-archs',
    5752                   default = 'all',
     
    8984        # Check the tools, architectures and bsps.
    9085        #
    91         rtems_path, rtems_tools, archs, arch_bsps = check_options(ctx,
    92                                                                   env.options['rtems_tools'],
    93                                                                   env.options['rtems_path'],
    94                                                                   env.options['rtems_version'],
    95                                                                   env.options['rtems_archs'],
    96                                                                   env.options['rtems_bsps'])
     86        rtems_path, rtems_bin, rtems_tools, archs, arch_bsps = check_options(ctx,
     87                                                                             env.options['rtems_tools'],
     88                                                                             env.options['rtems_path'],
     89                                                                             env.options['rtems_version'],
     90                                                                             env.options['rtems_archs'],
     91                                                                             env.options['rtems_bsps'])
    9792
    9893        #
     
    128123        show_commands = 'no'
    129124
    130     rtems_path, rtems_tools, archs, arch_bsps = check_options(conf,
    131                                                               conf.options.rtems_tools,
    132                                                               conf.options.rtems_path,
    133                                                               conf.options.rtems_version,
    134                                                               conf.options.rtems_archs,
    135                                                               conf.options.rtems_bsps)
     125    rtems_path, rtems_bin, rtems_tools, archs, arch_bsps = check_options(conf,
     126                                                                         conf.options.rtems_tools,
     127                                                                         conf.options.rtems_path,
     128                                                                         conf.options.rtems_version,
     129                                                                         conf.options.rtems_archs,
     130                                                                         conf.options.rtems_bsps)
    136131
    137132    if rtems_tools is None:
     
    155150        conf.env.ARCH_BSP = '%s/%s' % (arch.split('-')[0], bsp)
    156151
    157         conf.env.RTEMS_PATH = conf.options.rtems_path
     152        conf.env.RTEMS_PATH = rtems_path
    158153        conf.env.RTEMS_VERSION = conf.options.rtems_version
    159154        conf.env.RTEMS_ARCH_BSP = ab
     
    162157        conf.env.RTEMS_BSP = bsp
    163158
    164         tools = _find_tools(conf, arch, [rtems_path] + rtems_tools, tools)
     159        tools = _find_tools(conf, arch, [rtems_bin] + rtems_tools, tools)
    165160        for t in tools[arch]:
    166161            conf.env[t] = tools[arch][t]
     
    170165        conf.load('gas')
    171166
    172         flags = _load_flags(conf, ab, conf.options.rtems_path)
     167        flags = _load_flags(conf, ab, rtems_path)
    173168
    174169        cflags = _filter_flags('cflags', flags['CFLAGS'],
    175                                arch, conf.options.rtems_path)
     170                               arch, rtems_path)
    176171        ldflags = _filter_flags('ldflags', flags['LDFLAGS'],
    177                                arch, conf.options.rtems_path)
     172                               arch, rtems_path)
    178173
    179174        conf.env.CFLAGS    = cflags['cflags']
     
    195190                        msg = 'Checking for RTEMS CPU options header',
    196191                        mandatory = True)
    197         load_cpuopts(conf, ab, conf.options.rtems_path)
     192        load_cpuopts(conf, ab, rtems_path)
    198193        if conf.env['RTEMS_SMP'] == 'Yes':
    199194            conf.env.CXXFLAGS += ['-std=gnu++11']
     
    288283def check_options(ctx, rtems_tools, rtems_path, rtems_version, rtems_archs, rtems_bsps):
    289284    #
     285    # Set defaults
     286    #
     287    if rtems_path is None:
     288        rtems_path = '/opt/rtems-' + rtems_version
     289    if rtems_tools is None:
     290        rtems_tools = rtems_path
     291
     292    #
    290293    # Check the paths are valid.
    291294    #
     
    307310    # versions.
    308311    #
    309     if rtems_tools is not None:
    310         rt = rtems_tools.split(',')
    311         tools = []
    312         for path in rt:
    313             if not os.path.exists(path):
    314                 ctx.fatal('RTEMS tools path not found: ' + path)
    315             if not os.path.exists(os.path.join(path, 'bin')):
    316                 ctx.fatal('RTEMS tools path does not contain a \'bin\' directory: ' + path)
    317             tools += [os.path.join(path, 'bin')]
    318     else:
    319         tools = None
     312    rt = rtems_tools.split(',')
     313    tools = []
     314    for path in rt:
     315        if not os.path.exists(path):
     316            ctx.fatal('RTEMS tools path not found: ' + path)
     317        if not os.path.exists(os.path.join(path, 'bin')):
     318            ctx.fatal('RTEMS tools path does not contain a \'bin\' directory: ' + path)
     319        tools += [os.path.join(path, 'bin')]
    320320
    321321    #
     
    361361    arch_bsps = filter(ctx, 'bsps', arch_bsps)
    362362
    363     return rtems_bin, tools, archs, arch_bsps
     363    return rtems_path, rtems_bin, tools, archs, arch_bsps
    364364
    365365def check_env(ctx, var):
     
    444444    return sorted(filtered_items)
    445445
    446 def arch_rtems_version(arch):
     446def arch_rtems_version(version, arch):
    447447    """ Return the RTEMS architecture path, ie sparc-rtems4.11."""
    448     return '%s-%s' % (arch, default_postfix)
    449 
    450 def arch_bsp_path(arch_bsp):
     448    return '%s-rtems%s' % (arch, version)
     449
     450def arch_bsp_path(version, arch_bsp):
    451451    """ Return the BSP path."""
    452     return '%s/%s' % (arch_rtems_version(arch(arch_bsp)), bsp(arch_bsp))
    453 
    454 def arch_bsp_include_path(arch_bsp):
     452    return '%s/%s' % (arch_rtems_version(version, arch(arch_bsp)), bsp(arch_bsp))
     453
     454def arch_bsp_include_path(version, arch_bsp):
    455455    """ Return the BSP include path."""
    456     return '%s/lib/include' % (arch_bsp_path(arch_bsp))
    457 
    458 def arch_bsp_lib_path(arch_bsp):
     456    return '%s/lib/include' % (arch_bsp_path(version, arch_bsp))
     457
     458def arch_bsp_lib_path(version, arch_bsp):
    459459    """ Return the BSP library path. """
    460     return '%s/lib' % (arch_bsp_path(arch_bsp))
     460    return '%s/lib' % (arch_bsp_path(version, arch_bsp))
    461461
    462462def library_path(library, cc, cflags):
Note: See TracChangeset for help on using the changeset viewer.