e83e10d5d3604f99caf0a4996d8968c32407fecb
[gnupg.git] / configure.in
1 dnl
2 dnl Configure template for G10
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 dnl Ooops: automake 1.2d looks for AC_CONFIG_HEADER (and not AM_..)
9 dnl        to decide where config.h is - so we have to add it to
10 dnl        every makefile.am
11 AM_CONFIG_HEADER(config.h)
12
13
14 if test "x$exec_prefix" = xNONE ; then
15     if test "x$prefix" = xNONE ; then
16         g10_prefix="$ac_default_prefix"
17     else
18         g10_prefix="$prefix"
19     fi
20 else
21     g10_prefix="$exec_prefix"
22 fi
23
24
25 VERSION=`cat $srcdir/VERSION`
26 PACKAGE=g10
27 ALL_LINGUAS="de"
28 G10_LOCALEDIR="$g10_prefix/share/locale"
29 AC_SUBST(VERSION)
30 AC_SUBST(PACKAGE)
31 AC_SUBST(G10_LOCALEDIR)
32 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
33 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
34 AC_DEFINE_UNQUOTED(G10_LOCALEDIR, "$G10_LOCALEDIR")
35
36 AC_ARG_ENABLE(m-debug,
37 [  --enable-m-debug    Enable debugging of memory allocation])
38 if test "$enableval" = y || test "$enableval" = yes; then
39     AC_DEFINE(M_DEBUG)
40 fi
41 CFLAGS="-g -Wall"
42
43
44
45 AC_CANONICAL_SYSTEM
46 WK_CHECK_CACHE
47
48 dnl Checks for programs.
49
50 AC_PROG_MAKE_SET
51 AC_ARG_PROGRAM
52
53 missing_dir=`cd $ac_aux_dir && pwd`
54 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
55 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
56 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
57 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
58 dnl AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
59
60 case "${target}" in
61     i386--mingw32)
62         # special stuff for Windoze NT
63         cross_compiling=yes
64         CC="i386--mingw32-gcc"
65         CPP="i386--mingw32-gcc -E"
66         RANLIB="i386--mingw32-ranlib"
67         ac_cv_have_dev_random=no
68         ;;
69     *)
70 AC_PROG_RANLIB
71 AC_PROG_INSTALL
72 AC_PROG_CC
73 AC_PROG_CPP
74        ;;
75 esac
76
77
78 dnl Checks for libraries.
79
80 dnl Checks for header files.
81 AC_HEADER_STDC
82 AC_CHECK_HEADERS(unistd.h)
83
84 dnl AM_GNU_GETTEXT
85 dnl WK_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl )
86 AC_MSG_WARN([i18n disabled for this release - sorry])
87
88
89 dnl Checks for typedefs, structures, and compiler characteristics.
90 AC_C_CONST
91 AC_C_INLINE
92 AC_TYPE_SIZE_T
93
94 WK_CHECK_ENDIAN
95
96
97 WK_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
98 WK_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
99 WK_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
100 WK_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
101 WK_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
102
103 AC_CHECK_SIZEOF(unsigned short, 2)
104 AC_CHECK_SIZEOF(unsigned int, 4)
105 AC_CHECK_SIZEOF(unsigned long, 4)
106
107 if test "$ac_cv_sizeof_unsigned_short" = "0" \
108    || test "$ac_cv_sizeof_unsigned_int" = "0" \
109    || test "$ac_cv_sizeof_unsigned_long" = "0"; then
110     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
111 fi
112
113
114
115 dnl Checks for library functions.
116 AC_FUNC_VPRINTF
117 AC_CHECK_FUNCS(strerror stpcpy strlwr tcgetattr rand strtoul mlock mmap)
118
119
120
121
122 dnl check wether we have a random device
123 AC_CACHE_CHECK(for random device, ac_cv_have_dev_random,
124 [if test -c /dev/random && test -c /dev/urandom ; then
125   ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi])
126 if test "$ac_cv_have_dev_random" = yes; then
127     AC_DEFINE(HAVE_DEV_RANDOM)
128 fi
129
130
131 dnl setup assembler stuff
132 AC_MSG_CHECKING(for mpi assembler functions)
133 mpi_config_done="no"
134 AC_CACHE_VAL(ac_cv_mpi_config_done,
135              [ ac_cv_mpi_config_done="$mpi_config_done" ])
136 if test "$ac_cv_mpi_config_done" = yes; then
137     AC_MSG_RESULT(done)
138 else
139 ac_cv_mpi_config_done=""
140 if test -f $srcdir/mpi/config.links ; then
141     . $srcdir/mpi/config.links
142     WK_LINK_FILES($mpi_ln_src, $mpi_ln_dst)
143     ac_cv_mpi_extra_asm_modules="$mpi_extra_modules"
144     ac_cv_mpi_config_done="yes"
145     AC_MSG_RESULT(done)
146 else
147     AC_MSG_RESULT(failed)
148     AC_MSG_ERROR([mpi/config.links missing!])
149 fi
150 fi
151 MPI_EXTRA_ASM_OBJS=""
152 if test "$ac_cv_mpi_extra_asm_modules" != ""; then
153 WK_MSG_PRINT([mpi extra asm functions:])
154 for i in $ac_cv_mpi_extra_asm_modules; do
155     WK_MSG_PRINT([$i])
156     MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.o"
157 done
158 AC_MSG_RESULT()
159 fi
160 AC_SUBST(MPI_EXTRA_ASM_OBJS)
161
162
163 dnl Do we have zlib? Must do it here because Solaris failed
164 dnl when compiling a conftest (due to the "-lz" from LIBS).
165 AC_CHECK_HEADERS(zlib.h,
166                  [LIBS="$LIBS -lz"],
167                  AC_MSG_WARN([zlib missing - creating without ZLIB support!])
168                 )
169
170 dnl checking whether we have other cipher source files
171 CIPHER_EXTRA_OBJS=""
172 CIPHER_EXTRA_DIST=""
173 AC_CACHE_CHECK(for extra cipher modules, ac_cv_have_rsa_cipher,
174 [if test -f $srcdir/cipher/rsa.c && test -f $srcdir/cipher/rsa.h; then
175   ac_cv_have_rsa_cipher=yes; else ac_cv_have_rsa_cipher=no; fi])
176 if test $ac_cv_have_rsa_cipher = yes; then
177     AC_DEFINE(HAVE_RSA_CIPHER)
178     CIPHER_EXTRA_OBJS="rsa.o"
179     CIPHER_EXTRA_DIST="rsa.c rsa.h"
180 fi
181 AC_SUBST(CIPHER_EXTRA_OBJS)
182 AC_SUBST(CIPHER_EXTRA_DIST)
183
184
185 WK_DO_LINK_FILES
186
187 AC_OUTPUT([
188 Makefile
189 intl/Makefile
190 po/Makefile.in
191 util/Makefile
192 mpi/Makefile
193 cipher/Makefile
194 g10/Makefile
195 tools/Makefile
196 ],[echo timestamp >stamp-h; sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
197