Skip Menu |
 

This queue is for tickets about the Tcl CPAN distribution.

Report information
The Basics
Id: 128649
Status: new
Priority: 0/
Queue: Tcl

People
Owner: Nobody in particular
Requestors: CAC [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Path to tclsh cannot contain spaces
Using ActivePerl 5.24 (dmake 4.11 and gcc 4.6.3); I still have not tried Strawberry Perl. I installed Magicsplat 8.6.9 system-wide on my Windows 10 x64 machine, which puts tclsh.exe somewhere like "C:\Program Files\Tcl86\bin" by default, but it is on the PATH.
 
Tcl.pm's Makefile.PL can detect tclsh on the PATH (I am not specifying --tclsh), but it does not appear to be saving where it is correctly in the compiler args in the generated Makefile. This causes an error:
 
GitHub\tcl.pm> dmake
Skip blib\lib\Tcl.pm (unchanged)
Running Mkbootstrap for Tcl ()
"C:\Perl64\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 "Tcl.bs"
"C:\Perl64\bin\perl.exe" -MExtUtils::Command::MM -e cp_nonempty -- Tcl.bs blib\arch\auto\Tcl\Tcl.bs 644
C:\Perl64\site\bin\gcc.exe -c  -Itcl-core/include       -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"1.27\"    -DXS_VERSION=\"1.27\"  "-IC:\Perl64\lib\CORE"  -DUSE_TCL_STUBS -DTCLSH_PATH=\"C:/Program Files/Tcl86/bin\" Tcl.c
gcc.exe: error: Files/Tcl86/bin": No such file or directory
dmake.exe:  Error code 129, while making 'Tcl.o'
 
My guess is that line 119 of Makefile.PL should instead use:
 
$defs .= " -DTCLSH_PATH=\"\\\"".([$tclcfg{tclsh}=~m/^(.*)\//]->[0])."\\\"\""
 
rather than
 
$defs .= " -DTCLSH_PATH=\\\"".([$tclcfg{tclsh}=~m/^(.*)\//]->[0])."\\\""
 
This puts one final pair of unescaped quotes around the path. I admit I don't know much about Makefiles and when to escape backslashes or quotes in them; maybe I am wrong to assume they follow the same rules as shell scripts here.
 
Similar issues and improvements might apply to the include path (if not using stubs) and lib path.
 


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.