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


import os
Import("env")

env = env.Clone()

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

env.AppendUnique(LIBPATH = [
	'$BUILDDIR/xrl/interfaces',
	'$BUILDDIR/xrl/targets',
	'$BUILDDIR/libxipc',
	'$BUILDDIR/libxorp',
	'$BUILDDIR/libcomm',
	'$BUILDDIR/xrl/interfaces',
	'$BUILDDIR/xrl/targets',
	])

env.AppendUnique(LIBS = [
    'xorp_ipc',
    'xorp_finder',
    'xorp_core',
    'xorp_comm',
    'libxst_test_finder_events',
    'libxif_finder_event_notifier',
    'libxst_test_xrls',
    'libxif_test_xrls',
    ])

if not is_shared:
    if not (env.has_key('mingw') and env['mingw']):
        env.AppendUnique(LIBS = [
            "rt",
            ])

# Missing:
# test_finder_deaths.sh
# test_leaks.sh
# test_xrl_parser.sh

simple_cpp_tests = [
	'finder',		# XXX test target needed
	'finder_events',
	'finder_messenger',
	'finder_msgs',
	'finder_tcp',
	'finder_to',
	'lemming',
	'stcp',
	'stcppf',
	'xrl',
	'xrl_args',
	'xrl_atom',
	'xrl_error',
	'xrl_parser',
	'xrl_router',
	'fp64',
]

xrlrcvr_sources = [
    'test_xrl_receiver.cc',
    'test_receiver.cc',
    ]

xrlsnd_sources = [
    'test_xrl_sender.cc',
    'test_receiver.cc',
    ]


# Do the compound tools here.
xrlrcvr = env.Program(target = 'test_xrl_receiver', source = xrlrcvr_sources)
xrlsnd  = env.Program(target = 'test_xrl_sender', source = xrlsnd_sources)

libxipctestpath = '$exec_prefix/libxipc/tests'

env.Alias('install', env.InstallProgram(libxipctestpath, xrlrcvr))
env.Alias('install', env.InstallProgram(libxipctestpath, xrlsnd))

scripts_list = [
    'test_finder_deaths.sh',
    'test_leaks.sh',
    'test_xrl_parser.sh',
    ]

# TODO:  Uncomment this and the install process breaks..doesn't
#  install rest of xorp???
#env.Alias('install', env.InstallProgram(libxipctestpath, scripts_list))

scripts_data = [
    'test_xrl_parser.data',
    ]

env.Alias('install', env.InstallData(libxipctestpath, scripts_data))

cpp_test_targets = []


for ct in simple_cpp_tests:
    cpp_test_targets.append(env.AutoTest(target = 'test_%s' % ct,
                                         source = 'test_%s.cc' % ct))

    env.Alias('install', env.InstallProgram(libxipctestpath, 'test_%s' %ct))

Default(cpp_test_targets, xrlrcvr, xrlsnd)
