use 5.004005; #Devel::CheckLib use ExtUtils::MakeMaker; use lib qw(inc); use Devel::CheckLib; use Config; $expat_libpath = ''; $expat_incpath = ''; my @replacement_args; foreach (@ARGV) { if (/^EXPAT(LIB|INC)PATH=(.+)/) { if ($1 eq 'LIB') { $expat_libpath = $2; } else { $expat_incpath = $2; } #push(@replacement_args, "$1=$2"); } else { push(@replacement_args, $_); } } @ARGV = @replacement_args; unless ( check_lib( # fill in what you prompted the user for here lib => [qw(expat)], header => ['expat.h'], incpath => $expat_incpath, ($expat_libpath? (libpath => $expat_libpath):()), )) { warn <<'Expat_Not_Installed;'; Expat must be installed prior to building XML::Parser and I can't find it in the standard library directories. Install 'expat-devel' package with your OS package manager. See 'README'. Or you can download expat from: http://sourceforge.net/projects/expat/ If expat is installed, but in a non-standard directory, then use the following options to Makefile.PL: EXPATLIBPATH=... To set the directory in which to find libexpat EXPATINCPATH=... To set the directory in which to find expat.h For example: perl Makefile.PL EXPATLIBPATH=/home/me/lib EXPATINCPATH=/home/me/include Note that if you build against a shareable library in a non-standard location you may (on some platforms) also have to set your LD_LIBRARY_PATH environment variable at run time for perl to find the library. Expat_Not_Installed; #exit; } if (not $expat_libpath and $] >= 5.006001 and $^O ne 'MSWin32') { require ExtUtils::Liblist; # Buggy before this ($expat_libpath) = ExtUtils::Liblist->ext('-lexpat'); } =for cmt unless ($expat_libpath) { # Test for existence of libexpat my $found = 0; foreach (split(/\s+/, $Config{libpth})) { if (-f "$_/libexpat." . $Config{so}) { $expat_libpath=$_; $found = 1; last; } } if (!$found and $^O eq 'MSWin32') { if (-f 'C:/lib/Expat-2.0.0/Libs/libexpat.dll') { $expat_libpath = 'C:/lib/Expat-2.0.0/Libs'; $expat_incpath = 'C:/lib/Expat-2.0.0/Source/lib'; $found = 1; } } if ($found) { print "libexpat found in $expat_libpath\n"; } unless ($found) { warn <<'Expat_Not_Installed;'; Expat must be installed prior to building XML::Parser and I can't find it in the standard library directories. Install 'expat-devel' package with your OS package manager. Or you can download expat from: http://sourceforge.net/projects/expat/ If expat is installed, but in a non-standard directory, then use the following options to Makefile.PL: EXPATLIBPATH=... To set the directory in which to find libexpat EXPATINCPATH=... To set the directory in which to find expat.h For example: perl Makefile.PL EXPATLIBPATH=/home/me/lib EXPATINCPATH=/home/me/include Note that if you build against a shareable library in a non-standard location you may (on some platforms) also have to set your LD_LIBRARY_PATH environment variable at run time for perl to find the library. Expat_Not_Installed; exit 0; } } =cut # Don't try to descend into Expat directory for testing sub MY::test { my $self = shift; my $hold = delete $self->{DIR}; my $ret = $self->MM::test(@_); $self->{DIR} = $hold if defined($hold); $ret; } my @extras = (); push(@extras, CAPI => 'TRUE') if ($PERL_VERSION >= 5.005 and $OSNAME eq 'MSWin32' and $Config{archname} =~ /-object\b/i); WriteMakefile1( ABSTRACT_FROM => 'Parser.pm', AUTHOR => 'Clark Cooper (coopercc@netheaven.com)', LICENSE => 'perl', MIN_PERL_VERSION => '5.00405', META_MERGE => { resources => { repository => 'http://github.com/chorny/XML-Parser', }, }, #BUILD_REQUIRES => { #}, NAME => 'XML::Parser', DIR => [qw(Expat)], dist => {COMPRESS => 'gzip', SUFFIX => '.gz'}, VERSION_FROM => 'Parser.pm', PREREQ_PM => { LWP => 0, #for tests }, $^O =~/win/i ? ( dist => { TAR => 'ptar', TARFLAGS => '-c -C -f', }, ) : (), @extras ); sub WriteMakefile1 { #Written by Alexandr Ciornii, version 0.21. Added by eumm-upgrade. my %params=@_; my $eumm_version=$ExtUtils::MakeMaker::VERSION; $eumm_version=eval $eumm_version; die "EXTRA_META is deprecated" if exists $params{EXTRA_META}; die "License not specified" if not exists $params{LICENSE}; if ($params{BUILD_REQUIRES} and $eumm_version < 6.5503) { #EUMM 6.5502 has problems with BUILD_REQUIRES $params{PREREQ_PM}={ %{$params{PREREQ_PM} || {}} , %{$params{BUILD_REQUIRES}} }; delete $params{BUILD_REQUIRES}; } delete $params{CONFIGURE_REQUIRES} if $eumm_version < 6.52; delete $params{MIN_PERL_VERSION} if $eumm_version < 6.48; delete $params{META_MERGE} if $eumm_version < 6.46; delete $params{META_ADD} if $eumm_version < 6.46; delete $params{LICENSE} if $eumm_version < 6.31; delete $params{AUTHOR} if $] < 5.005; delete $params{ABSTRACT_FROM} if $] < 5.005; delete $params{BINARY_LOCATION} if $] < 5.005; WriteMakefile(%params); }