2009/3/23 Igor Sysoev <is@rambler-co.ru>:
> On Mon, Mar 23, 2009 at 04:27:53PM +0100, J?r?me Loyet wrote:
>
>> 2009/3/23 Igor Sysoev <is@rambler-co.ru>:
>> > On Mon, Mar 23, 2009 at 04:06:32PM +0100, J?r?me Loyet wrote:
>> >
>> >> 2009/3/23 Igor Sysoev <is@rambler-co.ru>:
>> >> > On Mon, Mar 23, 2009 at 03:55:54PM +0100, J?r?me Loyet wrote:
>> >> >
>> >> >> 2009/3/23 Igor Sysoev <is@rambler-co.ru>:
>> >> >> > On Mon, Mar 23, 2009 at 03:41:51PM +0100, J?r?me Loyet wrote:
>> >> >> >
>> >> >> >> > I'm not using openssl and I don't have any md5.h file in my include
>> >> >> >> > path. /usr/include/md5.h is valid on BSD but not on Linux. I have to
>> >> >> >> > add the openssl library somehow in configure. I think there is a
>> >> >> >> > missing check in the configure script.
>> >> >> >> >
>> >> >> >> > The build is working correctly if I'm using
>> >> >> >> > --openssl-dir=/usr/local/openssl-0.9.6.
>> >> >> >>
>> >> >> >> Sorry I miss something: The build is working correctly if I'm using
>> >> >> >> --openssl-dir=/usr/local/openssl-0.9.6 AND --with-http_ssl_module
>> >> >> >> (only openssl-dir show that it founds the library but it doesn't use
>> >> >> >> it when compiling (no -I /usr/local/openssl-0.9.6/include))
>> >> >> >
>> >> >> > nginx's configure has no --openssl-dir= option.
>> >> >>
>> >> >> I meant --with-openssl= option. Sorry
>> >> >
>> >> > The --with-openssl= option should point to OpenSSL sources, but not
>> >> > to inlcudes and binary libraries.
>> >>
>> >> OK thx for the answer.
>> >
>> > As your OpenSSL is set in non-standard place (I have just tested building
>> > on Debian with standard /usr/include/openssl/md5.h), you should use
>> > something like this:
>> >
>> > --with-cc-opt=-I/usr/local/openssl-0.9.6/include
>>
>> it's not working because of the #ifdef in md5.h:
>>
>> #if (NGX_HAVE_OPENSSL_MD5_H)
>> #include <openssl/md5.h>
>> #else
>> #include <md5.h>
>> #endif
>>
>> Has NGX_HAVE_OPENSSL_MD5_H is not defined, it looks for md5.h instead
>> of openssl/md5.h. And if I use
>> --with-cc-opt=-I/usr/local/openssl-0.9.6/include/openssl it won't work
>> because the function name are from OpenSSL lib and not from BSD kernel
>> (MD5_Init vs MD5Init).
>>
>> I have to make configure to set NGX_HAVE_OPENSSL_MD5_H ... do you have
>> any clue ? I'm still searching
>
> - --with-cc-opt=-I/usr/local/openssl-0.9.6/include/openssl
> + --with-cc-opt=-I/usr/local/openssl-0.9.6/include
Here are configuration options:
./configure --with-http_addition_module --with-http_flv_module
--with-http_gzip_static_module --with-http_realip_module
--with-http_stub_status_module --with-http_sub_module
--with-cc-opt=-I/usr/local/openssl-0.9.6/include
And a part of the output:
[...]
checking for rsaref md5 library ... not found
checking for rsaref md library ... not found
checking for OpenSSL md5 crypto library ... not found
[...]
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ md5 library is not found
+ sha1 library is not used
+ using system zlib library
as OpenSSL md5 crypto library is not found, NGX_HAVE_OPENSSL_MD5_H is
not defined by configure. So ngx_md5.h will try to include <md5.h> and
not <openssl/md5.h>
#if (NGX_HAVE_OPENSSL_MD5_H)
#include <openssl/md5.h>
#else
#include <md5.h>
#endif
And make stops at compilation time when including ngx_md5.h from
ngx_http_file_cache.c
How to tell to configure script to lookup in /usr/local/openssl-0.9.6
for headers and lib from openssl ?