Added compatibility with Info.plist bundle
primarily for usage on OS X
This commit is contained in:
@@ -46,6 +46,7 @@ m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
|
||||
# Checks for libraries.
|
||||
|
||||
# --enable-libpcsclite
|
||||
infoplist=no
|
||||
AC_ARG_ENABLE(libpcsclite,
|
||||
AC_HELP_STRING([--enable-libpcsclite],[Build a lightweight version of
|
||||
libpcsclite, conflicts with PCSC-Lite @<:@default=no@:>@]),
|
||||
@@ -53,7 +54,13 @@ AC_ARG_ENABLE(libpcsclite,
|
||||
if test "${libpcsclite}" = no ; then
|
||||
PKG_CHECK_EXISTS([libpcsclite],
|
||||
[PKG_CHECK_MODULES([PCSC], [libpcsclite])],
|
||||
[AC_MSG_WARN([libpcsclite not found by pkg-config])])
|
||||
[AC_MSG_WARN([libpcsclite not found by pkg-config])
|
||||
case "$host" in
|
||||
*-*-darwin*)
|
||||
PCSC_CFLAGS="-DNO_LOG -I`pwd`/${top_srcdir}/src/pcsclite-vpcd/PCSC"
|
||||
PCSC_LIBS="--framework PCSC"
|
||||
esac
|
||||
])
|
||||
|
||||
saved_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $PCSC_CFLAGS"
|
||||
@@ -71,12 +78,18 @@ if test "${libpcsclite}" = no ; then
|
||||
if test "${prefix}" = NONE ; then
|
||||
serialdropdir="`$PKG_CONFIG libpcsclite --variable=usbdropdir`/serial"
|
||||
if test "${serialdropdir}" = "/serial" ; then
|
||||
AC_MSG_ERROR([use --enable-serialdropdir=DIR])
|
||||
case "$host" in
|
||||
*-*-darwin*) serialdropdir=/usr/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Contents/MacOS; infoplist=yes ;;
|
||||
*) AC_MSG_ERROR([use --enable-serialdropdir=DIR])
|
||||
esac
|
||||
fi
|
||||
else
|
||||
serialdropdir="${prefix}`$PKG_CONFIG libpcsclite --variable=usbdropdir`/serial"
|
||||
if test "${serialdropdir}" = "${prefix}/serial" ; then
|
||||
AC_MSG_ERROR([use --enable-serialdropdir=DIR])
|
||||
case "$host" in
|
||||
*-*-darwin*) serialdropdir=${prefix}/usr/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Contents/MacOS; infoplist=yes ;;
|
||||
*) AC_MSG_ERROR([use --enable-serialdropdir=DIR])
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -91,12 +104,18 @@ if test "${libpcsclite}" = no ; then
|
||||
if test "${prefix}" = NONE ; then
|
||||
serialconfdir="`$PKG_CONFIG libpcsclite --variable=serialconfdir`"
|
||||
if test "${serialconfdir}" = "" ; then
|
||||
serialconfdir="/etc/reader.conf.d"
|
||||
case "$host" in
|
||||
*-*-darwin*) serialconfdir=/usr/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Contents; infoplist=yes ;;
|
||||
*) serialconfdir="/etc/reader.conf.d"
|
||||
esac
|
||||
fi
|
||||
else
|
||||
serialconfdir="${prefix}`$PKG_CONFIG libpcsclite --variable=serialconfdir`"
|
||||
if test "${serialconfdir}" = "${prefix}" ; then
|
||||
serialconfdir="${prefix}/etc/reader.conf.d"
|
||||
case "$host" in
|
||||
*-*-darwin*) serialconfdir=${prefix}/usr/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Contents; infoplist=yes ;;
|
||||
*) serialconfdir="${prefix}/etc/reader.conf.d"
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -160,6 +179,7 @@ AC_CHECK_FUNCS([strlcpy strlcat], [], [], [#include <string.h>])
|
||||
|
||||
# Select OS specific versions of source files.
|
||||
AM_CONDITIONAL([BUILD_LIBPCSCLITE], [test "${libpcsclite}" = "yes"])
|
||||
AM_CONDITIONAL([BUILD_INFOPLIST], [test "${infoplist}" = "yes"])
|
||||
AC_SUBST(BUNDLE_HOST)
|
||||
AC_SUBST(DYN_LIB_EXT)
|
||||
AC_SUBST(LIB_PREFIX)
|
||||
@@ -213,6 +233,8 @@ Driver directory: ${serialdropdir}
|
||||
Python site-packages: $(eval eval eval echo "${pythondir}")
|
||||
|
||||
Build libpcsclite: ${libpcsclite}
|
||||
Build Info.plist: ${infoplist}
|
||||
Build reader.conf: ${readerconf}
|
||||
VPCD hostname: ${vpcdhost}
|
||||
|
||||
|
||||
|
||||
50
virtualsmartcard/src/ifd-vpcd/Info.plist.in
Normal file
50
virtualsmartcard/src/ifd-vpcd/Info.plist.in
Normal file
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>@TARGET_LIB@</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>ifd-vpcd</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>@VERSION@</string>
|
||||
|
||||
<key>ifdManufacturerString</key>
|
||||
<string>Virtual Smart Card Architecture</string>
|
||||
<key>ifdProductString</key>
|
||||
<string>Virtual PCD</string>
|
||||
|
||||
<key>ifdCapabilities</key>
|
||||
<string>0x00000000</string>
|
||||
<key>ifdProtocolSupport</key>
|
||||
<string>0x00000001</string>
|
||||
<key>ifdVersionNumber</key>
|
||||
<string>0x00000001</string>
|
||||
|
||||
<key>ifdVendorID</key>
|
||||
<array>
|
||||
<string>0x18d1</string>
|
||||
</array>
|
||||
|
||||
<key>ifdProductID</key>
|
||||
<array>
|
||||
<string>0x4ee1</string>
|
||||
</array>
|
||||
|
||||
<key>ifdFriendlyName</key>
|
||||
<array>
|
||||
<string>@VPCDHOST@:0x8C7B</string>
|
||||
</array>
|
||||
|
||||
<key>Copyright</key>
|
||||
<string>This driver is protected by terms of the GNU General Public License version 3, or (at your option) any later version.</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -7,10 +7,12 @@ libifdvpcd_la_LIBADD = $(top_builddir)/src/vpcd/libvpcd.la
|
||||
|
||||
noinst_HEADERS = ifd-vpcd.h
|
||||
|
||||
EXTRA_DIST = reader.conf.in
|
||||
EXTRA_DIST = reader.conf.in Info.plist.in
|
||||
|
||||
|
||||
do_subst = $(SED) \
|
||||
-e 's,[@]VERSION[@],$(VERSION),g' \
|
||||
-e 's,[@]TARGET_LIB[@],$(IFDVPCD_LIB),g' \
|
||||
-e 's,[@]TARGET[@],$(serialdropdir)/$(IFDVPCD_LIB),g' \
|
||||
-e 's,[@]VPCDHOST[@],$(vpcdhost),g'
|
||||
|
||||
@@ -27,26 +29,45 @@ pcsclite.h:
|
||||
|
||||
else
|
||||
|
||||
libifdvpcd_la_LIBADD += $(PCSC_LIBS)
|
||||
|
||||
lib_LTLIBRARIES = libifdvpcd.la
|
||||
|
||||
install: install_libifdvpcd
|
||||
if BUILD_INFOPLIST
|
||||
|
||||
install_libifdvpcd: libifdvpcd.la reader.conf.in
|
||||
install: install_libifdvpcd install_infoplist
|
||||
|
||||
uninstall: uninstall_libifdvpcd uninstall_infoplist
|
||||
|
||||
else
|
||||
|
||||
install: install_libifdvpcd install_readerconf
|
||||
|
||||
uninstall: uninstall_libifdvpcd uninstall_readerconf
|
||||
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
install_libifdvpcd: libifdvpcd.la
|
||||
$(mkinstalldirs) $(DESTDIR)$(serialdropdir)
|
||||
$(LIBTOOL) --mode=install cp .libs/$(IFDVPCD_LIB) $(DESTDIR)$(serialdropdir)/$(IFDVPCD_LIB).$(VERSION)
|
||||
(cd $(DESTDIR)$(serialdropdir) && \
|
||||
$(LN_S) -f $(IFDVPCD_LIB).$(VERSION) $(IFDVPCD_LIB))
|
||||
|
||||
install_readerconf: reader.conf.in
|
||||
$(mkinstalldirs) $(DESTDIR)$(serialconfdir)
|
||||
$(do_subst) < $(srcdir)/reader.conf.in > $(DESTDIR)$(serialconfdir)/vpcd
|
||||
|
||||
install_infoplist: Info.plist.in
|
||||
$(mkinstalldirs) $(DESTDIR)$(serialconfdir)
|
||||
$(do_subst) < $(srcdir)/Info.plist.in > $(DESTDIR)$(serialconfdir)/Info.plist
|
||||
|
||||
uninstall: uninstall_libifdvpcd
|
||||
|
||||
uninstall_libifdvpcd:
|
||||
rm -f $(DESTDIR)$(serialdropdir)/$(IFDVPCD_LIB).$(VERSION) \
|
||||
$(DESTDIR)$(serialdropdir)/$(IFDVPCD_LIB) \
|
||||
$(DESTDIR)$(serialconfdir)/vpcd
|
||||
$(DESTDIR)$(serialdropdir)/$(IFDVPCD_LIB)
|
||||
|
||||
endif
|
||||
uninstall_readerconf:
|
||||
rm -f $(DESTDIR)$(serialconfdir)/vpcd
|
||||
|
||||
uninstall_infoplist:
|
||||
rm -f $(DESTDIR)$(serialconfdir)/Info.plist
|
||||
|
||||
Reference in New Issue
Block a user