Split Windows README instructions into new file, with a few fixes.
[fw/openocd] / README.Win32
diff --git a/README.Win32 b/README.Win32
new file mode 100644 (file)
index 0000000..42b3f13
--- /dev/null
@@ -0,0 +1,97 @@
+Building OpenOCD for Windows
+----------------------------
+
+For building on Windows, you have to use CygWin. Make sure that your
+PATH environment variable contains no other locations with Unix utilities
+(like UnxUtils).  Those tools can't handle the CygWin paths, resulting
+in obscure dependency errors.  This was an observation gathered from the
+logs of one user; please correct us if this is wrong.
+
+The following URL is a good reference if you want to build OpenOCD
+under CygWin:
+
+       http://forum.sparkfun.com/viewtopic.php?t=11221
+
+Alternatively you can build the Windows binary under Linux using
+MinGW cross compiler. The following documents some tips of
+using this cross build option.
+
+libusb-win32
+------------
+
+You can choose to use the libusb-win32 binary distribution from
+its SourceForge page. As of this writing, the latest version
+is 0.1.12.2. This is the recommend version to use since it fixed
+an issue with USB composite device and this is important for FTDI
+based JTAG debuggers.
+
+       http://sourceforge.net/projects/libusb-win32/
+
+You need to download the libusb-win32-device-bin-0.1.12.2.tar.gz 
+package.  Extract this file into a temp directory. 
+
+Copy the file libusb-win32-device-bin-0.1.12.2\include\usb.h
+to your MinGW include directory.
+
+Copy the library libusb-win32-device-bin-0.1.12.2\lib\gcc\libusb.a
+to your MinGW library directory.
+
+Take note that different Linux distributions often have different MinGW
+installation directory.  Some of them also put the library and include
+into a separate sys-root directory.
+
+If there is a new svn version of libusb-win32, you can build it as well. 
+
+These are the instruction from the libusb-win32 Makefile:
+
+# If you're cross-compiling and your mingw32 tools are called
+# i586-mingw32msvc-gcc and so on, then you can compile libusb-win32
+# by running
+#    make host_prefix=i586-mingw32msvc all
+
+libftdi
+-------
+
+The author does not provide Windows binary. You can build it from a
+released source tarball or the git tree.
+
+If you are using the git tree, the following are the instructions from
+README.mingw. You will need to have the cmake utility installed.
+
+- Edit Toolchain-mingw32.cmake to point to the correct MinGW 
+  installation.
+- Create a build directory like "mkdir build-win32", e.g in ../libftdi/
+- cd into that directory and run  
+  "cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain-mingw32.cmake .."
+- Copy src/ftdi.h to your MinGW include directory.
+- Copy build-win32/src/*.a to your MinGW lib directory.
+
+libftd2xx
+---------
+
+The Cygwin/Win32 ZIP file contains a directory named ftd2xx.win32.
+After being extracted, the directory does not need further preparation.
+Instead, its path must be provided to the --with-ftd2xx-win32-zipdir
+configure option, as shown in the next section.
+
+OpenOCD
+-------
+
+Now you can build OpenOCD under Linux using MinGW.  You need to use
+--build and --host configure options.
+
+To use libftdi:
+
+  ./configure --build=i686-pc-linux-gnu --host=i586-mingw32msvc \
+        --enable-ft2232_libftdi \
+        ... other options ...
+
+To use ftd2xx:
+
+  ./configure --build=i686-pc-linux-gnu --host=i586-mingw32msvc \
+        --enable-ft2232_ftd2xx \
+        --with-ftd2xx-win32-zipdir=/path/to/libftd2xx-win32 \
+        ... other options ...
+
+If you are using the SVN repository, see the README file for additional
+instructions about configuring and building OpenOCD.