redesign autoconf/automake infrastructure to support
- building of CM5121 driver (and backends) optional - building of librfid for in-firmware-use git-svn-id: https://svn.gnumonks.org/trunk/librfid@1906 e0336214-984f-0b4b-a45f-81c69e1f0ede
This commit is contained in:
parent
36751e15b8
commit
6bc8adf40b
18
README
18
README
|
@ -41,6 +41,7 @@ everything.
|
|||
|
||||
This reader is not yet supported.
|
||||
|
||||
|
||||
2.x Further Readers
|
||||
|
||||
Support for more devices shouldn't be too difficult to add, provided the
|
||||
|
@ -54,14 +55,19 @@ based on Philips CL RC622, RC531 and RC632, adding support should be very
|
|||
straightforward. If you want to contract me for implementing a driver
|
||||
backend, don't hesitate to contact me.
|
||||
|
||||
3. Installation
|
||||
|
||||
In order to run librfid, you need a reader transport backend that provides a
|
||||
PC_to_RDR_Escape function. The current version of this library offers two backends
|
||||
3. Building / Installing
|
||||
|
||||
In the default configuration, librfid only includes the driver for the OpenPCD
|
||||
dumbreader firmware.
|
||||
|
||||
If you want support for Omnikey Cardman 5121/5321, you have to add
|
||||
'--enable-reader-cm5x21' to the './configure' comannd, _and_ choose the backend
|
||||
you want to use, either:
|
||||
|
||||
3.1 (new) native CCID backend
|
||||
|
||||
If you add the '--with-ccid' option to the './configure' command, then the new
|
||||
If you add the '--enable-ccid' option to the './configure' command, then the new
|
||||
native CCID driver (courtesy of Werner Koch) will be linked into the library.
|
||||
This requires a working libusb with development headers.
|
||||
|
||||
|
@ -85,6 +91,10 @@ lower-layer transport interface, it doesn't actually provide a virtual reader
|
|||
interface to it, i.e. you can't use CT-API/OpenCT/PCSC API's to access RFID
|
||||
transponders.
|
||||
|
||||
In order to use this backend, you need to use the
|
||||
'--with-openct=/path/to/openct' option.
|
||||
|
||||
|
||||
4. Testing
|
||||
|
||||
In the 'utils' directory, you will get a 'librfid-tool' binary. It is very
|
||||
|
|
35
configure.in
35
configure.in
|
@ -11,13 +11,40 @@ AC_EXEEXT
|
|||
AM_PROG_LIBTOOL
|
||||
AC_SUBST(LIBTOOL_DEPS)
|
||||
|
||||
AC_ARG_WITH(ccid,
|
||||
[ --with-ccid Include internal CCID driver],
|
||||
AC_ARG_ENABLE(ccid,
|
||||
[ --enable-ccid Include internal CCID driver for CM5121],
|
||||
[MY_CCID=1], [MY_CCID=0])
|
||||
|
||||
# AC_SUBST(MY_CCID)
|
||||
AM_CONDITIONAL(MY_CCID, test "$MY_CCID" == "1")
|
||||
AM_CONDITIONAL(ENABLE_CCID, test "$MY_CCID" == "1")
|
||||
|
||||
AC_ARG_WITH(openct,
|
||||
[ --with-openct Use (patched) OpenCT for CM5121 CCID access],
|
||||
[OPENCT_PATH="$withval"], [OPENCT_PATH=""])
|
||||
AC_SUBST(OPENCT_PATH)
|
||||
AM_CONDITIONAL(ENABLE_OPENCT, test "$OPENCT_PATH" != "")
|
||||
|
||||
AC_ARG_WITH(firmware,
|
||||
[ --with-firmware=PATH Compile for running inside firmware],
|
||||
[FIRMWARE_PATH="$withval"], [FIRMWARE_PATH=""])
|
||||
AC_SUBST(FIRMWARE_PATH)
|
||||
|
||||
AC_ARG_ENABLE(static,
|
||||
[ --enable-static Don't use dynamic allocations at all],
|
||||
[ENABLE_STATIC=1], [ENABLE_STATIC=0])
|
||||
AM_CONDITIONAL(ENABLE_STATIC, test "$ENABLE_STATIC" == "1")
|
||||
|
||||
AC_ARG_ENABLE(firmware,
|
||||
[ --enable-firmware Don't use dynamic allocations at all],
|
||||
[ENABLE_FIRMWARE=1], [ENABLE_FIRMWARE=0])
|
||||
AM_CONDITIONAL(ENABLE_FIRMWARE, test "$ENABLE_FIRMWARE" == "1")
|
||||
|
||||
AC_ARG_ENABLE(reader-cm5x21,
|
||||
[ --enable-reader-cm5x21 Support for Omnikey Cardman 5121/5321],
|
||||
[ENABLE_CM5121=1], [ENABLE_CM5121=0])
|
||||
AM_CONDITIONAL(ENABLE_CM5121, test "$ENABLE_CM5121" == "1")
|
||||
|
||||
|
||||
AC_ARG_WITH()
|
||||
#AC_CHECK_HEADERS(usb.h, [have_libusb="yes"], [ AC_MSG_WARN([usb.h not found, use --enable-libusb=PATH. Otherwise, INDI will compile without Apogee USB support.]) ])
|
||||
|
||||
AC_CHECK_LIB(usb, usb_close,,)
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
/* system / environment specific defines */
|
||||
|
||||
/* build for openpcd firmware */
|
||||
#define LIBRFID_FIRMWARE
|
||||
//#define LIBRFID_FIRMWARE
|
||||
|
||||
/* build without dynamic allocations */
|
||||
//#define LIBRFID_STATIC
|
||||
//
|
||||
#ifdef LIBRFID_FIRMWARE
|
||||
#define LIBRFID_STATIC
|
||||
#endif
|
||||
|
||||
#ifdef __LIBRFID__
|
||||
|
||||
|
|
|
@ -1,21 +1,38 @@
|
|||
LIBVERSION= 0:0:0
|
||||
INCLUDES = $(all_includes) -I$(top_srcdir)/include -D__LIBRFID__
|
||||
INCLUDES = $(all_includes) -I$(top_srcdir)/include
|
||||
AM_CFLAGS = -std=gnu99 -D__LIBRFID__
|
||||
|
||||
AM_CFLAGS = -std=gnu99
|
||||
if ENABLE_FIRMWARE
|
||||
INCLUDES += -I$(FIRMWARE_PATH)/include -I$(GNUARM_PATH)/arm-elf/include
|
||||
AM_CFLAGS += -DLIBRFID_FIRMWARE -DLIBRFID_STATIC -D__MS_types__
|
||||
endif
|
||||
|
||||
if ENABLE_STATIC
|
||||
AM_CFLAGS += -DLIBRFID_STATIC
|
||||
endif
|
||||
|
||||
lib_LTLIBRARIES = librfid.la
|
||||
|
||||
CORE=rfid.c rfid_layer2.c rfid_protocol.c rfid_reader.c rfid_scan.c
|
||||
L2=rfid_layer2_iso14443a.c rfid_layer2_iso14443b.c rfid_layer2_iso15693.c rfid_iso14443_common.c
|
||||
PROTO=rfid_proto_tcl.c rfid_proto_mifare_ul.c rfid_proto_mifare_classic.c
|
||||
READER=rfid_reader_cm5121.c rfid_asic_rc632.c rfid_reader_openpcd.c
|
||||
ASIC=rfid_asic_rc632.c
|
||||
READER=rfid_reader_openpcd.c
|
||||
|
||||
if MY_CCID
|
||||
if ENABLE_CM5121
|
||||
READER += rfid_reader_cm5121.c
|
||||
AM_CFLAGS += -DENABLE_CM5121
|
||||
|
||||
if ENABLE_CCID
|
||||
READER_LOW=ccid/rfid_reader_cm5121_ccid_direct.c ccid/ccid-driver.c
|
||||
else
|
||||
endif
|
||||
|
||||
if ENABLE_OPENCT
|
||||
READER_LOW=rfid_reader_cm5121_openct.c
|
||||
endif
|
||||
|
||||
librfid_la_LDFLAGS = -Wc,-nostartfiles -version-info $(LIBVERSION) -lopenct
|
||||
librfid_la_SOURCES = $(CORE) $(L2) $(PROTO) $(READER) $(READER_LOW)
|
||||
endif
|
||||
|
||||
librfid_la_LDFLAGS = -Wc,-nostartfiles -version-info $(LIBVERSION) -lopenct
|
||||
librfid_la_SOURCES = $(CORE) $(L2) $(PROTO) $(READER) $(READER_LOW) $(ASIC)
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include <librfid/rfid_reader_openpcd.h>
|
||||
|
||||
static const struct rfid_reader *rfid_readers[] = {
|
||||
#ifndef LIBRFID_FIRMWARE
|
||||
#ifdef ENABLE_CM5121
|
||||
[RFID_READER_CM5121] = &rfid_reader_cm5121,
|
||||
#endif
|
||||
[RFID_READER_OPENPCD] = &rfid_reader_openpcd,
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <usb.h>
|
||||
|
||||
#include <librfid/rfid.h>
|
||||
#include <librfid/rfid_reader.h>
|
||||
|
@ -57,6 +56,7 @@ static struct openpcd_hdr *rcv_hdr;
|
|||
|
||||
#ifndef LIBRFID_FIRMWARE
|
||||
|
||||
#include <usb.h>
|
||||
static struct usb_device *dev;
|
||||
static struct usb_dev_handle *hdl;
|
||||
|
||||
|
|
Loading…
Reference in New Issue