2 dnl Copyright (C) 2005 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
9 AC_LIBSOURCES([gc.h, gc-gnulib.c, gc-libgcrypt.c])
10 AC_ARG_WITH(libgcrypt,
11 AS_HELP_STRING([--with-libgcrypt], [use libgcrypt for low-level crypto]),
12 libgcrypt=$withval, libgcrypt=no)
13 if test "$libgcrypt" != no; then
14 AC_LIB_HAVE_LINKFLAGS([gcrypt])
16 if test "$ac_cv_libgcrypt" = yes; then
17 AC_CHECK_HEADER(gcrypt.h)
18 AC_LIBOBJ([gc-libgcrypt])
20 AC_LIBOBJ([gc-gnulib])
25 # Devices with randomness.
26 # FIXME: Are these the best defaults?
30 NAME_OF_RANDOM_DEVICE="/dev/srandom"
31 NAME_OF_PSEUDO_RANDOM_DEVICE="/dev/prandom"
32 NAME_OF_NONCE_DEVICE="/dev/urandom"
36 NAME_OF_RANDOM_DEVICE="/dev/srandom"
37 NAME_OF_PSEUDO_RANDOM_DEVICE="/dev/urandom"
38 NAME_OF_NONCE_DEVICE="/dev/urandom"
41 *-solaris* | *-irix* | *-dec-osf* )
42 NAME_OF_RANDOM_DEVICE="/dev/random"
43 NAME_OF_PSEUDO_RANDOM_DEVICE="/dev/random"
44 NAME_OF_NONCE_DEVICE="/dev/random"
48 NAME_OF_RANDOM_DEVICE="/dev/random"
49 NAME_OF_PSEUDO_RANDOM_DEVICE="/dev/urandom"
50 NAME_OF_NONCE_DEVICE="/dev/urandom"
54 AC_MSG_CHECKING([device with (strong) random data...])
55 AC_ARG_ENABLE(random-device,
56 AC_HELP_STRING([--enable-random-device],
57 [device with (strong) randomness (for Nettle)]),
58 NAME_OF_RANDOM_DEVICE=$enableval)
59 AC_MSG_RESULT($NAME_OF_RANDOM_DEVICE)
61 AC_MSG_CHECKING([device with pseudo random data...])
62 AC_ARG_ENABLE(pseudo-random-device,
63 AC_HELP_STRING([--enable-pseudo-random-device],
64 [device with pseudo randomness (for Nettle)]),
65 NAME_OF_PSEUDO_RANDOM_DEVICE=$enableval)
66 AC_MSG_RESULT($NAME_OF_PSEUDO_RANDOM_DEVICE)
68 AC_MSG_CHECKING([device with unpredictable data for nonces...])
69 AC_ARG_ENABLE(nonce-device,
70 AC_HELP_STRING([--enable-nonce-device],
71 [device with unpredictable nonces (for Nettle)]),
72 NAME_OF_NONCE_DEVICE=$enableval)
73 AC_MSG_RESULT($NAME_OF_NONCE_DEVICE)
75 if test "$cross_compiling" != yes; then
76 AC_CHECK_FILE($NAME_OF_RANDOM_DEVICE,, AC_MSG_ERROR([[
77 *** Device for (strong) random data $NAME_OF_RANDOM_DEVICE does not exist
79 AC_CHECK_FILE($NAME_OF_PSEUDO_RANDOM_DEVICE,, AC_MSG_ERROR([[
80 *** Device for pseudo-random data $NAME_OF_PSEUDO_RANDOM_DEVICE does not exist
82 AC_CHECK_FILE($NAME_OF_NONCE_DEVICE,, AC_MSG_ERROR([[
83 *** Device for unpredictable nonces $NAME_OF_NONCE_DEVICE does not exist
86 AC_MSG_NOTICE([[Cross compiling, assuming random devices exists...]])
89 # FIXME: Open+read 42 bytes+close twice and compare data. Should differ.
91 AC_DEFINE_UNQUOTED(NAME_OF_RANDOM_DEVICE, "$NAME_OF_RANDOM_DEVICE",
92 [defined to the name of the (strong) random device])
93 AC_DEFINE_UNQUOTED(NAME_OF_PSEUDO_RANDOM_DEVICE,
94 "$NAME_OF_PSEUDO_RANDOM_DEVICE",
95 [defined to the name of the pseudo random device])
96 AC_DEFINE_UNQUOTED(NAME_OF_NONCE_DEVICE, "$NAME_OF_NONCE_DEVICE",
97 [defined to the name of the unpredictable nonce device])
101 # Prerequisites of lib/gc.h
102 AC_DEFUN([gl_PREREQ_GC], [:])