[pkg-opensc-commit] [opensc] 201/295: Make minidriver buildable again on mingw
Eric Dorland
eric at moszumanska.debian.org
Sat Jun 24 21:11:31 UTC 2017
This is an automated email from the git hooks/post-receive script.
eric pushed a commit to branch master
in repository opensc.
commit 1b4c626d78cd3b12aa123b800b6e0e42cd38538d
Author: Maciej S. Szmigiero <mail at maciej.szmigiero.name>
Date: Wed Jan 25 23:01:18 2017 +0100
Make minidriver buildable again on mingw
Currently, minidriver build is broken on mingw. Let's make it work again.
For this, include adapted cardmod-mingw-compat.h with few function argument
decorations from Alon Bar-Lev's old build repository to make mingw build
almost self-contained - still requires cardmod.h from CNG, however.
Signed-off-by: Maciej S. Szmigiero <mail at maciej.szmigiero.name>
---
configure.ac | 8 +++--
src/libopensc/Makefile.am | 11 +++++--
src/minidriver/Makefile.am | 6 ++--
src/minidriver/cardmod-mingw-compat.h | 47 +++++++++++++++++++++++++++++
src/minidriver/minidriver.c | 6 ++--
src/minidriver/versioninfo-minidriver.rc.in | 4 +++
6 files changed, 74 insertions(+), 8 deletions(-)
diff --git a/configure.ac b/configure.ac
index 33f0469..9906c16 100644
--- a/configure.ac
+++ b/configure.ac
@@ -416,8 +416,12 @@ if test "${enable_minidriver}" = "yes"; then
AC_CHECK_HEADER(
[cardmod.h],
,
- [AC_MSG_ERROR([cardmod.h is not found and required for minidriver])]
- )
+ [AC_MSG_ERROR([cardmod.h from CNG is required for minidriver])],
+ [#if defined(__MINGW32__)
+#include "${srcdir}/src/minidriver/cardmod-mingw-compat.h"
+#endif
+ ])
+
AC_DEFINE([ENABLE_MINIDRIVER], [1], [Enable minidriver support])
fi
diff --git a/src/libopensc/Makefile.am b/src/libopensc/Makefile.am
index ec49ff4..1f6d07a 100644
--- a/src/libopensc/Makefile.am
+++ b/src/libopensc/Makefile.am
@@ -19,7 +19,7 @@ AM_CPPFLAGS = -DOPENSC_CONF_PATH=\"$(sysconfdir)/opensc.conf\" \
AM_CFLAGS = $(OPENPACE_CFLAGS) $(OPTIONAL_OPENSSL_CFLAGS) $(OPTIONAL_OPENCT_CFLAGS) \
$(OPTIONAL_PCSC_CFLAGS) $(OPTIONAL_ZLIB_CFLAGS)
-libopensc_la_SOURCES = \
+libopensc_la_SOURCES_BASE = \
sc.c ctx.c log.c errors.c \
asn1.c base64.c sec.c card.c iso7816.c dir.c ef-atr.c padding.c apdu.c \
simpletlv.c \
@@ -54,8 +54,10 @@ libopensc_la_SOURCES = \
pkcs15-coolkey.c \
pkcs15-dnie.c pkcs15-gids.c pkcs15-iasecc.c pkcs15-jpki.c \
compression.c p15card-helper.c sm.c \
- aux-data.c \
+ aux-data.c
+libopensc_la_SOURCES = $(libopensc_la_SOURCES_BASE) \
libopensc.exports
+libopensc_static_la_SOURCES = $(libopensc_la_SOURCES_BASE)
if WIN32
libopensc_la_SOURCES += $(top_builddir)/win32/versioninfo.rc
endif
@@ -69,6 +71,7 @@ libopensc_la_LIBADD = $(OPENPACE_LIBS) $(OPTIONAL_OPENSSL_LIBS) $(OPTIONAL_OPENC
if WIN32
libopensc_la_LIBADD += -lws2_32
endif
+libopensc_static_la_LIBADD = $(libopensc_la_LIBADD)
libopensc_la_LDFLAGS = $(AM_LDFLAGS) \
-version-info @OPENSC_LT_CURRENT@:@OPENSC_LT_REVISION@:@OPENSC_LT_AGE@ \
-export-symbols "$(srcdir)/libopensc.exports" \
@@ -79,4 +82,8 @@ if WIN32
mylibdir=$(libdir)
mylib_DATA=.libs/@WIN_LIBPREFIX at opensc-@OPENSC_LT_OLDEST at .dll.def
.libs/@WIN_LIBPREFIX at opensc-@OPENSC_LT_OLDEST at .dll.def: libopensc.la
+
+if ENABLE_MINIDRIVER
+noinst_LTLIBRARIES = libopensc_static.la
+endif
endif
diff --git a/src/minidriver/Makefile.am b/src/minidriver/Makefile.am
index 419a7dc..6448e7a 100644
--- a/src/minidriver/Makefile.am
+++ b/src/minidriver/Makefile.am
@@ -12,12 +12,14 @@ else
dist_noinst_DATA = opensc-minidriver.inf minidriver-westcos.reg minidriver-sc-hsm.reg minidriver-feitian.reg
endif
+AM_CFLAGS = $(OPTIONAL_OPENSSL_CFLAGS)
AM_CPPFLAGS = -I$(top_srcdir)/src
opensc_minidriver at LIBRARY_BITNESS@_la_SOURCES = minidriver.c minidriver.exports versioninfo-minidriver.rc
opensc_minidriver at LIBRARY_BITNESS@_la_LIBADD = \
- $(top_builddir)/src/libopensc/libopensc.la \
- -lcrypt32
+ $(top_builddir)/src/libopensc/libopensc_static.la \
+ $(OPTIONAL_OPENSSL_LIBS) \
+ -lbcrypt -lcrypt32 -lrpcrt4
opensc_minidriver at LIBRARY_BITNESS@_la_LDFLAGS = $(AM_LDFLAGS) \
-export-symbols "$(srcdir)/minidriver.exports" \
-module -avoid-version -no-undefined
diff --git a/src/minidriver/cardmod-mingw-compat.h b/src/minidriver/cardmod-mingw-compat.h
new file mode 100644
index 0000000..2bf01a7
--- /dev/null
+++ b/src/minidriver/cardmod-mingw-compat.h
@@ -0,0 +1,47 @@
+/*
+ * cardmod-mingw-compat.h: Compat defines to make minidriver with cardmod.h
+ * buildable under mingw
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#define __deref
+#define __deref_opt_inout_bcount_part_opt(x,y)
+#define __deref_opt_out_bcount(x)
+#define __deref_out_bcount(x)
+#define __deref_out_bcount_opt(x)
+#define __deref_out_ecount(x)
+#define __in
+#define __in_bcount(x)
+#define __in_bcount_opt(x)
+#define __in_ecount(x)
+#define __in_opt
+#define __inout
+#define __inout_bcount_full(x)
+#define __inout_bcount_opt(x)
+#define __out
+#define __out_bcount(x)
+#define __out_bcount_full(x)
+#define __out_bcount_part_opt(x,y)
+#define __out_bcount_part_opt(x,y)
+#define __out_ecount(x)
+#define __out_opt
+#define __struct_bcount(x)
+#define __success(x)
+#define _Printf_format_string_
+
+#ifndef NTE_BUFFER_TOO_SMALL
+#define NTE_BUFFER_TOO_SMALL _HRESULT_TYPEDEF_(0x80090028)
+#endif
diff --git a/src/minidriver/minidriver.c b/src/minidriver/minidriver.c
index c313246..807f059 100644
--- a/src/minidriver/minidriver.c
+++ b/src/minidriver/minidriver.c
@@ -30,12 +30,13 @@
#pragma managed(push, off)
#endif
+#define MINGW_HAS_SECURE_API 1
+
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
-#include "cardmod.h"
#include "libopensc/asn1.h"
#include "libopensc/cardctl.h"
@@ -54,10 +55,11 @@
#endif
#if defined(__MINGW32__)
-/* Part of the build svn project in the include directory */
#include "cardmod-mingw-compat.h"
#endif
+#include "cardmod.h"
+
/* store the instance given at DllMain when attached to access internal resources */
HINSTANCE g_inst;
diff --git a/src/minidriver/versioninfo-minidriver.rc.in b/src/minidriver/versioninfo-minidriver.rc.in
index f80f165..4ff841c 100644
--- a/src/minidriver/versioninfo-minidriver.rc.in
+++ b/src/minidriver/versioninfo-minidriver.rc.in
@@ -53,4 +53,8 @@ BEGIN
LTEXT "This window will be closed automatically after the PIN has been submitted on the PINPAD or if the PINPAD timeout occurs (in general 30 seconds).",IDC_STATIC,7,46,298,19
END
+#ifndef __MINGW32__
IDI_LOGO ICON "..\\..\\win32\\OpenSC.ico"
+#else
+IDI_LOGO ICON "../../win32/OpenSC.ico"
+#endif
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-opensc/opensc.git
More information about the pkg-opensc-commit
mailing list