/
SConscript
115 lines (99 loc) · 3.08 KB
/
SConscript
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# Copyright (c) 2009-2010 XORP, Inc and Others
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, Version 2, June
# 1991 as published by the Free Software Foundation. Redistribution
# and/or modification of this program under the terms of any other
# version of the GNU General Public License is not permitted.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For more details,
# see the GNU General Public License, Version 2, a copy of which can be
# found in the XORP LICENSE.gpl file.
#
# XORP Inc, 2953 Bunker Hill Lane, Suite 204, Santa Clara, CA 95054, USA;
# http://xorp.net
# $XORP$
import os
Import('env')
env = env.Clone()
is_shared = env.has_key('SHAREDLIBS')
env.AppendUnique(CPPPATH = [
'#',
'$BUILDDIR',
])
env.PrependUnique(LIBPATH = [
'$BUILDDIR/libxorp',
'$BUILDDIR/libcomm',
'$BUILDDIR/libxipc',
'$BUILDDIR/libproto',
'$BUILDDIR/libfeaclient',
'$BUILDDIR/policy/backend',
'$BUILDDIR/policy/common',
'$BUILDDIR/xrl/interfaces',
'$BUILDDIR/xrl/targets',
'$BUILDDIR/mrt',
'.'
])
env.AppendUnique(LIBS = [
'xorp_mld6igmp',
'xorp_fea_client',
'xif_mld6igmp_client',
'xif_fea_rawpkt4',
'xif_fea_ifmgr_mirror',
'xif_fea_ifmgr_replicator',
'xif_cli_manager',
'xif_finder_event_notifier',
'xst_fea_ifmgr_mirror',
'xst_mld6igmp',
'xorp_mrt',
'xorp_proto',
'xorp_ipc',
'xorp_core',
'xorp_comm'
])
if not is_shared:
env.AppendUnique(LIBS = [
"crypto",
"rt",
])
libxorp_mld6igmp_srcs = [
'mld6igmp_config.cc',
'mld6igmp_group_record.cc',
'mld6igmp_node.cc',
'mld6igmp_node_cli.cc',
'mld6igmp_proto.cc',
'mld6igmp_source_record.cc',
'mld6igmp_vif.cc',
'xrl_mld6igmp_node.cc'
]
if not (env.has_key('disable_ipv6') and env['disable_ipv6']):
env.AppendUnique(LIBS = [
'xif_fea_rawpkt6',
])
env.Replace(RPATH = [
env.Literal(env['xorp_module_rpath'])
])
if is_shared:
libxorp_mld6igmp = env.SharedLibrary(target = 'libxorp_mld6igmp',
source = libxorp_mld6igmp_srcs,
LIBS = '')
if env['rtld_origin']:
for obj in libxorp_mld6igmp:
env.AddPostAction(libxorp_mld6igmp,
env.Symlink(obj.abspath,
os.path.join(env['xorp_alias_libdir'], str(obj))))
else:
libxorp_mld6igmp = env.StaticLibrary(target = 'libxorp_mld6igmp',
source = libxorp_mld6igmp_srcs,
LIBS = '')
igmpsrcs = [ 'xorp_igmp.cc', ]
igmp = env.Program(target = 'xorp_igmp', source = igmpsrcs)
mldsrcs = [ 'xorp_mld.cc', ]
mld = env.Program(target = 'xorp_mld', source = mldsrcs)
env.Alias('install', env.InstallProgram(env['xorp_moduledir'], igmp))
env.Alias('install', env.InstallProgram(env['xorp_moduledir'], mld))
if is_shared:
env.Alias('install', env.InstallLibrary(env['xorp_libdir'], libxorp_mld6igmp))
Default(igmp, mld)