Import perlasm files directly from openssl using git submodule
[gnutls:gnutls.git] / m4 / hooks.m4
1 # Copyright (C) 2000-2012 Free Software Foundation, Inc.
2 #
3 # Author: Nikos Mavrogiannopoulos, Simon Josefsson
4 #
5 # This file is part of GnuTLS.
6 #
7 # The GnuTLS is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU Lesser General Public License
9 # as published by the Free Software Foundation; either version 2.1 of
10 # the License, or (at your option) any later version.
11 #
12 # The GnuTLS is distributed in the hope that it will be
13 # useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 # Lesser General Public License for more details.
16 #
17 # You should have received a copy of the GNU Lesser General Public
18 # License along with GnuTLS; if not, write to the Free
19 # Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20 # MA 02110-1301, USA
21
22 AC_DEFUN([LIBGNUTLS_EXTRA_HOOKS],
23 [
24   AC_MSG_CHECKING([whether to build OpenSSL compatibility layer])
25   AC_ARG_ENABLE(openssl-compatibility,
26     AS_HELP_STRING([--disable-openssl-compatibility],
27                    [disable the OpenSSL compatibility support]),
28     enable_openssl=$enableval, enable_openssl=yes)
29   AC_MSG_RESULT($enable_openssl)
30   AM_CONDITIONAL(ENABLE_OPENSSL, test "$enable_openssl" = "yes")
31
32   # We link to ../lib's gnulib, which needs -lws2_32 via LIBSOCKET in Makefile.am.
33   gl_SOCKETS
34 ])
35
36 AC_DEFUN([LIBGNUTLS_HOOKS],
37 [
38   # Library code modified:                              REVISION++
39   # Interfaces changed/added/removed:   CURRENT++       REVISION=0
40   # Interfaces added:                             AGE++
41   # Interfaces removed:                           AGE=0
42   AC_SUBST(LT_CURRENT, 55)
43   AC_SUBST(LT_REVISION, 0)
44   AC_SUBST(LT_AGE, 27)
45
46   AC_SUBST(LT_SSL_CURRENT, 27)
47   AC_SUBST(LT_SSL_REVISION, 2)
48   AC_SUBST(LT_SSL_AGE, 0)
49
50   AC_SUBST(LT_DANE_CURRENT, 4)
51   AC_SUBST(LT_DANE_REVISION, 1)
52   AC_SUBST(LT_DANE_AGE, 4)
53
54   AC_SUBST(LT_XSSL_CURRENT, 0)
55   AC_SUBST(LT_XSSL_REVISION, 0)
56   AC_SUBST(LT_XSSL_AGE, 0)
57
58   AC_SUBST(CXX_LT_CURRENT, 29)
59   AC_SUBST(CXX_LT_REVISION, 0)
60   AC_SUBST(CXX_LT_AGE, 1)
61
62   AC_SUBST(CRYWRAP_PATCHLEVEL, 3)
63
64   # Used when creating the Windows libgnutls-XX.def files.
65   DLL_VERSION=`expr ${LT_CURRENT} - ${LT_AGE}`
66   AC_SUBST(DLL_VERSION)
67
68   PKG_CHECK_MODULES(NETTLE, [nettle >= 2.7], [cryptolib="nettle"], [
69 AC_MSG_ERROR([[
70   *** 
71   *** Libnettle 2.7 was not found. 
72 ]])
73   ])
74   PKG_CHECK_MODULES(HOGWEED, [hogweed >= 2.7], [], [
75 AC_MSG_ERROR([[
76   *** 
77   *** Libhogweed (nettle's companion library) was not found. Note that you must compile nettle with gmp support.
78 ]])
79   ])
80   AM_CONDITIONAL(ENABLE_NETTLE, test "$cryptolib" = "nettle")
81   AC_DEFINE([HAVE_LIBNETTLE], 1, [nettle is enabled])
82
83   GNUTLS_REQUIRES_PRIVATE="Requires.private: nettle, hogweed"
84
85   AC_ARG_VAR(GMP_CFLAGS, [C compiler flags for gmp])
86   AC_ARG_VAR(GMP_LIBS, [linker flags for gmp])
87   if test x$GMP_LIBS = x; then
88         AC_CHECK_LIB(gmp, __gmpz_cmp, [GMP_LIBS="-lgmp"], [AC_MSG_ERROR([[
89 ***
90 *** gmp was not found.
91 ]])])
92   fi
93   AC_SUBST(GMP_CFLAGS)
94   AC_SUBST(GMP_LIBS)
95
96   AC_ARG_WITH(included-libtasn1,
97     AS_HELP_STRING([--with-included-libtasn1], [use the included libtasn1]),
98       included_libtasn1=$withval,
99       included_libtasn1=no)
100   if test "$included_libtasn1" = "no"; then
101     PKG_CHECK_MODULES(LIBTASN1, [libtasn1 >= 3.4], [], [included_libtasn1=yes])
102     if test "$included_libtasn1" = yes; then
103       AC_MSG_WARN([[
104   *** 
105   *** Libtasn1 was not found. Will use the included one.
106   ]])
107     fi
108   fi
109   AC_MSG_CHECKING([whether to use the included minitasn1])
110   AC_MSG_RESULT($included_libtasn1)
111   AM_CONDITIONAL(ENABLE_MINITASN1, test "$included_libtasn1" = "yes")
112
113   if test "$included_libtasn1" = "no"; then
114     GNUTLS_REQUIRES_PRIVATE="${GNUTLS_REQUIRES_PRIVATE}, libtasn1"
115   fi
116
117   AC_MSG_CHECKING([whether C99 macros are supported])
118   AC_TRY_COMPILE(,
119   [
120     #define test_mac(...) 
121     int z,y,x;
122     test_mac(x,y,z);
123     return 0;
124   ], [
125     AC_DEFINE([C99_MACROS], 1, [C99 macros are supported])
126     AC_MSG_RESULT(yes)
127   ], [
128     AC_MSG_RESULT(no)
129     AC_MSG_WARN([C99 macros not supported. This may affect compiling.])
130   ])
131
132   ac_enable_srtp=yes
133   AC_MSG_CHECKING([whether to disable DTLS-SRTP extension])
134   AC_ARG_ENABLE(dtls-srtp-support,
135     AS_HELP_STRING([--disable-dtls-srtp-support],
136                    [disable support for the DTLS-SRTP extension]),
137     ac_enable_srtp=no)
138   if test x$ac_enable_srtp != xno; then
139    AC_MSG_RESULT(no)
140    AC_DEFINE([ENABLE_DTLS_SRTP], 1, [enable DTLS-SRTP support])
141   else
142    ac_full=0
143    AC_MSG_RESULT(yes)
144   fi
145   AM_CONDITIONAL(ENABLE_DTLS_SRTP, test "$ac_enable_srtp" != "no")
146
147   AC_MSG_CHECKING([whether to disable ALPN extension])
148   AC_ARG_ENABLE(dtls-alpn-support,
149     AS_HELP_STRING([--disable-dtls-alpn-support],
150                    [disable support for the Application Layer Protocol Negotiation (ALPN) extension]),
151     ac_enable_alpn=$enableval,ac_enable_alpn=yes)
152   if test x$ac_enable_alpn != xno; then
153    AC_MSG_RESULT(no)
154    AC_DEFINE([ENABLE_ALPN], 1, [enable ALPN support])
155   else
156    ac_full=0
157    AC_MSG_RESULT(yes)
158   fi
159   AM_CONDITIONAL(ENABLE_ALPN, test "$ac_enable_alpn" != "no")
160
161   ac_enable_heartbeat=yes
162   AC_MSG_CHECKING([whether to disable TLS heartbeat support])
163   AC_ARG_ENABLE(heartbeat-support,
164     AS_HELP_STRING([--disable-heartbeat-support],
165                    [disable support for the heartbeat extension]),
166     ac_enable_heartbeat=$enableval,ac_enable_heartbeat=yes)
167   if test x$ac_enable_heartbeat != xno; then
168    AC_MSG_RESULT(yes)
169    AC_DEFINE([ENABLE_HEARTBEAT], 1, [enable heartbeat support])
170   else
171    AC_MSG_RESULT(no)
172   fi
173   AM_CONDITIONAL(ENABLE_HEARTBEAT, test "$ac_enable_heartbeat" != "no")
174
175   ac_enable_srp=yes
176   AC_MSG_CHECKING([whether to disable SRP authentication support])
177   AC_ARG_ENABLE(srp-authentication,
178     AS_HELP_STRING([--disable-srp-authentication],
179                    [disable the SRP authentication support]),
180     ac_enable_srp=no)
181   if test x$ac_enable_srp != xno; then
182    AC_MSG_RESULT(no)
183    AC_DEFINE([ENABLE_SRP], 1, [enable SRP authentication])
184   else
185    ac_full=0
186    AC_MSG_RESULT(yes)
187   fi
188   AM_CONDITIONAL(ENABLE_SRP, test "$ac_enable_srp" != "no")
189   
190   ac_enable_psk=yes
191   AC_MSG_CHECKING([whether to disable PSK authentication support])
192   AC_ARG_ENABLE(psk-authentication,
193     AS_HELP_STRING([--disable-psk-authentication],
194                    [disable the PSK authentication support]),
195     ac_enable_psk=no)
196   if test x$ac_enable_psk != xno; then
197    AC_MSG_RESULT(no)
198    AC_DEFINE([ENABLE_PSK], 1, [enable PSK authentication])
199   else
200    ac_full=0
201    AC_MSG_RESULT(yes)
202   fi
203   AM_CONDITIONAL(ENABLE_PSK, test "$ac_enable_psk" != "no")
204   
205   ac_enable_anon=yes
206   AC_MSG_CHECKING([whether to disable anonymous authentication support])
207   AC_ARG_ENABLE(anon-authentication,
208     AS_HELP_STRING([--disable-anon-authentication],
209                    [disable the anonymous authentication support]),
210     ac_enable_anon=no)
211   if test x$ac_enable_anon != xno; then
212    AC_MSG_RESULT(no)
213    AC_DEFINE([ENABLE_ANON], 1, [enable anonymous authentication])
214   else
215    ac_full=0
216    AC_MSG_RESULT(yes)
217   fi
218   AM_CONDITIONAL(ENABLE_ANON, test "$ac_enable_anon" != "no")
219
220   AC_MSG_CHECKING([whether to disable DHE support])
221   AC_ARG_ENABLE(dhe,
222     AS_HELP_STRING([--disable-dhe],
223                    [disable the DHE support]),
224     ac_enable_dhe=$enableval, ac_enable_dhe=yes)
225   if test x$ac_enable_dhe != xno; then
226    AC_MSG_RESULT(no)
227    AC_DEFINE([ENABLE_DHE], 1, [enable DHE])
228   else
229    ac_full=0
230    AC_MSG_RESULT(yes)
231   fi
232   AM_CONDITIONAL(ENABLE_DHE, test "$ac_enable_dhe" != "no")
233
234   AC_MSG_CHECKING([whether to disable ECDHE support])
235   AC_ARG_ENABLE(ecdhe,
236     AS_HELP_STRING([--disable-ecdhe],
237                    [disable the ECDHE support]),
238     ac_enable_ecdhe=$enableval, ac_enable_ecdhe=yes)
239   if test x$ac_enable_ecdhe != xno; then
240    AC_MSG_RESULT(no)
241    AC_DEFINE([ENABLE_ECDHE], 1, [enable DHE])
242   else
243    ac_full=0
244    AC_MSG_RESULT(yes)
245   fi
246   AM_CONDITIONAL(ENABLE_ECDHE, test "$ac_enable_ecdhe" != "no")
247
248   AC_MSG_CHECKING([whether to disable RSA-EXPORT support])
249   AC_ARG_ENABLE(rsa-export,
250     AS_HELP_STRING([--disable-rsa-export],
251                    [disable the RSA-EXPORT support]),
252     ac_enable_rsa_export=$enableval, ac_enable_rsa_export=yes)
253   if test x$ac_enable_rsa_export != xno; then
254    AC_MSG_RESULT(no)
255    AC_DEFINE([ENABLE_RSA_EXPORT], 1, [enable RSA-EXPORT])
256   else
257    ac_full=0
258    AC_MSG_RESULT(yes)
259   fi
260   AM_CONDITIONAL(ENABLE_RSA_EXPORT, test "$ac_enable_rsa_export" != "no")
261
262   ac_enable_openpgp=yes
263   AC_MSG_CHECKING([whether to disable OpenPGP Certificate authentication support])
264   AC_ARG_ENABLE(openpgp-authentication,
265     AS_HELP_STRING([--disable-openpgp-authentication],
266                    [disable the OpenPGP authentication support]),
267     ac_enable_openpgp=no)
268   if test x$ac_enable_openpgp = xno; then
269    AC_MSG_RESULT(yes)
270    ac_full=0
271   else
272    AC_DEFINE([ENABLE_OPENPGP], 1, [use openpgp authentication])
273    AC_MSG_RESULT(no)
274   fi
275   AM_CONDITIONAL(ENABLE_OPENPGP, test "$ac_enable_openpgp" = "yes")
276
277   # For cryptodev
278   AC_MSG_CHECKING([whether to add cryptodev support])
279   AC_ARG_ENABLE(cryptodev,
280     AS_HELP_STRING([--enable-cryptodev], [enable cryptodev support]),
281   enable_cryptodev=yes,enable_cryptodev=no)
282   AC_MSG_RESULT($enable_cryptodev)
283
284   if test "$enable_cryptodev" = "yes"; then
285     AC_DEFINE([ENABLE_CRYPTODEV], 1, [Enable cryptodev support])
286   fi
287
288   AC_MSG_CHECKING([whether to disable OCSP support])
289   AC_ARG_ENABLE(ocsp,
290     AS_HELP_STRING([--disable-ocsp],
291                    [disable OCSP support]),
292     ac_enable_ocsp=no)
293   if test x$ac_enable_ocsp != xno; then
294    ac_enable_ocsp=yes
295    AC_MSG_RESULT(no)
296    AC_DEFINE([ENABLE_OCSP], 1, [enable OCSP support])
297   else
298    ac_full=0
299    AC_MSG_RESULT(yes)
300   fi
301   AM_CONDITIONAL(ENABLE_OCSP, test "$ac_enable_ocsp" != "no")
302
303   # For storing integers in pointers without warnings
304   # http://developer.gnome.org/doc/API/2.0/glib/glib-Type-Conversion-Macros.html#desc
305   AC_CHECK_SIZEOF(void *)
306   AC_CHECK_SIZEOF(long long)
307   AC_CHECK_SIZEOF(long)
308   AC_CHECK_SIZEOF(int)
309   if test x$ac_cv_sizeof_void_p = x$ac_cv_sizeof_long;then
310       AC_DEFINE([GNUTLS_POINTER_TO_INT_CAST], [(long)],
311                 [Additional cast to bring void* to a type castable to int.])
312   elif test x$ac_cv_sizeof_void_p = x$ac_cv_sizeof_long_long;then
313       AC_DEFINE([GNUTLS_POINTER_TO_INT_CAST], [(long long)],
314                 [Additional cast to bring void* to a type castable to int.])
315    else
316       AC_DEFINE([GNUTLS_POINTER_TO_INT_CAST], [])
317    fi
318
319 dnl this is called from somewhere else
320 dnl #AM_ICONV
321 dnl m4_ifdef([gl_ICONV_MODULE_INDICATOR],
322 dnl  [gl_ICONV_MODULE_INDICATOR([iconv])])
323 ])