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