ChanegLog:
[poldi.git] / configure.ac
1 # configure.ac - Configure script for Poldi
2 # Copyright (C) 2004, 2005 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.3-cvs, 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 if test "x$PAM_MODULE_DIRECTORY" = "x"; then
44   PAM_MODULE_DIRECTORY="${libdir}/security"
45 fi
46 AC_SUBST(PAM_MODULE_DIRECTORY)
47
48 AC_GNU_SOURCE
49
50 # Some status variables to give feedback at the end of a configure run
51 #have_gpg_error=no
52 #have_libgcrypt=no 
53
54 AC_SUBST(PACKAGE)
55 AC_SUBST(VERSION)
56 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
57 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
58 AC_DEFINE_UNQUOTED(PACKAGE_BUGREPORT, "$PACKAGE_BUGREPORT",
59                                         [Bug report address])
60
61 AH_BOTTOM([
62 /* Tell the sources taken from GnuPG's SCD what header file they
63    should use. */
64 #define GNUPG_SCD_MAIN_HEADER "scd.h"
65 ])
66
67 AM_MAINTAINER_MODE
68
69 # Checks for programs.
70 AC_PROG_MAKE_SET
71 AM_SANITY_CHECK
72 missing_dir=`cd $ac_aux_dir && pwd`
73 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
74 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
75 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
76 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
77 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
78 AC_PROG_AWK
79 AC_PROG_CC
80 AC_PROG_CPP
81 AC_PROG_RANLIB
82 AC_PROG_INSTALL
83 AC_PROG_MAKE_SET
84 AC_SYS_LARGEFILE
85
86 #
87 # Checks for libraries.
88 #
89
90 have_libgcrypt=no
91 AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_VERSION",
92                   have_libgcrypt=yes,have_libgcrypt=no)
93
94 have_gpg_error=no
95 AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION",
96                   have_gpg_error=yes,have_gpg_error=no)
97
98
99 #
100 # libusb allows us to use the integrated CCID smartcard reader driver.
101 #
102 LIBUSB_LIBS=""
103 AC_CHECK_LIB(usb, usb_bulk_write,
104              [ LIBUSB_LIBS="$LIBUSB_LIBS -lusb"
105                AC_DEFINE(HAVE_LIBUSB,1,
106                [defined if libusb is available])
107              ])
108 AC_SUBST(LIBUSB_LIBS)
109 AC_CHECK_FUNCS(usb_get_busses memicmp stpcpy strlwr strtoul memmove stricmp)
110
111 # Checks for header files.
112 AC_HEADER_STDC
113
114 # Checks for typedefs, structures, and compiler characteristics.
115 AC_C_CONST
116 AC_C_INLINE
117 AC_TYPE_SIZE_T
118
119 # Necessary for libscd.
120 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
121 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
122 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
123 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
124 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
125
126 AC_CHECK_SIZEOF(unsigned short)
127 AC_CHECK_SIZEOF(unsigned int)
128 AC_CHECK_SIZEOF(unsigned long)
129
130  
131 # Checks for library functions.
132
133 #
134 # See whether we have dlopen available, so that PC/SC can be loaded on
135 # demand.
136 #
137 _dl_save_libs=$LIBS
138 LIBS=""
139 AC_SEARCH_LIBS(dlopen,dl,found_dlopen=yes)
140 if test x"$found_dlopen" = "xyes" ; then
141    AC_DEFINE(HAVE_DL_DLOPEN,1,
142              [Defined when the dlopen function family is available])
143    DLLIBS=$LIBS
144 else
145    DLLIBS=""
146    LIBS=$_dl_save_libs
147 fi
148 AC_SUBST(DLLIBS)
149
150 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
151
152 if test "$GCC" = yes; then
153     if test "$USE_MAINTAINER_MODE" = "yes"; then
154         CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
155         CFLAGS="$CFLAGS -Wformat-nonliteral"
156     else
157         CFLAGS="$CFLAGS -Wall"
158     fi
159 fi
160
161 # We use jnlib, so tell other modules about it
162 AC_DEFINE(HAVE_JNLIB_LOGGING, 1,
163          [Defined if jnlib style logging fucntions are available])
164
165 #
166 # Print errors here so that they are visible all
167 # together and the user can acquire them all together.
168 #
169 die=no
170 if test "$have_gpg_error" = "no"; then
171    die=yes
172    AC_MSG_NOTICE([[
173 ***  
174 *** You need libgpg-error to build this program.
175 *** This library is for example available at
176 ***   ftp://ftp.gnupg.org/gcrypt/alpha/libgpg-error
177 *** (at least version $NEED_GPG_ERROR_VERSION is required.)
178 ***]])
179 fi
180 if test "$have_libgcrypt" = "no"; then
181    die=yes
182    AC_MSG_NOTICE([[
183 ***  
184 *** You need libgcrypt to build this program.
185 *** This library is for example available at
186 ***   ftp://ftp.gnupg.org/gcrypt/libgcrypt
187 *** (at least version $NEED_LIBGCRYPT_VERSION is required.)
188 ***]])
189 fi
190 if test "$die" = "yes"; then
191     AC_MSG_ERROR([[
192 ***
193 *** Required libraries not found. Please consult the above messages
194 *** and install them before running configure again.
195 ***]])
196 fi
197
198 AC_CONFIG_FILES([Makefile
199                  doc/Makefile
200                  src/Makefile
201                  src/jnlib/Makefile
202                  src/libscd/Makefile
203                  src/common/Makefile
204                  src/pam/Makefile
205                  src/ctrl/Makefile
206                  conf/Makefile])
207 AC_OUTPUT