From c9f4d684d1b1283d712dc6dfbd54d08a3e6b8259 Mon Sep 17 00:00:00 2001 From: Trevor Bentley Date: Wed, 24 Jan 2018 14:48:13 +0100 Subject: [PATCH] Support specifying custom PCSC lib --- configure.ac | 39 ++++++++++++++++++++++++++++++++++++++- lib/Makefile.am | 2 +- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 810af78..d6b6de8 100644 --- a/configure.ac +++ b/configure.ac @@ -80,6 +80,18 @@ AC_ARG_WITH([backend], [], [with_backend=check]) +AC_ARG_WITH([pcsclib], + [AS_HELP_STRING([--with-pcsclib=ARG], + [Name of custom PCSC lib])], + [], + [with_pcsclib=]) + +AC_ARG_WITH([pcscdir], + [AS_HELP_STRING([--with-pcscdir=ARG], + [Path to custom PCSC lib dir (use with --with-pcsclib)])], + [], + [with_pcscdir=]) + case "$with_backend$host" in check*-darwin*) AC_MSG_NOTICE([Detected Mac: selecting macscard backend]) @@ -138,8 +150,31 @@ if test "x$with_backend" = xmacscard; then LIBS="$save_LIBS" fi +if test "x$with_pcsclib" != x; then + AC_MSG_NOTICE([checking for PCSC with custom lib]) + AC_CHECK_HEADERS([PCSC/winscard.h]) + if test "x$with_pcscdir" != x; then + PCSC_CUSTOM_LIBS="-Wl,-L$with_pcscdir -Wl,-l$with_pcsclib -Wl,-rpath,$with_pcscdir" + else + PCSC_CUSTOM_LIBS="-Wl,-l$with_pcsclib" + fi + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PCSC_CFLAGS" + save_LIBS="$LIBS" + LIBS="$LIBS $PCSC_CUSTOM_LIBS" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[SCardBeginTransaction(0)]])], + [AC_SUBST([PCSC_CUSTOM_LIBS])], + [AC_MSG_ERROR([cannot find custom PCSC library/headers])]) + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + PCSC_MACOSX_LIBS= + PCSC_WIN_LIBS= + PCSC_LIBS= +fi + if test "x$with_backend" = xpcsc || test "x$with_backend" = xwinscard \ - || test "x$with_backend" = xmacscard; then + || test "x$with_backend" = xmacscard || test "x$with_pcsclib" != x; then AC_DEFINE([BACKEND_PCSC], 1, [Define to 1 if you the PCSC backend.]) else AC_MSG_ERROR([cannot find PCSC library]) @@ -269,6 +304,8 @@ AC_MSG_NOTICE([summary of build options: LIBS: ${PCSC_WIN_LIBS} Mac PCSC LIBS: ${PCSC_MACOSX_LIBS} + Custom PCSC + LIBS: ${PCSC_CUSTOM_LIBS} YKCS11 debug: ${ykcs11_debug} Hardware tests: ${hw_tests} diff --git a/lib/Makefile.am b/lib/Makefile.am index 25ab5a8..b57bc40 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -39,7 +39,7 @@ libykpiv_la_include_HEADERS = ykpiv.h ykpiv-version.h EXTRA_libykpiv_la_DEPENDENCIES = ykpiv.map libykpiv_la_LIBADD = $(OPENSSL_LIBS) $(PCSC_LIBS) -libykpiv_la_LIBADD += $(PCSC_WIN_LIBS) $(PCSC_MACOSX_LIBS) +libykpiv_la_LIBADD += $(PCSC_WIN_LIBS) $(PCSC_MACOSX_LIBS) $(PCSC_CUSTOM_LIBS) libykpiv_la_LDFLAGS = -no-undefined libykpiv_la_LDFLAGS += -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)