changed configuration stuff, replaced some Makefile.am by distfiles.
[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 AC_CONFIG_HEADER(config.h)
9
10
11 VERSION=0.0.0
12 PACKAGE=g10
13 AC_SUBST(VERSION)
14 AC_SUBST(PACKAGE)
15 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
16 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
17
18 AC_ARG_ENABLE(m-debug,
19 [  --enable-m-debug    Enable debugging of memory allocation])
20 if test "$enableval" = y || test "$enableval" = yes; then
21     AC_DEFINE(M_DEBUG)
22 fi
23
24 dnl some additional macros
25
26 dnl WK_CHECK_TYPEDEF(TYPE, HAVE_NAME)
27 AC_DEFUN(WK_CHECK_TYPEDEF,
28 [AC_MSG_CHECKING(for $1 typedef)
29 AC_CACHE_VAL(wk_cv_typedef_$1,
30 [AC_TRY_COMPILE([#include <stdlib.h>
31 #include <sys/types.h>], [
32 #undef $1
33 int a = sizeof($1);
34 ], wk_cv_typedef_$1=yes, wk_cv_typedef_$1=no )])
35 AC_MSG_RESULT($wk_cv_typedef_$1)
36 if test "$wk_cv_typedef_$1" = yes; then
37     AC_DEFINE($2)
38 fi
39 ])
40
41
42
43
44 dnl
45 AC_CANONICAL_SYSTEM
46 AC_MSG_CHECKING(cached information)
47 hostcheck="$target"
48 AC_CACHE_VAL(ac_cv_mpi_hostcheck, [ ac_cv_mpi_hostcheck="$hostcheck" ])
49 if test "$ac_cv_mpi_hostcheck" != "$hostcheck"; then
50     AC_MSG_RESULT(changed)
51     AC_MSG_WARN(config.cache exists!)
52     AC_MSG_ERROR(you must do 'make distclean' first to compile for
53 different target or different parameters.)
54 else
55     AC_MSG_RESULT(ok)
56 fi
57
58
59 dnl Checks for programs.
60
61 AC_PROG_MAKE_SET
62 AC_PROG_RANLIB
63 AC_PROG_INSTALL
64 AC_PROG_CC
65 AC_PROG_CPP
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 AC_CHECK_HEADERS(zlib.h,
75                  [LIBS="$LIBS -lz"],
76                  AC_MSG_WARN([zlib missing - creating without ZLIB support!])
77                 )
78
79
80 dnl Checks for typedefs, structures, and compiler characteristics.
81 AC_C_CONST
82 AC_C_INLINE
83 AC_TYPE_SIZE_T
84
85
86 dnl autoconf doesn't support a default value for AC_C_BIGENDIAN
87 dnl so here is the modified version
88 if test "$cross_compiling" = yes; then
89     AC_MSG_WARN(cross compiling; assuming little endianess)
90 fi
91 AC_CACHE_CHECK(for little endianess, ac_cv_c_littleendian,
92 [ac_cv_c_littleendian=unknown
93 # See if sys/param.h defines the BYTE_ORDER macro.
94 AC_TRY_COMPILE([#include <sys/types.h>
95 #include <sys/param.h>], [
96 #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
97  bogus endian macros
98 #endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
99 AC_TRY_COMPILE([#include <sys/types.h>
100 #include <sys/param.h>], [
101 #if BYTE_ORDER != BIG_ENDIAN
102  not big endian
103 #endif], ac_cv_c_littleendian=no, ac_cv_c_littleendian=yes)])
104 if test "$ac_cv_c_littleendian" = unknown; then
105 AC_TRY_RUN([main () {
106   /* Are we little or big endian?  From Harbison&Steele.  */
107   union
108   {
109     long l;
110     char c[sizeof (long)];
111   } u;
112   u.l = 1;
113   exit (u.c[sizeof (long) - 1] == 1);
114 }], ac_cv_c_littleendian=yes, ac_cv_c_littleendian=no, ac_cv_c_littleendian=yes)
115 fi])
116
117 if test "$ac_cv_c_littleendian" = yes; then
118   AC_DEFINE(LITTLE_ENDIAN_HOST)
119 else
120   AC_DEFINE(BIG_ENDIAN_HOST)
121 fi
122
123
124 WK_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
125 WK_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
126 WK_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
127 WK_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
128 WK_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
129
130 AC_CHECK_SIZEOF(unsigned short, 16)
131 AC_CHECK_SIZEOF(unsigned int, 32)
132 AC_CHECK_SIZEOF(unsigned long, 32)
133
134
135
136
137 dnl Checks for library functions.
138 AC_FUNC_VPRINTF
139 AC_CHECK_FUNCS(strerror strtol strtoul)
140
141
142
143 dnl setup assembler stuff
144 if test -f ./mpi/config.links ; then
145     . ./mpi/config.links
146     AC_LINK_FILES( ${mpi_ln_src}, ${mpi_ln_dst} )
147 else
148     AC_MSG_ERROR([mpi/config.links missing!])
149 fi
150
151
152
153 dnl checking whether we have the RSA source
154 dnl Add stuff to insert this into the makefile
155 dnl AC_SUBST(add_cipher_SOURCES)
156 AC_CACHE_CHECK(for rsa source, ac_cv_have_rsa_cipher,
157 [if test -f cipher/rsa.c && test -f cipher/rsa.h; then
158   ac_cv_have_rsa_cipher=yes; else ac_cv_have_rsa_cipher=no; fi])
159 if test $ac_cv_have_rsa_cipher = yes; then
160     AC_DEFINE(HAVE_RSA_CIPHER)
161 fi
162
163
164 AC_OUTPUT([ Makefile    \
165             util/Makefile    \
166             mpi/Makefile \
167             cipher/Makefile \
168             g10/Makefile     \
169             tools/Makefile   \
170 ], [echo timestamp > stamp-h ] )
171