Subject: | Low/Makefile.PL not right for MS Windows |
Hi,
I've just downloaded the current SWI-Prolog binaries (5.10.2) for
Windows. The Low/Makefile.PL tries to run `plcon.exe -dump-runtime-
variables`, but there's no such executable with 5.10.2. Instead, it
needs to run `swipl.exe -dump-runtime-variables`.
Also, the name of the import library is 'swipl.lib', not 'pl.lib' as
the Low/Makefile.PL expects.
The attached patch (portably) fixes the problem ... albeit in a not-
particularly-elegant way.
Cheers,
Rob
Subject: | Makefile.pl.patch |
--- Makefile.PL_orig Mon Dec 20 16:29:29 2010
+++ Makefile.PL Mon Dec 20 16:56:57 2010
@@ -7,7 +7,7 @@
$pl = $ENV{PL};
}
elsif ($^O =~ /Win32/) {
- $pl = 'plcon.exe';
+ $pl = system('plcon.exe', '-dump-runtime-variables') ? 'swipl.exe' : 'plcon.exe';
}
elsif (exists $Config{cf_by} and $Config{cf_by} eq 'Debian Project') {
$pl = 'swipl';
@@ -32,9 +32,12 @@
}
if ($^O=~/Win32/) {
- $plvar{PLLIBS}.=qq( -L"$plvar{PLBASE}/lib" -lpl);
+ # Library name will be either 'pl' or 'swipl'. Specify them
+ # both - EU::MM will make the appropriate modification.
+ $plvar{PLLIBS}.=qq( -L"$plvar{PLBASE}/lib" -lpl -lswipl);
$plvar{PLINC}=qq(-I"$plvar{PLBASE}/include");
- $plvar{PLEXE}=qq($plvar{PLBASE}/bin/libpl.dll);
+ $plvar{PLEXE}= -e "$plvar{PLBASE}/bin/libpl.dll" ? qq($plvar{PLBASE}/bin/libpl.dll)
+ : qq($plvar{PLBASE}/bin/swipl.dll);
$plvar{PLPATH}=qq($plvar{PLBASE}/bin);
}
else {