2004-11-29 Moritz Schulte <moritz@g10code.com>
[poldi.git] / configure.ac
1 # configure.ac - for the GSCUTILSGnuPG 1.9
2 # Copyright (C) 2004 g10 Code GmbH
3
4 # This file is part of Poldi.
5 #
6 # Poldi is free software; you can redistribute it and/or modify it
7 # under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
10
11 # Poldi is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
14 # License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19 # 02111-1307, USA
20
21 # Process this file with autoconf to produce a configure script.
22 AC_PREREQ(2.52)
23 min_automake_version="1.7.9"
24
25 # Version number: Remember to change it immediately *after* a release.
26 #                 Add a "-cvs" prefix for non-released code.
27 AC_INIT(poldi, 0.2, gnupg-devel@gnupg.org)
28
29 PACKAGE=$PACKAGE_NAME
30 VERSION=$PACKAGE_VERSION
31
32 NEED_LIBGCRYPT_VERSION=0
33 NEED_GPG_ERROR_VERSION=0.7
34         
35 AC_CONFIG_SRCDIR(src/pam/pam_poldi.c)
36 AM_CONFIG_HEADER(config.h)
37 AC_CANONICAL_TARGET
38 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
39
40 POLDI_CONF_DIRECTORY="${sysconfdir}/poldi"
41 AC_SUBST(POLDI_CONF_DIRECTORY)
42
43 PAM_MODULE_DIRECTORY="/lib/security"
44 AC_SUBST(PAM_MODULE_DIRECTORY)
45
46 AC_GNU_SOURCE
47
48 # Some status variables to give feedback at the end of a configure run
49 #have_gpg_error=no
50 #have_libgcrypt=no 
51
52 AC_SUBST(PACKAGE)
53 AC_SUBST(VERSION)
54 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
55 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
56 AC_DEFINE_UNQUOTED(PACKAGE_BUGREPORT, "$PACKAGE_BUGREPORT",
57                                         [Bug report address])
58
59 AH_BOTTOM([
60 /* Tell the sources taken from GnuPG's SCD what header file they
61    should use. */
62 #define GNUPG_SCD_MAIN_HEADER "scd.h"
63 ])
64
65 AM_MAINTAINER_MODE
66
67 # Checks for programs.
68 AC_PROG_MAKE_SET
69 AM_SANITY_CHECK
70 missing_dir=`cd $ac_aux_dir && pwd`
71 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
72 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
73 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
74 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
75 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
76 AC_PROG_AWK
77 AC_PROG_CC
78 AC_PROG_CPP
79 AC_PROG_RANLIB
80 AC_PROG_INSTALL
81 AC_PROG_MAKE_SET
82 AC_SYS_LARGEFILE
83
84 #
85 # Checks for libraries.
86 #
87
88 have_libgcrypt=no
89 AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_VERSION",
90                   have_libgcrypt=yes,have_libgcrypt=no)
91
92 have_gpg_error=no
93 AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION",
94                   have_gpg_error=yes,have_gpg_error=no)
95
96
97 #
98 # libusb allows us to use the integrated CCID smartcard reader driver.
99 #
100 LIBUSB_LIBS=""
101 AC_CHECK_LIB(usb, usb_bulk_write,
102              [ LIBUSB_LIBS="$LIBUSB_LIBS -lusb"
103                AC_DEFINE(HAVE_LIBUSB,1,
104                [defined if libusb is available])
105              ])
106 AC_SUBST(LIBUSB_LIBS)
107 AC_CHECK_FUNCS(usb_get_busses memicmp stpcpy strlwr strtoul memmove stricmp)
108
109 # Checks for header files.
110 AC_HEADER_STDC
111
112 # Checks for typedefs, structures, and compiler characteristics.
113 AC_C_CONST
114 AC_C_INLINE
115 AC_TYPE_SIZE_T
116
117 # Necessary for libscd.
118 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
119 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
120 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
121 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
122 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
123
124 AC_CHECK_SIZEOF(unsigned short)
125 AC_CHECK_SIZEOF(unsigned int)
126 AC_CHECK_SIZEOF(unsigned long)
127
128  
129 # Checks for library functions.
130
131 #
132 # See whether we have dlopen available, so that PC/SC can be loaded on
133 # demand.
134 #
135 _dl_save_libs=$LIBS
136 LIBS=""
137 AC_SEARCH_LIBS(dlopen,dl,found_dlopen=yes)
138 if test x"$found_dlopen" = "xyes" ; then
139    AC_DEFINE(HAVE_DL_DLOPEN,1,
140              [Defined when the dlopen function family is available])
141    DLLIBS=$LIBS
142 else
143    DLLIBS=""
144    LIBS=$_dl_save_libs
145 fi
146 AC_SUBST(DLLIBS)
147
148 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
149
150 if test "$GCC" = yes; then
151     if test "$USE_MAINTAINER_MODE" = "yes"; then
152         CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
153         CFLAGS="$CFLAGS -Wformat-nonliteral"
154     else
155         CFLAGS="$CFLAGS -Wall"
156     fi
157 fi
158
159 # We use jnlib, so tell other modules about it
160 AC_DEFINE(HAVE_JNLIB_LOGGING, 1,
161          [Defined if jnlib style logging fucntions are available])
162
163 #
164 # Print errors here so that they are visible all
165 # together and the user can acquire them all together.
166 #
167 die=no
168 if test "$have_gpg_error" = "no"; then
169    die=yes
170    AC_MSG_NOTICE([[
171 ***  
172 *** You need libgpg-error to build this program.
173 *** This library is for example available at
174 ***   ftp://ftp.gnupg.org/gcrypt/alpha/libgpg-error
175 *** (at least version $NEED_GPG_ERROR_VERSION is required.)
176 ***]])
177 fi
178 if test "$have_libgcrypt" = "no"; then
179    die=yes
180    AC_MSG_NOTICE([[
181 ***  
182 *** You need libgcrypt to build this program.
183 *** This library is for example available at
184 ***   ftp://ftp.gnupg.org/gcrypt/libgcrypt
185 *** (at least version $NEED_LIBGCRYPT_VERSION is required.)
186 ***]])
187 fi
188 if test "$die" = "yes"; then
189     AC_MSG_ERROR([[
190 ***
191 *** Required libraries not found. Please consult the above messages
192 *** and install them before running configure again.
193 ***]])
194 fi
195
196 AC_CONFIG_FILES([Makefile
197                  doc/Makefile
198                  src/Makefile
199                  src/jnlib/Makefile
200                  src/libscd/Makefile
201                  src/common/Makefile
202                  src/pam/Makefile
203                  src/ctrl/Makefile])
204 AC_OUTPUT