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.

Thanks!

Dave A


Reply via email to