wscript
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Thu, 05 May 2011 15:16:49 +0200
changeset 71 38b25a74e8e7
parent 69 19d7af80f47f
permissions -rw-r--r--
avoid calling write upon flush when called by DeleteProcess
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
0a55bed4c895 process -> dce
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     1
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
0a55bed4c895 process -> dce
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     2
0a55bed4c895 process -> dce
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     3
import os
63
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
     4
import Options
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
     5
import os.path
64
015a353a487b initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 63
diff changeset
     6
import ns3waf
66
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
     7
import sys
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
     8
63
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
     9
64
015a353a487b initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 63
diff changeset
    10
def options(opt):
63
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
    11
    opt.tool_options('compiler_cc') 
64
015a353a487b initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 63
diff changeset
    12
    ns3waf.options(opt)
65
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    13
    opt.add_option('--enable-kernel-stack',
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    14
                   help=('Path to the prefix where the kernel wrapper headers are installed'),
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    15
                   default=None,
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    16
                   dest='kernel_stack', type="string")
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    17
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    18
def search_file(files):
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    19
    for f in files:
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    20
        if os.path.isfile (f):
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    21
            return f
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    22
    return None
0
0a55bed4c895 process -> dce
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    23
0a55bed4c895 process -> dce
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    24
def configure(conf):
64
015a353a487b initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 63
diff changeset
    25
    ns3waf.check_modules(conf, ['core', 'network', 'internet'], mandatory = True)
66
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    26
    ns3waf.check_modules(conf, ['point-to-point'], mandatory = False)
63
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
    27
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
    28
    conf.check_tool('compiler_cc')
64
015a353a487b initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 63
diff changeset
    29
63
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
    30
    conf.env.append_value('LINKFLAGS', '-pthread')
66
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    31
    conf.check (lib='dl', mandatory = True)
63
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
    32
64
015a353a487b initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 63
diff changeset
    33
    vg_h = conf.check(header_name='valgrind/valgrind.h', mandatory=False)
015a353a487b initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 63
diff changeset
    34
    vg_memcheck_h = conf.check(header_name='valgrind/memcheck.h', mandatory=False)
63
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
    35
    if vg_h and vg_memcheck_h:
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
    36
        conf.env.append_value('CXXDEFINES', 'HAVE_VALGRIND_H')
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
    37
65
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    38
    conf.start_msg('Searching C library')
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    39
    libc = search_file ([
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    40
            '/lib64/libc.so.6',
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    41
            '/lib/libc.so.6',
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    42
            ])
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    43
    if libc is None:
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    44
        conf.fatal('not found')
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    45
    else:
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    46
        conf.end_msg(libc, True)
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    47
    conf.env['LIBC_FILE'] = libc
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    48
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    49
    conf.start_msg('Searching pthread library')
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    50
    libpthread = search_file ([
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    51
            '/lib64/libpthread.so.0',
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    52
            '/lib/libpthread.so.0',
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    53
            ])
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    54
    if libpthread is None:
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    55
        conf.fatal('not found')
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    56
    else:
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    57
        conf.end_msg(libpthread, True)
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    58
    conf.env['LIBPTHREAD_FILE'] = libpthread
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    59
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    60
    if Options.options.kernel_stack is not None and os.path.isdir(Options.options.kernel_stack):
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    61
        conf.check(header_name='sim/sim.h',
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    62
                   includes=os.path.join(Options.options.kernel_stack, 'include'))
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    63
        conf.check()
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    64
        conf.env['KERNEL_STACK'] = Options.options.kernel_stack
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
    65
66
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    66
    ns3waf.print_feature_summary(conf)
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    67
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    68
def build_netlink(bld):
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    69
    module_source = [
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    70
        'netlink/netlink-socket.cc',
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    71
        'netlink/netlink-socket-address.cc',
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    72
        'netlink/netlink-socket-factory.cc',
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    73
        'netlink/netlink-attribute.cc',
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    74
        'netlink/netlink-message.cc',
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    75
        'netlink/netlink-message-route.cc',
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    76
        ]
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    77
    module_headers = [
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    78
        'netlink/netlink-socket-factory.h'
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    79
        ]
69
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
    80
    module = ns3waf.create_module(bld, 
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
    81
                                  name='netlink',
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
    82
                                  needed = ['internet', 'core'],
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
    83
                                  source=module_source,
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
    84
                                  headers=module_headers)
66
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    85
69
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
    86
    module_tests = [
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
    87
        'test/netlink-socket-test.cc',
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
    88
        ]
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
    89
    module.add_runner_test(needed = ['internet', 'point-to-point', 'core', 'netlink'],
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
    90
                           source=module_tests)
66
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    91
69
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
    92
def dce_kw(**kw):
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
    93
    d = dict(**kw)
66
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    94
    if os.uname()[4] == 'x86_64':
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    95
        mcmodel = ['-mcmodel=large']
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    96
    else:
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    97
        mcmodel = []
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    98
    nofortify = ['-U_FORTIFY_SOURCE']
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
    99
    #debug_dl = ['-Wl,--dynamic-linker=/usr/lib/debug/ld-linux-x86-64.so.2']
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   100
    debug_dl = []
69
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   101
    d['cxxflags'] = d.get('cxxflags', []) + ['-fpie'] + mcmodel + nofortify
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   102
    d['cflags'] = d.get('cflags', []) + ['-fpie'] + mcmodel + nofortify
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   103
    d['linkflags'] = d.get('linkflags', []) + ['-pie'] + debug_dl
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   104
    return d
66
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   105
69
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   106
def build_dce_tests(module):
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   107
    module.add_runner_test(needed=['core', 'dce', 'internet'], source=['test/dce-manager-test.cc'])
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   108
    module.add_test(features='cxx cxxshlib', source=['test/test-macros.cc'], 
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   109
                    target='lib/test', linkflags=['-Wl,-soname=libtest.so'])
66
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   110
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   111
    tests = [['test-empty', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   112
             ['test-sleep', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   113
             ['test-nanosleep', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   114
             ['test-pthread', ['PTHREAD']],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   115
             ['test-mutex', ['PTHREAD']],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   116
             ['test-once', ['PTHREAD']],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   117
             ['test-pthread-key', ['PTHREAD']],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   118
             ['test-sem', ['PTHREAD']],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   119
             ['test-malloc', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   120
             ['test-malloc-2', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   121
             ['test-fd-simple', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   122
             ['test-strerror', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   123
             ['test-stdio', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   124
             ['test-string', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   125
             ['test-netdb', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   126
             ['test-env', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   127
             ['test-cond', ['PTHREAD']],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   128
             ['test-timer-fd', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   129
             ['test-stdlib', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   130
             ['test-select', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   131
             ['test-random', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   132
             ['test-ioctl', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   133
             ['test-fork', []],
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   134
             ]
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   135
    for name,uselib in tests:
69
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   136
        module.add_test(**dce_kw(target='bin/' + name, source = ['test/' + name + '.cc'],
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   137
                                 use = uselib + ['lib/test']))
68
a384d3f2f086 build examples
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 66
diff changeset
   138
69
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   139
def build_dce_examples(module):
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   140
    dce_examples = [['udp-server', []],
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   141
                    ['udp-client', []],
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   142
                    ['udp-perf', ['m']],
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   143
                    ['tcp-server', []],
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   144
                    ['tcp-client', []],
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   145
                    ]
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   146
    for name,lib in dce_examples:
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   147
        module.add_example(**dce_kw(target = 'bin/' + name, 
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   148
                                    source = ['example/' + name + '.cc'],
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   149
                                    lib = lib))
68
a384d3f2f086 build examples
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 66
diff changeset
   150
69
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   151
    module.add_example(needed = ['core', 'internet', 'dce'], 
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   152
                       target='bin/dce-tcp-simple',
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   153
                       source=['example/dce-tcp-simple.cc'])
68
a384d3f2f086 build examples
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 66
diff changeset
   154
69
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   155
    module.add_example(needed = ['core', 'internet', 'dce'], 
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   156
                       target='bin/dce-udp-simple',
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   157
                       source=['example/dce-udp-simple.cc'])
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   158
    
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   159
    module.add_example(needed = ['core', 'internet', 'dce', 'point-to-point'], 
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   160
                       target='bin/dce-udp-perf',
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   161
                       source=['example/dce-udp-perf.cc'])
68
a384d3f2f086 build examples
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 66
diff changeset
   162
a384d3f2f086 build examples
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 66
diff changeset
   163
69
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   164
def build_dce_kernel_examples(module):
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   165
    module.add_example(needed = ['core', 'network', 'dce'], 
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   166
                       target='bin/dce-linux-simple',
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   167
                       source=['example/dce-linux-simple.cc'])
68
a384d3f2f086 build examples
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 66
diff changeset
   168
69
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   169
    module.add_example(needed = ['core', 'network', 'dce', 'wifi', 
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   170
                                 'point-to-point', 'csma', 'mobility'],
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   171
                       target='bin/dce-linux',
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   172
                       source=['example/dce-linux.cc'])
68
a384d3f2f086 build examples
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 66
diff changeset
   173
66
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   174
0
0a55bed4c895 process -> dce
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   175
def build(bld):
66
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   176
    build_netlink(bld)
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   177
65
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   178
    if bld.env['KERNEL_STACK']:
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   179
        kernel_source = [
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   180
            'linux-socket-fd-factory.cc',
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   181
            'linux-socket-fd.cc',
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   182
            ]
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   183
        kernel_headers = [ 'linux-socket-fd-factory.h']
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   184
        kernel_includes = [os.path.join(bld.env['KERNEL_STACK'], 'include')]
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   185
    else:
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   186
        kernel_source = []
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   187
        kernel_headers = []
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   188
        kernel_includes = []
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   189
64
015a353a487b initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 63
diff changeset
   190
    module_source = [
63
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   191
        'model/dce-manager.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   192
	'model/dce-application.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   193
        'model/dce.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   194
        'model/dce-signal.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   195
        'model/libc-dce.c',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   196
        'model/utils.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   197
        'model/unix-fd.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   198
        'model/unix-file-fd.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   199
        'model/unix-socket-fd.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   200
        'model/unix-datagram-socket-fd.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   201
        'model/unix-stream-socket-fd.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   202
        'model/unix-timer-fd.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   203
        'model/dce-fd.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   204
        'model/dce-stdio.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   205
        'model/dce-pthread.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   206
        'model/dce-stdlib.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   207
        'model/dce-debug.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   208
        'model/dce-semaphore.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   209
        'model/dce-pthread-mutex.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   210
        'model/dce-cxa.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   211
        'model/dce-netdb.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   212
        'model/dce-string.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   213
        'model/dce-env.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   214
        'model/dce-pthread-cond.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   215
        'model/dce-timerfd.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   216
        'model/dce-stat.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   217
        'model/dce-global-variables.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   218
        'model/cmsg.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   219
        'model/waiter.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   220
        'model/kingsley-alloc.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   221
        'model/dce-alloc.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   222
        'model/fiber-manager.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   223
        'model/ucontext-fiber-manager.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   224
        'model/pthread-fiber-manager.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   225
        'model/task-manager.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   226
        'model/task-scheduler.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   227
        'model/rr-task-scheduler.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   228
        'model/loader-factory.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   229
        'model/elf-dependencies.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   230
        'model/elf-cache.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   231
        'model/cooja-loader-factory.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   232
        'model/copy-loader-factory.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   233
        'model/dlm-loader-factory.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   234
        'model/socket-fd-factory.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   235
        'model/ns3-socket-fd-factory.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   236
        # helper.
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   237
        'helper/dce-manager-helper.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   238
        'helper/dce-application-helper.cc',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   239
        ]
64
015a353a487b initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 63
diff changeset
   240
    module_headers = [
63
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   241
        'model/dce-manager.h',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   242
        'model/task-scheduler.h',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   243
        'model/task-manager.h',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   244
        'model/socket-fd-factory.h',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   245
        'model/loader-factory.h',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   246
	'model/dce-application.h',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   247
        'helper/dce-manager-helper.h',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   248
        'helper/dce-application-helper.h',
e89dca438df6 more fixes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 59
diff changeset
   249
        ]
65
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   250
    module_source = module_source + kernel_source
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   251
    module_headers = module_headers + kernel_headers
66
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   252
    uselib = ns3waf.modules_uselib(bld, ['core', 'network', 'internet', 'netlink'])
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   253
    module = ns3waf.create_module(bld, name='dce',
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   254
                                  source=module_source,
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   255
                                  headers=module_headers,
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   256
                                  use=uselib,
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   257
                                  includes=kernel_includes,
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   258
                                  lib=['dl'])
69
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   259
    build_dce_tests(module)
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   260
    build_dce_examples(module)
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   261
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   262
    if bld.env['KERNEL_STACK']:
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   263
        build_dce_kernel_examples(module)
65
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   264
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   265
    bld.add_group('dce_version_files')
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   266
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   267
    bld(source=['model/libc-ns3.version'],
69
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   268
        target='model/libc.version',
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   269
        rule='readversiondef ' + bld.env['LIBC_FILE'] + ' |' \
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   270
            'cat ${SRC[0].abspath()} - > ${TGT}')
65
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   271
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   272
    bld(source=['model/libpthread-ns3.version'],
69
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   273
        target='model/libpthread.version',
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   274
        rule='readversiondef ' + bld.env['LIBPTHREAD_FILE'] + ' |' \
19d7af80f47f cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 68
diff changeset
   275
            'cat ${SRC[0].abspath()} - > ${TGT}')
65
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   276
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   277
    bld.add_group('dce_use_version_files')
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   278
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   279
    # The very small libc used to replace the glibc
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   280
    # and forward to the dce_* code
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   281
    bld.shlib(source = ['model/libc.c', 'model/libc-global-variables.c'],
66
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   282
              target='lib/c-ns3', cflags=['-g'],
65
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   283
              defines=['LIBSETUP=libc_setup'],
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   284
              linkflags=['-nostdlib', 
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   285
                         '-Wl,--version-script=' + os.path.join('model', 'libc.version'),
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   286
                         '-Wl,-soname=libc.so.6'])
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   287
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   288
    # The very small libpthread used to replace the glibc
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   289
    # and forward to the dce_* code
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   290
    bld.shlib(source = ['model/libc.c'],
66
2fe1f3e576c9 make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 65
diff changeset
   291
              target='lib/pthread-ns3', cflags=['-g'],
65
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   292
              defines=['LIBSETUP=libpthread_setup'],
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   293
              linkflags=['-nostdlib', '-lc',
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   294
                         '-Wl,--version-script=' + os.path.join('model', 'libpthread.version'),
227f6347e4e1 build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 64
diff changeset
   295
                         '-Wl,-soname=libpthread.so.0'])