Subject: | dmake does not understand whitespace in paths? |
Date: | Wed, 15 Aug 2007 22:22:51 +0200 |
To: | bugs-dmake [...] rt.cpan.org |
From: | Max Maischein <corion [...] corion.net> |
Hello dmake maintainers,
I'm currently trying to build bleadperl in a directory that contains
whitespace. I'm aware that this practice is discouraged, but the Perl
core so far works and miniperl.exe gets built. But when building
WIN32CORE, dmake does not want to work, while it works once I substitute
the 8.3 directory name for the whitespace-containing directory.
I think dmake should have no problems with a quoted command containing
whitespace, but seemingly it does - the problematic makefile is attached
to this mail, but I'll repeat the crux here:
I'm building blead perl in a directory evilly named "fresh blead"
(originally, I was building it under "Documents and Settings").
The created Makefile contains:
ABSPERL = C:\Projekte\perl-5.8.8\fresh blead\perl-5.9.5\miniperl.exe
(you note the missing quotes, but that's a problem to be attacked later,
once I get the manual fixup to work). Running this Makefile via `dmake`
yields:
C:\Projekte\perl-5.8.8\fresh blead\perl-5.9.5\ext\Win32CORE>dmake
gcc -c -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT
-DPERL_IMPLICIT_SYS -fno-st
rict-aliasing -DPERL_MSVCRT_READFIX -DPERLDLL -s -O2
-DVERSION=\"0.02\" -DXS_VERSION=\"0.02\
" "-I..\..\lib\CORE" Win32CORE.c
C:\Projekte\perl-5.8.8\fresh blead\perl-5.9.5\miniperl.exe "-I..\..\lib"
"-I..\..\lib" -MExtUtils::C
ommand -e rm_rf ..\..\lib\auto\Win32CORE\Win32CORE.a
Der Befehl "C:\Projekte\perl-5.8.8\fresh" ist entweder falsch
geschrieben oder
konnte nicht gefunden werden.
dmake: Error code 129, while making '..\..\lib\auto\Win32CORE\Win32CORE.a'
- dmake did not find the command. No surprise, as the command was not
properly quoted. So, let's do that:
ABSPERL = "C:\Projekte\perl-5.8.8\fresh blead\perl-5.9.5\miniperl.exe"
C:\Projekte\perl-5.8.8\fresh blead\perl-5.9.5\ext\Win32CORE>dmake
gcc -c -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT
-DPERL_IMPLICIT_SYS -fno-st
rict-aliasing -DPERL_MSVCRT_READFIX -DPERLDLL -s -O2
-DVERSION=\"0.02\" -DXS_VERSION=\"0.02\
" "-I..\..\lib\CORE" Win32CORE.c
"C:\Projekte\perl-5.8.8\fresh blead\perl-5.9.5\miniperl.exe"
"-I..\..\lib" "-I..\..\lib" -MExtUtils:
:Command -e rm_rf ..\..\lib\auto\Win32CORE\Win32CORE.a
Der Befehl "C:\Projekte\perl-5.8.8\fresh" ist entweder falsch
geschrieben oder
konnte nicht gefunden werden.
dmake: Error code 129, while making '..\..\lib\auto\Win32CORE\Win32CORE.a'
Hmmm - so it seems to strip the quotes and forget about them. Pasting
the same (quoted) command into the console window works, so it seems to
be a problem with dmake.exe itself.
C:\Projekte\perl-5.8.8\fresh blead\perl-5.9.5\ext\Win32CORE>dmake -V
dmake - Version 4.8-20070327-SHAY (Windows / MS Visual C++)
Copyright (c) 1990,...,1997 by WTI Corp.
Default Configuration:
MAXLINELENGTH := 32766
MAXPROCESSLIMIT := 4
MAXPROCESS := 1
.IMPORT .IGNORE: DMAKEROOT
.MAKEFILES : makefile.mk makefile
.SOURCE : .NULL
DMAKEROOT *= $(ABSMAKECMD:d)startup
MAKESTARTUP := $(DMAKEROOT)\startup.mk
Please read the NEWS file for the latest release notes.
This is the latest dmake version I found...
I hope it's an easy fix so we can have dmake work even with build
directories containing whitespace (like the local temp directory below
"Documents and Settings\$profile\Temporary Files")...
Thanks
-max
Message body is not shown because it is too large.