/usr/local/CPAN/Tree-Fat/Makefile.PL


use 5.005; # not strictly necessary but upgrading is healthy
use ExtUtils::MakeMaker;

my $testmode = 0;
my $insure = 0;

my @tvlib = (qw/tv.code tv.seek tv.private tv.public tv.sym tv.setup
	     tvcommon.h tvcommon.c tvcommon0.h/);

@OBJ = ();
@PREREQ = ();
@FLAGS = ();
unlink "tietv.tmpl", "tvcommon0.h";
if ($testmode) {
    warn "...setting symlinks for testing\n";
    symlink "setup/tv.test", "tietv.tmpl";
    symlink "setup/tvcommon0.test", "tvcommon0.h";
    if (0) {
	push(@OBJ, qw(cover1.o cover2.o ccov_registry.o));
	push(@PREREQ, 'Devel::CCov' => 0.08, 'Time::HiRes' => '01.16');
    } else {
	push(@OBJ, qw(tietv.o tvcommon.o));
    }
    push @FLAGS, OPTIMIZE => '-g';
    push @FLAGS, CC => 'insure', LD => 'insure' if $insure;
} else {
    warn "...setting symlinks for launch\n";
    symlink "setup/tv.prod", "tietv.tmpl";
    symlink "setup/tvcommon0.prod", "tvcommon0.h";
    push @OBJ, qw(tietv.o tvcommon.o);
}

#my $prof = '-fprofile-arcs -ftest-coverage';

my @PREFIX = (PREFIX => $ENV{PERL5PREFIX})
	if exists $ENV{PERL5PREFIX};

WriteMakefile(
	      @PREFIX,
	      @FLAGS,
	      NAME		=> 'Tree::Fat',
	      PREREQ_PM		=> { Test => 1, @PREREQ },
	      EXE_FILES		=> [qw(tvgen.pl)],
	      INC => '-I.',
	      VERSION_FROM	=> 'Fat.pm',
	      OBJECT		=> join(' ', qw(Fat.o), @OBJ),
	      PM		=> { 
				    'Fat.pm' => '$(INST_LIBDIR)/Fat.pm',
				    (map { $_=>'$(INST_LIBDIR)/Fat/'.$_ } @tvlib)
				   },
);

sub MY::postamble {
    '
tvgen.pl :: pm_to_blib

Fat.xs :: tietv.h

tietv.c tietvpriv.h tietvpub.h tietv.h :: $(INST_SCRIPT)/tvgen.pl tietv.tmpl
		$(PERL) -Mblib $(INST_SCRIPT)/tvgen.pl -t -p tie

cover1.c :: tvcommon.c
		ccovinstrument -c tvcommon.c -o $*.c -e $*.err

cover2.c :: tietv.c
		ccovinstrument -c tietv.c -o $*.c -e $*.err

ccov_registry$(OBJ_EXT): .ccov-timestamp
		ccovinstrument -r
		$(CCCMD) $(CCCDLFLAGS) $*.c

clean ::
		-rm -rf tietv*.[ch] *.ch cover[12].c *.err tvcommon0.h tietv.tmpl
		-rm -f ccov_registry.* .ccov-timestamp

';
}

#sub MY::makeaperl {
#    my $s = shift->MY::SUPER::makeaperl(@_);
#    $s =~ s/^MAP_LINKCMD.*$/MAP_LINKCMD = \$(PURIFY)/;
#    $s;
#}

__END__