DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (93bdbca5399c)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

EXPORTS.mozilla.net += [
    'usrsctp.h',
]

SOURCES += [
    'netinet/sctp_asconf.c',
    'netinet/sctp_auth.c',
    'netinet/sctp_bsd_addr.c',
    'netinet/sctp_callout.c',
    'netinet/sctp_cc_functions.c',
    'netinet/sctp_crc32.c',
    'netinet/sctp_indata.c',
    'netinet/sctp_input.c',
    'netinet/sctp_output.c',
    'netinet/sctp_pcb.c',
    'netinet/sctp_peeloff.c',
    'netinet/sctp_sha1.c',
    'netinet/sctp_ss_functions.c',
    'netinet/sctp_sysctl.c',
    'netinet/sctp_timer.c',
    'netinet/sctp_userspace.c',
    'netinet/sctp_usrreq.c',
    'netinet/sctputil.c',
    'netinet6/sctp6_usrreq.c',
    'user_environment.c',
    'user_mbuf.c',
    'user_recv_thread.c',
    'user_socket.c',
]

if CONFIG['OS_TARGET'] == 'Android':
    SOURCES += [
        'ifaddrs_android.cpp',
    ]

Library('nksctp_s')

include('/ipc/chromium/chromium-config.mozbuild')

# We allow warnings for third-party code that can be updated from upstream.
AllowCompilerWarnings()

FINAL_LIBRARY = 'xul'

LOCAL_INCLUDES += [
    '/dom/base',
    '/netwerk/base',
]

for var in ('SCTP_SIMPLE_ALLOCATOR',
            'SCTP_PROCESS_LEVEL_LOCKS', '__Userspace__',
            'CALLBACK_API', 'SCTP_DEBUG'):
    DEFINES[var] = 1

if CONFIG['OS_TARGET'] == 'WINNT':
    DEFINES['__Userspace_os_Windows'] = 1
    DEFINES['_LIB'] = 1
elif CONFIG['OS_TARGET'] == 'Android':
    DEFINES['__Userspace_os_Linux'] = 1
else:
    DEFINES['__Userspace_os_%s' % CONFIG['OS_TARGET']] = 1

if CONFIG['OS_TARGET'] == 'Darwin':
    DEFINES['__APPLE_USE_RFC_2292'] = 1
    DEFINES['__APPLE__'] = False

if CONFIG['OS_TARGET'] in ('Linux', 'Android'):
    # to make sure that in6_pktinfo gets defined on all distros
    DEFINES['_GNU_SOURCE'] = True

if CONFIG['OS_TARGET'] == 'FreeBSD':
    DEFINES['__FreeBSD__'] = False

if CONFIG['OS_TARGET'] == 'NetBSD':
    DEFINES['__NetBSD__'] = False

if CONFIG['OS_TARGET'] == 'OpenBSD':
    DEFINES['__OpenBSD__'] = False

if CONFIG['OS_TARGET'] == 'DragonFly':
    DEFINES['__DragonFly__'] = False

if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
    CFLAGS += ['-std=gnu99']