Subject: | Fwd: ExtUtils::MM_Win32::cd patch |
Date: | Tue, 27 Jun 2006 15:02:32 -0500 |
To: | bug-ExtUtils-MakeMaker [...] rt.cpan.org |
From: | "Michael G Schwern" <schwern [...] gmail.com> |
Show quoted text
---------- Forwarded message ----------
From: Jurosz Michal <rootmj_konf@seznam.cz>
Date: Jun 27, 2006 1:00 PM
Subject: ExtUtils::MM_Win32::cd patch
To: makemaker@perl.org
Hello,
"This cd can only go one level down" fix attached. Pugs
(http://pugscode.org/) Win32 build needs this patch.
--
Michal Jurosz
Index: lib/ExtUtils/MM_Win32.pm
===================================================================
--- lib/ExtUtils/MM_Win32.pm (revision 3688)
+++ lib/ExtUtils/MM_Win32.pm (working copy)
@@ -474,14 +474,11 @@
dmake can handle Unix style cd'ing but nmake (at least 1.5) cannot. It
wants:
- cd dir
+ cd dir1\dir2
command
another_command
- cd ..
+ cd ..\..
-B<NOTE> This cd can only go one level down. So far this sufficient for
-what MakeMaker needs.
-
=cut
sub cd {
@@ -490,12 +487,14 @@
return $self->SUPER::cd($dir, @cmds) unless $self->make eq 'nmake';
my $cmd = join "\n\t", map "$_", @cmds;
+ my $back_dir = '..';
+ $back_dir .= '\\..' while $dir =~ /.\\./g;
# No leading tab and no trailing newline makes for easier embedding.
- my $make_frag = sprintf <<'MAKE_FRAG', $dir, $cmd;
+ my $make_frag = sprintf <<'MAKE_FRAG', $dir, $cmd, $back_dir;
cd %s
%s
- cd ..
+ cd %s
MAKE_FRAG
chomp $make_frag;