# This is my version of the XML::RSS Makefile.PL. It makes use of # Test::Manifest and I added "make runtest" and "make distruntest" targets # to the makefile. # # See the MY::postamble function below for the details. use ExtUtils::MakeMaker; @extras = (); push(@extras, CAPI => 'TRUE') if ($PERL_VERSION >= 5.005 and $OSNAME eq 'MSWin32' and $Config{archname} =~ /-object\b/i); push(@extras, ABSTRACT_FROM => 'lib/XML/RSS.pm', AUTHOR => ' Ask Bjoern Hansen <ask@develooper.com>') if ($ExtUtils::MakeMaker::Version >= 5.4301); sub ExtUtils::MM_Any::test_via_harness { my($self, $perl, $tests) = @_; return qq|\t$perl "-MTest::Manifest" | . qq|"-e" "run_t_manifest(\$(TEST_VERBOSE), '\$(INST_LIB)', | . qq|'\$(INST_ARCHLIB)')"\n|; } # This is the function that needs to be added to add the "make runtest" # and "make distruntest" targets to the makefile. Note that you can add more # makefile fragments above or below it. sub MY::postamble { return <<'MAKE_FRAG'; runtest: pure_all perl -MFile::Spec -MTest::Run::CmdLine::Iface -MTest::Manifest -e \ "local @INC = @INC; unshift @INC, map { File::Spec->rel2abs(\$$_) } ('$(INST_LIB)', '$(INST_ARCHLIB)'); Test::Run::CmdLine::Iface->new({test_files => [Test::Manifest::get_t_files()]})->run();" distruntest: distdir cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL cd $(DISTVNAME) && $(MAKE) $(PASTHRU) cd $(DISTVNAME) && $(MAKE) runtest $(PASTHRU) MAKE_FRAG } WriteMakefile( 'NAME' => 'XML::RSS', 'VERSION_FROM' => 'lib/XML/RSS.pm', # finds $VERSION, 'PREREQ_PM' => { 'Test::Manifest' => '0.9', 'Test::More' => '0', 'XML::Parser' => '2.23', 'HTML::Entities' => 0, 'DateTime' => 0, 'DateTime::Format::Mail' => 0, 'DateTime::Format::W3CDTF' => 0, }, 'clean' => { FILES => 'XML-RSS-* t/*-generated.xml' }, @extras );