Bumping version and mark it as CVS.
[pinentry.git] / configure.ac
1 # configure.ac
2 # Copyright (C) 1999 Robert Bihlmeyer <robbe@orcus.priv.at>
3 # Copyright (C) 2001, 2002 g10 Code GmbH
4
5 # This file is part of PINENTRY.
6
7 # PINENTRY is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2 of the License, or
10 # (at your option) any later version.
11
12 # PINENTRY is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU General Public License for more details.
16
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
20  
21 # (Process this file with autoconf to produce a configure script.)
22 AC_REVISION($Revision$)
23
24 AC_PREREQ(2.52)
25 AC_INIT(pinentry, 0.6.3-cvs, [gpa-dev@gnupg.org])
26 AM_CONFIG_HEADER(config.h)
27 AC_CONFIG_SRCDIR(pinentry/pinentry.h)
28 AM_INIT_AUTOMAKE($PACKAGE_NAME, $PACKAGE_VERSION)
29 AH_TOP([
30 /* We need this, because some autoconf tests rely on this (e.g. stpcpy)
31    and it should be used for new programs anyway */
32 #define _GNU_SOURCE  1
33 ])
34 AM_MAINTAINER_MODE
35
36 AC_CANONICAL_HOST
37
38 dnl Checks for compiler features.
39 if test "$GCC" = yes; then
40     CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
41 fi
42
43 dnl Checks for programs.
44 AC_PROG_CC
45 AC_PROG_CPP
46 AC_PROG_INSTALL
47 AC_PROG_RANLIB
48
49 dnl Checks for library functions.
50 AC_CHECK_FUNCS(seteuid stpcpy)
51 GNUPG_CHECK_MLOCK
52
53 dnl Checks for libassuan.
54 AC_CHECK_FUNCS(fopencookie,,[
55     AC_MSG_ERROR([[
56 ***
57 *** fopencookie(3) is needed to build this package.
58 *** We will provide an replacement in a later release.
59 ***]])])
60
61 dnl Checks for libsecmem.
62 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
63 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
64
65 AC_PATH_PROG(SETCAP, setcap, :, "$PATH:/sbin:/usr/sbin")
66 AC_CHECK_LIB(cap, cap_set_proc, [
67   AC_DEFINE(USE_CAPABILITIES,1,[The capabilities support library is installed])
68   LIBCAP=-lcap
69 ])
70 AC_SUBST(LIBCAP)
71
72 dnl
73 dnl Check for curses pinentry program.
74 dnl
75 AC_ARG_ENABLE(pinentry-curses,
76             AC_HELP_STRING([--enable-pinentry-curses], [build curses pinentry]),
77             pinentry_curses=$enableval, pinentry_curses=maybe)
78 AC_ARG_ENABLE(fallback-curses,
79             AC_HELP_STRING([--enable-fallback-curses], [include curses fallback]),
80             fallback_curses=$enableval, fallback_curses=maybe)
81
82 dnl
83 dnl Checks for curses libraries.  Deal correctly with $pinentry_curses = maybe
84 dnl and $fallback_curses = maybe.
85 dnl
86 if test "$pinentry_curses" != "no" -o "$fallback_curses" != "no"; then
87   IU_LIB_CURSES
88 fi
89 if test "$LIBCURSES"; then
90   if test "$pinentry_curses" != "no"; then
91     pinentry_curses=yes
92   fi
93   if test "$fallback_curses" != "no"; then
94     fallback_curses=yes
95     AC_DEFINE(FALLBACK_CURSES, 1,
96               [The GUI pinentries should fall back to curses if X is not available.])
97   fi
98 else
99   if test "$pinentry_curses" = "yes" -o "$fallback_curses" = "yes"; then
100     AC_MSG_ERROR([[
101 *** The curses library is required. The latest version of
102 *** ncurses is always available from ftp://ftp.gnu.org/gnu/ncurses/.
103 ]])
104   fi
105   pinentry_curses=no
106   fallback_curses=no
107 fi
108 AM_CONDITIONAL(BUILD_LIBPINENTRY_CURSES, test "$pinentry_curses" = "yes" -o "$fallback_curses" = "yes")
109 AM_CONDITIONAL(BUILD_PINENTRY_CURSES, test "$pinentry_curses" = "yes")
110 AM_CONDITIONAL(FALLBACK_CURSES, test "$fallback_curses" = "yes")
111
112 if test "$pinentry_curses" = "yes" -o "$fallback_curses" = "yes"; then
113 dnl Additional checks for Curses pinentry.
114 AM_ICONV
115 fi
116
117 dnl
118 dnl Check for GTK+ pinentry program.
119 dnl
120 AC_ARG_ENABLE(pinentry-gtk,
121             AC_HELP_STRING([--enable-pinentry-gtk], [build GTK+ pinentry]),
122             pinentry_gtk=$enableval, pinentry_gtk=maybe)
123
124 dnl
125 dnl Checks for GTK+ libraries.  Deal correctly with $pinentry_gtk = maybe.
126 dnl
127 if test "$pinentry_gtk" != "no"; then
128 AM_PATH_GLIB(1.2.0,,
129 if test "$pinentry_gtk" = "yes"; then
130     AC_MSG_ERROR([[
131 *** GLIB 1.2.0 or newer is required. The latest version of GLIB
132 *** is always available from ftp://ftp.gtk.org/.
133 ]])
134 else
135     pinentry_gtk=no
136 fi)
137 fi
138
139 if test "$pinentry_gtk" != "no"; then
140 AM_PATH_GTK(1.2.0,
141     AC_DEFINE(HAVE_GTK, 1, [Defined if GTK is available]),
142 if test "$pinentry_gtk" = "yes"; then
143     AC_MSG_ERROR([[
144 *** GTK+ 1.2.0 or newer is required. The latest version of GTK+
145 *** is always available form ftp://ftp.gtk.org/.
146 ]])
147 else
148     pinentry_gtk=no
149 fi)
150 fi
151
152 dnl If we have come so far, GTK+ pinentry can be build.
153 if test "$pinentry_gtk" != "no"; then
154     pinentry_gtk=yes
155 fi
156 AM_CONDITIONAL(BUILD_PINENTRY_GTK, test "$pinentry_gtk" = "yes")
157
158 dnl if test "$pinentry_gtk" = "yes"; then
159 dnl Additional checks for GTK+ pinentry.
160 dnl End of additional checks for GTK+ pinentry.
161 dnl fi
162
163
164 dnl
165 dnl Check for Qt pinentry program.
166 dnl
167 AC_ARG_ENABLE(pinentry-qt,
168             AC_HELP_STRING([--enable-pinentry-qt], [build Qt pinentry]),
169             pinentry_qt=$enableval, pinentry_qt=maybe)
170 dnl
171 dnl Checks for Qt libraries.  Deal correctly with $pinentry_qt = maybe.
172 dnl
173 if test "$pinentry_qt" != "no"; then
174 QT_CHECK_COMPILERS
175 QT_PATH
176 if test $have_qt = "no"; then
177         if test $pinentry_qt = "yes"; then
178           AC_MSG_ERROR([Qt ($qt_minversion) $ac_qt_notfound not found. Please check your installation!
179           For more details about this problem, look at the end of config.log.$missing_qt_mt])
180         else
181           pinentry_qt="no"        
182         fi
183 fi
184 if test $have_moc = "no"; then
185         if test $pinentry_qt = "yes"; then
186         AC_MSG_ERROR([No Qt meta object compiler (moc) found!
187         Please check whether you installed Qt correctly.
188         You need to have a running moc binary.
189         configure tried to run $ac_cv_path_moc and the test didn't
190         succeed. If configure shouldn't have tried this one, set
191         the environment variable MOC to the right one before running
192         configure.
193         ])
194         else
195           pinentry_qt="no"        
196         fi
197 fi
198 fi
199
200 dnl If we have come so far, Qt pinentry can probably be build.
201 if test "$pinentry_qt" != "no"; then
202     pinentry_qt=yes
203 fi
204 AM_CONDITIONAL(BUILD_PINENTRY_QT, test "$pinentry_qt" = "yes")
205
206 dnl if test "$pinentry_qt" = "yes"; then
207 dnl dnl Additional checks for Qt pinentry.
208 dnl dnl End of checks for Qt pinentry.
209 dnl fi
210
211
212 AC_CONFIG_FILES([
213 assuan/Makefile
214 secmem/Makefile
215 pinentry/Makefile
216 curses/Makefile
217 gtk/Makefile
218 qt/Makefile
219 Makefile
220 ])
221
222 AC_OUTPUT
223
224 AC_MSG_NOTICE([
225         Pinentry v${VERSION} has been configured as follows:
226
227         Curses Pinentry: $pinentry_curses
228         GTK+ Pinentry: $pinentry_gtk
229         Qt Pinentry: $pinentry_qt
230
231         Fallback to Curses: $fallback_curses
232 ])