added target to build for Android
We use virtualsmartcard's libpcsclite to connect to a smartcard. The PC/SC service with vicc-interface is implemented elsewhere (currently un-free).
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
SUBDIRS = src m4 doc win32 certs
|
SUBDIRS = src m4 doc cross certs
|
||||||
|
|
||||||
EXTRA_DIST = libnpa.pc.in apdus test_vicc_with_npa-tool.sh
|
EXTRA_DIST = libnpa.pc.in apdus test_vicc_with_npa-tool.sh
|
||||||
|
|
||||||
@@ -22,7 +22,10 @@ libnpa.pc: libnpa.pc.in
|
|||||||
$(do_subst) < $(srcdir)/libnpa.pc.in > libnpa.pc
|
$(do_subst) < $(srcdir)/libnpa.pc.in > libnpa.pc
|
||||||
|
|
||||||
win:
|
win:
|
||||||
make -C win32 $@
|
make -C cross $@
|
||||||
|
|
||||||
|
android:
|
||||||
|
make -C cross $@
|
||||||
|
|
||||||
clean-local:
|
clean-local:
|
||||||
rm -f libnpa.pc
|
rm -f libnpa.pc
|
||||||
|
|||||||
@@ -197,6 +197,6 @@ AC_CONFIG_FILES([
|
|||||||
doc/Makefile
|
doc/Makefile
|
||||||
m4/Makefile
|
m4/Makefile
|
||||||
src/Makefile
|
src/Makefile
|
||||||
win32/Makefile
|
cross/Makefile
|
||||||
])
|
])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|||||||
127
npa/cross/Makefile.am
Normal file
127
npa/cross/Makefile.am
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
all-local:
|
||||||
|
@echo Use \`$(MAKE) win\` to cross compile for Windows
|
||||||
|
@echo Use \`$(MAKE) android\` to cross compile for Android
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
WIN_TOOL ?= i686-w64-mingw32
|
||||||
|
WIN_TOOL_DIR ?= /usr/$(WIN_TOOL)
|
||||||
|
WIN_TARGETDIR = $(abs_top_builddir)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)_win32
|
||||||
|
|
||||||
|
win:
|
||||||
|
$(MAKE) cross \
|
||||||
|
TOOL=$(WIN_TOOL) \
|
||||||
|
TOOL_DIR=$(WIN_TOOL_DIR) \
|
||||||
|
TARGETDIR=$(ANDROID_TARGETDIR) \
|
||||||
|
LIBEAC=$(WIN_TARGETDIR)/bin/libeac-0.dll \
|
||||||
|
LIBNPA=$(WIN_TARGETDIR)/bin/libnpa-0.dll
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ANDROID_ARCH ?= arm
|
||||||
|
ANDROID_TOOL ?= $(ANDROID_ARCH)-linux-androideabi
|
||||||
|
ANDROID_TOOL_DIR ?= $(abs_builddir)/ndk
|
||||||
|
ANDROID_TARGETDIR = $(abs_top_builddir)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)_$(ANDROID_ARCH)
|
||||||
|
MAKE_STANDALONE_TOOLCHAIN ?= $${HOME}/.local/opt/android-ndk-r9/build/tools/make-standalone-toolchain.sh
|
||||||
|
|
||||||
|
android: $(VIRTUALSMARTCARD_CONFIGURE)
|
||||||
|
test -d $(ANDROID_TOOL_DIR) \
|
||||||
|
|| $(MAKE_STANDALONE_TOOLCHAIN) --install-dir=$(ANDROID_TOOL_DIR) --arch=$(ANDROID_ARCH)
|
||||||
|
cd $(VIRTUALSMARTCARD) && env PATH=$(ANDROID_TOOL_DIR)/bin:$${PATH} ./configure \
|
||||||
|
--prefix=/ \
|
||||||
|
--host=$(ANDROID_TOOL) --target=$(ANDROID_TOOL) \
|
||||||
|
--enable-libpcsclite --enable-vpcdhost=localhost \
|
||||||
|
PKG_CONFIG_SYSROOT_DIR=$(ANDROID_TARGETDIR) \
|
||||||
|
PKG_CONFIG_LIBDIR=$(ANDROID_TARGETDIR)/lib/pkgconfig \
|
||||||
|
CFLAGS=-I$(ANDROID_TOOL_DIR)/include \
|
||||||
|
LDFLAGS=-L$(ANDROID_TOOL_DIR)/lib
|
||||||
|
@echo Compiling virtual smartcard
|
||||||
|
env PATH=$(ANDROID_TOOL_DIR)/bin:$${PATH} $(MAKE) -C $(VIRTUALSMARTCARD) install DESTDIR=$(ANDROID_TARGETDIR)
|
||||||
|
env PATH=$(ANDROID_TOOL_DIR)/bin:$${PATH} $(MAKE) cross \
|
||||||
|
TOOL=$(ANDROID_TOOL) \
|
||||||
|
TOOL_DIR=$(ANDROID_TOOL_DIR) \
|
||||||
|
TARGETDIR=$(ANDROID_TARGETDIR) \
|
||||||
|
LIBEAC=$(ANDROID_TARGETDIR)/lib/libeac.so \
|
||||||
|
LIBNPA=$(ANDROID_TARGETDIR)/lib/libnpa.so
|
||||||
|
@echo Configuring virtual smartcard
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
clean-local:
|
||||||
|
rm -rf $(TARGETDIR)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
cross: $(LIBNPA)
|
||||||
|
|
||||||
|
$(LIBNPA): $(OPENPACE_MAKEFILE)
|
||||||
|
@echo Compiling OpenPACE
|
||||||
|
$(MAKE) -C $(OPENPACE)/cross cross \
|
||||||
|
TOOL=$(TOOL) \
|
||||||
|
TOOL_DIR=$(TOOL_DIR) \
|
||||||
|
TARGETDIR=$(TARGETDIR) \
|
||||||
|
LIBEAC=$(LIBEAC)
|
||||||
|
@echo Configuring OpenSC
|
||||||
|
cd $(OPENSC) && ./configure \
|
||||||
|
--prefix=/ \
|
||||||
|
--host=$(TOOL) --target=$(TOOL) \
|
||||||
|
--enable-sm \
|
||||||
|
PKG_CONFIG_SYSROOT_DIR=$(TARGETDIR) \
|
||||||
|
PKG_CONFIG_LIBDIR=$(TARGETDIR)/lib/pkgconfig \
|
||||||
|
CFLAGS=-I$(TOOL_DIR)/include \
|
||||||
|
LDFLAGS=-L$(TOOL_DIR)/lib
|
||||||
|
@echo Compiling OpenSC
|
||||||
|
$(MAKE) -C $(OPENSC) install DESTDIR=$(TARGETDIR)
|
||||||
|
@echo Configuring libnpa
|
||||||
|
cd $(top_builddir) && env ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes ./configure \
|
||||||
|
--prefix=/ \
|
||||||
|
--host=$(TOOL) --target=$(TOOL) \
|
||||||
|
PKG_CONFIG_SYSROOT_DIR=$(TARGETDIR) \
|
||||||
|
PKG_CONFIG_LIBDIR=$(TARGETDIR)/lib/pkgconfig \
|
||||||
|
OPENSC_LIBS="-L$(TARGETDIR)/lib -lopensc" \
|
||||||
|
CFLAGS=-I$(TOOL_DIR)/include \
|
||||||
|
LDFLAGS=-L$(TOOL_DIR)/lib
|
||||||
|
@echo Compiling libnpa
|
||||||
|
env CROSS_COMPILE=$(CROSS_COMPILE) \
|
||||||
|
$(MAKE) -C $(top_builddir) install DESTDIR=$(TARGETDIR)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
OPENPACE=$(abs_builddir)/openpace
|
||||||
|
OPENPACE_CONFIGURE_AC=$(OPENPACE)/configure.ac
|
||||||
|
OPENPACE_CONFIGURE=$(OPENPACE)/configure
|
||||||
|
OPENPACE_MAKEFILE=$(OPENPACE)/Makefile
|
||||||
|
|
||||||
|
$(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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
OPENSC=$(abs_builddir)/opensc
|
||||||
|
OPENSC_CONFIGURE_AC=$(OPENSC)/configure.ac
|
||||||
|
OPENSC_CONFIGURE=$(OPENSC)/configure
|
||||||
|
|
||||||
|
$(OPENSC_CONFIGURE_AC):
|
||||||
|
git clone git://github.com/OpenSC/OpenSC.git $(OPENSC)
|
||||||
|
|
||||||
|
$(OPENSC_CONFIGURE): $(OPENSC_CONFIGURE_AC)
|
||||||
|
cd $(OPENSC) && autoreconf --verbose --install --symlink
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
VSMARTCARD=$(abs_builddir)/vsmartcard
|
||||||
|
VIRTUALSMARTCARD=$(VSMARTCARD)/virtualsmartcard
|
||||||
|
VIRTUALSMARTCARD_CONFIGURE_AC=$(VIRTUALSMARTCARD)/configure.ac
|
||||||
|
VIRTUALSMARTCARD_CONFIGURE=$(VIRTUALSMARTCARD)/configure
|
||||||
|
|
||||||
|
$(VIRTUALSMARTCARD_CONFIGURE_AC):
|
||||||
|
git clone git://github.com/frankmorgner/vsmartcard.git $(VSMARTCARD)
|
||||||
|
|
||||||
|
$(VIRTUALSMARTCARD_CONFIGURE): $(VIRTUALSMARTCARD_CONFIGURE_AC)
|
||||||
|
cd $(VIRTUALSMARTCARD) && autoreconf --verbose --install --symlink
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
MINGW ?= i686-w64-mingw32
|
|
||||||
MINGW_DIR ?= /usr/$(MINGW)
|
|
||||||
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) --host=$(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
|
|
||||||
|
|
||||||
win: $(NPA_TOOL)
|
|
||||||
$(INSTALL) -d $(WIN32_DIR)/include/libopensc
|
|
||||||
$(INSTALL_DATA) -t $(WIN32_DIR)/include/libopensc \
|
|
||||||
$(OPENSC)/src/libopensc/*.h
|
|
||||||
rm -f $(WIN32_DIR)/include/libopensc/*internal*.h
|
|
||||||
|
|
||||||
clean-local:
|
|
||||||
rm -rf $(IMAGE) $(WIN32_DIR)
|
|
||||||
|
|
||||||
distclean-local:
|
|
||||||
rm -rf $(OPENSC) $(BUILD)
|
|
||||||
Reference in New Issue
Block a user