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