Hi all
 
I have a problem with the compilation of Apache 1.3.4 with mod-ssl over
Windows NT. I am using Cygnus as the Unix interface and compiling using
VC++. I have been following the instructions as described in the modssl
documentation and am now trying to nmake (a VC++ command) Apache with the
makefile generated for NT. Everything goes fine until I get a linker error,
and I can't seem to figure it out. I am sending the list of instructions I
followed along with an attachment of the output that I obtained with the
nmake command. Any help would be greatly appreciated.
 
Kavita
 
 
1. Make sure CygWin, Perl and the Visual Studio tools are already installed
and available through the commands `gzip', `tar', `perl', `nmake', `cl',
`link', etc. They are needed for configuring SSLeay and mod_ssl and for
building the packages. Additionally a text editor should be available.
We assume `vim' (Vi Improved), but you can use any preferred text editor.
 
NOTE: vim doesn't work under cygwin. 
 
2. Extract the required packages
 
$ gzip -d -c apache_1.3.x.tar.gz | tar xvf - 
$ gzip -d -c mod_ssl-2.1.x-1.3.x.tar.gz | tar xvf - 
$ gzip -d -c SSLeay-0.9.x.tar.gz | tar xvf - 
 
3. Configure and build the SSLeay library. This is a little bit
more complicated than under Unix, because you have to additionally
patch some source files. So be patient while hacking ;-)
o Enter the SSLeay source tree
 
$ cd SSLeay-0.9.0b
 
o Modify $INSTALLTOP in util\mk1mf.pl to fit your preference (e.g.
p:\ssleay)
 
$ vim util\mk1mf.pl
<< $INSTALLTOP="/usr/local/ssl";
>> $INSTALLTOP="p:\ssleay";
 
NOTE: Instead of p:, specify the path where SSLeay has been extracted.
 
o Edit file crypto\bn\bn_mulw.c by changing line 174:
 
$ vim crypto\bn\bn_mulw.c
<< return(ll&BN_MASK2);
>> return(BN_ULONG)(ll&BN_MASK2);
 
o Edit file crypto\des\des.h as following:
 
$ vim include\des.h
<< char *crypt();
>> #ifndef MOD_SSL
>> char *crypt();
>> #endif
 
o Create the all-in-one SSLeay Makefile for building under Win32:
 
$ perl util\mk1mf.pl no-asm dll VC-WIN32 > makefile.win32
 
Note: When you've the Microsoft Assembler (`ml') installed on your
platform you can leave out the `no-asm' option, of course.
 
Trick: Even if you don't the have Microsoft Assembler you still
can make use of the optimized assembler version of the code.
SSLeay distribution comes with some precompiled .asm files. If
you want to use them, create an empty `ml.bat' file and put it
in your %PATH% and leave out the `no-asm'
flag above.
 
o Build the SSLeay package
 
$ nmake /f makefile.win32
 
o Install SSLeay into $INSTALLTOP. You have do this by hand:
(replace p:\ssleay with the path you set $INSTALLTOP to)
 
$ md p:\ssleay 
$ md p:\ssleay\bin
$ md p:\ssleay\lib
$ md p:\ssleay\include
$ copy /b inc32\* p:\ssleay\include
$ copy /b out32dll\ssleay32.lib p:\ssleay\lib
$ copy /b out32dll\libeay32.lib p:\ssleay\lib
$ copy /b out32dll\ssleay32.dll p:\ssleay\bin
$ copy /b out32dll\libeay32.dll p:\ssleay\bin
$ copy /b out32dll\ssleay.exe p:\ssleay\bin
 
NOTE: Again, specify the path instead of p:
 
o Leave the SSLeay source tree
 
$ cd ..
 
o Now put $INSTALLTOP\bin into your %PATH%
(needed because of the DLLs!)
 
SO FAR SO GOOD!!
 
4. Now apply the mod_ssl source extension and source patches to 
the Apache source tree.
 
$ cd mod_ssl-2.1.x-1.3.x
 
$ configure.bat \
--with-apache=..\apache_1.3.x \
--with-ssleay=p:\ssleay
 
$ cd ..
 
5. Build and install the SSL-aware Apache:
 
$ cd apache_1.3.x\src
$ nmake /f Makefile.nt
 
NOTE: This is where I had a significant number of warnings with unmatched
operators. I don't know if that is going to make a difference. E.g.
conversion from double to float- possible loss of data. Signed- unsigned
mismatch.
 
NOTE: While compiling, it couldn't find "ssl.h". This was an include
statement in c:\Program Files\Apache
Group\apache_1.3.4\src\modules\mod_ssl.h on line 81. I just looked for the
include statement (line 81 onwards) and explicitly included the file with
the entire path name such as
 
#include "c:\\progra~1\\apache~1\\ssleay~1.0B\\include\\ssl.h"
The other files under the SSLeay header files were also specified with
absolute paths.
 
The compilation proceeds until the ApacheModuleSSL.dll is being made. I get
an error which says that it can't open the library file when in fact the
file that it is looking for is actually present, i.e.
"..\ssleay~1.0b\lib\ssleay32.lib"
 
The path however is not specified correctly as the file is in "c:\program
files\apache group\ssleay-0.9.0b\lib\ssleay32.lib"
 
$ nmake /f Makefile.nt installr
 
 
Help on the above would be greatly appreciated.
 
 
 
Kavita Chowdhri 
Xerox Corporation 
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> 
Off 310-333-8190 
Res 323-766-9339 
 

Output2.out

Makefile.nt

Reply via email to