2007-08-13 Marcus Brinkmann <marcus@g10code.de>
[gpgol.git] / configure.ac
1 # configure.ac - for GPGol
2 # Copyright (C) 2005, 2006 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.9.92])
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], my_version[]m4_if(my_issvn,[yes],[-svn[]svn_revision]),
25         [bug-gpgol@g10code.com])
26
27 NEED_GPGME_API=1
28 NEED_GPGME_VERSION=1.1.0
29
30
31 SVN_REVISION=svn_revision
32 PACKAGE=$PACKAGE_NAME
33 PACKAGE_GT=${PACKAGE_NAME}
34 VERSION=$PACKAGE_VERSION
35
36 AC_CONFIG_SRCDIR(src/gpgol.def)
37 AM_CONFIG_HEADER(config.h)
38 AC_CANONICAL_TARGET()
39 AM_INIT_AUTOMAKE
40
41 AC_GNU_SOURCE
42
43 AC_SUBST(PACKAGE)
44 AC_SUBST(PACKAGE_GT)
45 AC_SUBST(VERSION)
46 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
47 AC_DEFINE_UNQUOTED(PACKAGE_GT, "$PACKAGE_GT",
48                                 [Name of this package for gettext])
49 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
50 AC_DEFINE_UNQUOTED(PACKAGE_BUGREPORT, "$PACKAGE_BUGREPORT",
51                                         [Bug report address])
52 AC_DEFINE_UNQUOTED(NEED_GPGME_VERSION, "$NEED_GPGME_VERSION",
53                                        [Required version of GPGME])
54
55
56 BUILD_TIMESTAMP=`date --iso-8601=minutes`
57 AC_SUBST(BUILD_TIMESTAMP)
58 changequote(,)dnl
59 BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
60 changequote([,])dnl
61 BUILD_FILEVERSION="${BUILD_FILEVERSION}${SVN_REVISION}"
62 AC_SUBST(BUILD_FILEVERSION)
63
64
65 AH_BOTTOM([
66 /* Some global constants. */
67
68 /* Force using of NLS for W32 even if no libintl has been found.  This is 
69    okay because we have our own gettext implementation for W32.  */
70 #if defined(HAVE_W32_SYSTEM) && !defined(ENABLE_NLS)
71 #define ENABLE_NLS 1
72 #endif
73 ])
74
75 AM_MAINTAINER_MODE
76
77 # Checks for programs.
78 AC_PROG_MAKE_SET
79 AM_SANITY_CHECK
80 missing_dir=`cd $ac_aux_dir && pwd`
81 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
82 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
83 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
84 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
85 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
86 AC_PROG_AWK
87 AC_PROG_CC
88 AC_PROG_CPP
89 AC_PROG_CXX
90 AC_PROG_INSTALL
91 AC_PROG_LN_S
92 AC_PROG_MAKE_SET
93 AC_PROG_RANLIB
94 AC_CHECK_TOOL(AR, ar, :)
95 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
96 AC_CHECK_TOOL(WINDRES, windres, :)
97
98
99 have_dosish_system=no
100 have_w32_system=no
101 case "${host}" in
102     *-mingw32*)
103         # special stuff for Windoze NT
104         ac_cv_have_dev_random=no
105         AC_DEFINE(USE_ONLY_8DOT3,1,
106                   [set this to limit filenames to the 8.3 format])
107         AC_DEFINE(HAVE_DRIVE_LETTERS,1,
108                   [defined if we must run on a stupid file system])
109         have_dosish_system=yes
110         have_w32_system=yes
111         ;;
112     *)
113     AC_MSG_ERROR([[
114 ***
115 *** This software my only be build for W32 systems.  Use
116 ***     ./autogen.sh --build-w32
117 *** to prepare it for such a build.
118 ***]])
119        ;;
120 esac
121
122 if test "$have_dosish_system" = yes; then
123    AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
124              [Defined if we run on some of the PCDOS like systems
125               (DOS, Windoze. OS/2) with special properties like
126               no file modes])
127 fi
128 AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
129
130 if test "$have_w32_system" = yes; then
131    AC_DEFINE(HAVE_W32_SYSTEM,1, [Defined if we run on a W32 API based system])
132 fi
133 AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
134
135
136
137 #
138 # Checks for libraries.
139 #
140
141
142 AM_PATH_GPGME("$NEED_GPGME_API:$NEED_GPGME_VERSION",
143                have_gpgme=yes,have_gpgme=no)
144 AM_PATH_GPG_ERROR(0.5,, AC_MSG_ERROR([libgpg-error was not found]))
145
146
147 # Note, that autogen.sh greps for the next line.
148 AM_GNU_GETTEXT_VERSION(0.12.1)
149 AM_GNU_GETTEXT([external])
150 # We always want NLs, despite what the above macro figures out.
151 USE_NLS=yes
152
153 # Checks for header files.
154 AC_HEADER_STDC
155 AC_CHECK_HEADERS(string.h unistd.h langinfo.h termio.h locale.h)
156
157 AC_CHECK_FUNCS(stpcpy)
158
159 # Checks for typedefs, structures, and compiler characteristics.
160 AC_C_CONST
161 AC_C_INLINE
162 AC_TYPE_SIZE_T
163 AC_TYPE_SIGNAL
164
165 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
166
167 # Add some extra libs here so that previous tests don't fail for
168 # mysterious reasons - the final link step should bail out.
169 if test "$have_w32_system" = yes; then
170    W32LIBS="-lwsock32"
171 fi
172
173 if test "$GCC" = yes; then
174     CFLAGS="$CFLAGS -Wall -mms-bitfields"
175     CXXFLAGS="$CXXFLAGS -Wall -mms-bitfields"
176     if test "$USE_MAINTAINER_MODE" = "yes"; then
177         CFLAGS="$CFLAGS -Wcast-align -Wshadow -Wstrict-prototypes"
178         CFLAGS="$CFLAGS -Wno-format-y2k -Wformat-security"
179         CXXFLAGS="$CXXFLAGS -Wcast-align -Wshadow"
180         CXXFLAGS="$CXXFLAGS -Wno-format-y2k -Wformat-security"
181     fi
182 fi
183
184 AC_SUBST(W32LIBS)
185
186
187
188 #
189 # Print errors here so that they are visible all
190 # together and the user can acquire them all together.
191 #
192 die=no
193 if test "$have_gpgme" = "no"; then
194    die=yes
195    AC_MSG_NOTICE([[
196 ***  
197 *** You need gpgme to build this program.
198 **  This library is for example available at
199 ***   ftp://ftp.gnupg.org/gcrypt/gpgme/
200 *** (at least version $NEED_GPGME_VERSION is required.)
201 ***]])
202 fi
203 if test "$die" = "yes"; then
204     AC_MSG_ERROR([[
205 ***
206 *** Required libraries not found. Please consult the above messages
207 *** and install them before running configure again.
208 ***]])
209 fi
210
211
212 AC_CONFIG_FILES([ Makefile
213 src/Makefile
214 src/versioninfo.rc        
215 po/Makefile.in
216 m4/Makefile
217 ])
218 AC_OUTPUT