Subject: | Win32, 32-bit perls need Prima.a to be renamed to libPrima.a |
Hi Dmitry,
I don't know why it is so, but unless the Prima import lib is named
libPrima.a, PDL::Drawing::Prima fails to build successfully. The
Prima.dll that it builds wants to load a (non-existent) dll.exp.dll,
instead of Prima's Prima.dll.
I find this is the case for perls ranging from 5.8.0, right through to
5.16.0.
A patch to the Prima-1.34 Makefile.PL that attends to this is attached.
The patch also means that the 64-bit import library will be named
libPrima.a. Although there appears to be no problem with an import lib
named Prima.a for the 64-bit builds, they're equally content with a
"libPrima.a" ... so, for consistency, why not have them the same.
I'm not entirely sure that it should be up to Prima to fix this ... but
I think that fixing it in the Prima source is the *simplest* way of
addressing the problem.
Cheers,
Rob
Subject: | diff.txt |
--- Makefile.PL_orig 2012-06-01 15:51:09 +1000
+++ Makefile.PL_new 2012-07-11 19:18:09 +1000
@@ -76,6 +76,7 @@
%passthru_options
$Win32
$Win64
+ $mingw
$OS2
$unix
$cygwin
@@ -208,6 +209,7 @@
if ( $^O =~ /mswin32/i) {
$Win32 = 1;
$platform = 'win32';
+ $mingw = 1 if $Config{cc} =~ /\bgcc/;
} elsif ( $^O =~ /cygwin/i) {
if ( $cmd_options{CYGWIN_X11}) {
$unix = 1;
@@ -358,7 +360,7 @@
$DEFFILE = 'Prima.def';
$LIB_EXT = ($cygwin ? '.dll' : '') . $Config{ _a};
- $LIB_PREFIX = $cygwin ? 'lib' : '';
+ $LIB_PREFIX = $cygwin || $mingw ? 'lib' : '';
open F, 'Prima.pm' or die "Cannot open Prima.pm:$!\n";
my ($ver1, $ver2);