documented fix
[gnutls.git] / m4 / hooks.m4
blob6c9f81497fb377ee4694c5a21d9dcf3157f60e90
1 # Copyright (C) 2000-2012 Free Software Foundation, Inc.
3 # Author: Nikos Mavrogiannopoulos, Simon Josefsson
5 # This file is part of GnuTLS.
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.
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.
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
22 AC_DEFUN([LIBGNUTLS_EXTRA_HOOKS],
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")
32   # We link to ../lib's gnulib, which needs -lws2_32 via LIBSOCKET in Makefile.am.
33   gl_SOCKETS
36 AC_DEFUN([LIBGNUTLS_HOOKS],
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, 40)
43   AC_SUBST(LT_REVISION, 0)
44   AC_SUBST(LT_AGE, 12)
46   AC_SUBST(LT_SSL_CURRENT, 27)
47   AC_SUBST(LT_SSL_REVISION, 2)
48   AC_SUBST(LT_SSL_AGE, 0)
50   AC_SUBST(CXX_LT_CURRENT, 29)
51   AC_SUBST(CXX_LT_REVISION, 0)
52   AC_SUBST(CXX_LT_AGE, 1)
54   AC_SUBST(CRYWRAP_PATCHLEVEL, 3)
56   # Used when creating the Windows libgnutls-XX.def files.
57   DLL_VERSION=`expr ${LT_CURRENT} - ${LT_AGE}`
58   AC_SUBST(DLL_VERSION)
60   cryptolib="nettle"
62 dnl  AC_ARG_WITH(libgcrypt,
63 dnl    AS_HELP_STRING([--with-libgcrypt], [use libgcrypt as crypto library]),
64 dnl      libgcrypt=$withval,
65 dnl      libgcrypt=no)
66 dnl    if test "$libgcrypt" = "yes"; then
67 dnl        cryptolib=libgcrypt
68 dnl        AC_DEFINE([HAVE_GCRYPT], 1, [whether the gcrypt library is in use])
69 dnl     AC_LIB_HAVE_LINKFLAGS([gcrypt], [gpg-error], [#include <gcrypt.h>],
70 dnl                      [enum gcry_cipher_algos i = GCRY_CIPHER_CAMELLIA128])
71 dnl      if test "$ac_cv_libgcrypt" != yes; then
72 dnl        AC_MSG_ERROR([[
73 dnl***  
74 dnl*** Libgcrypt v1.4.0 or later was not found. You may want to get it from
75 dnl*** ftp://ftp.gnupg.org/gcrypt/libgcrypt/
76 dnl***
77 dnl    ]])
78 dnl      fi
79 dnl    fi
81   AC_MSG_CHECKING([whether to use nettle])
82 if test "$cryptolib" = "nettle";then
83   AC_MSG_RESULT(yes)
84     AC_LIB_HAVE_LINKFLAGS([nettle], [hogweed gmp], [#include <nettle/rsa.h>],
85                           [rsa_decrypt_tr (0,0,0,0,0,0,0)])
86     if test "$ac_cv_libnettle" != yes; then
87       AC_MSG_ERROR([[
88   *** 
89   *** Libnettle 2.5 was not found. Note that you must compile nettle with gmp support.
90   ]])
91     fi
92 else
93   AC_MSG_RESULT(no)
95   AM_CONDITIONAL(ENABLE_NETTLE, test "$cryptolib" = "nettle")
97   AC_ARG_WITH(included-libtasn1,
98     AS_HELP_STRING([--with-included-libtasn1], [use the included libtasn1]),
99       included_libtasn1=$withval,
100       included_libtasn1=no)
101   if test "$included_libtasn1" = "no"; then
102     PKG_CHECK_MODULES(LIBTASN1, [libtasn1 >= 2.14], [], [included_libtasn1=yes])
103     if test "$included_libtasn1" = yes; then
104       AC_MSG_WARN([[
105   *** 
106   *** Libtasn1 was not found. Will use the included one.
107   ]])
108     fi
109   fi
110   AC_MSG_CHECKING([whether to use the included minitasn1])
111   AC_MSG_RESULT($included_libtasn1)
112   AM_CONDITIONAL(ENABLE_MINITASN1, test "$included_libtasn1" = "yes")
114   if test "$included_libtasn1" = "no"; then
115     GNUTLS_REQUIRES_PRIVATE="Requires.private: libtasn1"
116   fi
118   AC_MSG_CHECKING([whether C99 macros are supported])
119   AC_TRY_COMPILE(,
120   [
121     #define test_mac(...) 
122     int z,y,x;
123     test_mac(x,y,z);
124     return 0;
125   ], [
126     AC_DEFINE([C99_MACROS], 1, [C99 macros are supported])
127     AC_MSG_RESULT(yes)
128   ], [
129     AC_MSG_RESULT(no)
130     AC_MSG_WARN([C99 macros not supported. This may affect compiling.])
131   ])
133   ac_enable_srp=yes
134   AC_MSG_CHECKING([whether to disable SRP authentication support])
135   AC_ARG_ENABLE(srp-authentication,
136     AS_HELP_STRING([--disable-srp-authentication],
137                    [disable the SRP authentication support]),
138     ac_enable_srp=no)
139   if test x$ac_enable_srp != xno; then
140    AC_MSG_RESULT(no)
141    AC_DEFINE([ENABLE_SRP], 1, [enable SRP authentication])
142   else
143    ac_full=0
144    AC_MSG_RESULT(yes)
145   fi
146   AM_CONDITIONAL(ENABLE_SRP, test "$ac_enable_srp" != "no")
147   
148   ac_enable_psk=yes
149   AC_MSG_CHECKING([whether to disable PSK authentication support])
150   AC_ARG_ENABLE(psk-authentication,
151     AS_HELP_STRING([--disable-psk-authentication],
152                    [disable the PSK authentication support]),
153     ac_enable_psk=no)
154   if test x$ac_enable_psk != xno; then
155    AC_MSG_RESULT(no)
156    AC_DEFINE([ENABLE_PSK], 1, [enable PSK authentication])
157   else
158    ac_full=0
159    AC_MSG_RESULT(yes)
160   fi
161   AM_CONDITIONAL(ENABLE_PSK, test "$ac_enable_psk" != "no")
162   
163   ac_enable_anon=yes
164   AC_MSG_CHECKING([whether to disable anonymous authentication support])
165   AC_ARG_ENABLE(anon-authentication,
166     AS_HELP_STRING([--disable-anon-authentication],
167                    [disable the anonymous authentication support]),
168     ac_enable_anon=no)
169   if test x$ac_enable_anon != xno; then
170    AC_MSG_RESULT(no)
171    AC_DEFINE([ENABLE_ANON], 1, [enable anonymous authentication])
172   else
173    ac_full=0
174    AC_MSG_RESULT(yes)
175   fi
176   AM_CONDITIONAL(ENABLE_ANON, test "$ac_enable_anon" != "no")
177   
178   ac_enable_openpgp=yes
179   AC_MSG_CHECKING([whether to disable OpenPGP Certificate authentication support])
180   AC_ARG_ENABLE(openpgp-authentication,
181     AS_HELP_STRING([--disable-openpgp-authentication],
182                    [disable the OpenPGP authentication support]),
183     ac_enable_openpgp=no)
184   if test x$ac_enable_openpgp = xno; then
185    AC_MSG_RESULT(yes)
186    ac_full=0
187   else
188    AC_DEFINE([ENABLE_OPENPGP], 1, [use openpgp authentication])
189    AC_MSG_RESULT(no)
190   fi
191   AM_CONDITIONAL(ENABLE_OPENPGP, test "$ac_enable_openpgp" = "yes")
193   # For cryptodev
194   AC_MSG_CHECKING([whether to add cryptodev support])
195   AC_ARG_ENABLE(cryptodev,
196     AS_HELP_STRING([--enable-cryptodev], [enable cryptodev support]),
197   enable_cryptodev=yes,enable_cryptodev=no)
198   AC_MSG_RESULT($enable_cryptodev)
200   if test "$enable_cryptodev" = "yes"; then
201     AC_DEFINE([ENABLE_CRYPTODEV], 1, [Enable cryptodev support])
202   fi
204   AC_MSG_CHECKING([whether to disable OCSP support])
205   AC_ARG_ENABLE(ocsp,
206     AS_HELP_STRING([--disable-ocsp],
207                    [disable OCSP support]),
208     ac_enable_ocsp=no)
209   if test x$ac_enable_ocsp != xno; then
210    ac_enable_ocsp=yes
211    AC_MSG_RESULT(no)
212    AC_DEFINE([ENABLE_OCSP], 1, [enable OCSP support])
213   else
214    ac_full=0
215    AC_MSG_RESULT(yes)
216   fi
217   AM_CONDITIONAL(ENABLE_OCSP, test "$ac_enable_ocsp" != "no")
219   # For storing integers in pointers without warnings
220   # http://developer.gnome.org/doc/API/2.0/glib/glib-Type-Conversion-Macros.html#desc
221   AC_CHECK_SIZEOF(void *)
222   AC_CHECK_SIZEOF(long long)
223   AC_CHECK_SIZEOF(long)
224   AC_CHECK_SIZEOF(int)
225   if test x$ac_cv_sizeof_void_p = x$ac_cv_sizeof_long;then
226       AC_DEFINE([GNUTLS_POINTER_TO_INT_CAST], [(long)],
227                 [Additional cast to bring void* to a type castable to int.])
228   elif test x$ac_cv_sizeof_void_p = x$ac_cv_sizeof_long_long;then
229       AC_DEFINE([GNUTLS_POINTER_TO_INT_CAST], [(long long)],
230                 [Additional cast to bring void* to a type castable to int.])
231    else
232       AC_DEFINE([GNUTLS_POINTER_TO_INT_CAST], [])
233    fi