Changeset f7a09b5 in rtems-libbsd


Ignore:
Timestamp:
Mar 26, 2018, 4:14:52 AM (14 months ago)
Author:
Chris Johns <chrisj@…>
Branches:
b5f8d4831d66364b7391e3660560cb9bbecada2e, 31b5c87357cee83d6a3419c5d801a9bf16912714
Children:
d797c5d
Parents:
8189ea8
git-author:
Chris Johns <chrisj@…> (03/26/18 04:14:52)
git-committer:
Christian Mauderer <christian.mauderer@…> (04/10/18 06:54:52)
Message:

waf: Support building from libbsd.py directly from waf.

Remove the need to generate a waf script.

Move various pieces of data from the builder code to libbsd.py and make
it configuration data.

Update #3351

Files:
1 added
2 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • builder.py

    r8189ea8 rf7a09b5  
    156156# This stuff needs to move to libbsd.py.
    157157#
    158 def commonFlags():
    159     return ['-g',
    160             '-fno-strict-aliasing',
    161             '-ffreestanding',
    162             '-fno-common']
    163 
    164 def commonWarnings():
    165     return ['-Wall',
    166             '-Wno-format',
    167             '-Wno-pointer-sign']
    168 
    169 def commonNoWarnings():
    170     return ['-w']
    171 
    172 def includes():
    173     return ['-Irtemsbsd/include',
    174             '-Ifreebsd/sys',
    175             '-Ifreebsd/sys/contrib/pf',
    176             '-Ifreebsd/crypto',
    177             '-Ifreebsd/sys/net',
    178             '-Ifreebsd/include',
    179             '-Ifreebsd/lib',
    180             '-Ifreebsd/lib/libbsdstat',
    181             '-Ifreebsd/lib/libc/include',
    182             '-Ifreebsd/lib/libc/isc/include',
    183             '-Ifreebsd/lib/libc/resolv',
    184             '-Ifreebsd/lib/libutil',
    185             '-Ifreebsd/lib/libkvm',
    186             '-Ifreebsd/lib/libmemstat',
    187             '-Ifreebsd/lib/libipsec',
    188             '-Ifreebsd/contrib/expat/lib',
    189             '-Ifreebsd/contrib/libpcap',
    190             '-Ifreebsd/contrib/libxo',
    191             '-Ilinux/include',
    192             '-Ilinux/drivers/net/ethernet/freescale/fman',
    193             '-Irtemsbsd/sys',
    194             '-ImDNSResponder/mDNSCore',
    195             '-ImDNSResponder/mDNSShared',
    196             '-ImDNSResponder/mDNSPosix',
    197             '-Itestsuite/include']
    198 
    199 def buildInclude():
    200     """ Returns the path where headers will be copied during build. """
    201     return 'build-include'
    202 
    203 def cpuIncludes():
    204     return ['-Irtemsbsd/@CPU@/include',
    205             '-Ifreebsd/sys/@CPU@/include']
    206 
    207 def cflags():
    208     return []
    209 
    210 def cxxflags():
    211     return []
    212 
    213 def headerPaths():
    214     """ Returns a list of information about what header files should be
    215     installed.
    216 
    217     The list is also used to find headers with a local path that doesn't match
    218     it's dest path. Due to the difference in the path name such files are
    219     problematic during the build if they are included using their later
    220     installation path (dest path) name. Therefore they are copied into a
    221     sub-directory of the build path so that they can be included with their
    222     normal installation path. """
    223 
    224     #         local path                      wildcard             dest path
    225     return [('rtemsbsd/include',              '**/*.h',            ''),
    226             ('rtemsbsd/\' + bld.env.RTEMS_ARCH + \'/include', '**/*.h', ''),
    227             ('rtemsbsd/mghttpd',              'mongoose.h',        'mghttpd'),
    228             ('freebsd/include',               '**/*.h',            ''),
    229             ('freebsd/sys/bsm',               '**/*.h',            'bsm'),
    230             ('freebsd/sys/cam',               '**/*.h',            'cam'),
    231             ('freebsd/sys/net',               '**/*.h',            'net'),
    232             ('freebsd/sys/net80211',          '**/*.h',            'net80211'),
    233             ('freebsd/sys/netinet',           '**/*.h',            'netinet'),
    234             ('freebsd/sys/netinet6',          '**/*.h',            'netinet6'),
    235             ('freebsd/sys/netipsec',          '**/*.h',            'netipsec'),
    236             ('freebsd/contrib/libpcap',       '*.h',               ''),
    237             ('freebsd/contrib/libpcap/pcap',  '*.h',               'pcap'),
    238             ('freebsd/crypto/openssl',        '*.h',               'openssl'),
    239             ('freebsd/crypto/openssl/crypto', '*.h',               'openssl'),
    240             ('freebsd/crypto/openssl/ssl',    '(ssl|kssl|ssl2).h', 'openssl'),
    241             ('freebsd/crypto/openssl/crypto/aes', 'aes.h',         'openssl'),
    242             ('freebsd/crypto/openssl/crypto/err', 'err.h',         'openssl'),
    243             ('freebsd/crypto/openssl/crypto/bio', '*.h',           'openssl'),
    244             ('freebsd/crypto/openssl/crypto/dsa', '*.h',           'openssl'),
    245             ('freebsd/crypto/openssl/ssl',        '*.h',           'openssl'),
    246             ('freebsd/crypto/openssl/crypto/bn',  'bn.h',          'openssl'),
    247             ('freebsd/crypto/openssl/crypto/x509',  'x509.h',      'openssl'),
    248             ('freebsd/crypto/openssl/crypto/cast',  'cast.h',      'openssl'),
    249             ('freebsd/crypto/openssl/crypto/lhash', 'lhash.h',     'openssl'),
    250             ('freebsd/crypto/openssl/crypto/ecdh',  'ecdh.h',      'openssl'),
    251             ('freebsd/crypto/openssl/crypto/ecdsa', 'ecdsa.h',     'openssl'),
    252             ('freebsd/crypto/openssl/crypto/idea',  'idea.h',      'openssl'),
    253             ('freebsd/crypto/openssl/crypto/mdc2',  'mdc2.h',      'openssl'),
    254             ('freebsd/crypto/openssl/crypto/md4',   'md4.h',       'openssl'),
    255             ('freebsd/crypto/openssl/crypto/md5',   'md5.h',       'openssl'),
    256             ('freebsd/crypto/openssl/crypto/rc2',   'rc2.h',       'openssl'),
    257             ('freebsd/crypto/openssl/crypto/rc4',   'rc4.h',       'openssl'),
    258             ('freebsd/crypto/openssl/crypto/ripemd','ripemd.h',    'openssl'),
    259             ('freebsd/crypto/openssl/crypto/seed',  'seed.h',      'openssl'),
    260             ('freebsd/crypto/openssl/crypto/sha',   'sha.h',       'openssl'),
    261             ('freebsd/crypto/openssl/crypto/x509v3','x509v3.h',    'openssl'),
    262             ('freebsd/crypto/openssl/crypto/x509',  'x509_vfy.h',  'openssl'),
    263             ('freebsd/crypto/openssl/crypto/buffer','buffer.h',    'openssl'),
    264             ('freebsd/crypto/openssl/crypto/comp',  'comp.h',      'openssl'),
    265             ('freebsd/crypto/openssl/crypto/asn1',  'asn1_mac.h',  'openssl'),
    266             ('freebsd/crypto/openssl/crypto/pem',  '(pem|pem2).h', 'openssl'),
    267             ('freebsd/crypto/openssl/crypto/rsa',   'rsa.h',       'openssl'),
    268             ('freebsd/crypto/openssl/crypto/evp',   'evp.h',       'openssl'),
    269             ('freebsd/crypto/openssl/crypto/ec',    'ec.h',        'openssl'),
    270             ('freebsd/crypto/openssl/crypto/engine', 'engine.h',   'openssl'),
    271             ('freebsd/crypto/openssl/crypto/pkcs7', 'pkcs7.h',     'openssl'),
    272             ('freebsd/crypto/openssl/crypto/hmac',  'hmac.h',      'openssl'),
    273             ('freebsd/crypto/openssl/crypto/pqueue', 'pqueue.h',   'openssl'),
    274             ('freebsd/crypto/openssl/crypto/ocsp',  'ocsp.h',      'openssl'),
    275             ('freebsd/crypto/openssl/crypto/rand',  'rand.h',      'openssl'),
    276             ('freebsd/crypto/openssl/crypto/srp',   'srp.h',       'openssl'),
    277             ('freebsd/crypto/openssl/crypto/dh',    'dh.h',        'openssl'),
    278             ('freebsd/crypto/openssl/crypto/dso',   'dso.h',       'openssl'),
    279             ('freebsd/crypto/openssl/crypto/krb5',  'krb5_asn.h',  'openssl'),
    280             ('freebsd/crypto/openssl/crypto/cms',   'cms.h',       'openssl'),
    281             ('freebsd/crypto/openssl/crypto/txt_db', 'txt_db.h',   'openssl'),
    282             ('freebsd/crypto/openssl/crypto/ts',    'ts.h',        'openssl'),
    283             ('freebsd/crypto/openssl/crypto/modes', 'modes.h',     'openssl'),
    284             ('freebsd/crypto/openssl/crypto/pkcs12', 'pkcs12.h',   'openssl'),
    285             ('freebsd/crypto/openssl/crypto/bf',    'blowfish.h',  'openssl'),
    286             ('freebsd/crypto/openssl/crypto/cmac',  'cmac.h',      'openssl'),
    287             ('freebsd/crypto/openssl/crypto/asn1',  '(asn1|asn1t).h',            'openssl'),
    288             ('freebsd/crypto/openssl/crypto/camellia', 'camellia.h',             'openssl'),
    289             ('freebsd/crypto/openssl/crypto/objects',  '(objects|obj_mac).h',    'openssl'),
    290             ('freebsd/crypto/openssl/crypto/conf',     '(conf|conf_api).h',      'openssl'),
    291             ('freebsd/crypto/openssl/crypto/des',      '(des|des_old).h',        'openssl'),
    292             ('freebsd/crypto/openssl/crypto/ui',       '(ui_compat|ui).h',       'openssl'),
    293             ('freebsd/crypto/openssl/crypto/whrlpool', 'whrlpool.h',             'openssl'),
    294             ('freebsd/crypto/openssl/crypto/stack',    '(stack|safestack).h',    'openssl'),
    295             ('freebsd/crypto/openssl/crypto', '(opensslconf|opensslv|crypto).h', 'openssl'),
    296             ('freebsd/sys/rpc',               '**/*.h',            'rpc'),
    297             ('freebsd/sys/sys',               '**/*.h',            'sys'),
    298             ('freebsd/sys/vm',                '**/*.h',            'vm'),
    299             ('freebsd/sys/dev/mii',           '**/*.h',            'dev/mii'),
    300             ('linux/include',                 '**/*.h',            ''),
    301             ('mDNSResponder/mDNSCore',        'mDNSDebug.h',       ''),
    302             ('mDNSResponder/mDNSCore',        'mDNSEmbeddedAPI.h', ''),
    303             ('mDNSResponder/mDNSShared',      'dns_sd.h',          ''),
    304             ('mDNSResponder/mDNSPosix',       'mDNSPosix.h',       '')]
    305158
    306159# Move target dependent files under a machine directory
     
    631484# Module - logical group of related files we can perform actions on
    632485#
    633 class Module:
     486class Module(object):
    634487    def __init__(self, name):
    635488        self.name = name
     
    775628# Manager - a collection of modules.
    776629#
    777 class ModuleManager:
     630class ModuleManager(object):
    778631    def __init__(self):
    779632        self.modules = {}
    780633        self.generator = {}
     634        self.configuration = {}
    781635        self.setGenerators()
    782636
     
    797651        for m in sorted(self.modules):
    798652            self.modules[m].processSource(direction)
     653
     654    def setConfiguration(self, config):
     655        self.configuration = config
     656
     657    def getConfiguration(self):
     658        return self.configuration
  • freebsd-to-rtems.py

    r8189ea8 rf7a09b5  
    4343
    4444import builder
    45 import waf_generator
    4645import libbsd
    4746
    4847isForward = True
    4948isEarlyExit = False
    50 isOnlyBuildScripts = False
    5149statsReport = False
    5250
     
    5856    print("  -e|--early-exit   evaluate arguments, print results, and exit")
    5957    print("  -m|--makefile     Warning: depreciated and will be removed ")
    60     print("  -b|--buildscripts just generate the build scripts")
    6158    print("  -S|--stats        Print a statistics report")
    6259    print("  -R|--reverse      default origin -> LibBSD, reverse that")
     
    6865def parseArguments():
    6966    global isForward, isEarlyExit, statsReport
    70     global isOnlyBuildScripts
    7167    try:
    7268        opts, args = getopt.getopt(sys.argv[1:],
     
    10197        elif o in ("-e", "--early-exit"):
    10298            isEarlyExit = True
    103         elif o in ("-b", "--buildscripts") or o in ("-m", "--makefile"):
    104             isOnlyBuildScripts = True
    10599        elif o in ("-S", "--stats"):
    106100            statsReport = True
     
    120114print("Dry Run:                     %s" % (("no", "yes")[builder.isDryRun]))
    121115print("Diff Mode Enabled:           %s" % (("no", "yes")[builder.isDiffMode]))
    122 print("Only Generate Build Scripts: %s" % (("no", "yes")[isOnlyBuildScripts]))
    123116print("LibBSD Directory:            %s" % (builder.LIBBSD_DIR))
    124117print("FreeBSD Directory:           %s" % (builder.FreeBSD_DIR))
     
    144137else:
    145138    print("Reverting from", builder.LIBBSD_DIR)
    146     if isOnlyBuildScripts == True:
    147         print("error: Build Script generation and Reverse are contradictory")
    148         sys.exit(2)
    149139
    150140if isEarlyExit == True:
     
    153143
    154144try:
    155     wafGen = waf_generator.ModuleManager()
    156     libbsd.sources(wafGen)
    157     if not isOnlyBuildScripts:
    158         wafGen.processSource(isForward)
    159     wafGen.generate(libbsd.rtems_version())
     145    build = builder.ModuleManager()
     146    libbsd.loadModules(build)
     147    build.processSource(isForward)
    160148    builder.changedFileSummary(statsReport)
    161149except IOError as ioe:
  • libbsd.py

    r8189ea8 rf7a09b5  
    11#
    2 #  Copyright (c) 2015-2016 Chris Johns <chrisj@rtems.org>. All rights reserved.
     2#  Copyright (c) 2015-2016, 2018 Chris Johns <chrisj@rtems.org>.
     3#  All rights reserved.
    34#
    45#  Copyright (c) 2009, 2018 embedded brains GmbH.  All rights reserved.
     
    3637
    3738#
    38 # RTEMS version
    39 #
    40 def rtems_version():
    41     return '4.12'
     39# Default configuration.
     40#
     41_defaults = {
     42    #
     43    # Compile flags
     44    #
     45    'common-flags': ['-g',
     46                     '-fno-strict-aliasing',
     47                     '-ffreestanding',
     48                     '-fno-common'],
     49    'common-warnings' : ['-Wall',
     50                         '-Wno-format',
     51                         '-Wno-pointer-sign'],
     52    'common-no-warnings': ['-w'],
     53    'cflags': [],
     54    'cxxflags': [],
     55
     56    #
     57    # Includes
     58    #
     59    'include-paths': ['rtemsbsd/include',
     60                      'freebsd/sys',
     61                      'freebsd/sys/contrib/pf',
     62                      'freebsd/crypto',
     63                      'freebsd/sys/net',
     64                      'freebsd/include',
     65                      'freebsd/lib',
     66                      'freebsd/lib/libbsdstat',
     67                      'freebsd/lib/libc/include',
     68                      'freebsd/lib/libc/isc/include',
     69                      'freebsd/lib/libc/resolv',
     70                      'freebsd/lib/libutil',
     71                      'freebsd/lib/libkvm',
     72                      'freebsd/lib/libmemstat',
     73                      'freebsd/lib/libipsec',
     74                      'freebsd/contrib/expat/lib',
     75                      'freebsd/contrib/libpcap',
     76                      'freebsd/contrib/libxo',
     77                      'linux/include',
     78                      'linux/drivers/net/ethernet/freescale/fman',
     79                      'rtemsbsd/sys',
     80                      'mDNSResponder/mDNSCore',
     81                      'mDNSResponder/mDNSShared',
     82                      'mDNSResponder/mDNSPosix',
     83                      'testsuite/include'],
     84    'cpu-include-paths': ['rtemsbsd/@CPU@/include',
     85                          'freebsd/sys/@CPU@/include'],
     86
     87    # The path where headers will be copied during build.
     88    'build-include-path': ['build-include'],
     89
     90    #
     91    # Install headers
     92    #
     93    # A list of information about what header files should be installed.
     94    #
     95    # The list is also used to find headers with a local path that doesn't
     96    # match it's dest path. Due to the difference in the path name such files
     97    # are problematic during the build if they are included using their later
     98    # installation path (dest path) name. Therefore they are copied into a
     99    # sub-directory of the build path so that they can be included with their
     100    # normal installation path.
     101    #
     102    'header-paths':
     103    #  local path                               wildcard                           dest path
     104    [('rtemsbsd/include',                       '**/*.h',                          ''),
     105     ('rtemsbsd/@CPU@/include',                 '**/*.h',                          ''),
     106     ('rtemsbsd/mghttpd',                       'mongoose.h',                      'mghttpd'),
     107     ('freebsd/include',                        '**/*.h',                          ''),
     108     ('freebsd/sys/bsm',                        '**/*.h',                          'bsm'),
     109     ('freebsd/sys/cam',                        '**/*.h',                          'cam'),
     110     ('freebsd/sys/net',                        '**/*.h',                          'net'),
     111     ('freebsd/sys/net80211',                   '**/*.h',                          'net80211'),
     112     ('freebsd/sys/netinet',                    '**/*.h',                          'netinet'),
     113     ('freebsd/sys/netinet6',                   '**/*.h',                          'netinet6'),
     114     ('freebsd/sys/netipsec',                   '**/*.h',                          'netipsec'),
     115     ('freebsd/contrib/libpcap',                '*.h',                             ''),
     116     ('freebsd/contrib/libpcap/pcap',           '*.h',                             'pcap'),
     117     ('freebsd/crypto/openssl',                 '*.h',                             'openssl'),
     118     ('freebsd/crypto/openssl/crypto',          '*.h',                             'openssl'),
     119     ('freebsd/crypto/openssl/ssl',             '(ssl|kssl|ssl2).h',               'openssl'),
     120     ('freebsd/crypto/openssl/crypto/aes',      'aes.h',                           'openssl'),
     121     ('freebsd/crypto/openssl/crypto/err',      'err.h',                           'openssl'),
     122     ('freebsd/crypto/openssl/crypto/bio',      '*.h',                             'openssl'),
     123     ('freebsd/crypto/openssl/crypto/dsa',      '*.h',                             'openssl'),
     124     ('freebsd/crypto/openssl/ssl',             '*.h',                             'openssl'),
     125     ('freebsd/crypto/openssl/crypto/bn',       'bn.h',                            'openssl'),
     126     ('freebsd/crypto/openssl/crypto/x509',     'x509.h',                          'openssl'),
     127     ('freebsd/crypto/openssl/crypto/cast',     'cast.h',                          'openssl'),
     128     ('freebsd/crypto/openssl/crypto/lhash',    'lhash.h',                         'openssl'),
     129     ('freebsd/crypto/openssl/crypto/ecdh',     'ecdh.h',                          'openssl'),
     130     ('freebsd/crypto/openssl/crypto/ecdsa',    'ecdsa.h',                         'openssl'),
     131     ('freebsd/crypto/openssl/crypto/idea',     'idea.h',                          'openssl'),
     132     ('freebsd/crypto/openssl/crypto/mdc2',     'mdc2.h',                          'openssl'),
     133     ('freebsd/crypto/openssl/crypto/md4',      'md4.h',                           'openssl'),
     134     ('freebsd/crypto/openssl/crypto/md5',      'md5.h',                           'openssl'),
     135     ('freebsd/crypto/openssl/crypto/rc2',      'rc2.h',                           'openssl'),
     136     ('freebsd/crypto/openssl/crypto/rc4',      'rc4.h',                           'openssl'),
     137     ('freebsd/crypto/openssl/crypto/ripemd',   'ripemd.h',                        'openssl'),
     138     ('freebsd/crypto/openssl/crypto/seed',     'seed.h',                          'openssl'),
     139     ('freebsd/crypto/openssl/crypto/sha',      'sha.h',                           'openssl'),
     140     ('freebsd/crypto/openssl/crypto/x509v3',   'x509v3.h',                        'openssl'),
     141     ('freebsd/crypto/openssl/crypto/x509',     'x509_vfy.h',                      'openssl'),
     142     ('freebsd/crypto/openssl/crypto/buffer',   'buffer.h',                        'openssl'),
     143     ('freebsd/crypto/openssl/crypto/comp',     'comp.h',                          'openssl'),
     144     ('freebsd/crypto/openssl/crypto/asn1',     'asn1_mac.h',                      'openssl'),
     145     ('freebsd/crypto/openssl/crypto/pem',      '(pem|pem2).h',                    'openssl'),
     146     ('freebsd/crypto/openssl/crypto/rsa',      'rsa.h',                           'openssl'),
     147     ('freebsd/crypto/openssl/crypto/evp',      'evp.h',                           'openssl'),
     148     ('freebsd/crypto/openssl/crypto/ec',       'ec.h',                            'openssl'),
     149     ('freebsd/crypto/openssl/crypto/engine',   'engine.h',                        'openssl'),
     150     ('freebsd/crypto/openssl/crypto/pkcs7',    'pkcs7.h',                         'openssl'),
     151     ('freebsd/crypto/openssl/crypto/hmac',     'hmac.h',                          'openssl'),
     152     ('freebsd/crypto/openssl/crypto/pqueue',   'pqueue.h',                        'openssl'),
     153     ('freebsd/crypto/openssl/crypto/ocsp',     'ocsp.h',                          'openssl'),
     154     ('freebsd/crypto/openssl/crypto/rand',     'rand.h',                          'openssl'),
     155     ('freebsd/crypto/openssl/crypto/srp',      'srp.h',                           'openssl'),
     156     ('freebsd/crypto/openssl/crypto/dh',       'dh.h',                            'openssl'),
     157     ('freebsd/crypto/openssl/crypto/dso',      'dso.h',                           'openssl'),
     158     ('freebsd/crypto/openssl/crypto/krb5',     'krb5_asn.h',                      'openssl'),
     159     ('freebsd/crypto/openssl/crypto/cms',      'cms.h',                           'openssl'),
     160     ('freebsd/crypto/openssl/crypto/txt_db',   'txt_db.h',                        'openssl'),
     161     ('freebsd/crypto/openssl/crypto/ts',       'ts.h',                            'openssl'),
     162     ('freebsd/crypto/openssl/crypto/modes',    'modes.h',                         'openssl'),
     163     ('freebsd/crypto/openssl/crypto/pkcs12',   'pkcs12.h',                        'openssl'),
     164     ('freebsd/crypto/openssl/crypto/bf',       'blowfish.h',                      'openssl'),
     165     ('freebsd/crypto/openssl/crypto/cmac',     'cmac.h',                          'openssl'),
     166     ('freebsd/crypto/openssl/crypto/asn1',     '(asn1|asn1t).h',                  'openssl'),
     167     ('freebsd/crypto/openssl/crypto/camellia', 'camellia.h',                      'openssl'),
     168     ('freebsd/crypto/openssl/crypto/objects',  '(objects|obj_mac).h',             'openssl'),
     169     ('freebsd/crypto/openssl/crypto/conf',     '(conf|conf_api).h',               'openssl'),
     170     ('freebsd/crypto/openssl/crypto/des',      '(des|des_old).h',                 'openssl'),
     171     ('freebsd/crypto/openssl/crypto/ui',       '(ui_compat|ui).h',                'openssl'),
     172     ('freebsd/crypto/openssl/crypto/whrlpool', 'whrlpool.h',                      'openssl'),
     173     ('freebsd/crypto/openssl/crypto/stack',    '(stack|safestack).h',             'openssl'),
     174     ('freebsd/crypto/openssl/crypto',          '(opensslconf|opensslv|crypto).h', 'openssl'),
     175     ('freebsd/sys/rpc',                        '**/*.h',                          'rpc'),
     176     ('freebsd/sys/sys',                        '**/*.h',                          'sys'),
     177     ('freebsd/sys/vm',                         '**/*.h',                          'vm'),
     178     ('freebsd/sys/dev/mii',                    '**/*.h',                          'dev/mii'),
     179     ('linux/include',                          '**/*.h',                          ''),
     180     ('mDNSResponder/mDNSCore',                 'mDNSDebug.h',                     ''),
     181     ('mDNSResponder/mDNSCore',                 'mDNSEmbeddedAPI.h',               ''),
     182     ('mDNSResponder/mDNSShared',               'dns_sd.h',                        ''),
     183     ('mDNSResponder/mDNSPosix',                'mDNSPosix.h',                     '')]
     184}
    42185
    43186#
     
    43694512
    43704513#
     4514# DHCP
     4515#
     4516def dhcpcd(mm):
     4517    mod = builder.Module('dhcpcd')
     4518    mod.addSourceFiles(
     4519        [
     4520            'dhcpcd/arp.c',
     4521            'dhcpcd/auth.c',
     4522            'dhcpcd/bpf.c',
     4523            'dhcpcd/common.c',
     4524            'dhcpcd/dhcp6.c',
     4525            'dhcpcd/dhcp.c',
     4526            'dhcpcd/dhcpcd.c',
     4527            'dhcpcd/dhcpcd-embedded.c',
     4528            'dhcpcd/dhcp-common.c',
     4529            'dhcpcd/duid.c',
     4530            'dhcpcd/eloop.c',
     4531            'dhcpcd/if-bsd.c',
     4532            'dhcpcd/if-options.c',
     4533            'dhcpcd/if-pref.c',
     4534            'dhcpcd/ipv4.c',
     4535            'dhcpcd/ipv4ll.c',
     4536            'dhcpcd/ipv6.c',
     4537            'dhcpcd/ipv6nd.c',
     4538            'dhcpcd/net.c',
     4539            'dhcpcd/platform-bsd.c',
     4540            'dhcpcd/compat/pselect.c',
     4541            'dhcpcd/crypt/hmac_md5.c',
     4542        ],
     4543        mm.generator['source']('-D__FreeBSD__ -DTHERE_IS_NO_FORK -DMASTER_ONLY -DINET -DINET6')
     4544    )
     4545    mod.addRTEMSSourceFiles(
     4546        [
     4547            'rtems/rtems-bsd-shell-dhcpcd.c',
     4548        ],
     4549        mm.generator['source']()
     4550    )
     4551    return mod
     4552
     4553#
     4554# MDNS Responder
     4555#
     4556def mdnsresponder(mm):
     4557    mod = builder.Module('mdnsresponder')
     4558    mod.addSourceFiles(
     4559        [
     4560            'mDNSResponder/mDNSCore/anonymous.c',
     4561            'mDNSResponder/mDNSCore/CryptoAlg.c',
     4562            'mDNSResponder/mDNSCore/DNSCommon.c',
     4563            'mDNSResponder/mDNSCore/DNSDigest.c',
     4564            'mDNSResponder/mDNSCore/mDNS.c',
     4565            'mDNSResponder/mDNSCore/uDNS.c',
     4566            'mDNSResponder/mDNSShared/dnssd_clientshim.c',
     4567            'mDNSResponder/mDNSShared/mDNSDebug.c',
     4568            'mDNSResponder/mDNSShared/PlatformCommon.c',
     4569            'mDNSResponder/mDNSShared/GenLinkedList.c',
     4570            'mDNSResponder/mDNSPosix/mDNSPosix.c',
     4571            'mDNSResponder/mDNSPosix/mDNSUNP.c',
     4572        ],
     4573        mm.generator['source']()
     4574    )
     4575    return mod
     4576
     4577#
     4578# Mongoose HTTP
     4579#
     4580def mghttpd(mm):
     4581    mod = builder.Module('mghttpd')
     4582    mod.addSourceFiles(
     4583        [
     4584            'rtemsbsd/mghttpd/mongoose.c',
     4585        ],
     4586        mm.generator['source']('-DNO_SSL -DNO_POPEN -DNO_CGI -DUSE_WEBSOCKET')
     4587    )
     4588    return mod
     4589
     4590def dpaa(mm):
     4591    mod = builder.Module('dpaa')
     4592    mod.addLinuxHeaderFiles(
     4593        [
     4594            'include/soc/fsl/bman.h',
     4595            'include/soc/fsl/qman.h',
     4596            'drivers/net/ethernet/freescale/fman/mac.h',
     4597            'drivers/net/ethernet/freescale/fman/fman.h',
     4598            'drivers/net/ethernet/freescale/fman/fman_tgec.h',
     4599            'drivers/net/ethernet/freescale/fman/fman_mac.h',
     4600            'drivers/net/ethernet/freescale/fman/fman_muram.h',
     4601            'drivers/net/ethernet/freescale/fman/fman_port.h',
     4602            'drivers/net/ethernet/freescale/fman/fman_dtsec.h',
     4603            'drivers/net/ethernet/freescale/fman/fman_memac.h',
     4604            'drivers/net/ethernet/freescale/fman/fman_sp.h',
     4605            'drivers/net/ethernet/freescale/dpaa/dpaa_eth.h',
     4606            'drivers/net/ethernet/freescale/dpaa/dpaa_eth_trace.h',
     4607            'drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth.h',
     4608            'drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_base.h',
     4609            'drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_common.h',
     4610            'drivers/soc/fsl/qbman/qman_priv.h',
     4611            'drivers/soc/fsl/qbman/bman_test.h',
     4612            'drivers/soc/fsl/qbman/dpaa_sys.h',
     4613            'drivers/soc/fsl/qbman/bman_priv.h',
     4614            'drivers/soc/fsl/qbman/qman_test.h',
     4615        ]
     4616    )
     4617    mod.addCPUDependentLinuxSourceFiles(
     4618        [ 'powerpc' ],
     4619        [
     4620            'drivers/net/ethernet/freescale/dpaa/dpaa_eth.c',
     4621            'drivers/net/ethernet/freescale/fman/fman.c',
     4622            'drivers/net/ethernet/freescale/fman/fman_dtsec.c',
     4623            'drivers/net/ethernet/freescale/fman/fman_memac.c',
     4624            'drivers/net/ethernet/freescale/fman/fman_port.c',
     4625            'drivers/net/ethernet/freescale/fman/fman_sp.c',
     4626            'drivers/net/ethernet/freescale/fman/fman_tgec.c',
     4627            'drivers/net/ethernet/freescale/fman/mac.c',
     4628            'drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_base.c',
     4629            'drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_macless.c',
     4630            'drivers/soc/fsl/qbman/bman.c',
     4631            'drivers/soc/fsl/qbman/bman_ccsr.c',
     4632            'drivers/soc/fsl/qbman/bman_test_api.c',
     4633            'drivers/soc/fsl/qbman/qman.c',
     4634            'drivers/soc/fsl/qbman/qman_ccsr.c',
     4635            'drivers/soc/fsl/qbman/qman_portal.c',
     4636            'drivers/soc/fsl/qbman/qman_test_api.c',
     4637            'drivers/soc/fsl/qbman/qman_test_stash.c',
     4638        ],
     4639        mm.generator['source']()
     4640    )
     4641    mod.addCPUDependentRTEMSSourceFiles(
     4642        [ 'powerpc' ],
     4643        [
     4644            'sys/powerpc/compat.c',
     4645            'sys/powerpc/fdt_phy.c',
     4646            'sys/powerpc/fman_muram.c',
     4647            'sys/powerpc/linux_compat.c',
     4648            'sys/powerpc/drivers/net/ethernet/freescale/dpaa/if_fmanmac.c',
     4649            'sys/powerpc/drivers/net/ethernet/freescale/sdk_dpaa/if_ml.c',
     4650        ],
     4651        mm.generator['source']()
     4652    )
     4653    return mod
     4654
     4655#
    43714656# Tests
     4657#
     4658#  Note: Keep as the last module
    43724659#
    43734660def tests(mm):
     
    44484735    return mod
    44494736
    4450 #
    4451 # DHCP
    4452 #
    4453 def dhcpcd(mm):
    4454     mod = builder.Module('dhcpcd')
    4455     mod.addSourceFiles(
    4456         [
    4457             'dhcpcd/arp.c',
    4458             'dhcpcd/auth.c',
    4459             'dhcpcd/bpf.c',
    4460             'dhcpcd/common.c',
    4461             'dhcpcd/dhcp6.c',
    4462             'dhcpcd/dhcp.c',
    4463             'dhcpcd/dhcpcd.c',
    4464             'dhcpcd/dhcpcd-embedded.c',
    4465             'dhcpcd/dhcp-common.c',
    4466             'dhcpcd/duid.c',
    4467             'dhcpcd/eloop.c',
    4468             'dhcpcd/if-bsd.c',
    4469             'dhcpcd/if-options.c',
    4470             'dhcpcd/if-pref.c',
    4471             'dhcpcd/ipv4.c',
    4472             'dhcpcd/ipv4ll.c',
    4473             'dhcpcd/ipv6.c',
    4474             'dhcpcd/ipv6nd.c',
    4475             'dhcpcd/net.c',
    4476             'dhcpcd/platform-bsd.c',
    4477             'dhcpcd/compat/pselect.c',
    4478             'dhcpcd/crypt/hmac_md5.c',
    4479         ],
    4480         mm.generator['source']('-D__FreeBSD__ -DTHERE_IS_NO_FORK -DMASTER_ONLY -DINET -DINET6')
    4481     )
    4482     mod.addRTEMSSourceFiles(
    4483         [
    4484             'rtems/rtems-bsd-shell-dhcpcd.c',
    4485         ],
    4486         mm.generator['source']()
    4487     )
    4488     return mod
    4489 
    4490 #
    4491 # MDNS Responder
    4492 #
    4493 def mdnsresponder(mm):
    4494     mod = builder.Module('mdnsresponder')
    4495     mod.addSourceFiles(
    4496         [
    4497             'mDNSResponder/mDNSCore/anonymous.c',
    4498             'mDNSResponder/mDNSCore/CryptoAlg.c',
    4499             'mDNSResponder/mDNSCore/DNSCommon.c',
    4500             'mDNSResponder/mDNSCore/DNSDigest.c',
    4501             'mDNSResponder/mDNSCore/mDNS.c',
    4502             'mDNSResponder/mDNSCore/uDNS.c',
    4503             'mDNSResponder/mDNSShared/dnssd_clientshim.c',
    4504             'mDNSResponder/mDNSShared/mDNSDebug.c',
    4505             'mDNSResponder/mDNSShared/PlatformCommon.c',
    4506             'mDNSResponder/mDNSShared/GenLinkedList.c',
    4507             'mDNSResponder/mDNSPosix/mDNSPosix.c',
    4508             'mDNSResponder/mDNSPosix/mDNSUNP.c',
    4509         ],
    4510         mm.generator['source']()
    4511     )
    4512     return mod
    4513 
    4514 #
    4515 # Mongoose HTTP
    4516 #
    4517 def mghttpd(mm):
    4518     mod = builder.Module('mghttpd')
    4519     mod.addSourceFiles(
    4520         [
    4521             'rtemsbsd/mghttpd/mongoose.c',
    4522         ],
    4523         mm.generator['source']('-DNO_SSL -DNO_POPEN -DNO_CGI -DUSE_WEBSOCKET')
    4524     )
    4525     return mod
    4526 
    4527 def dpaa(mm):
    4528     mod = builder.Module('dpaa')
    4529     mod.addLinuxHeaderFiles(
    4530         [
    4531             'include/soc/fsl/bman.h',
    4532             'include/soc/fsl/qman.h',
    4533             'drivers/net/ethernet/freescale/fman/mac.h',
    4534             'drivers/net/ethernet/freescale/fman/fman.h',
    4535             'drivers/net/ethernet/freescale/fman/fman_tgec.h',
    4536             'drivers/net/ethernet/freescale/fman/fman_mac.h',
    4537             'drivers/net/ethernet/freescale/fman/fman_muram.h',
    4538             'drivers/net/ethernet/freescale/fman/fman_port.h',
    4539             'drivers/net/ethernet/freescale/fman/fman_dtsec.h',
    4540             'drivers/net/ethernet/freescale/fman/fman_memac.h',
    4541             'drivers/net/ethernet/freescale/fman/fman_sp.h',
    4542             'drivers/net/ethernet/freescale/dpaa/dpaa_eth.h',
    4543             'drivers/net/ethernet/freescale/dpaa/dpaa_eth_trace.h',
    4544             'drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth.h',
    4545             'drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_base.h',
    4546             'drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_common.h',
    4547             'drivers/soc/fsl/qbman/qman_priv.h',
    4548             'drivers/soc/fsl/qbman/bman_test.h',
    4549             'drivers/soc/fsl/qbman/dpaa_sys.h',
    4550             'drivers/soc/fsl/qbman/bman_priv.h',
    4551             'drivers/soc/fsl/qbman/qman_test.h',
    4552         ]
    4553     )
    4554     mod.addCPUDependentLinuxSourceFiles(
    4555         [ 'powerpc' ],
    4556         [
    4557             'drivers/net/ethernet/freescale/dpaa/dpaa_eth.c',
    4558             'drivers/net/ethernet/freescale/fman/fman.c',
    4559             'drivers/net/ethernet/freescale/fman/fman_dtsec.c',
    4560             'drivers/net/ethernet/freescale/fman/fman_memac.c',
    4561             'drivers/net/ethernet/freescale/fman/fman_port.c',
    4562             'drivers/net/ethernet/freescale/fman/fman_sp.c',
    4563             'drivers/net/ethernet/freescale/fman/fman_tgec.c',
    4564             'drivers/net/ethernet/freescale/fman/mac.c',
    4565             'drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_base.c',
    4566             'drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_macless.c',
    4567             'drivers/soc/fsl/qbman/bman.c',
    4568             'drivers/soc/fsl/qbman/bman_ccsr.c',
    4569             'drivers/soc/fsl/qbman/bman_test_api.c',
    4570             'drivers/soc/fsl/qbman/qman.c',
    4571             'drivers/soc/fsl/qbman/qman_ccsr.c',
    4572             'drivers/soc/fsl/qbman/qman_portal.c',
    4573             'drivers/soc/fsl/qbman/qman_test_api.c',
    4574             'drivers/soc/fsl/qbman/qman_test_stash.c',
    4575         ],
    4576         mm.generator['source']()
    4577     )
    4578     mod.addCPUDependentRTEMSSourceFiles(
    4579         [ 'powerpc' ],
    4580         [
    4581             'sys/powerpc/compat.c',
    4582             'sys/powerpc/fdt_phy.c',
    4583             'sys/powerpc/fman_muram.c',
    4584             'sys/powerpc/linux_compat.c',
    4585             'sys/powerpc/drivers/net/ethernet/freescale/dpaa/if_fmanmac.c',
    4586             'sys/powerpc/drivers/net/ethernet/freescale/sdk_dpaa/if_ml.c',
    4587         ],
    4588         mm.generator['source']()
    4589     )
    4590     return mod
    4591 
    4592 def sources(mm):
     4737def load(mm):
     4738
     4739    mm.setConfiguration(_defaults)
     4740
    45934741    mm.addModule(dpaa(mm))
    45944742    mm.addModule(rtems(mm))
     
    46604808    mm.addModule(crypto_openssl(mm))
    46614809
    4662     mm.addModule(tests(mm))
    46634810    mm.addModule(dhcpcd(mm))
    46644811    mm.addModule(mghttpd(mm))
    46654812    mm.addModule(mdnsresponder(mm))
    46664813
     4814    mm.addModule(tests(mm))
     4815
    46674816    # XXX TODO Check that no file is also listed in empty
    46684817    # XXX TODO Check that no file in in two modules
  • libbsd.txt

    r8189ea8 rf7a09b5  
    3333=== Tool Chain ===
    3434
    35 You need a tool chain for RTEMS based on at least RSB 4.12 April 2016 or later.
     35You need a tool chain for RTEMS based on at least RSB 5 April 2016 or later.
    3636
    3737=== Installation Overview ===
     
    5858=== Board Support Package Requirements ===
    5959
    60 The RTEMS version must be at least 4.12.  The Board Support Package (BSP)
     60The RTEMS version must be at least 5.  The Board Support Package (BSP)
    6161should support the
    6262http://www.rtems.org/onlinedocs/doxygen/cpukit/html/group\__rtems\__interrupt__extension.html[Interrupt Manager Extension]
     
    100100${HOME}/git-rtems/configure \
    101101        --prefix=${HOME}/sandbox/install \
    102         --target=arm-rtems4.12 \
     102        --target=arm-rtems5 \
    103103        --enable-rtemsbsp=xilinx_zynq_a9_qemu \
    104104        --disable-networking && \
     
    411411        -net tap,ifname=qtap1,script=no,downscript=no \
    412412        -m 256M \
    413         -kernel build/arm-rtems4.12-xilinx_zynq_a9_qemu/media01.exe
     413        -kernel build/arm-rtems5-xilinx_zynq_a9_qemu/media01.exe
    414414-------------------------------------------------------------------------------
    415415
     
    475475        -net vde,id=vde0,sock=/tmp/vde1
    476476        -m 256M \
    477         -kernel build/arm-rtems4.12-xilinx_zynq_a9_qemu/rcconf02.exe
     477        -kernel build/arm-rtems5-xilinx_zynq_a9_qemu/rcconf02.exe
    478478
    479479== Issues and TODO
  • wscript

    r8189ea8 rf7a09b5  
    4242    sys.exit(1)
    4343
    44 import libbsd_waf
     44import libbsd
     45import waf_libbsd
     46
     47builder = None
     48
     49def create_builder():
     50    global builder
     51    if builder is None:
     52        builder = waf_libbsd.Builder()
     53        libbsd.load(builder)
     54        builder.generate(rtems_version)
    4555
    4656def init(ctx):
     57    create_builder();
    4758    rtems.init(ctx, version = rtems_version, long_commands = True)
    48     libbsd_waf.init(ctx)
     59    builder.init(ctx)
    4960
    5061def options(opt):
     62    create_builder();
    5163    rtems.options(opt)
    5264    opt.add_option("--enable-auto-regen",
     
    7486                   dest = "optimization",
    7587                   help = "Set optimization level to OPTIMIZATION (-On compiler flag). Default is 2 (-O2).")
    76     libbsd_waf.options(opt)
     88    builder.options(opt)
    7789
    7890def bsp_configure(conf, arch_bsp):
     91    create_builder();
    7992    conf.check(header_name = "dlfcn.h", features = "c")
    8093    conf.check(header_name = "rtems/pci.h", features = "c", mandatory = False)
     
    8396    if rtems.check_networking(conf):
    8497        conf.fatal("RTEMS kernel contains the old network support; configure RTEMS with --disable-networking")
    85     libbsd_waf.bsp_configure(conf, arch_bsp)
     98    builder.bsp_configure(conf, arch_bsp)
    8699
    87100def configure(conf):
     101    create_builder();
    88102    if conf.options.auto_regen:
    89103        conf.find_program("lex", mandatory = True)
     
    96110    conf.env.OPTIMIZATION = conf.options.optimization
    97111    rtems.configure(conf, bsp_configure)
    98     libbsd_waf.configure(conf)
     112    builder.configure(conf)
    99113
    100114def build(bld):
     115    create_builder();
    101116    rtems.build(bld)
    102     libbsd_waf.build(bld)
     117    builder.build(bld)
Note: See TracChangeset for help on using the changeset viewer.