Hello List,
I recently took over maintenance of Crypt-SSLeay. Today I downloaded
Strawberry Perl to see whether it could build the module or not. Turns
out there are a couple of problems, and I need some advice.
Firstly, The binary distribution of openssl for Windows has three
subdirectories under \openssl\lib, corresponding to the compilers
Builder5, MinGW and VC.
I assume I want MinGW. In the Makefile.PL, what is the orthodox way to
determine whether I'm running under Strawberry Perl from within a Perl
script (e.g. Makefile.PL)? I had a look through config_sh, but nothing
leaps out at me. The idea to be that under SP, I'll look for libraries
in c:\openssl\lib\mingw.
In the meantime, since Makefile.PL expects the files to be in
c:\openssl\lib, I copied the files in .\mingw into it:
28/09/2006 15:41 2 243 006 libeay32.a
28/09/2006 15:40 183 911 libeay32.def
28/09/2006 15:41 159 188 ssleay32.a
28/09/2006 15:41 13 198 ssleay32.def
When I run Makefile.PL, I get
CPAN.pm: Going to build D/DL/DLAND/Crypt-SSLeay-0.53.tar.gz
Set up gcc environment - 3.4.5 (mingw special)
Skipping testcover target, ExtUtils::MakeMaker::Coverage not found
Found OpenSSL (version OpenSSL 0.9.8) installed at c:/openssl
Which OpenSSL build path do you want to link against? [c:/openssl]
================================================
BUILD INFORMATION
================================================
ssl dir: c:\openssl
libraries: -lssleay32 -llibeay32 -lRSAglue -lrsaref
include dir: c:\openssl\include -Ic:\openssl\inc32
ssl header: openssl/ssl.h
ssl candidate: c:/openssl; c:/openssl/include/openssl; OpenSSL 0.9.8
================================================
WARNING: LICENSE is not a known parameter.
Checking if your kit is complete...
Looks good
'LICENSE' is not a known MakeMaker parameter name.
Note (probably harmless): No library found for -lssleay32
Note (probably harmless): No library found for -llibeay32
Note (probably harmless): No library found for -lRSAglue
Note (probably harmless): No library found for -lrsaref
Note (probably harmless): No library found for -lkernel32
Note (probably harmless): No library found for -luser32
Note (probably harmless): No library found for -lgdi32
Note (probably harmless): No library found for -lwinspool
Note (probably harmless): No library found for -lcomdlg32
Note (probably harmless): No library found for -ladvapi32
Note (probably harmless): No library found for -lshell32
Note (probably harmless): No library found for -lole32
Note (probably harmless): No library found for -loleaut32
Note (probably harmless): No library found for -lnetapi32
Note (probably harmless): No library found for -luuid
Note (probably harmless): No library found for -lws2_32
Note (probably harmless): No library found for -lmpr
Note (probably harmless): No library found for -lwinmm
Note (probably harmless): No library found for -lversion
Note (probably harmless): No library found for -lodbc32
Note (probably harmless): No library found for -lodbccp32
Note (probably harmless): No library found for -lmsvcrt
Writing Makefile for Crypt::SSLeay
I do not, as yet, understand how it build this list, but in any event
I'm puzzled by how many there are. And also why it fails to find
-lssleay32. I'm wondering if file extensions are at fault.
The XS code compiles with no errors or warnings (yay!) but it fails to link:
gcc -o blib\arch\auto\Crypt\SSLeay\SSLeay.dll -Wl,--base-file
-Wl,dll.base -mdll -L"C:\Perl\lib\CORE" SSLeay.o
-Wl,--image-base,0x322a0000 C:\Perl\lib\CORE\perl58.lib -lkernel32
-luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32
-loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32
-lodbccp32 -lmsvcrt dll.exp
SSLeay.o:SSLeay.c:(.text+0x57): undefined reference to
`SSL_alert_desc_string_long'
Mainly because it has appears to attempt to link against the AS Perl
that is also installed on the machine. And in any event, I don't see the
ssleay32.a library referenced in the build of libraries.
Any tips on things that look dodgy in the Makefile.PL would be
gratefully received.
http://search.cpan.org/src/DLAND/Crypt-SSLeay-0.53/Makefile.PL
Thanks,
David