2 dnl Configure template for GNUPG
4 dnl (Process this file with autoconf to produce a configure script.)
5 AC_REVISION($Revision$)dnl
7 dnl Must reset CDPATH so that bash's cd does not print to stdout
11 AC_CONFIG_AUX_DIR(scripts)
12 AM_CONFIG_HEADER(config.h)
15 VERSION=`cat $srcdir/VERSION`
17 ALL_LINGUAS="en de it fr ru"
20 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
21 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
23 AC_ARG_ENABLE(dev-random,
24 [ --disable-dev-random disable the use of dev random],
25 try_dev_random=$enableval, try_dev_random=yes)
27 AC_ARG_ENABLE(dynload,
28 [ --disable-dynload disable dynamic loading],
29 try_dynload=$enableval, try_dynload=yes)
31 AC_MSG_CHECKING([whether memory debugging is requested])
32 AC_ARG_ENABLE(m-debug,
33 [ --enable-m-debug enable debugging of memory allocation],
34 use_m_debug=$enableval, use_m_debug=no)
35 AC_MSG_RESULT($use_m_debug)
36 if test "$use_m_debug" = yes; then
40 AC_MSG_CHECKING([whether memory guard is requested])
41 AC_ARG_ENABLE(m-guard,
42 [ --disable-m-guard disable memory guard facility],
43 use_m_guard=$enableval, use_m_guard=yes)
44 AC_MSG_RESULT($use_m_guard)
46 if test "$use_m_guard" = yes ; then
48 CFLAGS="$CFLAGS -g -Wall"
50 CFLAGS="$CFLAGS -O2 -Wall"
54 AC_MSG_CHECKING([whether included zlib is requested])
55 AC_ARG_WITH(included-zlib,
56 [ --with-included-zlib use the zlib code included here],
57 [g10_force_zlib=yes], [g10_force_zlib=no] )
58 AC_MSG_RESULT($g10_force_zlib)
60 dnl Checks for programs.
66 missing_dir=`cd $ac_aux_dir && pwd`
67 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
68 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
69 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
70 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
71 dnl AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
83 # special stuff for Windoze NT
85 CC="i386--mingw32-gcc"
86 CPP="i386--mingw32-gcc -E"
87 RANLIB="i386--mingw32-ranlib"
88 ac_cv_have_dev_random=no
89 AC_DEFINE(USE_RAND_W32)
92 if test -z "$GCC" ; then
93 CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE"
95 AC_DEFINE(USE_RAND_UNIX)
98 AC_DEFINE(USE_RAND_UNIX)
104 PRINTABLE_OS_NAME="MingW32"
107 PRINTABLE_OS_NAME="GNU/Linux"
110 PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
113 AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME")
115 dnl Fixme: Are these the best flags for OpenBSD????
118 NAME_OF_DEV_RANDOM="/dev/srandom"
119 NAME_OF_DEV_URANDOM="/dev/urandom"
120 DYNLINK_MOD_CFLAGS="-shared -rdynamic -fpic -Wl,-Bshareable -Wl,-x"
123 NAME_OF_DEV_RANDOM="/dev/random"
124 NAME_OF_DEV_URANDOM="/dev/urandom"
125 DYNLINK_MOD_CFLAGS="-shared -fPIC -lc"
128 AC_DEFINE_UNQUOTED(NAME_OF_DEV_RANDOM, "$NAME_OF_DEV_RANDOM")
129 AC_DEFINE_UNQUOTED(NAME_OF_DEV_URANDOM, "$NAME_OF_DEV_URANDOM")
132 dnl Checks for libraries.
136 AC_CHECK_LIB(gdbm,gdbm_firstkey)
138 if test "$try_dynload" = yes ; then
139 AC_CHECK_LIB(dl,dlopen)
140 if test "$ac_cv_lib_dl_dlopen" = "yes"; then
141 AC_DEFINE(USE_DYNAMIC_LINKING)
142 AC_DEFINE(HAVE_DL_DLOPEN)
143 DYNLINK_LDFLAGS=-rdynamic
144 use_gnupg_extensions=yes
146 AC_CHECK_LIB(dld,dld_link)
147 if test "$ac_cv_lib_dld_dld_link" = "yes"; then
148 AC_DEFINE(USE_DYNAMIC_LINKING)
149 AC_DEFINE(HAVE_DLD_DLD_LINK)
150 DYNLINK_LDFLAGS=-rdynamic
151 use_gnupg_extensions=yes
155 AC_MSG_CHECKING(for dynamic loading)
158 use_gnupg_extensions=no
159 AC_MSG_RESULT(has been disabled)
162 AM_CONDITIONAL(ENABLE_GNUPG_EXTENSIONS, test "$use_gnupg_extensions" = yes )
163 AC_SUBST(DYNLINK_LDFLAGS)
164 AC_SUBST(DYNLINK_MOD_CFLAGS)
167 dnl Checks for header files.
169 AC_CHECK_HEADERS(unistd.h)
172 dnl Checks for typedefs, structures, and compiler characteristics.
182 WK_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
183 WK_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
184 WK_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
185 WK_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
186 WK_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
188 AC_CHECK_SIZEOF(unsigned short, 2)
189 AC_CHECK_SIZEOF(unsigned int, 4)
190 AC_CHECK_SIZEOF(unsigned long, 4)
192 if test "$ac_cv_sizeof_unsigned_short" = "0" \
193 || test "$ac_cv_sizeof_unsigned_int" = "0" \
194 || test "$ac_cv_sizeof_unsigned_long" = "0"; then
195 AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
200 dnl Checks for library functions.
202 AC_CHECK_FUNCS(strerror stpcpy strlwr tcgetattr rand strtoul mmap)
203 AC_CHECK_FUNCS(memmove gettimeofday getrusage gethrtime setrlimit)
204 AC_CHECK_FUNCS(memicmp atexit raise getpagesize strftime)
209 if test "$ac_cv_header_sys_shm_h" = "yes"; then
210 AC_DEFINE(USE_SHM_COPROCESSING)
213 dnl check whether we have a random device
214 if test "$try_dev_random" = yes ; then
215 AC_CACHE_CHECK(for random device, ac_cv_have_dev_random,
216 [if test -c "$NAME_OF_DEV_RANDOM" && test -c "$NAME_OF_DEV_URANDOM" ; then
217 ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi])
218 if test "$ac_cv_have_dev_random" = yes; then
219 AC_DEFINE(HAVE_DEV_RANDOM)
222 AC_MSG_CHECKING(for random device)
223 ac_cv_have_dev_random=no
224 AC_MSG_RESULT(has been disabled)
228 dnl setup assembler stuff
229 AC_MSG_CHECKING(for mpi assembler functions)
230 if test -f $srcdir/mpi/config.links ; then
231 . $srcdir/mpi/config.links
232 WK_LINK_FILES($mpi_ln_src, $mpi_ln_dst)
233 ac_cv_mpi_extra_asm_modules="$mpi_extra_modules"
234 ac_cv_mpi_config_done="yes"
237 AC_MSG_RESULT(failed)
238 AC_MSG_ERROR([mpi/config.links missing!])
240 MPI_EXTRA_ASM_OBJS=""
241 if test "$ac_cv_mpi_extra_asm_modules" != ""; then
242 WK_MSG_PRINT([mpi extra asm functions:])
243 for i in $ac_cv_mpi_extra_asm_modules; do
245 MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.o"
249 AC_SUBST(MPI_EXTRA_ASM_OBJS)
251 dnl Do we have zlib? Must do it here because Solaris failed
252 dnl when compiling a conftest (due to the "-lz" from LIBS).
253 if test "$g10_force_zlib" = "yes"; then
254 ZLIBS="../zlib/libzlib.a"
255 AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
256 WK_LINK_FILES(zlib/zlib.h, zlib.h )
257 WK_LINK_FILES(zlib/zconf.h, zconf.h )
259 AC_CHECK_HEADERS(zlib.h)
260 if test "$ac_cv_header_zlib_h" = yes ; then
263 AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, false)
265 ZLIBS="../zlib/libzlib.a"
266 AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
267 WK_LINK_FILES(zlib/zlib.h, zlib.h )
268 WK_LINK_FILES(zlib/zconf.h, zconf.h )