On Fri, 20 Dec 2002 19:55:42 +0100 (ora solare Europa occidentale) Mattia Barbon
<[EMAIL PROTECTED]> wrote:
> On Thu, 19 Dec 2002 00:43:27 -0800 Michael G Schwern <[EMAIL PROTECTED]>
> wrote:
>
> > We need non-Unix testers and non-Linux testers. A *lot* of stuff
> > changed in
> > the non-Unix code for the (eventually) better.
> >
> > We need people to try out complex modules like WxPerl, Tk, bioperl,
> > etc...
> Win2k, nmake
>
> C:\Scratch\ExtUtils-MakeMaker-6.06_01>perl Makefile.PL
> Checking if your kit is complete...
> Looks good
> Unable to find a perl 5 (by these names:
> C:\Programmi\Devel\Perl\bin\Perl.exe perl.exe perl5.exe perl5.6.1.exe
> miniperl.exe, i
> n these dirs: C:\Programmi\Utility\MinGW\bin C:\WINNT\system32 C:\WINNT
> C:\WINNT\System32\Wbem C:\Programmi\Devel\Perl\bin C:\
> Programmi\Utility\Varie\ c:\Programmi\Utility\PGP
> c:\Programmi\Devel\Perforce c:\matlabr12\bin\win32
> C:\Programmi\Devel\Perl\b
> in)
> Writing Makefile for ExtUtils::MakeMaker
I think it is a cmd.exe bug:
===================================================
C:\Scratch\ExtUtils-MakeMaker-6.06_01>cat foo.pl
$abs = 'C:\Programmi\Devel\Perl\bin\Perl.exe';
$cmd = qq("$abs" -e "require 5; print qq{VER_OK\\n}");
print `$cmd`;
C:\Scratch\ExtUtils-MakeMaker-6.06_01>perl foo.pl
"C:\Programmi\Devel\Perl\bin\Perl.exe" -e "require" non � riconosciuto come
comando interno o esterno, un programma eseguibile o un file batch.
# =~ "C:\Programmi\Devel\Perl\bin\Perl.exe" -e "require" is not recognised
# as an external or internal command or a batch file
C:\Scratch\ExtUtils-MakeMaker-6.06_01>cat foo.pl
$abs = 'C:\Programmi\Devel\Perl\bin\Perl.exe';
$cmd = qq($abs -e "require 5; print qq{VER_OK\\n}");
# removed quotes around $abs
print `$cmd`;
C:\Scratch\ExtUtils-MakeMaker-6.06_01>perl foo.pl
VER_OK
===================================================
> C:\Scratch\ExtUtils-MakeMaker-6.06_01>nmake
>
> Microsoft (R) Program Maintenance Utility Version 1.50
> Copyright (c) Microsoft Corp 1988-94. All rights reserved.
>
> NMAKE : fatal error U1073: don't know how to make
> 'C:\Programmi\Devel\Perl\libNAME'
> Stop.
NMAKE does not like
DIRFILESEP = \
note the trailing backslash, meaning line continuation.
SOme more problems: there is a bug in MM_Win32::quote_literal
(see patch). After it is fixed, there is a further problem:
MM_Unix::init_PERL sets PERLSAFE to "$(PERL)", but (as above) cmd.exe
does not like quotes around commands when invoked from nmake or from
perl backticks (as above) (using them on the command line is safe,
though...).
===================================================
C:\Scratch\EXTUTI~1.06_>cat foo.mak
all:
"perl" -e "print 5"
C:\Scratch\EXTUTI~1.06_>nmake -f foo.mak
Microsoft (R) Program Maintenance Utility Version 1.50
Copyright (c) Microsoft Corp 1988-94. All rights reserved.
"perl" -e "print 5"
"perl" -e "print" non � riconosciuto come comando interno o esterno,
un programma eseguibile o un file batch.
NMAKE : fatal error U1077: 'C:\WINNT\system32\cmd.exe' : return code '0x1'
Stop.
C:\Scratch\EXTUTI~1.06_>cat foo.mak
all:
perl -e "print 5"
C:\Scratch\EXTUTI~1.06_>nmake -f foo.mak
Microsoft (R) Program Maintenance Utility Version 1.50
Copyright (c) Microsoft Corp 1988-94. All rights reserved.
perl -e "print 5"
5
===================================================
Regards
Mattia
--- lib/ExtUtils/MM_Win32.pm.orig Thu Dec 19 06:19:45 2002
+++ lib/ExtUtils/MM_Win32.pm Fri Dec 20 22:37:36 2002
@@ -145,5 +145,5 @@
my($self) = shift;
- $self->{DIRFILESEP} = '\\';
+ $self->{DIRFILESEP} = $NMAKE ? '^\\' : '\\';
}
@@ -450,5 +450,5 @@
sub quote_literal {
- my($self, $text) = @_;
+ my($self, $cmd) = @_;
# I don't know if this is correct, but it seems to work on
--end of patch