add gtksecentry/secmem from gpg pinentry
[jelmer/krb5-auth-dialog.git] / configure.ac
1 AC_INIT(src/krb5-auth-dialog.c)
2
3 AM_INIT_AUTOMAKE(krb5-auth-dialog, 0.7)
4 AM_CONFIG_HEADER(config.h)
5
6 AM_MAINTAINER_MODE
7
8 GETTEXT_PACKAGE=krb5-auth-dialog
9 AC_SUBST(GETTEXT_PACKAGE)
10 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package])
11
12
13 AC_PROG_CC
14 AC_ISC_POSIX
15 AC_HEADER_STDC
16 AM_PROG_LIBTOOL
17 AC_PROG_INTLTOOL
18 AM_PROG_LEX
19 AC_PROG_YACC
20
21 ALL_LINGUAS="nb"
22 AM_GLIB_GNU_GETTEXT
23
24 GTK_REQUIRED="2.4.0"
25 GLADE_REQUIRED="2.4.0"
26 DBUS_REQUIRED="0.60"
27 GCONF_REQUIRED="2.8"
28 LIBNOTIFY_REQUIRED="0.4"
29
30 PKG_CHECK_MODULES(GTK, gtk+-2.0 >= $GTK_REQUIRED)
31 PKG_CHECK_MODULES(GLADE, libglade-2.0 >= $GLADE_REQUIRED)
32 PKG_CHECK_MODULES(DBUS, dbus-glib-1 >= $DBUS_REQUIRED)
33 PKG_CHECK_MODULES(GCONF, gconf-2.0 >= $GCONF_REQUIRED)
34
35 dnl --enable-debug=(yes|no)
36 AC_ARG_ENABLE(debug,
37               AC_HELP_STRING([--enable-debug=no/yes],
38                              [enable debugging output]),[],[enable_debug=no])
39 if test x"$enable_debug" = x"yes"; then
40    AC_DEFINE(ENABLE_DEBUG, 1, [whether debugging is enabled])
41 fi
42
43
44 AC_PATH_PROG([KRB5_CONFIG], krb5-config, none, $PATH:/usr/kerberos/bin)
45 if test "x$KRB5_CONFIG" != "xnone"; then
46    KRB5_LIBS="`${KRB5_CONFIG} --libs krb5`"
47    KRB5_CFLAGS="`${KRB5_CONFIG} --cflags krb5`"
48    AC_SUBST(KRB5_CFLAGS)
49    AC_SUBST(KRB5_LIBS)
50 fi
51
52 dnl Check for API differences between Heimdal and MIT Kerberos
53 savedCFLAGS="$CFLAGS"
54 CFLAGS="$KRB5_CFLAGS $CFLAGS"
55 savedLIBS="$LIBS"
56 LIBS="$KRB5_LIBS $LIBS"
57 AC_CHECK_MEMBERS(krb5_creds.ticket_flags,,,[#include <krb5.h>])
58 AC_CHECK_MEMBERS(krb5_creds.flags.b.forwardable,,,[#include <krb5.h>])
59 AC_CHECK_MEMBERS(krb5_creds.flags.b.renewable,,,[#include <krb5.h>])
60 AC_CHECK_MEMBERS(krb5_creds.flags.b.proxiable,,,[#include <krb5.h>])
61 AC_CHECK_MEMBERS(krb5_creds.flags,,,[#include <krb5.h>])
62 AC_CHECK_FUNCS([krb5_get_renewed_creds])
63 AC_MSG_CHECKING(if a krb5_principal->realm is a char*)
64 AC_COMPILE_IFELSE([
65 $ac_includes_default
66 #include <krb5.h>
67 #include <string.h>
68 int
69 main(int argc, char **argv)
70 {
71         static krb5_principal foo;
72         return strlen(foo->realm);
73 }],[AC_DEFINE(HAVE_KRB5_PRINCIPAL_REALM_AS_STRING,1,[Define if the realm of a krb5_principal is a char*])
74 AC_MSG_RESULT(yes)],
75 AC_MSG_RESULT(no))
76
77 AC_MSG_CHECKING(if a krb5_principal->realm is a krb5_data)
78 AC_COMPILE_IFELSE([
79 $ac_includes_default
80 #include <krb5.h>
81 int
82 main(int argc, char **argv)
83 {
84         static krb5_principal foo;
85         static krb5_data bar;
86         foo->realm = bar;
87         return 0;
88 }],[AC_DEFINE(HAVE_KRB5_PRINCIPAL_REALM_AS_DATA,1,[Define if the realm of a krb5_principal is a krb5_data])
89 AC_MSG_RESULT(yes)],
90 AC_MSG_RESULT(no))
91 CFLAGS="$savedCFLAGS"
92 LIBS="$savedLIBS"
93
94 dnl NetworkManager
95 AC_MSG_CHECKING([whether to enable NetworkManager support])
96 AC_ARG_ENABLE([network-manager],
97         AS_HELP_STRING([--enable-network-manager],[Whether to enable automatic network status with NetworkManager]),
98         [],[enable_network_manager=autodetect])
99 AC_MSG_RESULT([$enable_network_manager])
100
101 if test "x$enable_network_manager" != "xno"; then
102         PKG_CHECK_MODULES([NETWORK_MANAGER],[libnm_glib >= 0.5],
103                 [enable_network_manager=yes],[enable_network_manager=no])
104         AC_SUBST([NETWORK_MANAGER_CFLAGS])
105         AC_SUBST([NETWORK_MANAGER_LIBS])
106 fi
107
108 if test "x$enable_network_manager" = "xyes"; then
109         AC_DEFINE([ENABLE_NETWORK_MANAGER],[1],[Define for NetworkManager support])
110 fi
111 AM_CONDITIONAL([ENABLE_NETWORK_MANAGER],[test "x$enable_network_manager" = "xyes"])
112
113 dnl libnotify
114 LIBNOTIFY_CFLAGS=
115 LIBNOTIFY_LIBS=
116 AC_ARG_WITH(libnotify,
117   [  --with-libnotify   use libnotify for status messages],
118   [],
119   [with_libnotify=check])
120
121 if test "x$with_libnotify" = "xyes" -o "x$with_libnotify" = "xcheck"; then
122   PKG_CHECK_MODULES(LIBNOTIFY, libnotify >= $LIBNOTIFY_REQUIRED,
123     [with_libnotify=yes], [
124     if test "x$with_libnotify" = "xcheck" ; then
125        with_libnotify=no
126     else
127        AC_MSG_ERROR(
128          [You must install libnotify >= $LIBNOTIFY_REQUIRED to compile krb5-auth-dialog])
129     fi
130   ])
131   if test "x$with_libnotify" = "xyes" ; then
132     AC_DEFINE_UNQUOTED(HAVE_LIBNOTIFY, 1,
133       [use libnotify for status messages])
134   fi
135 fi
136 AM_CONDITIONAL(HAVE_LIBNOTIFY, [test "x$with_libnotify" = "xyes"])
137 AC_SUBST(LIBNOTIFY_CFLAGS)
138 AC_SUBST(LIBNOTIFY_LIBS)
139
140
141 dnl secmem
142 dnl Checks for library functions.
143 AC_CHECK_FUNCS(seteuid stpcpy mmap)
144 GNUPG_CHECK_MLOCK
145 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
146 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
147 dnl Check for libcap
148 AC_ARG_WITH([libcap], AC_HELP_STRING([--without-libcap],
149             [Disable support for capabilities library]))
150 if test "x$with_libcap" != "xno"; then
151   AC_PATH_PROG(SETCAP, setcap, :, "$PATH:/sbin:/usr/sbin")
152   AC_CHECK_LIB(cap, cap_set_proc, [
153     AC_DEFINE(USE_CAPABILITIES,1,[The capabilities support library is installed])
154     LIBCAP=-lcap
155   ])
156 fi
157 AC_SUBST(LIBCAP)
158
159
160 check_interval=30
161 AC_DEFINE_UNQUOTED(CREDENTIAL_CHECK_INTERVAL,[$check_interval],
162                    [Define the to number of seconds to wait between checks of
163                     the Kerberos credential cache.])
164 AC_SUBST(check_interval)
165
166 minimum_lifetime=30
167 AC_DEFINE_UNQUOTED(MINUTES_BEFORE_PROMPTING,[$minimum_lifetime],
168                    [Define the to the minimum amount of time (m) a credential
169                     will have to be valid before we'll ask the user to get
170                     fresh credentials.])
171 AC_SUBST(minimum_lifetime)
172
173 CFLAGS="\
174         $GTK_CFLAGS \
175         $GLADE_CFLAGS \
176         $DBUS_CFLAGS \
177         $GCONF_CFLAGS \
178         $KRB5_CFLAGS \
179         $NETWORK_MANAGER_CFLAGS \
180         $LIBNOTIFY_CFLAGS \
181         $CFLAGS"
182
183 AC_OUTPUT([
184 Makefile
185 krb5-auth-dialog.spec
186 src/Makefile
187 src/krb5-auth-dialog.1
188 secmem/Makefile
189 gtksecentry/Makefile
190 icons/Makefile
191 etpo/Makefile
192 po/Makefile.in
193 ])
194
195 AC_MSG_NOTICE([])
196 AC_MSG_NOTICE([Configuration summary])
197 AC_MSG_NOTICE([=====================])
198 AC_MSG_NOTICE([])
199 AC_MSG_NOTICE([Libraries])
200 AC_MSG_NOTICE([])
201 AC_MSG_NOTICE([         kerberos: $KRB5_CFLAGS $KRB5_LIBS])
202 AC_MSG_NOTICE([              gtk: $GTK_CFLAGS $GTK_LIBS])
203 AC_MSG_NOTICE([            glade: $GLADE_CFLAGS $GLADE_LIBS])
204 AC_MSG_NOTICE([             dbus: $DBUS_CFLAGS $DBUS_LIBS])
205 AC_MSG_NOTICE([            gconf: $GCONF_CFLAGS $GCONF_LIBS])
206 if test "$with_libnotify" = "yes" ; then
207 AC_MSG_NOTICE([        libnotify: $LIBNOTIFY_CFLAGS $LIBNOTIFY_LIBS])
208 else
209 AC_MSG_NOTICE([        libnotify: no])
210 fi
211 if test "$enable_network_manager" = "yes" ; then
212 AC_MSG_NOTICE([  Network Manager: $NETWORK_MANAGER_CFLAGS $NETWORK_MANAGER_LIBS])
213 else
214 AC_MSG_NOTICE([  Network Manager: no])
215 fi
216 AC_MSG_NOTICE([])
217 AC_MSG_NOTICE([Miscellaneous])
218 AC_MSG_NOTICE([])
219 AC_MSG_NOTICE([  Minimum Lifetime: $minimum_lifetime minutes])
220 AC_MSG_NOTICE([    Check Interval: $check_interval seconds])
221 AC_MSG_NOTICE([])
222