*** empty log message ***
[gnutls.git] / configure.in
blobf3f6d02d6ae3ba583db7f9d9d257053313c93b16
1 dnl Process this file with autoconf to produce a configure script.
2 AC_PREREQ(2.57)
3 AC_INIT
5 AC_PREFIX_DEFAULT(/usr/local)
7 AC_CANONICAL_TARGET([])
8 AC_DEFINE_UNQUOTED(T_CPU, "$target_cpu", [CPU name])
9 AC_DEFINE_UNQUOTED(T_VENDOR, "$target_vendor", [Vendor name])
10 AC_DEFINE_UNQUOTED(T_OS, "$target_os", [OS name])
12 dnl Gnutls Version
13 GNUTLS_MAJOR_VERSION=0
14 GNUTLS_MINOR_VERSION=9
15 GNUTLS_MICRO_VERSION=99
16 GNUTLS_VERSION=$GNUTLS_MAJOR_VERSION.$GNUTLS_MINOR_VERSION.$GNUTLS_MICRO_VERSION
18 AC_DEFINE_UNQUOTED(GNUTLS_VERSION, "$GNUTLS_VERSION", [version of gnutls])
20 GNUTLS_GCRYPT_VERSION=1.1.44
21 GNUTLS_LIBTASN1_VERSION=0.2.5
22 AC_DEFINE_UNQUOTED(GNUTLS_GCRYPT_VERSION, "$GNUTLS_GCRYPT_VERSION", [version of gcrypt])
23 AC_DEFINE_UNQUOTED(GNUTLS_LIBTASN1_VERSION, "$GNUTLS_LIBTASN1_VERSION", [version of libtasn1])
25 AM_INIT_AUTOMAKE(gnutls, $GNUTLS_VERSION, [version of gnutls])
26 AM_CONFIG_HEADER(config.h)
28 AM_MAINTAINER_MODE
30 dnl This is the library version
31 GNUTLS_MOST_RECENT_INTERFACE=9
32 GNUTLS_CURRENT_INTERFACE_IMPLEMENTATION_NUMBER=$GNUTLS_MICRO_VERSION
33 GNUTLS_OLDEST_INTERFACE=8
36 AC_SUBST(GNUTLS_MAJOR_VERSION)
37 AC_SUBST(GNUTLS_MINOR_VERSION)
38 AC_SUBST(GNUTLS_MICRO_VERSION)
39 AC_SUBST(GNUTLS_VERSION)
41 AC_SUBST(GNUTLS_MOST_RECENT_INTERFACE)
42 AC_SUBST(GNUTLS_CURRENT_INTERFACE_IMPLEMENTATION_NUMBER)
43 AC_SUBST(GNUTLS_OLDEST_INTERFACE)
45 LT_CURRENT=$GNUTLS_MOST_RECENT_INTERFACE
46 LT_REVISION=$GNUTLS_CURRENT_INTERFACE_IMPLEMENTATION_NUMBER
47 LT_AGE=`expr $GNUTLS_MOST_RECENT_INTERFACE - $GNUTLS_OLDEST_INTERFACE`
48 AC_SUBST(LT_CURRENT)
49 AC_SUBST(LT_REVISION)
50 AC_SUBST(LT_AGE)
52 case "${target}" in
53     *-*-mingw32*)
54         LIBS="$LIBS -lwsock32"
55         ;;
56     *)
57       ;;
58 esac
61 opt_dmalloc_mode=no
62 AC_MSG_CHECKING([whether in dmalloc mode])
63 AC_ARG_ENABLE(dmalloc-mode,
64 [  --enable-dmalloc-mode      enable dmalloc mode],
65 opt_dmalloc_mode=$enableval)
66 AC_MSG_RESULT($opt_dmalloc_mode)
68 opt_efence_mode=no
69 AC_MSG_CHECKING([whether in electric fence mode])
70 AC_ARG_ENABLE(efence-mode,
71 [  --enable-efence-mode       enable electric fence mode],
72 opt_efence_mode=$enableval)
73 AC_MSG_RESULT($opt_efence_mode)
75 opt_developer_mode=no
76 AC_MSG_CHECKING([whether in maintanance mode])
77 AC_ARG_ENABLE(developer-mode,
78 [  --enable-developer-mode   enable developer mode],
79 opt_developer_mode=$enableval)
80 AC_MSG_RESULT($opt_developer_mode)
82 opt_profiler_mode=no
83 AC_MSG_CHECKING([whether in profile mode])
84 AC_ARG_ENABLE(profile-mode,
85 [  --enable-profile-mode      enable profiler],
86 opt_profiler_mode=$enableval)
87 AC_MSG_RESULT($opt_profiler_mode)
89 AC_MSG_RESULT([***
90 *** Checking for compilation programs...
93 SAVED_CFLAGS="${CFLAGS}"
95 AC_PROG_CC
97 CFLAGS="${SAVED_CFLAGS}"
99 AC_PROG_LN_S
102 dnl Checks for programs.
103 AC_PROG_INSTALL
105 dnl AC_PROG_MAKE_SET
108 AC_MSG_RESULT([***
109 *** Detecting compiler options...
113 AC_C_CONST
114 AC_C_INLINE
116 AC_MSG_CHECKING([whether C99 macros are supported])
117 AC_TRY_COMPILE(,[ 
118 #define test_mac(...) 
119 int z,y,x;
120 test_mac(x,y,z);
121 return 0;
122 ], 
123 dnl ***** OK
124 AC_DEFINE(C99_MACROS, 1, [C99 macros are supported])
125 AC_MSG_RESULT(yes),
126 dnl ***** NOT FOUND
127 AC_MSG_RESULT(no)
128 AC_MSG_WARN([C99 macros are not supported by your compiler. This may
129 affect compiling.])
132 if test $ac_cv_c_compiler_gnu != no; then
134         if test x$opt_developer_mode = xyes; then
135           CFLAGS="${CFLAGS} -g -Wno-format-y2k -Wall -Wcast-align -W -Wpointer-arith -Wchar-subscripts -Wformat-security -Wmissing-braces -Winline -Wstrict-prototypes"
136         else
137           CFLAGS="${CFLAGS} -O2 -finline-functions"
138         fi
140         if test x$opt_dmalloc_mode = xyes; then
141           AC_CHECK_LIB( dmalloc, main)
142           AC_DEFINE(USE_DMALLOC, 1, [enable the use of dmalloc])
143         else
144                 if test x$opt_efence_mode = xyes; then
145                   AC_CHECK_LIB( efence, main)
146                   AC_DEFINE(USE_EFENCE, 1, [use electric fence])
147                 fi
148         fi
151         AC_MSG_CHECKING([whether we have GNU assembler])
153         GAS=`as --version < /dev/null 2>/dev/null | grep GNU`
154         if test "$GAS"; then
155           CFLAGS="${CFLAGS} -pipe"
156           AC_MSG_RESULT(yes)
157         else
158           AC_MSG_RESULT(no)
159         fi
163 AC_MSG_RESULT([***
164 *** Detecting C library capabilities...
167 AC_HEADER_STDC
168 AC_HEADER_TIME
169 AC_CHECK_HEADERS(unistd.h strings.h stddef.h alloca.h)
170 AC_CHECK_HEADERS(sys/stat.h sys/types.h sys/socket.h)
171 AC_CHECK_HEADERS(errno.h sys/time.h time.h)
172 AC_CHECK_FUNCS(isascii memmove strnstr mmap gmtime_r inet_ntop,,)
173 AC_FUNC_ALLOCA
176 AC_MSG_RESULT([***
177 *** Detecting system's parameters...
180 AC_CHECK_SIZEOF(unsigned long, 4)
181 AC_CHECK_SIZEOF(unsigned int, 4)
182 AC_CHECK_SIZEOF(unsigned short, 2)
183 AC_CHECK_SIZEOF(unsigned char, 1)
184 AC_CHECK_SIZEOF(unsigned char*, 4)
186 AC_CHECK_TYPES(ptrdiff_t,,, [
187 # include <sys/types.h>
188 # include <stddef.h>
191 AC_CHECK_TYPES(uint,,, [
192 # include <sys/types.h>
195 AC_CHECK_TYPE(size_t,
196 DEFINE_SIZE_T="#include <sys/types.h>"
197 AC_SUBST( DEFINE_SIZE_T)
199 AC_DEFINE(NO_SIZE_T, 1, [no size_t type was found])
200 DEFINE_SIZE_T="typedef unsigned int size_t;"
201 AC_SUBST( DEFINE_SIZE_T)
203 #ifdef HAVE_SYS_TYPES_H
204 # include <sys/types.h>
205 #endif
206 #ifdef HAVE_UNISTD_H
207 # include <unistd.h>
208 #endif
211 AC_CHECK_TYPE(ssize_t,
212 DEFINE_SIZE_T="#include <sys/types.h>"
213 AC_SUBST( DEFINE_SSIZE_T)
215 AC_DEFINE(NO_SSIZE_T, 1, [no ssize_t type was found])
216 DEFINE_SSIZE_T="typedef int ssize_t;"
217 AC_SUBST( DEFINE_SSIZE_T)
219 #ifdef HAVE_SYS_TYPES_H
220 # include <sys/types.h>
221 #endif
222 #ifdef HAVE_UNISTD_H
223 # include <unistd.h>
224 #endif
227 AC_CHECK_TYPE(time_t,
228  DEFINE_TIME_T="#include <time.h>"
229  AC_SUBST( DEFINE_TIME_T)
231   AC_CHECK_TYPE(time_t,
232    DEFINE_TIME_T="#include <sys/time.h>"
233    AC_SUBST( DEFINE_TIME_T)
234    ,
235     DEFINE_TIME_T="typedef unsigned int time_t;"
236     AC_SUBST( DEFINE_TIME_T)
237     AC_DEFINE(NO_TIME_T, 1, [no time_t type was found]),
238   [
239    #include <sys/time.h>
240   ]
241   )
244  #include <time.h>
248 AC_C_BIGENDIAN
251 AC_MSG_RESULT([***
252 *** Checking for external libraries...
255 AM_PATH_LIBGCRYPT($GNUTLS_GCRYPT_VERSION,,
256         AC_MSG_ERROR([[
257 ***  
258 *** libgcrypt was not found. You may want to get it from
259 *** ftp://ftp.gnupg.org/gcrypt/alpha/libgcrypt/
261 ]]))
262 dnl Can't disable - gnutls depends on gcrypt
263 AC_DEFINE(USE_GCRYPT, 1, [use gcrypt])
265 # Since libgcrypt 1.1.90 we have a new function to create nonces etc.
266 # it is useful to use this one instead of the the standard random
267 # functions.  As a temporary solution we check for that function and
268 # don't require an unrelease libgcrypt.  This should be changed after
269 # libgcrypt 1.2 has been released.
270 save_LIBS="$LIBS"
271 LIBS="$LIBS $LIBGCRYPT_LIBS"
272 AC_CHECK_FUNCS(gcry_create_nonce)
273 LIBS="$save_LIBS"
276 AC_MSG_CHECKING([whether to disable SRP authentication support])
277 AC_ARG_ENABLE( srp-authentication, [  --disable-srp-authentication     Disable the SRP authentication support],
278  ac_enable_srp=no
280 if test x$ac_enable_srp != xno; then
281  AC_MSG_RESULT(no)
282  AC_DEFINE(ENABLE_SRP, 1, [enable SRP authentication])
283 else
284  AC_MSG_RESULT(yes)
287 AC_MSG_CHECKING([whether to disable anonymous authentication support])
288 AC_ARG_ENABLE( anon-authentication, [  --disable-anon-authentication    Disable the anonymous authentication support],
289  ac_enable_anon=no
291 if test x$ac_enable_anon != xno; then
292  AC_MSG_RESULT(no)
293  AC_DEFINE(ENABLE_ANON, 1, [enable anonymous authentication])
294 else
295  AC_MSG_RESULT(yes)
298 AC_MSG_CHECKING([whether to disable extra PKI stuff])
299 AC_ARG_ENABLE( extra-pki, [  --disable-extra-pki              only enable the basic PKI stuff],
300  ac_enable_pki=no
302 if test x$ac_enable_pki != xno; then
303  AC_MSG_RESULT(no)
304  AC_DEFINE(ENABLE_PKI, 1, [whether to include all the PKCS #x stuff and other PKI stuff])
305 else
306  AC_MSG_RESULT(yes)
310 AC_MSG_CHECKING([whether to disable OpenPGP Certificate authentication support])
311 AC_ARG_ENABLE( openpgp-authentication, [  --disable-openpgp-authentication Disable the OpenPGP authentication support],
312  ac_enable_openpgp=no
314 if test x$ac_enable_openpgp != xno; then
315  AC_MSG_RESULT(no)
316  AM_PATH_LIBOPENCDK( 0.5.2, AC_DEFINE(HAVE_LIBOPENCDK, 1, [have libopencdk]),
317  AC_MSG_ERROR([[
319 *** libopencdk 0.5.2 was not found. You may want to get it from
320 *** ftp://ftp.gnutls.org/pub/gnutls/opencdk/
322 ]]))
323 else
324  AC_MSG_RESULT(yes)
327 ac_enable_openssl=yes
328 AC_MSG_CHECKING([whether to disable OpenSSL compatibility layer])
329 AC_ARG_ENABLE( openssl-compatibility, [  --disable-openssl-compatibility Disable the OpenSSL compatibility support],
330  ac_enable_openssl=no
332 if test x$ac_enable_openssl != xno; then
333  AC_MSG_RESULT(no)
334 else
335  AC_MSG_RESULT(yes)
338 AM_CONDITIONAL(ENABLE_OPENSSL, test "$ac_enable_openssl" = "yes")
341 AC_ARG_WITH(included-libtasn1,
342         [  --with-included-libtasn1 Use the included libtasn1],
343 minitasn1_enabled=$withval, 
344 minitasn1_enabled=no
346 dnl We now need libtasn1 0.2.x
348 AC_CHECK_LIB( tasn1, asn1_read_tag,:, 
349  minitasn1_enabled=yes
350 AC_MSG_WARN([[
351 *** 
352 *** LibtASN1 0.2.x was not found. Will use the included one.]])))
355 if test x$opt_developer_mode = xyes; then
356  minitasn1_enabled=yes
359 AC_MSG_CHECKING([whether to use the included minitasn1])
360 AC_MSG_RESULT($minitasn1_enabled)
363 dnl CHECK FOR ZLIB SUPPORT
366 AC_MSG_CHECKING([whether to include zlib compression support])
368 AC_ARG_WITH( zlib, [  --without-zlib          disable zlib compression support],
369  ac_zlib=$withval,
370  ac_zlib=yes
373 if test x$ac_zlib != xno; then
374  AC_MSG_RESULT(yes)
375  AC_CHECK_LIB(z, compress,,AC_MSG_WARN(
376 *** 
377 *** ZLIB was not found. You will not be able to use ZLIB compression.))
378 else
379  AC_MSG_RESULT(no)
384 dnl CHECK FOR LZO SUPPORT (whether to use the included one)
387 if test x$opt_developer_mode = xyes; then
388  minilzo_enabled=yes
391 AC_ARG_WITH(included-lzo,
392         [  --with-included-lzo     include minilzo in libgnutls-extra],
393  minilzo_enabled=$withval,
394  minilzo_enabled=no
397 AC_MSG_CHECKING([whether to use the included lzo compression library])
399 AC_MSG_RESULT($minilzo_enabled)
401 if test x$minilzo_enabled = xno; then
402 AC_CHECK_LIB( lzo, lzo1x_1_compress, minilzo_enabled=no, 
403  minilzo_enabled=yes
404  AC_MSG_WARN(
405 *** 
406 *** Liblzo was not found. Will use the included minilzo.))
409 if test x"$minilzo_enabled" = xyes; then
410  AC_DEFINE(USE_MINILZO, 1, [whether to use the included minilzo])
411  LZO_OBJECTS="minilzo.lo"
412 else
413  LZO_LINK=-llzo
416 AC_SUBST(LZO_OBJECTS)
417 AC_SUBST(LZO_LINK)
419 dnl CHECK FOR THE LIBTASN1 LIBRARY or use the included one
422 if test x"$minitasn1_enabled" = xyes; then
423  MINITASN1_OBJECTS="minitasn1/coding.lo minitasn1/decoding.lo minitasn1/element.lo \
424         minitasn1/errors.lo minitasn1/gstr.lo minitasn1/parser_aux.lo minitasn1/structure.lo"
425  MINITASN1_DIR=minitasn1
426 else
427  LIBASN1_LINK=-ltasn1
430 AC_SUBST(MINITASN1_OBJECTS)
431 AC_SUBST(MINITASN1_DIR)
432 AC_SUBST(LIBASN1_LINK)
436 AC_MSG_RESULT([***
437 *** Detecting options for shared libraries...
439 AM_PROG_LIBTOOL
441 dnl This is after AM_PROG_LIBTOOL so that the LD variable
442 dnl has been set.
444 AC_MSG_CHECKING([whether we have GNU ld or compatible])
446 GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script`
447 if test "$GLD"; then
448 have_ld_version_script=yes
449   AC_MSG_RESULT(yes)
450 else
451 have_ld_version_script=no
452   AC_MSG_RESULT(no)
453 AC_MSG_WARN(***
454 *** You may want to rerun configure using --with-gnu-ld to enable versioned symbols.
458 AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
461 LIBGNUTLS_LIBS="$LIBS -L${libdir} -lgnutls $LIBASN1_LINK $LIBGCRYPT_LIBS"
462 LIBGNUTLS_CFLAGS="$LIBGCRYPT_CFLAGS -I${includedir}"
464 CFLAGS="${CFLAGS} ${LIBGCRYPT_CFLAGS}"
466 AC_SUBST(LIBGNUTLS_LIBS)
467 AC_SUBST(LIBGNUTLS_CFLAGS)
469 SERV_LIBS="$LIBS $SERV_LIBS"
470 AC_SUBST(SERV_LIBS)
472 LIBGNUTLS_EXTRA_LIBS="-L${libdir} -lgnutls-extra -lgnutls $LIBOPENCDK_LIBS $LZO_LINK"
473 LIBGNUTLS_EXTRA_CFLAGS="$LIBOPENCDK_CFLAGS -I${includedir}"
475 AC_SUBST(LIBGNUTLS_EXTRA_LIBS)
476 AC_SUBST(LIBGNUTLS_EXTRA_CFLAGS)
478 if test $ac_cv_c_compiler_gnu != no; then
480         if test x$opt_profiler_mode = xyes; then
481           AC_CHECK_PROG(FC_OK, fc-config, yes, no)
482           if test x$FC_OK = xyes; then
483                 CFLAGS="${CFLAGS} `fc-config --cflags`"
484                 LIBS="$LIBS `fc-config --libs`"
485           else
486 AC_MSG_WARN(***
487 *** You must install libfc in order to enable profiling. http://www710.univ-lyon1.fr/~yperret/fnccheck/profiler.html
489           fi
490         fi
494 AC_CONFIG_FILES(lib/gnutls.h.in)
496 AC_CONFIG_COMMANDS([includes/gnutls/gnutls.h],[[
497  test -f lib/gnutls.h.in || (echo "Could not generate includes/gnutls/gnutls.h" && exit 1)
498  cat lib/gnutls.h.in > includes/gnutls/gnutls.h
499  cat lib/gnutls_ui.h >> includes/gnutls/gnutls.h
500  echo "" >> includes/gnutls/gnutls.h
501  cat lib/gnutls_errors_int.h | grep -v _INT_ >> includes/gnutls/gnutls.h
502  echo "" >> includes/gnutls/gnutls.h
503  echo "#ifdef __cplusplus" >> includes/gnutls/gnutls.h
504  echo "}" >> includes/gnutls/gnutls.h
505  echo "#endif" >> includes/gnutls/gnutls.h
506  echo "#endif /* GNUTLS_H */" >> includes/gnutls/gnutls.h
507  echo "" >> includes/gnutls/gnutls.h
508  chmod +x lib/libgnutls-config
509  chmod +x libextra/libgnutls-extra-config
510 ]],[[]])
512 AC_CONFIG_FILES([Makefile src/Makefile libextra/Makefile lib/Makefile \
513 libextra/openpgp/Makefile lib/libgnutls-config libextra/libgnutls-extra-config \
514 doc/Makefile src/x509/Makefile src/srp/Makefile src/openpgp/Makefile \
515 doc/tex/Makefile doc/tex/cover.tex doc/scripts/Makefile \
516 doc/examples/Makefile lib/minitasn1/Makefile lib/x509/Makefile \
517 includes/Makefile includes/gnutls/Makefile doc/manpages/Makefile])
519 AC_OUTPUT