backup
[libgcrypt.git] / configure.in
1 dnl
2 dnl Configure template for GNUPG
3 dnl
4 dnl (Process this file with autoconf to produce a configure script.)
5
6 AC_INIT(g10/g10.c)
7 AC_CONFIG_AUX_DIR(scripts)
8 AM_CONFIG_HEADER(config.h)
9
10
11 VERSION=`cat $srcdir/VERSION`
12 PACKAGE=gnupg
13 ALL_LINGUAS="en de it fr"
14 AC_SUBST(VERSION)
15 AC_SUBST(PACKAGE)
16 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
17 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
18
19 AC_ARG_ENABLE(dev-random,
20 [  --disable-dev-random    disable the use of dev random],
21     try_dev_random=$enableval, try_dev_random=yes)
22
23 AC_ARG_ENABLE(dynload,
24 [  --disable-dynload       disable dynamic loading],
25     try_dynload=$enableval, try_dynload=yes)
26
27 AC_MSG_CHECKING([whether memory debugging is requested])
28 AC_ARG_ENABLE(m-debug,
29 [  --enable-m-debug        enable debugging of memory allocation],
30 use_m_debug=$enableval, use_m_debug=no)
31 AC_MSG_RESULT($use_m_debug)
32 if test "$use_m_debug" = yes; then
33     AC_DEFINE(M_DEBUG)
34     use_m_guard=yes
35 else
36     AC_MSG_CHECKING([whether memory guard is requested])
37     AC_ARG_ENABLE(m-guard,
38     [  --disable-m-guard       disable memory guard facility],
39     use_m_guard=$enableval, use_m_guard=yes)
40     AC_MSG_RESULT($use_m_guard)
41 fi
42 if test "$use_m_guard" = yes ; then
43     AC_DEFINE(M_GUARD)
44     CFLAGS="-g -Wall"
45 else
46     CFLAGS="-O2 -Wall"
47 fi
48
49
50 AC_MSG_CHECKING([whether included zlib is requested])
51 AC_ARG_WITH(included-zlib,
52     [  --with-included-zlib    use the zlib code included here],
53 [g10_force_zlib=yes], [g10_force_zlib=no] )
54 AC_MSG_RESULT($g10_force_zlib)
55
56
57 AC_CANONICAL_SYSTEM
58 WK_CHECK_CACHE
59
60 dnl Checks for programs.
61
62 AC_PROG_MAKE_SET
63 AC_ARG_PROGRAM
64
65 missing_dir=`cd $ac_aux_dir && pwd`
66 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
67 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
68 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
69 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
70 dnl AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
71 AC_PROG_CC
72 AC_PROG_CPP
73 AC_ISC_POSIX
74 AC_PROG_RANLIB
75 AC_PROG_INSTALL
76 AM_CYGWIN32
77
78
79 case "${target}" in
80     i386--mingw32)
81         # special stuff for Windoze NT
82         cross_compiling=yes
83         CC="i386--mingw32-gcc"
84         CPP="i386--mingw32-gcc -E"
85         RANLIB="i386--mingw32-ranlib"
86         ac_cv_have_dev_random=no
87         AC_DEFINE(USE_RAND_W32)
88         ;;
89     *)
90         AC_DEFINE(USE_RAND_UNIX)
91        ;;
92 esac
93
94 case "${target}" in
95     i386--mingw32)
96         PRINTABLE_OS_NAME="MingW32"
97         ;;
98     *-linux*)
99         PRINTABLE_OS_NAME="GNU/Linux"
100         ;;
101     *)
102         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
103         ;;
104 esac
105 AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME")
106
107 dnl Checks for libraries.
108
109
110 if test "$try_dynload" = yes ; then
111 AC_CHECK_LIB(dl,dlopen)
112 if test "$ac_cv_lib_dl_dlopen" = "yes"; then
113   AC_DEFINE(USE_DYNAMIC_LINKING)
114   AC_DEFINE(HAVE_DL_DLOPEN)
115   DYNLINK_LDFLAGS=-rdynamic
116   use_gnupg_extensions=yes
117 else
118 AC_CHECK_LIB(dld,dld_link)
119 if test "$ac_cv_lib_dld_dld_link" = "yes"; then
120   AC_DEFINE(USE_DYNAMIC_LINKING)
121   AC_DEFINE(HAVE_DLD_DLD_LINK)
122   DYNLINK_LDFLAGS=-rdynamic
123   use_gnupg_extensions=yes
124 fi
125 fi
126 else
127   AC_MSG_CHECKING(for dynamic loading)
128   DYNLINK_LDFLAGS=
129   use_gnupg_extensions=no
130   AC_MSG_RESULT(has been disabled)
131 fi
132
133 AM_CONDITIONAL(ENABLE_GNUPG_EXTENSIONS, test "$use_gnupg_extensions" = yes )
134 AC_SUBST(DYNLINK_LDFLAGS)
135
136 dnl Checks for header files.
137 AC_HEADER_STDC
138 AC_CHECK_HEADERS(unistd.h)
139
140
141 dnl Checks for typedefs, structures, and compiler characteristics.
142 AC_C_CONST
143 AC_C_INLINE
144 AC_TYPE_SIZE_T
145 AC_TYPE_SIGNAL
146 AC_DECL_SYS_SIGLIST
147
148 WK_CHECK_ENDIAN
149
150
151 WK_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
152 WK_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
153 WK_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
154 WK_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
155 WK_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
156
157 AC_CHECK_SIZEOF(unsigned short, 2)
158 AC_CHECK_SIZEOF(unsigned int, 4)
159 AC_CHECK_SIZEOF(unsigned long, 4)
160
161 if test "$ac_cv_sizeof_unsigned_short" = "0" \
162    || test "$ac_cv_sizeof_unsigned_int" = "0" \
163    || test "$ac_cv_sizeof_unsigned_long" = "0"; then
164     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
165 fi
166
167
168
169 dnl Checks for library functions.
170 AC_FUNC_VPRINTF
171 AC_CHECK_FUNCS(strerror stpcpy strlwr tcgetattr rand strtoul mmap)
172 AC_CHECK_FUNCS(memmove gettimeofday getrusage gethrtime setrlimit)
173 AC_CHECK_FUNCS(memicmp atexit raise getpagesize strftime)
174
175 WK_CHECK_MLOCK
176
177 WK_CHECK_IPC
178 if test "$ac_cv_header_sys_shm_h" = "yes"; then
179   AC_DEFINE(USE_SHM_COPROCESSING)
180 fi
181
182 dnl check whether we have a random device
183 if test "$try_dev_random" = yes ; then
184 AC_CACHE_CHECK(for random device, ac_cv_have_dev_random,
185 [if test -c /dev/random && test -c /dev/urandom ; then
186   ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi])
187 if test "$ac_cv_have_dev_random" = yes; then
188     AC_DEFINE(HAVE_DEV_RANDOM)
189 fi
190 else
191     AC_MSG_CHECKING(for random device)
192     ac_cv_have_dev_random=no
193     AC_MSG_RESULT(has been disabled)
194 fi
195
196
197
198
199 dnl setup assembler stuff
200 AC_MSG_CHECKING(for mpi assembler functions)
201 if test -f $srcdir/mpi/config.links ; then
202     . $srcdir/mpi/config.links
203     WK_LINK_FILES($mpi_ln_src, $mpi_ln_dst)
204     ac_cv_mpi_extra_asm_modules="$mpi_extra_modules"
205     ac_cv_mpi_config_done="yes"
206     AC_MSG_RESULT(done)
207 else
208     AC_MSG_RESULT(failed)
209     AC_MSG_ERROR([mpi/config.links missing!])
210 fi
211 MPI_EXTRA_ASM_OBJS=""
212 if test "$ac_cv_mpi_extra_asm_modules" != ""; then
213 WK_MSG_PRINT([mpi extra asm functions:])
214 for i in $ac_cv_mpi_extra_asm_modules; do
215     WK_MSG_PRINT([$i])
216     MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.o"
217 done
218 AC_MSG_RESULT()
219 fi
220 AC_SUBST(MPI_EXTRA_ASM_OBJS)
221
222 dnl Do we have zlib? Must do it here because Solaris failed
223 dnl when compiling a conftest (due to the "-lz" from LIBS).
224 if test "$g10_force_zlib" = "yes"; then
225     ZLIBS="../zlib/libzlib.a"
226     AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
227     WK_LINK_FILES(zlib/zlib.h, zlib.h )
228     WK_LINK_FILES(zlib/zconf.h, zconf.h )
229 else
230 AC_CHECK_HEADERS(zlib.h)
231 if test "$ac_cv_header_zlib_h" = yes ; then
232     LIBS="$LIBS -lz"
233     ZLIBS=
234     AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, false)
235 else
236     ZLIBS="../zlib/libzlib.a"
237     AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
238     WK_LINK_FILES(zlib/zlib.h, zlib.h )
239     WK_LINK_FILES(zlib/zconf.h, zconf.h )
240 fi
241 fi
242 AC_SUBST(ZLIBS)
243
244
245 WK_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl )
246
247 WK_DO_LINK_FILES
248
249 AM_GNU_GETTEXT
250
251 AC_OUTPUT([
252 Makefile
253 intl/Makefile
254 po/Makefile.in
255 util/Makefile
256 mpi/Makefile
257 cipher/Makefile
258 g10/Makefile
259 doc/Makefile
260 tools/Makefile
261 zlib/Makefile
262 checks/Makefile
263 ],[echo timestamp >stamp-h; \
264    sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
265 ])
266