/usr/local/CPAN/Text-CPP/Makefile.PL


require 5.005002;
use strict;
use ExtUtils::MakeMaker;

my @hdr = qw(ansidecl.h config.h cppdefault.h cpphash.h cpplib.h
	global.h hashtable.h hwint.h intl.h libiberty.h line-map.h
	mbchar.h mkdeps.h obstack.h safe-ctype.h splay-tree.h
	symcat.h system.h);
my @base = qw(CPP concat cppdefault cpperror cppexp cppfiles cpphash
	cppinit cpplex cpplib cppmacro cppmain cpptrad hashtable hex
	interface lbasename line-map mbchar mkdeps obstack safe-ctype
	splay-tree);
my @src = map { "$_.c"} @base;
my @obj = map { "$_.o"} @base;

# We require this or the Makefile won't reference it.
do "typemap.PL" or die "Failed to generate typemap: $!";

WriteMakefile(
	NAME			=> 'Text::CPP',
	VERSION_FROM	=> 'CPP.pm',
    ABSTRACT_FROM	=> "CPP.pm",
	AUTHOR			=> 'Shevek <cpan@anarres.org>',
	PREREQ_PM		=> { },
	INC				=> "-I.",
	TYPEMAPS		=> [ qw(typemap) ],
	OBJECT			=> "@obj",
	C				=> \@src,
	H				=> \@hdr,
	OPTIMIZE		=> q[-O0 -g -Wall -DHAVE_CONFIG_H],
	clean			=> { FILES => "config.h typemap" },
);

sub MY::postamble {
	my $self = shift;
	my $old = $self->MM::postamble(@_);
	chomp($old);
	my $new = <<'EON';

.PHONY : aux dep readme

CPP.c : typemap

aux : readme dep

readme : CPP.pm
	perldoc -t CPP.pm > README

dep : $(C_FILES) $(H_FILES)
	$(RM_F) .depend
	$(CC) -MM $(INC) -isystem $(PERL_INC) $(CCFLAGS) $(C_FILES) >> .depend

EON
	return $old . $new;
}