diff --git a/configure.in b/configure.in index 1dc1e400..a432fea8 100644 --- a/configure.in +++ b/configure.in @@ -850,37 +850,61 @@ else fi AM_CONDITIONAL(HAVE_USBTOKEN, test "x$USBTOKEN_MSG" = "xyes") -dnl --with-openct option -AC_SUBST(LIBOPENCT) OPENCT_MSG=no -AC_ARG_WITH(openct, AC_HELP_STRING( -[--with-openct=PATH], [enable the OpenCT reader backend])) -if test "x$with_openct" != "xno"; then - AC_MSG_CHECKING(for OpenCT support) +openct_path=/usr +AC_SUBST(OPENCT_CFLAGS) +AC_SUBST(OPENCT_LDFLAGS) +AC_SUBST(OPENCT_LIBS) +found_openct=no +AC_ARG_WITH(openct, + [ --with-openct=PATH use OpenCT in PATH], + [openct_path=$withval + with_openct=yes]) + +if test "$openct_path" != "no"; then saved_LIBS="$LIBS" saved_LDFLAGS="$LDFLAGS" - saved_CPPFLAGS="$CPPFLAGS" + saved_CFLAGS="$CFLAGS" - if test "x$with_openct" != "x" -a -d "$with_openct"; then - LDFLAGS="$LDFLAGS -L$openct_path"; - CPPFLAGS="$CPPFLAGS -I$openct_path"; + AC_MSG_CHECKING(for OpenCT support) + LDFLAGS="$saved_LDFLAGS" + CPPFLAGS="$saved_CPPFLAGS" + + OPENCT_CFLAGS="-I${openct_path}/include" + OPENCT_LIBS="-lopenct" + OPENCT_LDFLAGS= + if test -n "${need_dash_r}"; then + OPENCT_LDFLAGS="-R${openct_path}/lib" fi + OPENCT_LDFLAGS="-L${openct_path}/lib $OPENCT_LDFLAGS" + + LIBS="$OPENCT_LIBS $saved_LIBS" + LDFLAGS="$OPENCT_LDFLAGS $saved_LDFLAGS" + CFLAGS="$OPENCT_CFLAGS $saved_CFLAGS" - LIBS="$LIBS -lopenct" AC_TRY_LINK([#include ], [ct_reader_connect(0);], [ - AC_DEFINE(HAVE_OPENCT, 1, [Have OpenCT libraries and header files]) + AC_DEFINE(HAVE_OPENCT, 1, + [Have OpenCT libraries and header files]) OPENCT_MSG=yes LIBOPENCT="-lopenct" ],[ - CPPFLAGS="$saved_CPPFLAGS" - LDFLAGS="$saved_LDFLAGS" - LIBS="$saved_LIBS" - LIBOPENCT="" + if test "x$with_openct" = "xyes" + then + AC_MSG_ERROR([OpenCT not found in $openct_path!]) + fi + OPENCT_LDFLAGS= + OPENCT_LIBS= + OPENCT_CFLAGS= ]) AC_MSG_RESULT($OPENCT_MSG) + + CFLAGS="$saved_CFLAGS" + LDFLAGS="$saved_LDFLAGS" + LIBS="$saved_LIBS" fi + AM_CONDITIONAL(HAVE_OPENCT, test "x$OPENCT_MSG" = "xyes") # Check for user-specified random device, otherwise check /dev/urandom diff --git a/src/libopensc/Makefile.am b/src/libopensc/Makefile.am index 71d8d6c5..94f23c4d 100644 --- a/src/libopensc/Makefile.am +++ b/src/libopensc/Makefile.am @@ -25,7 +25,7 @@ if HAVE_OPENCT OPENCT_SRC = reader-openct.c endif -INCLUDES = $(PCSC_FLAGS) +INCLUDES = $(PCSC_FLAGS) @OPENCT_CFLAGS@ bin_SCRIPTS = opensc-config @@ -42,8 +42,8 @@ libopensc_la_SOURCES = sc.c ctx.c module.c asn1.c log.c base64.c \ card-etoken.c card-tcos.c card-emv.c card-default.c \ card-mcrd.c card-starcos.c -libopensc_la_LDFLAGS = -version-info 0:6:0 -libopensc_la_LIBADD = @LIBDL@ $(PCSC_LIB) $(SSL_LIB) $(LIBSCCONF) @LIBOPENCT@ +libopensc_la_LDFLAGS = -version-info 0:6:0 @OPENCT_LDFLAGS@ +libopensc_la_LIBADD = @LIBDL@ @OPENCT_LIBS@ $(PCSC_LIB) $(SSL_LIB) $(LIBSCCONF) include_HEADERS = opensc.h pkcs15.h emv.h \ errors.h types.h \