2009/12/16 Dave Anderson <b...@davywavy.com>:
> Hi,
>
> This is my Makefile.PL:
>
> use 5.010001;
> use ExtUtils::MakeMaker;
> # See lib/ExtUtils/MakeMaker.pm for details of how to influence
> # the contents of the Makefile that is written.
> WriteMakefile(
>     NAME              => 'test01',
>     VERSION_FROM      => 'lib/test01.pm', # finds $VERSION
>     PREREQ_PM         => {}, # e.g., Module::Name => 1.1
>     ($] >= 5.005 ?     ## Add these new keywords supported since 5.005
>       (ABSTRACT_FROM  => 'lib/test01.pm', # retrieve abstract from module
>        AUTHOR         => 'A. U. Thor <a.u.t...@a.galaxy.far.far.away>') :
> ()),
>     # The Makefile is going to have to be fixed to remove the auto-escaping
> of '(x86)' into '\(x86\)'.
>     LDDLFLAGS         => '-libpath:"c:\Program Files (x86)\Microsoft Visual
> Studio 9.0\VC\lib" -libpath:"c:\Program Files\Microsoft
> SDKs\Windows\v6.0A\Lib"',
>     LIBS              => [''], # e.g., '-lm'
>     DEFINE            => '', # e.g., '-DHAVE_SOMETHING'
>     INC               => '-I. "-Ic:\Program Files (x86)\Microsoft Visual
> Studio 9.0\VC\include" "-Ic:\Program Files (x86)\Microsoft
> SDKs\Windows\v5.0\Include"', # e.g., '-I. -I/usr/include/other'
>     # Un-comment this if you add C files to link with later:
>     # OBJECT            => '$(O_FILES)', # link all the C files too
> );
>
> The key line is:
>
>     LDDLFLAGS         => '-libpath:"c:\Program Files (x86)\Microsoft Visual
> Studio 9.0\VC\lib"
>
> The parenthesis are annoyingly escaped when creating the Makefile:
>
> LDDLFLAGS = -libpath:"c:\Program Files \(x86\)\Microsoft Visual Studio
> 9.0\VC\lib" -libpath:"c:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib"
>
> Which breaks the build on Windows. The INC attribute doesn't do that so why
> does LDDLFLAGS? I've tried moving those options into LD but it has the same
> problem. For now I'm going to have to modify the generated Makefile each
> time I call Makefile.PL.

A nicer workaround is to create a symlink and then modify the
vcvars.cmd/vsvars.cmd environment configuration scripts to point at
the symlink. Then tools which have problems with spaces in their paths
and whatnot Just Work.

You can use the sysinternals toolset to create a symlink on windows.
Or alternatively use perl itself which is also capable of the same
thing.

cheers,
Yves



-- 
perl -Mre=debug -e "/just|another|perl|hacker/"

Reply via email to