summaryrefslogblamecommitdiffstats
path: root/3rdparty/openpgm-svn-r1135/pgm/SConscript.libpgm
blob: 2aaa3cef87f9e2da4ca2cbf85ceb7e5d4ec19d26 (plain) (tree)






















































































































































                                                                               



                                                            















                                                              
# -*- mode: python -*-
# OpenPGM build script
# $Id$

import os;
Import('env')

src = Split("""
		thread.c
		mem.c
		string.c
		list.c
		slist.c
		queue.c
		hashtable.c
		messages.c
		error.c
		math.c
		packet_parse.c
		packet_test.c
		sockaddr.c
		time.c
		if.c
		getifaddrs.c
		getnodeaddr.c
		indextoaddr.c
		indextoname.c
		nametoindex.c
		inet_network.c
		md5.c
		rand.c
		gsi.c
		tsi.c
		txw.c
		rxw.c
		skbuff.c
		socket.c
		source.c
		receiver.c
		recv.c
		engine.c
		timer.c
		net.c
		rate_control.c
		checksum.c
		reed_solomon.c
		galois_tables.c
		wsastrerror.c
		histogram.c
""")

e = env.Clone();
e.Append(CCFLAGS = '-DGETTEXT_PACKAGE=\'"pgm"\'');

# Galois tables
e.Command ('galois_tables.c', 'galois_generator.pl', "perl $SOURCE > $TARGET");

# Version stamping
e.Command ('version.c', 'version_generator.py', "python $SOURCE > $TARGET");
e.Depends ('version.c', src);
src += ['version.c'];

e.StaticLibrary('libpgm', src);
e.StaticSharedLibrary('libpgm-pic', src);

#-----------------------------------------------------------------------------
# unit testing

if env['WITH_CHECK'] == 'true':
	te = e.Clone();
	te.MergeFlags(env['GLIB_FLAGS']);
	newCCFLAGS = [];
	for flag in te['CCFLAGS']:
		if ("-W" != flag[:2]) and ("-pedantic" != flag[:9]):
			newCCFLAGS.append(flag);
	te['CCFLAGS'] = newCCFLAGS;
	te.ParseConfig ('pkg-config --cflags --libs check');
# log dependencies
	tlog = [	e.Object('messages.c'),
			e.Object('thread.c'),
			e.Object('galois_tables.c'),
			e.Object('mem.c'),
			e.Object('histogram.c'),
			e.Object('string.c'),
			e.Object('slist.c')
		];
# framework
	te.Program (['atomic_unittest.c']);
	te.Program (['checksum_unittest.c'] + tlog);
	te.Program (['error_unittest.c'] + tlog);
	te.Program (['md5_unittest.c'] + tlog);
	te.Program (['getifaddrs_unittest.c',
			e.Object('error.c'),
			e.Object('sockaddr.c'),
			e.Object('list.c')] + tlog);
	te.Program (['getnodeaddr_unittest.c',
			e.Object('error.c'),
			e.Object('sockaddr.c')] + tlog);
	te.Program (['indextoaddr_unittest.c',
			e.Object('error.c'),
			e.Object('sockaddr.c')] + tlog);
	te.Program (['inet_network_unittest.c',
			e.Object('sockaddr.c')] + tlog);
	te.Program (['rate_control_unittest.c'] + tlog);
	te.Program (['reed_solomon_unittest.c'] + tlog);
	te.Program (['time_unittest.c',
			e.Object('error.c')] + tlog);
# collate
	tframework = [	e.Object('checksum.c'),
			e.Object('error.c'),
			e.Object('galois_tables.c'),
			e.Object('getifaddrs.c'),
			e.Object('getnodeaddr.c'),
			e.Object('hashtable.c'),
			e.Object('histogram.c'),
			e.Object('indextoaddr.c'),
			e.Object('indextoname.c'),
			e.Object('inet_network.c'),
			e.Object('list.c'),
			e.Object('math.c'),
			e.Object('md5.c'),
			e.Object('mem.c'),
			e.Object('messages.c'),
			e.Object('nametoindex.c'),
			e.Object('queue.c'),
			e.Object('rand.c'),
			e.Object('rate_control.c'),
			e.Object('reed_solomon.c'),
			e.Object('slist.c'),
			e.Object('sockaddr.c'),
			e.Object('string.c'),
			e.Object('thread.c'),
			e.Object('time.c'),
			e.Object('wsastrerror.c')
		];
# library
	te.Program (['txw_unittest.c',
			e.Object('tsi.c'),
			e.Object('skbuff.c')] + tframework);
	te.Program (['rxw_unittest.c',
			e.Object('tsi.c'),
			e.Object('skbuff.c')] + tframework);
	te.Program (['engine_unittest.c',
			e.Object('version.c')] + tframework);
	te.Program (['gsi_unittest.c',
			e.Object('if.c')] + tframework);
	te.Program (['tsi_unittest.c'] + tframework);
	te.Program (['if_unittest.c'] + tframework);
	te.Program (['socket_unittest.c',
			e.Object('if.c'),
			e.Object('tsi.c')] + tframework);
	te.Program (['source_unittest.c',
			e.Object('skbuff.c')] + tframework);
	te.Program (['receiver_unittest.c',
			e.Object('tsi.c')] + tframework);
	te.Program (['recv_unittest.c',
			e.Object('tsi.c'),
			e.Object('gsi.c'),
			e.Object('skbuff.c')] + tframework);
	te.Program (['net_unittest.c'] + tframework);
	te.Program (['timer_unittest.c'] + tframework);
	te.Program (['packet_parse_unittest.c'] + tframework);
	te.Program (['packet_test_unittest.c'] + tframework);
	te.Program (['ip_unittest.c',
			e.Object('if.c')] + tframework);
# performance tests
	te.Program (['checksum_perftest.c',
			e.Object('time.c'),
			e.Object('error.c')] + tlog);

# end of file