New code to install forms so that appropriate icons are shown in the Viewer.
[gpgol.git] / configure.ac
1 # configure.ac - for GpgOL
2 # Copyright (C) 2005, 2006, 2007, 2008 g10 Code GmbH
3 #
4 # This file is free software; as a special exception the author gives
5 # unlimited permission to copy and/or distribute it, with or without
6 # modifications, as long as this notice is preserved.
7 #
8 # This program is distributed in the hope that it will be useful, but
9 # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
10 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
12 # Process this file with autoconf to produce a configure script.
13 AC_PREREQ(2.59)
14 min_automake_version="1.9.4"
15
16 # Remember to change the version number immediately *after* a release.
17 # Set my_issvn to "yes" for non-released code.  Remember to run an
18 # "svn up" and "autogen.sh" right before creating a distribution.
19 m4_define([my_version], [0.10.15])
20 m4_define([my_issvn], [yes])
21
22 m4_define([svn_revision], m4_esyscmd([echo -n $( (svn info 2>/dev/null \
23             || echo 'Revision: 0')|sed -n '/^Revision:/ {s/[^0-9]//gp;q;}')]))
24 AC_INIT([gpgol], 
25         [my_version[]m4_if(my_issvn,[yes],[-svn[]svn_revision])],
26         [bug-gpgol@g10code.com])
27
28 NEED_GPG_ERROR_VERSION=1.4
29 NEED_GPGME_API=1
30 NEED_GPGME_VERSION=1.1.0
31 NEED_LIBASSUAN_API=1
32 NEED_LIBASSUAN_VERSION=1.0.4
33
34
35 SVN_REVISION=svn_revision
36 PACKAGE=$PACKAGE_NAME
37 PACKAGE_GT=${PACKAGE_NAME}
38 VERSION=$PACKAGE_VERSION
39
40 AC_CONFIG_SRCDIR(src/gpgol.def)
41 AM_CONFIG_HEADER(config.h)
42 AC_CANONICAL_TARGET()
43 AM_INIT_AUTOMAKE
44
45 AC_GNU_SOURCE
46
47 have_gpg_error=no
48 have_libassuan=no
49
50 AC_SUBST(PACKAGE)
51 AC_SUBST(PACKAGE_GT)
52 AC_SUBST(VERSION)
53 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
54 AC_DEFINE_UNQUOTED(PACKAGE_GT, "$PACKAGE_GT",
55                                 [Name of this package for gettext])
56 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
57 AC_DEFINE_UNQUOTED(PACKAGE_BUGREPORT, "$PACKAGE_BUGREPORT",
58                                         [Bug report address])
59 AC_DEFINE_UNQUOTED(NEED_GPGME_VERSION, "$NEED_GPGME_VERSION",
60                                        [Required version of GPGME])
61 AC_DEFINE_UNQUOTED(SVN_REVISION, ${SVN_REVISION}, [Current SVN revision])
62
63
64 BUILD_TIMESTAMP=`date --iso-8601=minutes`
65 AC_SUBST(BUILD_TIMESTAMP)
66 changequote(,)dnl
67 BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
68 changequote([,])dnl
69 BUILD_FILEVERSION="${BUILD_FILEVERSION}${SVN_REVISION}"
70 AC_SUBST(BUILD_FILEVERSION)
71
72
73 AH_BOTTOM([
74 /* Some global constants. */
75
76 /* Force using of NLS for W32 even if no libintl has been found.  This is 
77    okay because we have our own gettext implementation for W32.  */
78 #if defined(HAVE_W32_SYSTEM) && !defined(ENABLE_NLS)
79 #define ENABLE_NLS 1
80 #endif
81 ])
82
83 AM_MAINTAINER_MODE
84
85 # Checks for programs.
86 AC_PROG_MAKE_SET
87 AM_SANITY_CHECK
88 missing_dir=`cd $ac_aux_dir && pwd`
89 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
90 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
91 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
92 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
93 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
94 AC_PROG_AWK
95 AC_PROG_CC
96 AC_PROG_CPP
97 AC_PROG_CXX
98 AC_PROG_INSTALL
99 AC_PROG_LN_S
100 AC_PROG_MAKE_SET
101 AC_PROG_RANLIB
102 AC_CHECK_TOOL(AR, ar, :)
103 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
104 AC_CHECK_TOOL(WINDRES, windres, :)
105
106
107 have_dosish_system=no
108 have_w32_system=no
109 case "${host}" in
110     *-mingw32*)
111         # special stuff for Windoze NT
112         ac_cv_have_dev_random=no
113         AC_DEFINE(USE_ONLY_8DOT3,1,
114                   [set this to limit filenames to the 8.3 format])
115         AC_DEFINE(HAVE_DRIVE_LETTERS,1,
116                   [defined if we must run on a stupid file system])
117         have_dosish_system=yes
118         have_w32_system=yes
119         ;;
120     *)
121     AC_MSG_ERROR([[
122 ***
123 *** This software my only be build for W32 systems.  Use
124 ***     ./autogen.sh --build-w32
125 *** to prepare it for such a build.
126 ***]])
127        ;;
128 esac
129
130 if test "$have_dosish_system" = yes; then
131    AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
132              [Defined if we run on some of the PCDOS like systems
133               (DOS, Windoze. OS/2) with special properties like
134               no file modes])
135 fi
136 AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
137
138 if test "$have_w32_system" = yes; then
139    AC_DEFINE(HAVE_W32_SYSTEM,1, [Defined if we run on a W32 API based system])
140 fi
141 AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
142
143
144
145 #
146 # Checks for libraries.
147 #
148
149
150 AM_PATH_GPGME("$NEED_GPGME_API:$NEED_GPGME_VERSION",
151                have_gpgme=yes,have_gpgme=no)
152 AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION",
153                   have_gpg_error=yes,have_gpg_error=no)
154 AC_DEFINE(GPG_ERR_SOURCE_DEFAULT, GPG_ERR_SOURCE_USER_2,
155           [The default error source for GpgOL.])
156 AM_PATH_LIBASSUAN("$NEED_LIBASSUAN_API:$NEED_LIBASSUAN_VERSION",
157                   have_libassuan=yes,have_libassuan=no)
158
159 AH_BOTTOM([
160 /* We don't want the old assuan codes anymore. */
161 #define _ASSUAN_ONLY_GPG_ERRORS 1
162 ])
163
164
165
166 # Note, that autogen.sh greps for the next line.
167 AM_GNU_GETTEXT_VERSION(0.12.1)
168 AM_GNU_GETTEXT([external])
169 # We always want NLs, despite what the above macro figures out.
170 USE_NLS=yes
171
172 # Checks for header files.
173 AC_HEADER_STDC
174 AC_CHECK_HEADERS(string.h unistd.h langinfo.h termio.h locale.h)
175
176 AC_CHECK_FUNCS(stpcpy)
177
178 # Checks for typedefs, structures, and compiler characteristics.
179 AC_C_CONST
180 AC_C_INLINE
181 AC_TYPE_SIZE_T
182 AC_TYPE_SIGNAL
183
184 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
185
186 # Add some extra libs here so that previous tests don't fail for
187 # mysterious reasons - the final link step should bail out.
188 if test "$have_w32_system" = yes; then
189    W32LIBS="-lwsock32"
190 fi
191
192 if test "$GCC" = yes; then
193     CFLAGS="$CFLAGS -Wall -mms-bitfields"
194     CXXFLAGS="$CXXFLAGS -Wall -mms-bitfields"
195     if test "$USE_MAINTAINER_MODE" = "yes"; then
196         CFLAGS="$CFLAGS -Wcast-align -Wshadow -Wstrict-prototypes"
197         CFLAGS="$CFLAGS -Wno-format-y2k -Wformat-security"
198         CXXFLAGS="$CXXFLAGS -Wcast-align -Wshadow"
199         CXXFLAGS="$CXXFLAGS -Wno-format-y2k -Wformat-security"
200     fi
201 fi
202
203 AC_SUBST(W32LIBS)
204
205
206
207 #
208 # Print errors here so that they are visible all
209 # together and the user can acquire them all together.
210 #
211 die=no
212 if test "$have_gpg_error" = "no"; then
213    die=yes
214    AC_MSG_NOTICE([[
215 ***  
216 *** You need libgpg-error to build this program.
217 **  This library is for example available at
218 ***   ftp://ftp.gnupg.org/pub/gcrypt/libgpg-error
219 *** (at least version $NEED_GPG_ERROR_VERSION is required.)
220 ***]])
221 fi
222 if test "$have_gpgme" = "no"; then
223    die=yes
224    AC_MSG_NOTICE([[
225 ***  
226 *** You need gpgme to build this program.
227 **  This library is for example available at
228 ***   ftp://ftp.gnupg.org/gcrypt/gpgme/
229 *** (at least version $NEED_GPGME_VERSION is required.)
230 ***]])
231 fi
232 if test "$have_libassuan" = "no"; then
233    die=yes
234    AC_MSG_NOTICE([[
235 ***
236 *** You need libassuan to build this program.
237 *** This library is for example available at
238 ***   ftp://ftp.gnupg.org/pub/gcrypt/libassuan/
239 *** (at least version $NEED_LIBASSUAN_VERSION is required).
240 ***]])
241 fi
242 if test "$die" = "yes"; then
243     AC_MSG_ERROR([[
244 ***
245 *** Required libraries not found. Please consult the above messages
246 *** and install them before running configure again.
247 ***]])
248 fi
249
250
251 AC_CONFIG_FILES([ Makefile
252 src/Makefile
253 src/versioninfo.rc        
254 forms/Makefile
255 doc/Makefile
256 po/Makefile.in
257 m4/Makefile
258 ])
259 AC_OUTPUT