Subject: | Makefile.PL not generate Makefile when run from cpanp-run-perl.bat |
The problem presents itself trying cpanp i ORLite::Migrate
[MSG] Extracted 'ORLite-Migrate-1.07/t/data/trivial/migrate-02.pl'
[MSG] Extracted 'ORLite::Migrate' to
'*snip*\APPLIC~1\CPANPL~1\5.10.1\build\ORLite-Migrate-1.07'
Running [C:\perl\5.10.1\bin\MSWin32-x86-multi-thread\perl.exe
C:\perl\5.10.1\bin\cpanp-run-perl.bat
*snip*\APPLIC~1\CPANPL~1\5.10.1\build\ORLite-Migrate-1.07\Makefile.PL]...
[ERROR] File
'*snip*\APPLIC~1\CPANPL~1\5.10.1\build\ORLite-Migrate-1.07\Makefile' is
not readable or does not exist
at C:/perl/5.10.1/lib/CPANPLUS/Dist/MM.pm line 467
Key 'file'
(*snip*\APPLIC~1\CPANPL~1\5.10.1\build\ORLite-Migrate-1.07\Makefile) is
of invalid type for 'CPANPLUS::Dist::MM::_find_prereqs' provided by
CPANPLUS::Dist::MM::prepare at C:/perl/5.10.1/lib/CPANPLUS/Module.pm
line 815
[ERROR] Unable to scan
'*snip*\APPLIC~1\CPANPL~1\5.10.1\build\ORLite-Migrate-1.07\Makefile' for
prereqs
at C:/perl/5.10.1/lib/CPANPLUS/Dist/MM.pm line 424
[ERROR] Unable to create a new distribution object for
'ORLite::Migrate' -- cannot continue
at C:/perl/5.10.1/lib/CPANPLUS/Module.pm line 1067
In this situation Makefile.PL wont create Makefile
$ C:\perl\5.10.1\bin\MSWin32-x86-multi-thread\perl.exe
C:\perl\5.10.1\bin\cpanp-run-perl.bat
*snip*\APPLIC~1\CPANPL~1\510~1.1\build\ORLite-Migrate-1.07\Makefile.PL
$ dir Makef*
Directory of *snip*\APPLIC~1\CPANPL~1\510~1.1\build\ORLite-Migrate-1.07
03/25/2010 02:25 AM 302 Makefile.PL
1 File(s) 302 bytes
0 Dir(s) 4,987,920,384 bytes free
$ perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for ORLite::Migrate
$ dir Makef*
Directory of *snip*\APPLIC~1\CPANPL~1\510~1.1\build\ORLite-Migrate-1.07
03/26/2010 03:29 AM 24,753 Makefile
03/25/2010 02:25 AM 302 Makefile.PL
2 File(s) 25,055 bytes
0 Dir(s) 4,987,891,712 bytes free
This is cpanp-run-perl.bat
@rem = '--*-Perl-*--
@echo off
if "%OS%" == "Windows_NT" goto WinNT
C:\perl\5.10.1\bin\MSWin32-x86-multi-thread\perl.exe -x -S "%0" %1
%2 %3 %4 %5 %6 %7 %8 %9
goto endofperl
:WinNT
C:\perl\5.10.1\bin\MSWin32-x86-multi-thread\perl.exe -x -S %0 %*
if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
if %errorlevel% == 9009 echo You do not have Perl in your PATH.
if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul
goto endofperl
@rem ';
#!perl
#line 15
use strict;
my $old = select STDERR; $|++; # turn on autoflush
select $old; $|++; # turn on autoflush
$0 = shift(@ARGV); # rename the script
my $rv = do($0); # execute the file
die $@ if $@; # die on parse/execute error
### XXX 'do' returns last statement evaluated, which may be
### undef as well. So don't die in that case.
#die $! if not defined $rv; # die on execute error
__END__
:endofperl