1.a. Has anyone successfully built the Borland C++Builder DLL version of
0.9.6b? I attempted an interpolation / extension of the "BCB4.BAT" file into
this (BCB4B.bat):
        perl Configure BC-32
        perl util\mkfiles.pl > MINFO

        @rem create make file
        perl util\mk1mf.pl no-asm BC-NT > bcb.mk
        perl util\mk1mf.pl no-asm dll BC-NT > bcbdll.mk
This was better than trying to port bcb.mak to bcbdll.mak, but there were a
lot of problems, such as MS libraries and linker options, wrong linker
syntax, wrong or missing BCB runtime object (c0d32.obj) , etc. I used:
        $(O_SSL): $(SSLOBJ)
                $(LINK) $(MLFLAGS) $(SHLIB_EX_OBJ) @&&| $(SSLOBJ)
        |, $(O_SSL), , $(EX_LIBS) $(L_CRYPTO), ms\SSLEAY32.def,

        $(O_CRYPTO): $(CRYPTOOBJ)
                $(LINK) $(MLFLAGS) $(SHLIB_EX_OBJ) @&&| $(CRYPTOOBJ)
        |, $(O_CRYPTO), , $(EX_LIBS), ms\LIBEAY32.def,
The one I've yet to fathom is why the symbols aren't being exported in BCB
as they are in VC.

1.b. This should be added to you change request list: The functions that are
being exported should be __export and "#define" keyworded in the source /
headers, so that the EXPORTS section of the .DEF files aren't necessary.

2. Add this to your request for change list: When building Borland versions
of the static and dynamic libraries alongside VC versions, not only do the
folder names collide (out32,out32dll,inc32), as noted by comments from other
OpenSSL builders, but in the dynamic versions specifically, the output DLL
filenames themselves conflict (libeay32.dll). This is an insurmountable
problem for systems running OpenSSL dynamically-linked apps from both
compilers, most typically and commonly a VC back end and a BCB front end.

There are no compiler- or link-type- specific folder / filename specifiers
in the makefiles, e.g. -        libeay.lib, libeay.dll  VC dynamic
        libeayS.lib             VC static
        libeayB.lib, libeayB.dll        BCB dynamic
        libeayBS.lib            BCB static
Also beware that some commands used in the makefiles on Win32 platforms
don't like non-8.3 filenames or folder names.

3. Also, the inc32 folder has a different opensslconf.h, line 108 between VC
and BCB, also requiring duplicate folders. That portion should be
#define'ed.
        line 107:       #ifndef DES_PTR
        line 108:
                        VC:     #undef DES_PTR
                BCB:    #define DES_PTR
        line 109:       #endif
In the larger context, one could do this:
BCB:
                #ifndef DES_PTR
        add:    #ifdef __BORLANDC__
                #define DES_PTR
        add:    #endif
                #endif
VC (this does nothing, anyway, so get rid of the entire #ifndef/#endif):
        delete: #ifndef DES_PTR
        delete: #undef DES_PTR
        delete: #endif



These things are not easily accomplished, but I thought I might let you know
about them.

Jason Loefer
TGA Technologies, Inc.
[EMAIL PROTECTED]
770-662-5585x123

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to