1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
dnl Copyright 2001-2006 The Apache Software Foundation or its licensors, as
dnl applicable.
dnl Licensed under the Apache License, Version 2.0 (the "License");
dnl you may not use this file except in compliance with the License.
dnl You may obtain a copy of the License at
dnl
dnl http://www.apache.org/licenses/LICENSE-2.0
dnl
dnl Unless required by applicable law or agreed to in writing, software
dnl distributed under the License is distributed on an "AS IS" BASIS,
dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
dnl See the License for the specific language governing permissions and
dnl limitations under the License.
AC_DEFUN([CHECK_DISTCACHE], [
AC_MSG_CHECKING(whether Distcache is required)
ap_ssltk_dc="no"
tmp_nomessage=""
tmp_forced="no"
AC_ARG_ENABLE(distcache,
APACHE_HELP_STRING(--enable-distcache,Select distcache support in mod_ssl),
ap_ssltk_dc="$enableval"
tmp_nomessage=""
tmp_forced="yes"
if test "x$ap_ssltk_dc" = "x"; then
ap_ssltk_dc="yes"
dnl our "error"s become "tests revealed that..."
tmp_forced="no"
fi
if test "$ap_ssltk_dc" != "yes" -a "$ap_ssltk_dc" != "no"; then
tmp_nomessage="--enable-distcache had illegal syntax - disabling"
ap_ssltk_dc="no"
fi)
if test "$tmp_forced" = "no"; then
AC_MSG_RESULT($ap_ssltk_dc (default))
else
AC_MSG_RESULT($ap_ssltk_dc (specified))
fi
if test "$tmp_forced" = "yes" -a "x$ap_ssltk_dc" = "xno" -a "x$tmp_nomessage" != "x"; then
AC_MSG_ERROR(distcache support failed: $tmp_nomessage)
fi
if test "$ap_ssltk_dc" = "yes"; then
AC_CHECK_HEADER(
[distcache/dc_client.h],
[],
[tmp_nomessage="can't include distcache headers"
ap_ssltk_dc="no"])
if test "$tmp_forced" = "yes" -a "x$ap_ssltk_dc" = "xno"; then
AC_MSG_ERROR(distcache support failed: $tmp_nomessage)
fi
fi
if test "$ap_ssltk_dc" = "yes"; then
AC_MSG_CHECKING(for Distcache version)
AC_TRY_COMPILE(
[#include <distcache/dc_client.h>],
[#if DISTCACHE_CLIENT_API != 0x0001
#error "distcache API version is unrecognised"
#endif],
[],
[tmp_nomessage="distcache has an unsupported API version"
ap_ssltk_dc="no"])
AC_MSG_RESULT($ap_ssltk_dc)
if test "$tmp_forced" = "yes" -a "x$ap_ssltk_dc" = "xno"; then
AC_MSG_ERROR(distcache support failed: $tmp_nomessage)
fi
fi
if test "$ap_ssltk_dc" = "yes"; then
AC_MSG_CHECKING(for Distcache libraries)
save_libs=$LIBS
LIBS="$LIBS -ldistcache -lnal"
AC_TRY_LINK(
[#include <distcache/dc_client.h>],
[DC_CTX *foo = DC_CTX_new((const char *)0,0);],
[],
[tmp_no_message="failed to link with distcache libraries"
ap_ssltk_dc="no"])
LIBS=$save_libs
AC_MSG_RESULT($ap_ssltk_dc)
if test "$tmp_forced" = "yes" -a "x$ap_ssltk_dc" = "xno"; then
AC_MSG_ERROR(distcache support failed: $tmp_nomessage)
else
APR_ADDTO(MOD_SSL_LDADD, [-ldistcache -lnal])
AC_DEFINE(HAVE_DISTCACHE, 1, [Define if distcache support is enabled])
fi
fi
])
dnl # start of module specific part
APACHE_MODPATH_INIT(ssl)
dnl # list of module object files
ssl_objs="dnl
mod_ssl.lo dnl
ssl_engine_config.lo dnl
ssl_engine_dh.lo dnl
ssl_engine_init.lo dnl
ssl_engine_io.lo dnl
ssl_engine_kernel.lo dnl
ssl_engine_log.lo dnl
ssl_engine_mutex.lo dnl
ssl_engine_pphrase.lo dnl
ssl_engine_rand.lo dnl
ssl_engine_vars.lo dnl
ssl_expr.lo dnl
ssl_expr_eval.lo dnl
ssl_expr_parse.lo dnl
ssl_expr_scan.lo dnl
ssl_scache.lo dnl
ssl_scache_dbm.lo dnl
ssl_scache_shmcb.lo dnl
ssl_scache_dc.lo dnl
ssl_util.lo dnl
ssl_util_ssl.lo dnl
"
dnl # hook module into the Autoconf mechanism (--enable-ssl option)
APACHE_MODULE(ssl, [SSL/TLS support (mod_ssl)], $ssl_objs, , no, [
APACHE_CHECK_SSL_TOOLKIT
APR_SETVAR(MOD_SSL_LDADD, [\$(SSL_LIBS)])
CHECK_DISTCACHE
if test "x$enable_ssl" = "xshared"; then
# The only symbol which needs to be exported is the module
# structure, so ask libtool to hide everything else:
APR_ADDTO(MOD_SSL_LDADD, [-export-symbols-regex ssl_module])
fi
])
# Ensure that other modules can pick up mod_ssl.h
APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])
dnl # end of module specific part
APACHE_MODPATH_FINISH
|