Changeset f3b5490 in rtems-source-builder


Ignore:
Timestamp:
Apr 8, 2014, 5:11:00 AM (6 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, 4.11, 4.9, master
Children:
34cc5a9
Parents:
374ba95
Message:

config,sb: Qemu build updates for FreeBSD and the start of MinG32.

Hack round the FreeBSD iconv support in Freebsd 10. In 10 libc now
supports iconv however iconv.h is present under /usr/local.

Start to add support to build qemu for MinGW via a Cxc. This is a
work in progress and contains lots of hidden traps.

In config.py separate out of the canadian build status.

Files:
3 added
10 edited

Legend:

Unmodified
Added
Removed
  • bare/config/devel/qemu-git-1.cfg

    r374ba95 rf3b5490  
    2424Patch0:  pw://patchwork.ozlabs.org/patch/318435/raw/PULL-29-29-arm-zynq-Add-software-system-reset-via-SCLR.patch
    2525
     26Patch5: pw://patchwork.ozlabs.org/patch/99999999/raw/qemu-channel-win32-cdecls.patch
     27
    2628#
    2729# The Qemu build instructions. We use 1.x.x Release 1.
  • bare/config/devel/qemu.bset

    r374ba95 rf3b5490  
    1212
    1313devel/autotools-internal
     14devel/libiconv-1.14-1
    1415devel/gettext-0.18.3.1-1
    1516devel/libffi-3.0.13-1
  • source-builder/config/gettext-0-1.cfg

    r374ba95 rf3b5490  
    2121#
    2222Source0: http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.3.1.tar.gz
     23
     24#
     25# Fix the mess iconv is on FreeBSD 10.0.
     26#
     27%if %{defined iconv_optincludes}
     28 %define optincludes %{iconv_optincludes}
     29%endif
    2330
    2431#
  • source-builder/config/glib-2-1.cfg

    r374ba95 rf3b5490  
    5555  SYSROOT=$SB_TMPPREFIX
    5656
    57   PKG_CONFIG_PATH=$SYSROOT \
     57  PKG_CONFIG_PATH=$SYSROOT/lib/pkgconfig \
    5858  PKG_CONFIG_BUILD_TOP_DIR=$SB_TMPROOT \
    5959  %{_ld_library_path}=$SYSROOT/lib \
  • source-builder/config/pixman-0-1.cfg

    r374ba95 rf3b5490  
    6565    --datadir=%{_datadir} \
    6666    --build=%{_build} --host=%{_host} \
    67     --disable-gtk
     67    --disable-gtk \
     68    --disable-libpng
    6869
    6970  %{__make} %{?_smp_mflags} all
  • source-builder/config/qemu-1-1.cfg

    r374ba95 rf3b5490  
    5252  %{host_build_flags}
    5353
     54  if test "%{_build}" != "%{_host}" ; then
     55    CROSS_PREFIX_OPTION="--cross-prefix=%{_host}-"
     56  fi
     57
    5458  SYSROOT=$SB_TMPPREFIX
    5559
    56   PKG_CONFIG_PATH=$SYSROOT \
     60  PKG_CONFIG_PATH=$SYSROOT/lib/pkgconfig \
    5761  PKG_CONFIG_BUILD_TOP_DIR=$SB_TMPROOT \
    5862  %{_ld_library_path}=$SYSROOT/lib \
     
    6064  ../${source_dir_0}/configure \
    6165    --prefix=%{_prefix} \
     66    ${CROSS_PREFIX_OPTION} \
     67    --make=%{__make} \
    6268    --disable-werror \
    6369    --disable-tools \
  • source-builder/pkg-config

    r374ba95 rf3b5490  
    8484            print >> out, s,
    8585
    86 def _check_package(lib_check, args):
     86def _check_package(libraries, args):
    8787    ec = 1
    8888    pkg = None
    8989    flags = { 'cflags': '',
    9090              'libs': '' }
    91     libs = pkgconfig.package.splitter(lib_check)
     91    libs = pkgconfig.package.splitter(libraries)
    9292    for lib in libs:
    9393        log('pkg: %s' % (lib))
     
    214214        raise error('only one of --exists, --exact-version, or --max-version')
    215215
     216    if args.dont_define_prefix:
     217        args.prefix = pkgconfig.default_prefix(False)
     218
    216219    exists = False
    217220
     
    221224        ec = 0
    222225    else:
    223         for lib in args.libraries:
    224             ec, pkg, flags = _check_package(lib, args)
    225             if ec == 0:
    226                 if args.cflags:
    227                     if len(flags['cflags']):
    228                         print flags['cflags']
    229                         log('cflags: %s' % (flags['cflags']))
    230                     else:
    231                         log('cflags: empty')
    232                 if args.libs:
    233                     if len(flags['libs']):
    234                         print flags['libs']
    235                         log('libs: %s' % (flags['libs']))
    236                     else:
    237                         log('libs: empty')
     226        ec, pkg, flags = _check_package(args.libraries, args)
     227        if ec == 0:
     228            if args.cflags:
     229                if len(flags['cflags']):
     230                    print flags['cflags']
     231                    log('cflags: %s' % (flags['cflags']))
     232                else:
     233                    log('cflags: empty')
     234            if args.libs:
     235                if len(flags['libs']):
     236                    print flags['libs']
     237                    log('libs: %s' % (flags['libs']))
     238                else:
     239                    log('libs: empty')
    238240
    239241    #pkgconfig.package.dump_loaded()
  • source-builder/sb/config.py

    r374ba95 rf3b5490  
    287287            return name
    288288        return '%{' + name.lower() + '}'
     289
     290    def _cross_compile(self):
     291        _host = self.expand('%{_host}')
     292        _build = self.expand('%{_build}')
     293        return _host != _build
     294
     295    def _candian_cross_compile(self):
     296        _host = self.expand('%{_host}')
     297        _build = self.expand('%{_build}')
     298        _target = self.expand('%{_target}')
     299        _alloc_cxc = self.defined('%{allow_cxc}')
     300        return _alloc_cxc and _host != _build and _host != _target
    289301
    290302    def _macro_split(self, s):
     
    370382
    371383    def _pkgconfig_check(self, test):
    372         ts = test.split()
    373384        ok = False
    374         pkg = pkgconfig.package(ts[0], output = log.output)
    375         if len(ts) != 1 and len(ts) != 3:
    376             self._error('malformed check')
    377         else:
    378             op = '>='
    379             ver = '0'
    380             if len(ts) == 3:
    381                 op = ts[1]
    382                 ver = self.macros.expand(ts[2])
     385        if not self._cross_compile():
     386            ts = test.split()
     387            pkg = pkgconfig.package(ts[0], output = log.output)
     388            if len(ts) != 1 and len(ts) != 3:
     389                self._error('malformed check')
     390            else:
     391                op = '>='
     392                ver = '0'
     393                if len(ts) == 3:
     394                    op = ts[1]
     395                    ver = self.macros.expand(ts[2])
     396                try:
     397                    ok = pkg.check(op, ver)
     398                except pkgconfig.error, pe:
     399                    self._error('check: %s' % (pe))
     400                except:
     401                    raise error.interal('pkgconfig failure')
     402        return ok
     403
     404    def _pkgconfig_flags(self, package, flags):
     405        pkg_flags = None
     406        if not self._cross_compile():
     407            pkg = pkgconfig.package(package, output = log.output)
    383408            try:
    384                 ok = pkg.check(op, ver)
     409                pkg_flags = pkg.get(flags)
    385410            except pkgconfig.error, pe:
    386                 self._error('check: %s' % (pe))
     411                self._error('flags:%s: %s' % (flags, pe))
    387412            except:
    388413                raise error.interal('pkgconfig failure')
    389         return ok
    390 
    391     def _pkgconfig_flags(self, package, flags):
    392         pkg_flags = None
    393         pkg = pkgconfig.package(package, output = log.output)
    394         try:
    395             pkg_flags = pkg.get(flags)
    396         except pkgconfig.error, pe:
    397             self._error('flags:%s: %s' % (flags, pe))
    398         except:
    399             raise error.interal('pkgconfig failure')
    400414        return pkg_flags
    401415
  • source-builder/sb/freebsd.py

    r374ba95 rf3b5490  
    7474    defines['_build_arch']   = defines['_host_arch']
    7575
    76     # FreeBSD 10 and above no longer have /usr/bin/cvs, but it can (e.g.) be installed to /usr/local/bin/cvs through the devel/cvs port
     76    # FreeBSD 10 and above no longer have /usr/bin/cvs, but it can (e.g.) be
     77    # installed to /usr/local/bin/cvs through the devel/cvs port
    7778    if int(float(version)) >= 10:
    7879        cvs = 'cvs'
    7980        if check.check_exe(cvs, cvs):
    8081            defines['__cvs'] = cvs
     82        #
     83        # Fix the mess iconv is on FreeBSD 10.0.
     84        #
     85        defines['iconv_optincludes'] = ('none', 'none', '-I/usr/local/include -L/usr/local/lib')
    8186
    8287    for gv in ['47', '48', '49']:
  • source-builder/sb/pkgconfig.py

    r374ba95 rf3b5490  
    4141import sys
    4242
    43 def default_prefix():
     43def default_prefix(common = True):
    4444    paths = []
    45     defaults = ['/usr', '/usr/share', '/lib', '/lib64', '/usr/lib', '/usr/lib64', '/usr/local']
    46     for d in defaults:
    47         if os.path.exists(d):
    48             paths += [d]
    4945    if 'PKG_CONFIG_PATH' in os.environ:
    5046        paths += os.environ['PKG_CONFIG_PATH'].split(':')
     47    if common:
     48        defaults = ['/usr', '/usr/share', '/lib', '/lib64', '/usr/lib', '/usr/lib64', '/usr/local']
     49        for d in defaults:
     50            for cp in package.config_prefixes:
     51                prefix = os.path.join(d, cp, 'pkgconfig')
     52                if os.path.exists(prefix):
     53                    paths += [prefix]
    5154    return paths
    5255
     
    8083    def splitter(pkg_list):
    8184        pkgs = []
    82         pls = package.lib_list_splitter.split(pkg_list)
     85        if type(pkg_list) == list:
     86            pls = pkg_list
     87        else:
     88            pls = package.lib_list_splitter.split(pkg_list)
    8389        i = 0
    8490        while i < len(pls):
     
    182188                raise error('invalid type of prefix: %s' % (type(prefix)))
    183189            for p in self.prefix:
    184                 for d in package.config_prefixes:
    185                     prefix = os.path.join(p, d, 'pkgconfig')
    186                     if os.path.exists(prefix):
    187                         self.paths += [prefix]
     190                if os.path.exists(p):
     191                    self.paths += [p]
    188192            self._log('paths: %s' % (', '.join(self.paths)))
    189193        if 'sysroot' in self.defines:
Note: See TracChangeset for help on using the changeset viewer.