Update README.mingw to reflect current Windows libusb situation
authorXiaofan Chen <xiaofanc@gmail.com>
Fri, 11 Jan 2013 09:47:12 +0000 (10:47 +0100)
committerThomas Jarosch <thomas.jarosch@intra2net.com>
Fri, 11 Jan 2013 09:47:12 +0000 (10:47 +0100)
README.mingw

index afc02ad..3b0e5ba 100644 (file)
@@ -1,11 +1,54 @@
-To crosscompile for Win32 with mingw
-- Get and build libusb-win32-src-x.tar.gz from Sourceforge
-  Version was "libusb-win32-src-0.1.12.1.tar.gz" for April 4, 2009
-- Compile like  "make host_prefix=i386-mingw32msvc all". Your prefixes may vary.
-- Copy src/usb.h to /opt/cross/i386-mingw32msvc/include/
-- Copy *.a to /opt/cross/i386-mingw32msvc/lib/
-- Create a build directory like "mkdir build-win32", e.g in ../libftdi/
-- cd in that directory and run  
-  "cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain-mingw32.cmake .."
-- Copy src/ftdi.h to /opt/cross/i386-mingw32msvc/include/
-- Copy build-win32/src/*.a to /opt/cross/i386-mingw32msvc/lib/
\ No newline at end of file
+* How to cross compile libftdi-1.x for Windows? *
+   1 - To cross-compile for Win32 with mingw, you need to
+       have libusb-1.0 for Windows. libusbx is a fork of libusb-1.0
+       project which has gained popularity under Windows and Linux.
+       Therefore the instruction here uses libusbx. The process to
+       use libusb-1.0 from libusb.org is similar but take note it
+       does not offer Windows binary as of Jan 09 2013.
+
+   2 - Get libusbx Windows release binary from Sourceforge.
+       http://sourceforge.net/projects/libusbx/files/releases/
+
+   3 - The release version is libusbx-1.0.14-win.7z (706.2KB)
+       as of Jan 09, 2013.
+
+   4 - Alternatively you can also build form the release source tar ball
+       or the git source tree following standard cross compile process
+
+   5 - Copy include/libusbx-1.0/libusb.h to the include directory of your
+       cross compiler, eg.,
+       /opt/cross/i386-mingw32msvc/include/
+
+   6 - Copy MinGW32/static/libusb-1.0.a and MinGW32/dll/libusb-1.0.dll.a
+       to the library directory of your cross compiler, eg.,
+       /opt/cross/i386-mingw32msvc/lib/
+
+   7 - Create a build directory like "mkdir build-win32", e.g in ../libftdi/
+
+   8 - edit Toolchain-mingw32.cmake to reflect your cross compiler location.
+
+   9 - cd into the build directory and run
+       "cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain-mingw32.cmake .."
+
+  10 - Copy src/ftdi.h to the include directory of your cross compiler,
+         eg., /opt/cross/i386-mingw32msvc/include/
+
+  11 - Copy build-win32/src/*.a to the library directory of your cross compiler,
+         eg., /opt/cross/i386-mingw32msvc/lib/
+
+
+* How to run libftdi-1.x under Windows *
+
+libusbx (or libusb-1.0) Windows backend will rely on a proper driver to run.
+Please refer to the following wiki page on the instruction of
+installation of the proper driver.
+https://github.com/libusbx/libusbx/wiki/Windows-Backend#wiki-How_to_use_libusbx_on_Windows
+
+As of Jan 09 2013, libusb-1.0 Windows backend only supports WinUSB
+and libusbx's support of libusb0.sys and libusbk.sys are considered less
+mature than WinUSB. Therefore, WinUSB driver installation using Zadig
+is recommended.
+
+Take note once you replace the original FTDI driver with WinUSB driver,
+you can no longer use the functionality the original FTDI driver provides
+(eg. Virtual Serial Port or D2XX).