updated windows build

This commit is contained in:
Frank Morgner
2013-02-09 23:44:10 +01:00
parent a0b37e1296
commit acabe8be62
3 changed files with 65 additions and 161 deletions

View File

@@ -1,48 +1,72 @@
EXTRA_DIST = build_fix_zlib.patch build_npa.patch
MINGW ?= i686-w64-mingw32
WIN32_DIR ?= $(abs_top_builddir)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)_win32
OPENPACE=$(abs_builddir)/openpace
OPENPACE_CONFIGURE_AC=$(OPENPACE)/configure.ac
OPENPACE_CONFIGURE=$(OPENPACE)/configure
OPENPACE_MAKEFILE=$(OPENPACE)/Makefile
LIBEAC=$(WIN32_DIR)/bin/libeac-0.dll
OPENSC=$(abs_builddir)/opensc
OPENSC_CONFIGURE_AC=$(OPENSC)/configure.ac
OPENSC_CONFIGURE=$(OPENSC)/configure
LIBOPENSC=$(WIN32_DIR)/bin/libopensc-3.dll
NPA_TOOL=$(WIN32_DIR)/bin/npa-tool.exe
$(OPENPACE_CONFIGURE_AC):
git clone git://openpace.git.sourceforge.net/gitroot/openpace/openpace $(OPENPACE)
$(OPENPACE_CONFIGURE): $(OPENPACE_CONFIGURE_AC)
cd $(OPENPACE) && autoreconf --verbose --install --symlink
$(OPENPACE_MAKEFILE): $(OPENPACE_CONFIGURE)
cd $(OPENPACE) && ./configure
$(LIBEAC): $(OPENPACE_MAKEFILE)
make -C $(OPENPACE) win MINGW=$(MINGW) WIN32_DIR=$(WIN32_DIR)
$(OPENSC_CONFIGURE_AC):
git clone git://github.com/OpenSC/OpenSC.git $(OPENSC)
$(OPENSC_CONFIGURE): $(OPENSC_CONFIGURE_AC)
cd $(OPENSC) && autoreconf --verbose --install --symlink
$(LIBOPENSC): $(OPENSC_CONFIGURE) $(LIBEAC)
cd $(OPENSC) && ./configure \
--prefix=/ \
--target=$(MINGW) \
PKG_CONFIG_SYSROOT_DIR=$(WIN32_DIR) \
PKG_CONFIG_LIBDIR=$(WIN32_DIR)/lib/pkgconfig \
CFLAGS=-I$(MINGW_DIR)/include \
LDFLAGS=-L$(MINGW_DIR)/lib
$(MAKE) -C $(OPENSC) install DESTDIR=$(WIN32_DIR)
$(NPA_TOOL): $(LIBEAC) $(LIBOPENSC)
cd $(abs_top_builddir) \
&& export ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes \
&& ./configure \
--prefix=/ \
--host=$(MINGW) --target=$(MINGW) \
PKG_CONFIG_SYSROOT_DIR=$(WIN32_DIR) \
PKG_CONFIG_LIBDIR=$(WIN32_DIR)/lib/pkgconfig \
CFLAGS=-I$(MINGW_DIR)/include \
LDFLAGS="-L$(MINGW_DIR)/lib " \
OPENSC_LIBS="-L$(WIN32_DIR)/lib -lopensc"
$(MAKE) -C $(abs_top_builddir) install DESTDIR=$(WIN32_DIR)
all-local:
echo "Use \`make win\` to cross compile for Windows"
@echo Use \`$(MAKE) win\` to cross compile for Windows
OPENSC ?= $(abs_builddir)/opensc
$(OPENSC)/configure.ac:
git clone git://github.com/frankmorgner/OpenSC.git $(OPENSC)
true cp Makefile.am.opensc.libopensc $(OPENSC)/src/libopensc/Makefile.am
OPENSC_TAR_GZ=$(OPENSC)/opensc-0.12.3-pre1.tar.gz
$(OPENSC_TAR_GZ): $(OPENSC)/configure.ac
cd $(OPENSC) && ./bootstrap && ./configure --disable-doc
make -C $(OPENSC) dist
NPA_TAR_GZ=$(abs_top_builddir)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz
$(NPA_TAR_GZ):
make -C $(abs_top_builddir) dist
BUILD=$(abs_builddir)/build
$(BUILD)/build: $(OPENSC_TAR_GZ) $(NPA_TAR_GZ)
svn co -r123 http://www.opensc-project.org/svn/build/trunk $(BUILD)
patch -p1 -d $(BUILD) < build_fix_zlib.patch
patch -p1 -d $(BUILD) < build_npa.patch
mkdir -p $(BUILD)/sources
cp $(OPENSC_TAR_GZ) $(BUILD)/sources
cp $(NPA_TAR_GZ) $(BUILD)/sources
MINGW ?= i586-mingw32msvc
IMAGE=$(BUILD)/image/opensc
NPA_TOOL_EXE=$(IMAGE)/bin/npa-tool.exe
$(NPA_TOOL_EXE): $(BUILD)/build
cd $(BUILD) && \
export ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes; \
CHOST=$(MINGW) CBUILD=`gcc -dumpmachine` \
ZLIB_VERSION="1.2.6" \
./build
WIN32_DIR=$(abs_top_builddir)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)_win32
win: $(NPA_TOOL_EXE)
mv $(IMAGE) $(WIN32_DIR)
win: $(NPA_TOOL)
$(INSTALL) -d $(WIN32_DIR)/include/libopensc
$(INSTALL_DATA) -t $(WIN32_DIR)/include/libopensc \
$(OPENSC)/src/libopensc/*.h

View File

@@ -1,13 +0,0 @@
Index: build/build
===================================================================
--- build.orig/build 2012-04-15 20:42:56.183646915 +0200
+++ build/build 2012-04-15 20:43:06.951700312 +0200
@@ -419,7 +419,7 @@
OPENSC_COMPONENTS="pcsc"
export PKG_CONFIG="true"
export MAN2HTML="true"
- export ZLIB_LIBS="-L${OPENSC_ROOT}/lib -lzdll"
+ #export ZLIB_LIBS="-L${OPENSC_ROOT}/lib -lzdll"
export ICONV_CFLAGS="-I${OPENSC_ROOT}/include"
export ICONV_LIBS="-L${OPENSC_ROOT}/lib -liconv"
fi

View File

@@ -1,107 +0,0 @@
Index: build/build
===================================================================
--- build.orig/build 2012-04-15 21:55:56.517367834 +0200
+++ build/build 2012-04-15 22:08:45.505181046 +0200
@@ -92,12 +92,13 @@
for url in \
${ZLIB_URL} ${LZO_URL} ${LIBTOOL_URL} ${ICONV_URL} \
${OPENSSL_URL} ${OPENCT_URL} ${OPENSC_URL} ${LIBP11_URL} \
- ${ENGINE_PKCS11_URL} ${PKCS11_HELPER_URL} ${OPENVPN_URL}; \
+ ${ENGINE_PKCS11_URL} ${PKCS11_HELPER_URL} ${OPENVPN_URL} \
+ ${NPA_URL}; \
do
download1 "${url}"
done
- if [ "$(ls "${SOURCESROOT}" | wc -l | sed 's/[ \t]//g')" != 11 ]; then
+ if [ "$(ls "${SOURCESROOT}" | wc -l | sed 's/[ \t]//g')" != 12 ]; then
die "sources is unclean."
fi
}
@@ -201,6 +202,7 @@
zlib-dynamic ${ZLIB_CFLAGS} \
no-capieng \
--openssldir=/etc/ssl \
+ experimental-pace \
${EXTRA_OPENSSL_CONFIG} \
|| die "Configure openssl"
[ -n "${BUILD_FOR_WINDOWS}" ] && perl util/mkdef.pl crypto ssl NT update
@@ -244,7 +246,24 @@
CFLAGS="${CFLAGS} --include=cardmod-mingw-compat.h -I${SCRIPTROOT}/include" \
--enable-openssl --enable-zlib ${extra_opensc} --enable-doc \
|| die "Configure opensc"
- ${MAKE} ${MAKEOPTS} ${MAKE_AUTOCONF_INSTALL_TARGET} DESTDIR="${OPENSC_ROOT}" || die "make opensc"
+ ${MAKE} ${MAKEOPTS} ${MAKE_AUTOCONF_INSTALL_TARGET} DESTDIR="${OPENSC_ROOT}" \
+ || test -x ${OPENSC_ROOT}/bin/libopensc-3.dll || die "make opensc"
+
+ fixup_la
+
+ cd "${SCRIPTROOT}"
+ restore_la
+}
+
+build_npa() {
+ fixup_la
+
+ echo "Build npa"
+ cd "${BUILDROOT}/npa"* || die "cd npa"
+ ./configure ${CONFIGOPTS} ${EXTRA_NPA_CONFIG} \
+ CFLAGS="${CFLAGS} -I${SCRIPTROOT}/include" LIBS="${LIBS} -lws2_32" \
+ || die "Configure npa"
+ ${MAKE} ${MAKEOPTS} ${MAKE_AUTOCONF_INSTALL_TARGET} DESTDIR="${OPENSC_ROOT}" || die "make npa"
fixup_la
@@ -410,6 +429,8 @@
export LZO_LIBS="-L${OPENVPN_ROOT}/lib -llzo2"
export PKCS11_HELPER_CFLAGS="-I${OPENVPN_ROOT}/include"
export PKCS11_HELPER_LIBS="-L${OPENVPN_ROOT}/lib -lpkcs11-helper"
+export OPENSC_CFLAGS="-I${OPENSC_ROOT}/include"
+export OPENSC_LIBS="-L${OPENSC_ROOT}/lib -lopensc"
if [ -n "${BUILD_FOR_WINDOWS}" ]; then
CONFIGOPTS=" \
@@ -430,6 +451,7 @@
fixup_win64_libtool
build_dep
build_opensc
+build_npa
build_engine_pkcs11
build_openvpn
copy_docs
Index: build/build.vars
===================================================================
--- build.orig/build.vars 2012-04-15 21:55:32.361248035 +0200
+++ build/build.vars 2012-04-15 21:56:04.533407557 +0200
@@ -4,7 +4,7 @@
ZLIB_VERSION="${ZLIB_VERSION:-1.2.5}"
LIBTOOL_VERSION="${LIBTOOL_VERSION:-2.4}"
ICONV_VERSION="${ICONV_VERSION:-1.14}"
-OPENSSL_VERSION="${OPENSSL_VERSION:-1.0.0e}"
+OPENSSL_VERSION="${OPENSSL_VERSION:-1.0.1_with_openpace-0.7}"
OPENCT_VERSION="${OPENCT_VERSION:-0.6.20}"
OPENSC_VERSION="${OPENSC_VERSION:-0.12.2}"
LIBP11_VERSION="${LIBP11_VERSION:-0.2.8}"
@@ -12,12 +12,13 @@
PKCS11_HELPER_VERSION="${PKCS11_HELPER_VERSION:-1.09}"
LZO_VERSION="${LZO_VERSION:-2.05}"
OPENVPN_VERSION="${OPENVPN_VERSION:-2.2.1}"
+NPA_VERSION="${NPA_VERSION:-0.4}"
OPENSC_COMPONENTS="openct"
ZLIB_URL="${ZLIB_URL:-http://www.zlib.net/zlib-${ZLIB_VERSION}.tar.gz}"
LIBTOOL_URL="${LIBTOOL_URL:-http://ftp.gnu.org/gnu/libtool/libtool-${LIBTOOL_VERSION}.tar.gz}"
ICONV_URL="${ICONV_URL:-http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${ICONV_VERSION}.tar.gz}"
-OPENSSL_URL="${OPENSSL_URL:-http://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz}"
+OPENSSL_URL="${OPENSSL_URL:-http://www2.informatik.hu-berlin.de/~morgner/openssl-${OPENSSL_VERSION}.tar.gz}"
OPENCT_URL="${OPENCT_URL:-http://www.opensc-project.org/files/openct/openct-${OPENCT_VERSION}.tar.gz}"
OPENSC_URL="${OPENSC_URL:-http://www.opensc-project.org/files/opensc/opensc-${OPENSC_VERSION}.tar.gz}"
LIBP11_URL="${LIBP11_URL:-http://www.opensc-project.org/files/libp11/libp11-${LIBP11_VERSION}.tar.gz}"
@@ -25,6 +26,7 @@
PKCS11_HELPER_URL="${PKCS11_HELPER_URL:-http://www.opensc-project.org/files/pkcs11-helper/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2}"
LZO_URL="${LZO_URL:-http://www.oberhumer.com/opensource/lzo/download/lzo-${LZO_VERSION}.tar.gz}"
OPENVPN_URL="${OPENVPN_URL:-http://swupdate.openvpn.net/community/releases/openvpn-${OPENVPN_VERSION}.tar.gz}"
+NPA_URL="${NPA_URL:-http://downloads.sourceforge.net/project/vsmartcard/npa/npa-${NPA_VERSION}.tar.gz}"
#CHOST
#CTARGET