Improves mingw-cross-configure.sh script using patch provided by Frank Morgner, thanks!
This commit is contained in:
parent
0af58b1cdd
commit
484dd5dfa5
1 changed files with 53 additions and 5 deletions
|
@ -1,8 +1,8 @@
|
|||
#!/bin/sh
|
||||
|
||||
WITH_USB=0
|
||||
WITH_USB=1
|
||||
|
||||
LIBUSB_WIN32_BIN_VERSION="1.2.2.0"
|
||||
LIBUSB_WIN32_BIN_VERSION="1.2.6.0"
|
||||
LIBUSB_WIN32_BIN_ARCHIVE="libusb-win32-bin-$LIBUSB_WIN32_BIN_VERSION.zip"
|
||||
LIBUSB_WIN32_BIN_URL="http://freefr.dl.sourceforge.net/project/libusb-win32/libusb-win32-releases/$LIBUSB_WIN32_BIN_VERSION/$LIBUSB_WIN32_BIN_ARCHIVE"
|
||||
LIBUSB_WIN32_BIN_DIR="libusb-win32-bin-$LIBUSB_WIN32_BIN_VERSION"
|
||||
|
@ -14,7 +14,8 @@ if [ "$WITH_USB" = "1" ]; then
|
|||
fi
|
||||
fi
|
||||
|
||||
MINGW_DIR="/usr/i586-mingw32msvc"
|
||||
MINGW="${MINGW:=i686-w64-mingw32}"
|
||||
MINGW_DIR="/usr/$MINGW"
|
||||
|
||||
# Use MinGW binaries before others
|
||||
#export PATH=$MINGW_DIR/bin:$PATH
|
||||
|
@ -33,11 +34,58 @@ export CFLAGS="-Wfatal-errors"
|
|||
# Include default MinGW include directory, and libnfc's win32 files
|
||||
export CFLAGS="$CFLAGS -I$MINGW_DIR/include -I$PWD/contrib/win32"
|
||||
|
||||
if [ "$MINGW" = "i686-w64-mingw32" ]; then
|
||||
# mingw-64 includes winscard.a and winscard.h
|
||||
#
|
||||
# It is not enough to set libpcsclite_LIBS to "-lwinscard", because it is
|
||||
# forgotten when libnfc is created with libtool. That's why we are setting
|
||||
# LIBS.
|
||||
export LIBS="-lwinscard"
|
||||
|
||||
echo "MinGW-w64 ships all requirements libnfc."
|
||||
echo "Unfortunately the MinGW-w64 header are currently"
|
||||
echo "buggy. Also, Libtool doesn't support MinGW-w64"
|
||||
echo "very well."
|
||||
echo ""
|
||||
echo "Warning ________________________________________"
|
||||
echo "You will only be able to compile libnfc.dll, but"
|
||||
echo "none of the executables (see utils and examples)."
|
||||
echo ""
|
||||
# You can fix winbase.h by adding the following lines:
|
||||
# #include <basetsd.h>
|
||||
# #include <windef.h>
|
||||
# But the problem with Libtool remains.
|
||||
else
|
||||
if [ -z "$libpcsclite_LIBS$libpcsclite_CFLAGS" ]; then
|
||||
echo "Error __________________________________________"
|
||||
echo "You need to get the PC/SC library from a Windows"
|
||||
echo "machine and the appropriate header files. Then"
|
||||
echo "specify libpcsclite_LIBS=.../WinScard.dll and"
|
||||
echo "libpcsclite_CFLAGS=-I..."
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
## Configure to cross-compile using mingw32msvc
|
||||
if [ "$WITH_USB" = "1" ]; then
|
||||
# with direct-USB drivers (use libusb-win32)
|
||||
./configure --target=i586-mingw32msvc --host=i586-mingw32msvc --with-drivers=pn531_usb,pn533_usb,pn532_uart,arygon --with-libusb-win32=$PWD/$LIBUSB_WIN32_BIN_DIR $*
|
||||
DRIVERS="all"
|
||||
else
|
||||
# with UART divers only (can be tested under wine)
|
||||
./configure --target=i586-mingw32msvc --host=i586-mingw32msvc --with-drivers=pn532_uart,arygon $*
|
||||
DRIVERS="pn532_uart,arygon"
|
||||
fi
|
||||
|
||||
if [ ! -x configure ]; then
|
||||
autoreconf -is
|
||||
fi
|
||||
|
||||
./configure --target=$MINGW --host=$MINGW \
|
||||
--with-drivers=$DRIVERS \
|
||||
--with-libusb-win32=$PWD/$LIBUSB_WIN32_BIN_DIR \
|
||||
$*
|
||||
|
||||
if [ "$MINGW" = "i686-w64-mingw32" ]; then
|
||||
# due to the buggy headers from MINGW-64 we always add "contrib/windows.h",
|
||||
# otherwise some windows types won't be available.
|
||||
echo "#include \"contrib/windows.h\"" >> config.h
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue