# cgame

Import qw( BASE_CFLAGS CONFIG_DIR BUILD_DIR BASEGAME do_lddabort CC CXX LINK );

$env = new cons(
	CC => $CC,
	CXX => $CXX,
	LINK => $LINK,
  CPPPATH => '#../game:#../ui', # needed for cg_ files
  CFLAGS => $BASE_CFLAGS . '-fPIC -DCGAMEDLL',
  LDFLAGS => '-shared -ldl -lm'
);

# some files are compiled and linked in to several .so
# this confuses gdb when setting breakpoints

@CG_FILES_IN = qw (
  ../game/bg_animation.c
  ../game/bg_misc.c
  ../game/bg_pmove.c
  ../game/bg_slidemove.c
  ../game/q_math.c
  ../game/q_shared.c
  ../ui/ui_shared.c
	);

# run through and process into cgame specific
my @CG_FILES_OUT;
foreach (@CG_FILES_IN)
{
	$source = $_;
	$source =~ s/.*\/(.*)/..\/cgame\/cg_\1/;
	push @CG_FILES_OUT, $source;
}

InstallAs $env [@CG_FILES_OUT], [@CG_FILES_IN];

$CG_FILESREF = \@CG_FILES_OUT;

@FILES = qw(
  ../cgame/cg_consolecmds.c
  ../cgame/cg_draw.c
  ../cgame/cg_drawtools.c
  ../cgame/cg_effects.c
  ../cgame/cg_ents.c
  ../cgame/cg_event.c
  ../cgame/cg_flamethrower.c
  ../cgame/cg_info.c
  ../cgame/cg_localents.c
  ../cgame/cg_main.c
  ../cgame/cg_marks.c
  ../cgame/cg_newDraw.c
  ../cgame/cg_particles.c
  ../cgame/cg_players.c
  ../cgame/cg_playerstate.c
  ../cgame/cg_predict.c
  ../cgame/cg_scoreboard.c
  ../cgame/cg_servercmds.c
  ../cgame/cg_snapshot.c
  ../cgame/cg_sound.c
  ../cgame/cg_spawn.c
  ../cgame/cg_syscalls.c
  ../cgame/cg_trails.c
  ../cgame/cg_view.c
  ../cgame/cg_weapons.c
  );
$FILESREF = \@FILES;

# FIXME CPU string  
Program $env 'cgame.mp.i386.so', @$FILESREF, @$CG_FILESREF;
my $path = FilePath('cgame.mp.i386.so');
AfterBuild $env 'cgame.mp.i386.so', "[perl] &ldd_check::do_check(\'$path\', $do_lddabort)";

Install $env '#' . $CONFIG_DIR . '/out/' . $BASEGAME, 'cgame.mp.i386.so';
