----- Original Message -----
From: "Sisyphus"
There's a section of code inside inc/Module/Install.pm's load_extensions
subroutine that goes thusly:
my $new = eval { require $file; $pkg->can('new') };
unless ( $new ) {
warn $@ if $@;
next;
}
That's the code that produces the first part of the error message. ie it's
$@ that contains:
" Undefined subroutine &ActivePerl::Config::find_prog called at
C:/Perl/site/lib/ActivePerl/Config.pm line 70.
Compilation failed in require at C:/Perl/lib/ExtUtils/MakeMaker.pm line 7.
BEGIN failed--compilation aborted at C:/Perl/lib/ExtUtils/MakeMaker.pm
line 7.
Compilation failed in require at inc/Module/Install/Can.pm -
/usr/local/lib/perl5/site_perl/5.8.7/Module/Install/Can.pm line 8.
BEGIN failed--compilation aborted at inc/Module/Install/Can.pm -
/usr/local/lib/perl5/site_perl/5.8.7/Module/Install/Can.pm line 8.
Compilation failed in require at
/home/autrijus/work/par/inc/Module/Install.pm -
/usr/local/lib/perl5/site_perl/5.8.7/Module/Install.pm line 180."
Here's as far as I got with AS perl build 817 (perl 5.8.8):
First up, before you can build PAR on AS perl you'll need to install
Module::ScanDeps and PAR::Dist. There's also an option to install
Parse::Binary and Win32::Exe, so we might as well install them too.
For each of those 4 modules, if you build them from source, you'll get that
same error that Glen reported in his initial post in this thread.
The fix in all 4 modules is the same:
In inc/Module/Install/Makefile.pm and inc/Module/Install/Can.pm, find the
line 'use ExtUtils::MakeMaker ();' and remove that line (or comment it out).
Those 4 modules will then build fine.
Since it works for those 4 modules, one would be hopeful that the same fix
would work for PAR. Unfortunately, however, having installed the 2
dependencies (and the 2 optionals), and having made exactly the same change
to PAR's inc/Module/Install/Makefile.pm and inc/Module/Install/Can.pm,
running 'perl Makefile.PL' now produces:
*** Module::AutoInstall version 1.01
*** Checking for dependencies...
[Core Features]
- File::Temp ...loaded. (0.16 >= 0.05)
- Compress::Zlib ...loaded. (1.41 >= 1.16)
- Archive::Zip ...loaded. (1.16 >= 1)
- Module::ScanDeps ...loaded. (0.57 >= 0.56)
- PAR::Dist ...loaded. (0.08 >= 0.08)
[Windows --icon and --info support]
- Parse::Binary ...loaded. (0.09 >= 0.04)
- Win32::Exe ...loaded. (0.08 >= 0.04)
*** Module::AutoInstall configuration finished.
The 'makemaker_args' method does not exist in the 'inc' path!
Please remove the 'inc' directory and run makefile.pl again to load it.
By the time I got to that stage I was too tired (and relaxed :-) to take it
any further. I'll try to get further tomorrow - unless someone else can fix
it in the meantime. (Faik, there could be no future in the path I embarked
upon - maybe we need to leave the 2 pm files in their original state and
just address the issue of the global $Verbose - which is the error that
actually terminates the build process, afaict.) Needless to say, you won't
get anywhere if you "remove the 'inc' directory and run makefile.pl again".
Cheers,
Rob