blob: 4fb52df7fe17049883f903b1e6f099c486ca5b77 [file] [log] [blame]
Igor Sysoev0599b112004-07-25 18:34:14 +00001
Igor Sysoevff8da912004-09-29 16:00:49 +00002# Copyright (C) Igor Sysoev
Maxim Konovalovf8d59e32012-01-18 15:07:43 +00003# Copyright (C) Nginx, Inc.
Igor Sysoevff8da912004-09-29 16:00:49 +00004
5
Igor Sysoev0599b112004-07-25 18:34:14 +00006if [ $OPENSSL != NONE ]; then
Igor Sysoev0599b112004-07-25 18:34:14 +00007
8 case "$CC" in
Igor Sysoev60798fb2009-04-15 19:46:24 +00009
Igor Sysoev2d252982009-05-14 15:46:34 +000010 cl | bcc32)
Igor Sysoev60798fb2009-04-15 19:46:24 +000011 have=NGX_OPENSSL . auto/have
12 have=NGX_SSL . auto/have
13
Igor Sysoev2d252982009-05-14 15:46:34 +000014 CFLAGS="$CFLAGS -DNO_SYS_TYPES_H"
Igor Sysoev60798fb2009-04-15 19:46:24 +000015
Igor Sysoev2d252982009-05-14 15:46:34 +000016 CORE_INCS="$CORE_INCS $OPENSSL/openssl/include"
17 CORE_DEPS="$CORE_DEPS $OPENSSL/openssl/include/openssl/ssl.h"
Maxim Dounin114f0602016-12-24 18:01:14 +030018
19 if [ -f $OPENSSL/ms/do_ms.bat ]; then
20 # before OpenSSL 1.1.0
21 CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/ssleay32.lib"
22 CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libeay32.lib"
23 else
24 # OpenSSL 1.1.0+
25 CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libssl.lib"
26 CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libcrypto.lib"
27 fi
Igor Sysoev60798fb2009-04-15 19:46:24 +000028
Igor Sysoev890467c2009-04-21 14:31:40 +000029 # libeay32.lib requires gdi32.lib
30 CORE_LIBS="$CORE_LIBS gdi32.lib"
Igor Sysoev502252d2010-04-01 15:18:29 +000031 # OpenSSL 1.0.0 requires crypt32.lib
32 CORE_LIBS="$CORE_LIBS crypt32.lib"
Igor Sysoev60798fb2009-04-15 19:46:24 +000033 ;;
34
Igor Sysoev0599b112004-07-25 18:34:14 +000035 *)
36 have=NGX_OPENSSL . auto/have
Igor Sysoev0e5dc5c2005-11-15 13:30:52 +000037 have=NGX_SSL . auto/have
Igor Sysoev2d252982009-05-14 15:46:34 +000038
Igor Sysoev920c00d2009-09-28 12:24:09 +000039 CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
40 CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
41 CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
42 CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
Ruslan Ermilov9df3a0a2016-02-18 11:39:57 +030043 CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
Maxim Dounindad2f662018-03-22 15:55:57 +030044 CORE_LIBS="$CORE_LIBS $NGX_LIBPTHREAD"
Maxim Dounin48d96ce2013-09-04 20:48:28 +040045
46 if [ "$NGX_PLATFORM" = win32 ]; then
47 CORE_LIBS="$CORE_LIBS -lgdi32 -lcrypt32 -lws2_32"
48 fi
Igor Sysoev02025fd2005-01-18 13:03:58 +000049 ;;
50 esac
51
Igor Sysoev0599b112004-07-25 18:34:14 +000052else
53
Igor Sysoevdb0efa82010-07-08 15:51:47 +000054 if [ "$NGX_PLATFORM" != win32 ]; then
Igor Sysoev0599b112004-07-25 18:34:14 +000055
Igor Sysoevdb0efa82010-07-08 15:51:47 +000056 OPENSSL=NO
57
58 ngx_feature="OpenSSL library"
59 ngx_feature_name="NGX_OPENSSL"
60 ngx_feature_run=no
61 ngx_feature_incs="#include <openssl/ssl.h>"
62 ngx_feature_path=
Maxim Dounindad2f662018-03-22 15:55:57 +030063 ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL $NGX_LIBPTHREAD"
Maxim Dounincfeb5032016-03-31 23:38:33 +030064 ngx_feature_test="SSL_CTX_set_options(NULL, 0)"
Igor Sysoevdb0efa82010-07-08 15:51:47 +000065 . auto/feature
66
Ruslan Ermilov448658c2015-06-10 12:25:45 +030067 if [ $ngx_found = no ]; then
68
69 # FreeBSD port
70
71 ngx_feature="OpenSSL library in /usr/local/"
72 ngx_feature_path="/usr/local/include"
73
74 if [ $NGX_RPATH = YES ]; then
Maxim Dounindad2f662018-03-22 15:55:57 +030075 ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lssl -lcrypto"
Ruslan Ermilov448658c2015-06-10 12:25:45 +030076 else
Maxim Dounindad2f662018-03-22 15:55:57 +030077 ngx_feature_libs="-L/usr/local/lib -lssl -lcrypto"
Ruslan Ermilov448658c2015-06-10 12:25:45 +030078 fi
79
Maxim Dounindad2f662018-03-22 15:55:57 +030080 ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
81
Ruslan Ermilov448658c2015-06-10 12:25:45 +030082 . auto/feature
83 fi
84
85 if [ $ngx_found = no ]; then
86
87 # NetBSD port
88
89 ngx_feature="OpenSSL library in /usr/pkg/"
90 ngx_feature_path="/usr/pkg/include"
91
92 if [ $NGX_RPATH = YES ]; then
Maxim Dounindad2f662018-03-22 15:55:57 +030093 ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lssl -lcrypto"
Ruslan Ermilov448658c2015-06-10 12:25:45 +030094 else
Maxim Dounindad2f662018-03-22 15:55:57 +030095 ngx_feature_libs="-L/usr/pkg/lib -lssl -lcrypto"
Ruslan Ermilov448658c2015-06-10 12:25:45 +030096 fi
97
Maxim Dounindad2f662018-03-22 15:55:57 +030098 ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
99
Ruslan Ermilov448658c2015-06-10 12:25:45 +0300100 . auto/feature
101 fi
102
103 if [ $ngx_found = no ]; then
104
105 # MacPorts
106
107 ngx_feature="OpenSSL library in /opt/local/"
108 ngx_feature_path="/opt/local/include"
109
110 if [ $NGX_RPATH = YES ]; then
Maxim Dounindad2f662018-03-22 15:55:57 +0300111 ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lssl -lcrypto"
Ruslan Ermilov448658c2015-06-10 12:25:45 +0300112 else
Maxim Dounindad2f662018-03-22 15:55:57 +0300113 ngx_feature_libs="-L/opt/local/lib -lssl -lcrypto"
Ruslan Ermilov448658c2015-06-10 12:25:45 +0300114 fi
115
Maxim Dounindad2f662018-03-22 15:55:57 +0300116 ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
117
Ruslan Ermilov448658c2015-06-10 12:25:45 +0300118 . auto/feature
119 fi
120
Igor Sysoevdb0efa82010-07-08 15:51:47 +0000121 if [ $ngx_found = yes ]; then
Igor Sysoev0e5dc5c2005-11-15 13:30:52 +0000122 have=NGX_SSL . auto/have
Maxim Dounin7212b772015-11-23 22:48:31 +0300123 CORE_INCS="$CORE_INCS $ngx_feature_path"
Maxim Douninc52460c2016-02-04 18:30:21 +0300124 CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
Igor Sysoev0599b112004-07-25 18:34:14 +0000125 OPENSSL=YES
Igor Sysoev59bb78b2010-07-08 15:57:36 +0000126 fi
127 fi
128
129 if [ $OPENSSL != YES ]; then
Igor Sysoevda85fe62009-05-26 14:28:49 +0000130
131cat << END
132
133$0: error: SSL modules require the OpenSSL library.
134You can either do not enable the modules, or install the OpenSSL library
135into the system, or build the OpenSSL library statically from the source
136with nginx by using --with-openssl=<path> option.
137
138END
Igor Sysoev59bb78b2010-07-08 15:57:36 +0000139 exit 1
Igor Sysoevdb0efa82010-07-08 15:51:47 +0000140 fi
Igor Sysoev0599b112004-07-25 18:34:14 +0000141
142fi