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