Hi:
I am writing to you in regard to a bug/feature in MakeMaker. I'm using this version of MakeMaker: 6.42_01 Revision 41145 on WinXP as installed with ActiveState perl v 5.1.10.1002 I am having a problem wherein MakeMaker does not correctly recognize the version of the Microsoft C++ compiler that I'm using. This leads MakeMaker not to emit the call to the Microsoft Manifest Tool, mt.exe, which would embed the DLL manifest in the dll. The problem is in MM_Win32.pm @337 if ($Config{ivsize} == 4 && $Config{cc} eq 'cl' and $Config{ccversion} =~ /^(\d+)/ and $1 >= 14) { push(@m, q{ mt -nologo -manifest [EMAIL PROTECTED] -outputresource:$@;2 && del [EMAIL PROTECTED]); } } push @m, ' $(CHMOD) $(PERM_RWX) $@ $Config{ccversion} is returning the version of the compiler that my perl.exe was built with, which for this ActiveState was v12.**. But, I'm compiling my module with v14 (VS 2005.NET), which requires the embedded manifest. I've tried a number of things in my Makefile to get the correct compiler version number into $Config, including: if ($Config{ccname} eq 'cl') { print STDERR "confirming CL version\n"; foreach (qx{$Config{ccname} /? 2>&1}) { if (/Microsoft \(R\) \d\d-bit C\/C\+\+ Optimizing Compiler Version ((?:\d\.){2}\d+)/) { print STDERR "match: $1\n"; my $obj = tied %Config::Config; $obj->{ccversion} = $1; $ExtUtils::MakeMaker::Config{ccversion} = $1; last; } } } But to no avail. The mt.exe statement never gets written into the generated makefile. Short of making myself a one-off copy of MM_Win32.pm, do you have any suggestions? Thank you. Mike Slass | Software Developer F5 Networks P 206.272.6338 F 206.272.5856 www.f5.com <http://www.f5.com>
<<image001.gif>>