Compiling Ruby + Extensions under the 'Windows SDK'

I’ve been working through a build system with the aim of providing a
build system which can build ruby (and provide a build environment for
ruby inline) on win32, using the Windows SDK (the same compiler as vs
2005).

Ruby itself compiles ok:
http://pastie.caboo.se/64459

I built OpenSSL itself using their own perl script for configuration,
and then nmake. All tests passed 100%, as build with the Windows SDK.

I setup my path as expected, and try to run extconf.rb in ext/openssl,
and I get:

E:\dev\build_system\installer-win2\ruby\src\ruby-1.8.6\ext\openssl>nmake

Microsoft (R) Program Maintenance Utility Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.

   cl -nologo -I. -I. 

-IE:/dev/build_system/installer-win2/ruby/lib/ruby/1.8/i386-mswin32_80
-I. -MD -O2b2xty- -DRUBY_EXTCONF_H="extconf.h"
-IC:/some/openssl/dir/include -IC:/some/openssl/dir/
include -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -c
-Tcossl.c
ossl.c
C:/some/openssl/dir/include\openssl/ocsp.h(156) : error C2059: syntax
error : ‘type’
C:/some/openssl/dir/include\openssl/ocsp.h(193) : error C2059: syntax
error : ‘type’
C:/some/openssl/dir/include\openssl/ocsp.h(399) : error C2059: syntax
error : ‘type’
C:/some/openssl/dir/include\openssl/ocsp.h(408) : error C2143: syntax
error : missing ‘)’ before ‘(’
C:/some/openssl/dir/include\openssl/ocsp.h(408) : error C2143: syntax
error : missing ‘)’ before ‘(’
C:/some/openssl/dir/include\openssl/ocsp.h(408) : error C2091: function
returns function
C:/some/openssl/dir/include\openssl/ocsp.h(408) : error C2091: function
returns function
… a whole pile of similar stuff, all around OSCP_REQUEST …

http://pastie.caboo.se/64648

I’ve had a good look through the header file, and that seems fine.

I’ve also run it through the pre-processor first, and tried that output
(to verify that this is not in fact a syntax error):

C:/some/openssl/dir/include\openssl/ocsp.h(447) : error C2059: syntax
error : ‘type’
C:/some/openssl/dir/include\openssl/ocsp.h(1908) : error C2059: syntax
error : ‘type’
C:/some/openssl/dir/include\openssl/ocsp.h(1918) : error C2059: syntax
error : ‘type’
C:/some/openssl/dir/include\openssl/ocsp.h(1975) : error C2059: syntax
error : ‘type’
C:/some/openssl/dir/include\openssl/ocsp.h(1981) : error C2143: syntax
error : missing ‘)’ before ‘(’
C:/some/openssl/dir/include\openssl/ocsp.h(1981) : error C2143: syntax
error : missing ‘)’ before ‘(’
C:/some/openssl/dir/include\openssl/ocsp.h(1981) : error C2091: function
returns function

http://pastie.caboo.se/65001

And we had a look at where OCSP_REQUEST was coming from, and that it’s
defined ok:

http://pastie.caboo.se/64680

I and a few others are really not sure how to get this to work, so I’m
asking here and will also be seeking advice over at the openssl lists.

I’ve noticed that the builder for the One-Click Installer has a
pre-compiled .so, sadly, I’m on the wrong CRT version for that, as I
lack a copy of VS 6.

Thanks in advance for any help,

raggi.