source: rtems-source-builder/source-builder/sb/netbsd.py @ a293ddc

5
Last change on this file since a293ddc was 2a6acc7, checked in by Chris Johns <chrisj@…>, on 05/04/14 at 06:22:46

config: Fix the host and build options for Canadian cross builds.

The ARM on 4.9.0 with clang fails and needs an extra option and
this is only valid building the build cross compiler. This change
fxies the host and build flags so they only apply where needed.

  • Property mode set to 100644
File size: 3.4 KB
Line 
1#
2# RTEMS Tools Project (http://www.rtems.org/)
3# Copyright 2010-2012 Chris Johns (chrisj@rtems.org)
4# All rights reserved.
5#
6# This file is part of the RTEMS Tools package in 'rtems-tools'.
7#
8# RTEMS Tools is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
12#
13# RTEMS Tools is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License
19# along with RTEMS Tools.  If not, see <http://www.gnu.org/licenses/>.
20#
21
22#
23# This code is based on what ever doco about spec files I could find and
24# RTEMS project's spec files.
25#
26
27import pprint
28import os
29
30import check
31import execute
32
33def load():
34    uname = os.uname()
35    sysctl = '/sbin/sysctl '
36    e = execute.capture_execution()
37    exit_code, proc, output = e.shell(sysctl + 'hw.ncpu')
38    if exit_code == 0:
39        ncpus = output.split(' ')[1].strip()
40    else:
41        ncpus = '1'
42    if uname[4] == 'amd64':
43        cpu = 'x86_64'
44    else:
45        cpu = uname[4]
46    version = uname[2]
47    if version.find('-') > 0:
48        version = version.split('-')[0]
49    defines = {
50        '_ncpus':            ('none',    'none',    '1'),
51        '_os':               ('none',    'none',     'netbsd'),
52        '_host':             ('triplet', 'required', cpu + '-netbsd' + version),
53        '_host_vendor':      ('none',    'none',     'pc'),
54        '_host_os':          ('none',    'none',     'netbsd'),
55        '_host_os_version':  ('none',    'none',     version),
56        '_host_cpu':         ('none',    'none',     cpu),
57        '_host_alias':       ('none',    'none',     '%{nil}'),
58        '_host_arch':        ('none',    'none',     cpu),
59        '_usr':              ('dir',     'required', '/usr'),
60        '_var':              ('dir',     'optional', '/var'),
61        'optincludes_build': ('none',    'none',     '-I/usr/pkg/include -L/usr/pkg/lib'),
62        '__bash':            ('exe',     'optional', '/usr/pkg/bin/bash'),
63        '__bison':           ('exe',     'required', '/usr/pkg/bin/bison'),
64        '__git':             ('exe',     'required', '/usr/pkg/bin/git'),
65        '__svn':             ('exe',     'required', '/usr/pkg/bin/svn'),
66        '__xz':              ('exe',     'optional', '/usr/pkg/bin/xz'),
67        '__make':            ('exe',     'required', 'gmake'),
68        '__patch_opts':      ('none',     'none',    '-E')
69        }
70
71    defines['_build']        = defines['_host']
72    defines['_build_vendor'] = defines['_host_vendor']
73    defines['_build_os']     = defines['_host_os']
74    defines['_build_cpu']    = defines['_host_cpu']
75    defines['_build_alias']  = defines['_host_alias']
76    defines['_build_arch']   = defines['_host_arch']
77
78    for gv in ['47', '48', '49']:
79        gcc = '%s-portbld-netbsd%s-gcc%s' % (cpu, version, gv)
80        if check.check_exe(gcc, gcc):
81            defines['__cc'] = gcc
82            break
83    for gv in ['47', '48', '49']:
84        gxx = '%s-portbld-netbsd%s-g++%s' % (cpu, version, gv)
85        if check.check_exe(gxx, gxx):
86            defines['__cxx'] = gxx
87            break
88
89    return defines
90
91if __name__ == '__main__':
92    pprint.pprint(load())
Note: See TracBrowser for help on using the repository browser.