2002-04-05 Marcus Brinkmann <marcus@g10code.de>
[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 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
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=no)
158 dnl
159 dnl Checks for KDE libraries.  Deal correctly with $pinentry_kde = maybe.
160 dnl
161 if test "$pinentry_kde" != "no"; then
162 AC_CHECK_COMPILERS
163 AC_PATH_KDE
164 fi
165
166 dnl If we have come so far, KDE pinentry can probably be build.
167 if test "$pinentry_kde" != "no"; then
168     pinentry_kde=yes
169 fi
170 AM_CONDITIONAL(BUILD_PINENTRY_KDE, test "$pinentry_kde" = "yes")
171
172 dnl if test "$pinentry_kde" = "yes"; then
173 dnl dnl Additional checks for KDE pinentry.
174 dnl dnl End of checks for KDE pinentry.
175 dnl fi
176
177
178 AC_CONFIG_FILES([
179 assuan/Makefile
180 secmem/Makefile
181 pinentry/Makefile
182 curses/Makefile
183 gtk/Makefile
184 kde/Makefile
185 Makefile
186 ])
187
188 AC_OUTPUT
189
190 AC_MSG_NOTICE([
191         Pinentry v${VERSION} has been configured as follows:
192
193         Curses Pinentry: $pinentry_curses
194         GTK+ Pinentry: $pinentry_gtk
195         KDE Pinentry: $pinentry_kde
196 ])