/[pcsclite]/trunk/Drivers/ccid/configure.in
ViewVC logotype

Contents of /trunk/Drivers/ccid/configure.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4971 - (show annotations) (download)
Tue Jun 1 09:33:17 2010 UTC (2 years, 11 months ago) by rousseau
File size: 10073 byte(s)
remove duplicate errno.h in AC_CHECK_HEADERS()
1 # Process this file with autoconf to produce a configure script.
2 # You may need to use autoconf 2.56 or newer
3
4 # $Id$
5
6 # Require autoconf 2.61
7 AC_PREREQ(2.61)
8
9 AC_INIT(ccid, 1.3.12)
10 AC_CONFIG_SRCDIR(src/ifdhandler.c)
11 AC_CONFIG_AUX_DIR([.])
12 AM_INIT_AUTOMAKE(1.8 dist-bzip2 no-dist-gzip)
13
14 # Default install dir
15 AC_PREFIX_DEFAULT(/usr/local)
16
17 # Automake boilerplate.
18 AC_CANONICAL_HOST
19
20 # create a config.h file (Automake will add -DHAVE_CONFIG_H)
21 AM_CONFIG_HEADER(config.h)
22
23 # Options
24 AM_MAINTAINER_MODE
25
26 # Checks for programs.
27 AC_PROG_CC
28 AM_PROG_CC_C_O
29 AC_PROG_CPP
30 AC_PROG_INSTALL
31 AC_PROG_MAKE_SET
32 AC_PROG_LN_S
33 AM_PROG_LEX
34 PKG_PROG_PKG_CONFIG
35
36 # check pcsc-lite version
37 PCSC_NEEDED_VERSION="1.6.0"
38 PKG_CHECK_EXISTS([libpcsclite],
39 [PKG_CHECK_MODULES(PCSC, libpcsclite >= $PCSC_NEEDED_VERSION, [],
40 [
41 if test -f /usr/local/lib/pkgconfig/libpcsclite.pc -a "x$PKG_CONFIG" != x ; then
42 AC_MSG_ERROR([use PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure])
43 else
44 AC_MSG_WARN([install pcsc-lite $PCSC_NEEDED_VERSION or later])
45 fi
46 ])],
47 [AC_MSG_WARN([libpcsclite not found by pkg-config])]
48 )
49
50 saved_CPPFLAGS="$CPPFLAGS"
51 CPPFLAGS="$CPPFLAGS $PCSC_CFLAGS"
52 PCSC_ERROR_MSG="install pcsc-lite $PCSC_NEEDED_VERSION or later, or use ./configure PCSC_CFLAGS=..."
53 AC_CHECK_HEADER(ifdhandler.h,, [AC_MSG_ERROR([$PCSC_ERROR_MSG])])
54 AC_CHECK_DECLS([IFD_NO_SUCH_DEVICE, TAG_IFD_POLLING_THREAD, IFD_ERROR_INSUFFICIENT_BUFFER],,
55 [AC_MSG_ERROR([$PCSC_ERROR_MSG])], [#include <ifdhandler.h>])
56 AC_CHECK_HEADER(reader.h,, [AC_MSG_ERROR([$PCSC_ERROR_MSG])])
57 CPPFLAGS="$saved_CPPFLAGS"
58
59 # Add libtool support.
60 # Static lib is disabled by default. Use --enable-static if needed
61 LT_INIT(disable-static)
62 AM_PROG_LIBTOOL
63
64 # Automatically update the libtool script if it becomes out-of-date.
65 AC_SUBST(LIBTOOL_DEPS)
66
67 # Checks for header files.
68 AC_HEADER_STDC
69 AC_CHECK_HEADERS(errno.h fcntl.h stdlib.h unistd.h termios.h string.h sys/time.h sys/types.h stdarg.h arpa/inet.h,,
70 [AC_MSG_ERROR([some header files not found])])
71
72 # Checks for typedefs, structures, and compiler characteristics.
73 AC_C_CONST
74 AC_TYPE_SIZE_T
75 AC_HEADER_TIME
76
77 # Checks for library functions.
78 AC_CHECK_FUNCS(select strerror strncpy memcpy strlcpy strlcat)
79
80 # Select OS specific versions of source files.
81 AC_SUBST(BUNDLE_HOST)
82 AC_SUBST(DYN_LIB_EXT)
83 case "$host" in
84 *-*-darwin*)
85 BUNDLE_HOST="MacOS"
86 DYN_LIB_EXT="dylib"
87 ;;
88 *-*-freebsd*)
89 BUNDLE_HOST="FreeBSD"
90 DYN_LIB_EXT="so"
91 ;;
92 *-*-openbsd*)
93 BUNDLE_HOST="OpenBSD"
94 DYN_LIB_EXT="so.0.0"
95 ;;
96 *-*-solaris*)
97 BUNDLE_HOST="Solaris"
98 DYN_LIB_EXT="so"
99 ;;
100 *-*-dragonfly*)
101 BUNDLE_HOST="DragonFly"
102 DYN_LIB_EXT="so"
103 ;;
104 *)
105 BUNDLE_HOST="Linux"
106 DYN_LIB_EXT="so"
107 esac
108
109 # --disable-libusb
110 AC_ARG_ENABLE(libusb,
111 AC_HELP_STRING([--disable-libusb],[do not use libusb]),
112 [ use_libusb="${enableval}" ], [ use_libusb=yes ] )
113
114 use_usb_interrupt=no
115
116 # check if libusb is used
117 if test "x$use_libusb" != xno ; then
118 PKG_CHECK_EXISTS([libusb], [
119 PKG_CHECK_MODULES(LIBUSB, libusb, [],
120 [
121 AC_CHECK_PROG([LIBUSBCONFIG], [libusb-config], [yes])
122
123 if test "$LIBUSBCONFIG" = "yes" ; then
124 LIBUSB_CFLAGS="$LIBUSB_CFLAGS `libusb-config --cflags`"
125 LIBUSB_LIBS="$LIBUSB_LIBS `libusb-config --libs`"
126 else
127 AC_MSG_WARN([libusb-config not found.])
128 fi
129 ])
130 ])
131
132 saved_CPPFLAGS="$CPPFLAGS"
133 saved_LIBS="$LIBS"
134
135 CPPFLAGS="$CPPFLAGS $LIBUSB_CFLAGS"
136 LIBS="$LDFLAGS $LIBUSB_LIBS"
137
138 AC_CHECK_HEADERS(usb.h, [],
139 [ AC_MSG_ERROR([usb.h not found, install libusb or use ./configure LIBUSB_CFLAGS=...]) ])
140
141 AC_MSG_CHECKING([for usb_init])
142 AC_TRY_LINK_FUNC(usb_init, [ AC_MSG_RESULT([yes]) ],
143 [ AC_MSG_ERROR([libusb not found, use ./configure LIBUSB_LIBS=...]) ])
144
145 AC_MSG_CHECKING([for usb_interrupt_read])
146 AC_TRY_LINK_FUNC(usb_interrupt_read, [ AC_MSG_RESULT([yes]) ],
147 [ AC_MSG_ERROR([your libusb is too old. install version 0.1.12 or above]) ])
148
149 AC_CHECK_FUNC(usb_detach_kernel_driver_np,
150 [ AC_DEFINE(HAVE_USB_DETACH_KERNEL_DRIVER_NP, 1, [Define if usb_detach_kernel_driver_np() is available]) ])
151
152 CPPFLAGS="$saved_CPPFLAGS"
153 LIBS="$saved_LIBS"
154
155 use_libusb=yes
156
157 AC_MSG_CHECKING([if libusb is emulated by libusb-compat])
158 a=`$PKG_CONFIG --variable=emulated libusb`
159 if test "x$a" = "x1";
160 then
161 AC_MSG_RESULT([yes])
162 use_usb_interrupt=yes
163 else
164 AC_MSG_RESULT([no])
165 fi
166
167 fi
168 AC_SUBST(LIBUSB_CFLAGS)
169 AC_SUBST(LIBUSB_LIBS)
170 AM_CONDITIONAL(WITH_LIBUSB, test "${use_libusb}" != "no")
171
172 # --enable-usb-interrupt
173 AC_ARG_ENABLE(usb-interrupt,
174 AC_HELP_STRING([--enable-usb-interrupt], [force the use of USB
175 interrupt even with an old libusb]),
176 [ use_usb_interrupt="${enableval}" ] )
177
178 if test "x$use_usb_interrupt" = xyes; then
179 AC_DEFINE(USE_USB_INTERRUPT, 1, [use libusb usb_interrupt_read()
180 instead of polling])
181 fi
182
183 # --enable-composite-as-multislot
184 use_composite_as_multislot=no
185 AC_ARG_ENABLE(composite-as-multislot,
186 AC_HELP_STRING([--enable-composite-as-multislot],
187 [composite device are seen as multi-slots]),
188 [ use_composite_as_multislot="${enableval}" ] )
189
190 if test "x$use_composite_as_multislot" = xyes; then
191 AC_DEFINE(USE_COMPOSITE_AS_MULTISLOT, 1, [composite device are seen as multi-slots])
192 fi
193
194 # check if the compiler support -fvisibility=hidden (GCC >= 4)
195 saved_CFLAGS="$CFLAGS"
196 CFLAGS="$CFLAGS -fvisibility=hidden"
197 AC_MSG_CHECKING([for -fvisibility=hidden])
198 AC_COMPILE_IFELSE([char foo;],
199 [ AC_MSG_RESULT([yes])
200 SYMBOL_VISIBILITY="-fvisibility=hidden" ],
201 AC_MSG_RESULT([no]))
202 CFLAGS="$saved_CFLAGS"
203 AC_SUBST(SYMBOL_VISIBILITY)
204
205 # --disable-multi-thread
206 AC_ARG_ENABLE(multi-thread,
207 AC_HELP_STRING([--disable-multi-thread],[disable multi threading]),
208 [ multithread="${enableval}" ], [ multithread=yes ] )
209
210 if test "${multithread}" != no ; then
211 ACX_PTHREAD(
212 [ AC_DEFINE(HAVE_PTHREAD, 1,
213 [Define if you have POSIX threads libraries and header files.])
214 ], [ AC_MSG_ERROR([POSIX thread support required]) ])
215
216 multithread=yes
217 fi
218
219 # --enable-bundle=NAME
220 AC_ARG_ENABLE(bundle,
221 AC_HELP_STRING([--enable-bundle=NAME],[bundle directory name
222 (default ifd-ccid.bundle)]),
223 [bundle="${enableval}"], [bundle=false])
224 if test "${bundle}" = false ; then
225 bundle="ifd-ccid.bundle"
226 fi
227 AC_DEFINE_UNQUOTED(BUNDLE, "$bundle", [bundle directory name])
228
229 # --enable-usbdropdir=DIR
230 AC_ARG_ENABLE(usbdropdir,
231 AC_HELP_STRING([--enable-usbdropdir=DIR],[directory containing USB
232 drivers (default to pcscd config or $(prefix)/pcsc/drivers)]),
233 [usbdropdir="${enableval}"], [usbdropdir=false])
234 if test "${usbdropdir}" = false ; then
235 usbdropdir=`$PKG_CONFIG libpcsclite --variable=usbdropdir`
236 fi
237 AC_DEFINE_UNQUOTED(PCSCLITE_HP_DROPDIR, "$usbdropdir", [directory containing USB drivers])
238 if test "${usbdropdir}" = "" ; then
239 AC_MSG_ERROR([use --enable-usbdropdir=DIR])
240 fi
241
242 # --enable-twinserial
243 AC_ARG_ENABLE(twinserial,
244 AC_HELP_STRING([--enable-twinserial],[also compile and install the serial Twin driver]),
245 [twinserial="${enableval}"], [twinserial=no])
246 AM_CONDITIONAL(WITH_TWIN_SERIAL, test "${twinserial}" != "no")
247
248 # --enable-ccidtwindir=DIR
249 AC_ARG_ENABLE(ccidtwindir,
250 AC_HELP_STRING([--enable-ccidtwindir=DIR],[directory to install the
251 serial Twin driver (default to pcscd config or $(prefix)/pcsc/drivers/serial)]),
252 [ccidtwindir="${enableval}"], [ccidtwindir=false])
253 if test "${ccidtwindir}" = false ; then
254 ccidtwindir=`$PKG_CONFIG libpcsclite --variable=usbdropdir`/serial
255 fi
256
257 # --disable-pcsclite
258 AC_ARG_ENABLE(pcsclite,
259 AC_HELP_STRING([--disable-pcsclite],[do not use pcsc-lite debug support]),
260 [ pcsclite="${enableval}" ], [ pcsclite=yes ] )
261
262 if test "${pcsclite}" != no ; then
263 # check that pcsc-lite is installed
264 OLD_LIBS="$LIBS"
265 OLD_CFLAGS="$CFLAGS"
266 LIBS="$LIBS $PCSC_LIBS"
267 CFLAGS="$CFLAGS $PCSC_CFLAGS"
268 AC_MSG_CHECKING([for SCardEstablishContext])
269 AC_TRY_LINK_FUNC(SCardEstablishContext,
270 [ AC_MSG_RESULT([yes]) ],
271 [ AC_MSG_ERROR([SCardEstablishContext() not found, install pcsc-lite 1.2.9-beta9 or later,or use PCSC_LIBS=... ./configure]) ])
272 LIBS="$OLD_LIBS"
273 CFLAGS="$OLD_CFLAGS"
274
275 pcsclite=yes
276 fi
277 AM_CONDITIONAL(WITHOUT_PCSC, test "${pcsclite}" != "yes")
278
279 # --enable-udev
280 AC_ARG_ENABLE(udev,
281 AC_HELP_STRING([--enable-udev],[udev support for pcscd hotplug]),
282 [udev="${enableval}"], [udev=no])
283 AM_CONDITIONAL(UDEV, test "${udev}" != "no")
284
285 # --disable-class
286 AC_ARG_ENABLE(class,
287 AC_HELP_STRING([--disable-class],[remove the CCIDCLASSDRIVER from Info.plist]),
288 [class="${enableval}"], [class=yes])
289 if test "${class}" != yes ; then
290 NOCLASS="--no-class"
291 fi
292 AC_SUBST(NOCLASS)
293
294
295 # Setup dist stuff
296 AC_SUBST(ac_aux_dir)
297 AC_SUBST(bundle)
298 AC_SUBST(usbdropdir)
299 AC_SUBST(ccidtwindir)
300 AS_AC_EXPAND(bindir_exp,$bindir)
301 AS_AC_EXPAND(sysconfdir_exp,$sysconfdir)
302
303 cat << EOF
304
305 libccid has been configured with following options:
306
307 Version: ${PACKAGE_VERSION}
308 User binaries: $(eval eval eval echo "${bindir_exp}")
309 Configuration files: $(eval eval eval echo "${sysconfdir_exp}")
310
311
312 Host: ${host}
313 Compiler: ${CC}
314 Preprocessor flags: ${CPPFLAGS}
315 Compiler flags: ${CFLAGS}
316 Preprocessor flags: ${CPPFLAGS}
317 Linker flags: ${LDFLAGS}
318 Libraries: ${LIBS}
319
320 PCSC_CFLAGS: ${PCSC_CFLAGS}
321 PCSC_LIBS: ${PCSC_LIBS}
322 PTHREAD_CFLAGS: ${PTHREAD_CFLAGS}
323 PTHREAD_LIBS: ${PTHREAD_LIBS}
324 BUNDLE_HOST: ${BUNDLE_HOST}
325 DYN_LIB_EXT: ${DYN_LIB_EXT}
326 LIBUSB_CFLAGS: ${LIBUSB_CFLAGS}
327 LIBUSB_LIBS: ${LIBUSB_LIBS}
328 SYMBOL_VISIBILITY: ${SYMBOL_VISIBILITY}
329 NOCLASS: ${NOCLASS}
330
331 libusb support: ${use_libusb}
332 use USB interrupt: ${use_usb_interrupt}
333 composite as multislot: ${use_composite_as_multislot}
334 multi threading: ${multithread}
335 bundle directory name: ${bundle}
336 USB drop directory: ${usbdropdir}
337 serial Twin support: ${twinserial}
338 serial twin install dir: ${ccidtwindir}
339 compiled for pcsc-lite: ${pcsclite}
340 udev support: ${udev}
341 class driver: ${class}
342
343 EOF
344
345 # Write Makefiles.
346 AC_CONFIG_FILES(Makefile
347 m4/Makefile
348 src/Makefile
349 readers/Makefile
350 contrib/Makefile
351 contrib/Kobil_mIDentity_switch/Makefile
352 contrib/RSA_SecurID/Makefile
353 examples/Makefile)
354
355 AC_OUTPUT
356

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.5