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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.5