# Copyright (c) 2009-2012 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

# $ID$

import os
Import("env")

env = env.Clone()

is_shared = env.has_key('SHAREDLIBS')

env.AppendUnique(CPPPATH = [
    '#',
    '$BUILDDIR',
    ])

sources = [
	# C++ files
	'ifconfig_get_click.cc',
	'ifconfig_get_getifaddrs.cc',
	'ifconfig_get_ioctl.cc',
	'ifconfig_get_iphelper.cc',
	'ifconfig_get_netlink_socket.cc',
	'ifconfig_get_proc_linux.cc',
	'ifconfig_get_sysctl.cc',
	'ifconfig_media.cc',
	'ifconfig_observer_iphelper.cc',
	'ifconfig_observer_netlink_socket.cc',
	'ifconfig_observer_routing_socket.cc',
	'ifconfig_parse_getifaddrs.cc',
	'ifconfig_parse_ioctl.cc',
	'ifconfig_parse_routing_socket.cc',
	'ifconfig_property_bsd.cc',
	'ifconfig_property_linux.cc',
	'ifconfig_property_solaris.cc',
	'ifconfig_property_windows.cc',
	'ifconfig_set.cc',
	'ifconfig_set_click.cc',
	'ifconfig_set_ioctl.cc',
	'ifconfig_set_iphelper.cc',
	'ifconfig_set_netlink_socket.cc',
	'ifconfig_vlan_get_linux.cc',
	'ifconfig_vlan_set_linux.cc',
	]

if env['enable_fea_dummy']:
    sources += [
        'ifconfig_get_dummy.cc',
	'ifconfig_observer_dummy.cc',
	'ifconfig_property_dummy.cc',
	'ifconfig_set_dummy.cc',
        ]

if is_shared:
    libxifc = env.SharedLibrary(target = 'libxorp_fea_ifconfig',
				source = sources)
    if env['rtld_origin']:
        for obj in libxifc:
            env.AddPostAction(libxifc,
                env.Symlink(obj.abspath,
                            os.path.join(env['xorp_alias_libdir'], str(obj))))

    # XXX missing RPATH.
else:
    libxifc = env.StaticLibrary(target = 'libxorp_fea_ifconfig',
				source = sources)

if is_shared:
    env.Alias('install', env.InstallLibrary(env['xorp_libdir'], libxifc))

Default(libxifc)
