src/fd-net-device/wscript
author Tom Henderson <tomh@tomh.org>
Mon, 01 Jul 2013 09:59:24 -0700
changeset 9883 1226e64fab5a
parent 9881 f6feba3e9942
permissions -rw-r--r--
fix typo from changeset 9881:f6feba3e9942
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9271
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
     1
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
     2
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
     3
import os.path
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
     4
9740
e6777ccef033 fixed Bug 1649 - bindings scanning for fd-net-device (adding --force-planetlab option to force PlanetLab support)
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9277
diff changeset
     5
from waflib import Options
e6777ccef033 fixed Bug 1649 - bindings scanning for fd-net-device (adding --force-planetlab option to force PlanetLab support)
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9277
diff changeset
     6
e6777ccef033 fixed Bug 1649 - bindings scanning for fd-net-device (adding --force-planetlab option to force PlanetLab support)
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9277
diff changeset
     7
def options(opt):
e6777ccef033 fixed Bug 1649 - bindings scanning for fd-net-device (adding --force-planetlab option to force PlanetLab support)
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9277
diff changeset
     8
    opt.add_option('--force-planetlab',
e6777ccef033 fixed Bug 1649 - bindings scanning for fd-net-device (adding --force-planetlab option to force PlanetLab support)
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9277
diff changeset
     9
                   help=('Forces compilation of PlanetLab even if not suported by the local system'),
e6777ccef033 fixed Bug 1649 - bindings scanning for fd-net-device (adding --force-planetlab option to force PlanetLab support)
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9277
diff changeset
    10
                   dest='force_planetlab', default=False, action="store_true")
e6777ccef033 fixed Bug 1649 - bindings scanning for fd-net-device (adding --force-planetlab option to force PlanetLab support)
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9277
diff changeset
    11
9271
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    12
def configure(conf):
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    13
    conf.env['ENABLE_FDNETDEV'] = False
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    14
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    15
    if conf.env['ENABLE_THREADING']:
9274
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    16
        # Check for system dependencies
9271
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    17
        have_sysioctl = conf.check_nonfatal(header_name='sys/ioctl.h', 
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    18
            define_name = 'HAVE_SYS_IOCTL_H')
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    19
        have_netif =  conf.check_nonfatal(header_name='net/if.h',
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    20
            define_name = 'HAVE_IF_NETS_H')
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    21
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    22
        # Enable the FdNetDevice module. 
9883
1226e64fab5a fix typo from changeset 9881:f6feba3e9942
Tom Henderson <tomh@tomh.org>
parents: 9881
diff changeset
    23
        # Besides threading support, we also require ethernet.h
9881
f6feba3e9942 Check for <net/ethernet.h> include before enabling fd-net-device module
Vedran Miletić <rivanvx@gmail.com>
parents: 9740
diff changeset
    24
        conf.env['ENABLE_FDNETDEV'] = conf.check_nonfatal(header_name='net/ethernet.h',
f6feba3e9942 Check for <net/ethernet.h> include before enabling fd-net-device module
Vedran Miletić <rivanvx@gmail.com>
parents: 9740
diff changeset
    25
                                                          define_name='HAVE_NET_ETHERNET_H')
9883
1226e64fab5a fix typo from changeset 9881:f6feba3e9942
Tom Henderson <tomh@tomh.org>
parents: 9881
diff changeset
    26
        if conf.env['ENABLE_FDNETDEV']:
9881
f6feba3e9942 Check for <net/ethernet.h> include before enabling fd-net-device module
Vedran Miletić <rivanvx@gmail.com>
parents: 9740
diff changeset
    27
            conf.report_optional_feature("FdNetDevice", 
f6feba3e9942 Check for <net/ethernet.h> include before enabling fd-net-device module
Vedran Miletić <rivanvx@gmail.com>
parents: 9740
diff changeset
    28
                                         "File descriptor NetDevice",
f6feba3e9942 Check for <net/ethernet.h> include before enabling fd-net-device module
Vedran Miletić <rivanvx@gmail.com>
parents: 9740
diff changeset
    29
                                         True,
f6feba3e9942 Check for <net/ethernet.h> include before enabling fd-net-device module
Vedran Miletić <rivanvx@gmail.com>
parents: 9740
diff changeset
    30
                                         "FdNetDevice module enabled")
f6feba3e9942 Check for <net/ethernet.h> include before enabling fd-net-device module
Vedran Miletić <rivanvx@gmail.com>
parents: 9740
diff changeset
    31
        else:
f6feba3e9942 Check for <net/ethernet.h> include before enabling fd-net-device module
Vedran Miletić <rivanvx@gmail.com>
parents: 9740
diff changeset
    32
            conf.report_optional_feature("FdNetDevice", 
f6feba3e9942 Check for <net/ethernet.h> include before enabling fd-net-device module
Vedran Miletić <rivanvx@gmail.com>
parents: 9740
diff changeset
    33
                                         "File descriptor NetDevice",
f6feba3e9942 Check for <net/ethernet.h> include before enabling fd-net-device module
Vedran Miletić <rivanvx@gmail.com>
parents: 9740
diff changeset
    34
                                         False,
f6feba3e9942 Check for <net/ethernet.h> include before enabling fd-net-device module
Vedran Miletić <rivanvx@gmail.com>
parents: 9740
diff changeset
    35
                                         "<net/ethernet.h> include not detected")
f6feba3e9942 Check for <net/ethernet.h> include before enabling fd-net-device module
Vedran Miletić <rivanvx@gmail.com>
parents: 9740
diff changeset
    36
9271
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    37
    else:
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    38
        conf.report_optional_feature("FdNetDevice", 
9274
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    39
            "File descriptor NetDevice",
9271
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    40
            False,
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    41
            "needs threading support which is not available")
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    42
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    43
    if conf.env['ENABLE_FDNETDEV']:
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    44
        blddir = os.path.abspath(os.path.join(conf.bldnode.abspath(), conf.variant))
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    45
        dir = os.path.abspath(os.path.join(blddir, "src/fd-net-device"))
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    46
        conf.env.append_value('NS3_EXECUTABLE_PATH', dir)
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    47
    else:
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    48
        # Add this module to the list of modules that won't be built
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    49
        # if they are enabled.
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    50
        conf.env['MODULES_NOT_BUILT'].append('fd-net-device')
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
    51
9274
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    52
    # Next, check for whether specialized FdNetDevice features are enabled
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    53
    # such as tap device support, raw socket support, and planetlab
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    54
    
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    55
    if conf.env['ENABLE_FDNETDEV']:
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    56
        conf.env['ENABLE_TAP'] = conf.check_nonfatal(
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    57
           header_name='linux/if_tun.h', 
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    58
           define_name='HAVE_IF_TUN_H') and have_sysioctl and have_netif
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    59
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    60
        if conf.env['ENABLE_TAP']:
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    61
            conf.report_optional_feature("TapFdNetDevice", 
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    62
                "Tap FdNetDevice", 
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    63
                True,
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    64
                "Tap support enabled")
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    65
        else:
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    66
            conf.report_optional_feature("TapFdNetDevice", 
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    67
                "Tap FdNetDevice", 
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    68
                False,
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    69
                "needs linux/if_tun.h")
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    70
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    71
        # Enable use of raw socket (EMU) helper.
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    72
        conf.env['ENABLE_EMU'] = conf.check_nonfatal(
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    73
           header_name='netpacket/packet.h',
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    74
           define_name='HAVE_PACKET_H') and have_sysioctl and have_netif
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    75
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    76
        if conf.env['ENABLE_EMU']:
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    77
            conf.report_optional_feature("EmuFdNetDevice", 
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    78
                "Emulation FdNetDevice", 
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    79
                True,
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    80
                "Emulation support enabled")
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    81
        else:
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    82
            conf.report_optional_feature("EmuFdNetDevice", 
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    83
                "Emulation FdNetDevice", 
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    84
                False,
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    85
                "needs netpacket/packet.h")
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    86
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    87
        # Enable use of PlanetLab TAP helper
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    88
        # TODO: How to validate 
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    89
        (sysname, nodename, release, version, machine) = os.uname()
9740
e6777ccef033 fixed Bug 1649 - bindings scanning for fd-net-device (adding --force-planetlab option to force PlanetLab support)
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9277
diff changeset
    90
        if release.find('onelab') != -1 or Options.options.force_planetlab:
9274
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    91
            conf.env['ENABLE_PLANETLAB'] = True
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    92
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    93
        if conf.env['ENABLE_PLANETLAB']:
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    94
            conf.report_optional_feature("PlanetLabFdNetDevice", 
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    95
                "PlanetLab FdNetDevice", 
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    96
                True,
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    97
                "Planetlab support enabled")
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    98
        else:
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
    99
            conf.report_optional_feature("PlanetLabFdNetDevice", 
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   100
                "PlanetLab FdNetDevice", 
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   101
                False,
9740
e6777ccef033 fixed Bug 1649 - bindings scanning for fd-net-device (adding --force-planetlab option to force PlanetLab support)
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9277
diff changeset
   102
                "PlanetLab operating system not detected (see option --force-planetlab)")
9274
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   103
9271
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   104
def build(bld):
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   105
    # Don't do anything for this module if emu's not enabled.
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   106
    if not bld.env['ENABLE_FDNETDEV']:
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   107
        return
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   108
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   109
    module = bld.create_ns3_module('fd-net-device', ['network'])
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   110
    module.source = [
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   111
        'model/fd-net-device.cc',
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   112
        'helper/fd-net-device-helper.cc',
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   113
        'helper/encode-decode.cc',
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   114
        'helper/creator-utils.cc',
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   115
        ]
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   116
9277
0f87d1cb030c Upgrade waf to 1.7.10 and fix included wscripts
Vedran Miletić <rivanvx@gmail.com>
parents: 9274
diff changeset
   117
    headers = bld(features='ns3header')
9271
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   118
    headers.module = 'fd-net-device'
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   119
    headers.source = [
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   120
        'model/fd-net-device.h',
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   121
        'helper/fd-net-device-helper.h',
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   122
        ]
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   123
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   124
    if bld.env['ENABLE_TAP']:
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   125
        if not bld.env['PLATFORM'].startswith('freebsd'):
9274
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   126
            module.source.extend([
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   127
                'helper/tap-fd-net-device-helper.cc',
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   128
            ])
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   129
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   130
            headers.source.extend([
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   131
                'helper/tap-fd-net-device-helper.h',
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   132
            ])
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   133
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   134
            creator = bld.create_suid_program('tap-device-creator')
9271
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   135
            creator.source = [
9274
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   136
                'helper/tap-device-creator.cc',
9271
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   137
                'helper/encode-decode.cc',
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   138
                'helper/creator-utils.cc',
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   139
            ]
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   140
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   141
        module.env.append_value("DEFINES", 
9274
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   142
           "TAP_DEV_CREATOR=\"%s\"" % (creator.target,))
9271
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   143
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   144
    if bld.env['ENABLE_EMU']:
9274
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   145
        module.source.extend([
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   146
            'helper/emu-fd-net-device-helper.cc',
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   147
        ])
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   148
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   149
        headers.source.extend([
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   150
            'helper/emu-fd-net-device-helper.h',
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   151
        ])
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   152
9271
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   153
        creator = bld.create_suid_program('raw-sock-creator')
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   154
        creator.source = [
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   155
           'helper/raw-sock-creator.cc',
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   156
           'helper/encode-decode.cc',
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   157
           'helper/creator-utils.cc',
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   158
        ]
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   159
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   160
        module.env.append_value("DEFINES", 
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   161
           "RAW_SOCK_CREATOR=\"%s\"" % (creator.target,))
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   162
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   163
    if bld.env['ENABLE_PLANETLAB']:
9274
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   164
        module.source.extend([
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   165
            'helper/planetlab-fd-net-device-helper.cc',
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   166
        ])
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   167
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   168
        headers.source.extend([
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   169
           'helper/planetlab-fd-net-device-helper.h',
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   170
        ])
ef5b324097d0 Bug #1613 - Can't build ns-3-dev with g++ 4.7.2 & Bug FdNetDevice can't build in OS X
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 9271
diff changeset
   171
9271
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   172
        creator = bld.create_suid_program('planetlab-tap-creator')
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   173
        creator.source = [
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   174
           'helper/planetlab-tap-creator.cc',
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   175
           'helper/encode-decode.cc',
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   176
           'helper/creator-utils.cc',
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   177
        ]
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   178
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   179
        module.env.append_value("DEFINES", 
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   180
           "PLANETLAB_TAP_CREATOR=\"%s\"" % (creator.target,))
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   181
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   182
    if bld.env['ENABLE_EXAMPLES']:
9277
0f87d1cb030c Upgrade waf to 1.7.10 and fix included wscripts
Vedran Miletić <rivanvx@gmail.com>
parents: 9274
diff changeset
   183
        bld.recurse('examples')
9271
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   184
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   185
    bld.ns3_python_bindings()
85e753b6676c Merge fd-net-device into ns-3-dev
alina
parents:
diff changeset
   186