Changeset 6444d58 in rtems-source-builder for source-builder/sb/setbuilder.py


Ignore:
Timestamp:
Jul 20, 2015, 3:49:42 AM (5 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, 4.9, 5, master
Children:
f936478
Parents:
fba2549
Message:

Canandian Cross Compiling and RTEMS 3rd party package building Fixes.

The change fixes installing for RTEMS 3rd Party packages where the
RSB considered them Canadian Cross Compiling (Cxc). Fixing the
Cxc issue broke real Cxc builds. The change corrects the issue of
macros being changed in the Cxc and the prep data not being udpated.
The configuration is loaded again after the updated macros. The
macros are also copied and restored to ensure a clean stable base.

The change also introduces --rtems-tools and --rtems-bsp to align
the command line with the waf configure process or RTEMS application.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source-builder/sb/setbuilder.py

    rfba2549 r6444d58  
    100100                if format is not None:
    101101                    if len(format) != 2:
    102                         raise error.general('invalid report format option: %s' % ('='.join(format)))
     102                        raise error.general('invalid report format option: %s' % \
     103                                            ('='.join(format)))
    103104                    format = format[1]
    104105            if format is None:
     
    157158
    158159    def canadian_cross(self, _build):
    159         # @fixme Switch to using a private macros map.
    160         macros_to_save = ['%{_prefix}',
    161                           '%{_tmproot}',
    162                           '%{buildroot}',
    163                           '%{_builddir}',
    164                           '%{_host}']
    165         macros_to_copy = [('%{_host}',     '%{_build}'),
    166                           ('%{_tmproot}',  '%{_tmpcxcroot}'),
    167                           ('%{buildroot}', '%{buildcxcroot}'),
    168                           ('%{_builddir}', '%{_buildcxcdir}')]
    169         orig_macros = {}
    170         for m in macros_to_save:
    171             orig_macros[m] = _build.config.macro(m)
     160        log.trace('_bset: Cxc for build machine: _build => _host')
     161        macros_to_copy = [('%{_host}',        '%{_build}'),
     162                          ('%{_host_alias}',  '%{_build_alias}'),
     163                          ('%{_host_arch}',   '%{_build_arch}'),
     164                          ('%{_host_cpu}',    '%{_build_cpu}'),
     165                          ('%{_host_os}',     '%{_build_os}'),
     166                          ('%{_host_vendor}', '%{_build_vendor}'),
     167                          ('%{_tmproot}',     '%{_tmpcxcroot}'),
     168                          ('%{buildroot}',    '%{buildcxcroot}'),
     169                          ('%{_builddir}',    '%{_buildcxcdir}')]
     170        cxc_macros = _build.copy_init_macros()
    172171        for m in macros_to_copy:
    173             _build.config.set_define(m[0], _build.config.macro(m[1]))
     172            log.trace('_bset: Cxc: %s <= %s' % (m[0], cxc_macros[m[1]]))
     173            cxc_macros[m[0]] = cxc_macros[m[1]]
     174        _build.set_macros(cxc_macros)
     175        _build.reload()
    174176        _build.make()
    175         for m in macros_to_save:
    176             _build.config.set_define(m, orig_macros[m])
    177177        if not _build.macros.get('%{_disable_collecting}'):
    178             self.root_copy(_build.config.expand('%{buildcxcroot}'),
    179                            _build.config.expand('%{_tmpcxcroot}'))
     178            self.root_copy(_build.config.expand('%{buildroot}'),
     179                           _build.config.expand('%{_tmproot}'))
     180        _build.set_macros(_build.copy_init_macros())
     181        _build.reload()
    180182
    181183    def build_package(self, _config, _build):
     
    190192    def bset_tar(self, _build):
    191193        tardir = _build.config.expand('%{_tardir}')
    192         if self.opts.get_arg('--bset-tar-file') \
     194        if (self.opts.get_arg('--bset-tar-file') or self.opts.canadian_cross()) \
    193195           and not _build.macros.get('%{_disable_packaging}'):
    194196            path.mkdir(tardir)
     
    381383                    else:
    382384                        raise
     385            #
     386            # Installing ...
     387            #
     388            log.trace('_bset: installing: deps:%r no-install:%r' % \
     389                      (deps is None, self.opts.no_install()))
    383390            if deps is None \
    384391               and not self.opts.no_install() \
    385392               and not have_errors:
    386393                for b in builds:
    387                     if not b.canadian_cross() \
    388                        and not b.disabled() \
    389                        and not b.macros.get('%{_disable_installing}'):
     394                    log.trace('_bset: installing: %r' % b.installable())
     395                    if b.installable():
    390396                        self.install(b.name(),
    391397                                     b.config.expand('%{buildroot}'),
    392398                                     b.config.expand('%{_prefix}'))
     399
    393400            if deps is None and \
    394401                    (not self.opts.no_clean() or self.opts.always_clean()):
     
    473480        if not list_bset_cfg_files(opts, configs):
    474481            prefix = opts.defaults.expand('%{_prefix}')
     482            if opts.canadian_cross():
     483                opts.disable_install()
     484
    475485            if not opts.dry_run() and \
    476486               not opts.canadian_cross() and \
Note: See TracChangeset for help on using the changeset viewer.