Update with more accurate information.
[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-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
37 dnl Checks for compiler features.
38 if test "$GCC" = yes; then
39     CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
40 fi
41
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
66 dnl
67 dnl Check for curses pinentry program.
68 dnl
69 AC_ARG_ENABLE(pinentry-curses,
70             AC_HELP_STRING([--enable-pinentry-curses], [build curses pinentry]),
71             pinentry_curses=$enableval, pinentry_curses=maybe)
72
73 dnl
74 dnl Checks for curses libraries.  Deal correctly with $pinentry_curses = maybe.
75 dnl
76 if test "$pinentry_curses" != "no"; then
77   IU_LIB_CURSES
78 fi
79 if test "$pinentry_curses" != no -a "$LIBCURSES"; then
80   pinentry_curses=yes
81 else
82   if test "$pinentry_curses" = yes; then
83     AC_MSG_ERROR([[
84 *** The curses library is required. The latest version of
85 *** ncurses is always available from ftp://ftp.gnu.org/gnu/ncurses/.
86 ]])
87   fi
88   pinentry_curses=no
89 fi
90 AM_CONDITIONAL(BUILD_PINENTRY_CURSES, test "$pinentry_curses" = "yes")
91
92
93 dnl
94 dnl Check for GTK+ pinentry program.
95 dnl
96 AC_ARG_ENABLE(pinentry-gtk,
97             AC_HELP_STRING([--enable-pinentry-gtk], [build GTK+ pinentry]),
98             pinentry_gtk=$enableval, pinentry_gtk=maybe)
99
100 dnl
101 dnl Checks for GTK+ libraries.  Deal correctly with $pinentry_gtk = maybe.
102 dnl
103 if test "$pinentry_gtk" != "no"; then
104 AM_PATH_GLIB(1.2.0,,
105 if test "$pinentry_gtk" = "yes"; then
106     AC_MSG_ERROR([[
107 *** GLIB 1.2.0 or newer is required. The latest version of GLIB
108 *** is always available from ftp://ftp.gtk.org/.
109 ]])
110 else
111     pinentry_gtk=no
112 fi)
113 fi
114
115 if test "$pinentry_gtk" != "no"; then
116 AM_PATH_GTK(1.2.0,
117     AC_DEFINE(HAVE_GTK, 1, [Defined if GTK is available]),
118 if test "$pinentry_gtk" = "yes"; then
119     AC_MSG_ERROR([[
120 *** GTK+ 1.2.0 or newer is required. The latest version of GTK+
121 *** is always available form ftp://ftp.gtk.org/.
122 ]])
123 else
124     pinentry_gtk=no
125 fi)
126 fi
127
128 dnl If we have come so far, GTK+ pinentry can be build.
129 if test "$pinentry_gtk" != "no"; then
130     pinentry_gtk=yes
131 fi
132 AM_CONDITIONAL(BUILD_PINENTRY_GTK, test "$pinentry_gtk" = "yes")
133
134 if test "$pinentry_gtk" = "yes"; then
135 dnl Additional checks for GTK+ pinentry.
136 AC_PATH_PROG(SETCAP, setcap, :, "$PATH:/sbin:/usr/sbin")
137 AC_CHECK_LIB(cap, cap_set_proc, [
138   AC_DEFINE(USE_CAPABILITIES,1,[The capabilities support library is installed])
139   LIBCAP=-lcap
140 ])
141 AC_SUBST(LIBCAP)
142
143 AC_CHECK_HEADERS(inttypes.h, , need_inttypes=yes)
144 if test x$need_inttypes = xyes; then
145   AC_CHECK_SIZEOF(unsigned int, 4)
146   AC_CHECK_SIZEOF(unsigned long, 4)
147 fi
148 dnl End of additional checks for GTK+ pinentry.
149 fi
150
151
152 dnl
153 dnl Check for KDE pinentry program.
154 dnl
155 AC_ARG_ENABLE(pinentry-kde,
156             AC_HELP_STRING([--enable-pinentry-kde], [build KDE pinentry]),
157             pinentry_kde=$enableval, pinentry_kde=maybe)
158 dnl
159 dnl Checks for GTK+ libraries.  Deal correctly with $pinentry_gtk = maybe.
160 dnl
161 if test "$pinentry_kde" != "no"; then
162 echo "XXX Mandatory checks for KDE are coming here."
163 fi
164
165 dnl If we have come so far, KDE pinentry can probably be build.
166 if test "$pinentry_kde" != "no"; then
167     pinentry_kde=yes
168 fi
169 AM_CONDITIONAL(BUILD_PINENTRY_KDE, test "$pinentry_kde" = "yes")
170
171 if test "$pinentry_kde" = "yes"; then
172 dnl Additional checks for KDE pinentry.
173 AC_PROG_CXX
174 echo "XXX Optional checks for KDE are coming here."
175
176 dnl End of checks for KDE pinentry.
177 fi
178
179
180 AC_CONFIG_FILES([
181 assuan/Makefile
182 secmem/Makefile
183 pinentry/Makefile
184 curses/Makefile
185 gtk/Makefile
186 kde/Makefile
187 Makefile
188 ])
189
190 AC_OUTPUT
191
192 AC_MSG_NOTICE([
193         Pinentry v${VERSION} has been configured as follows:
194
195         Curses Pinentry: $pinentry_curses
196         GTK+ Pinentry: $pinentry_gtk
197         KDE Pinentry: $pinentry_kde
198 ])