Split Windows README instructions into new file, with a few fixes.
[openocd.git] / README.Win32
1 Building OpenOCD for Windows
2 ----------------------------
3
4 For building on Windows, you have to use CygWin. Make sure that your
5 PATH environment variable contains no other locations with Unix utilities
6 (like UnxUtils).  Those tools can't handle the CygWin paths, resulting
7 in obscure dependency errors.  This was an observation gathered from the
8 logs of one user; please correct us if this is wrong.
9
10 The following URL is a good reference if you want to build OpenOCD
11 under CygWin:
12
13         http://forum.sparkfun.com/viewtopic.php?t=11221
14
15 Alternatively you can build the Windows binary under Linux using
16 MinGW cross compiler. The following documents some tips of
17 using this cross build option.
18
19 libusb-win32
20 ------------
21
22 You can choose to use the libusb-win32 binary distribution from
23 its SourceForge page. As of this writing, the latest version
24 is 0.1.12.2. This is the recommend version to use since it fixed
25 an issue with USB composite device and this is important for FTDI
26 based JTAG debuggers.
27
28         http://sourceforge.net/projects/libusb-win32/
29
30 You need to download the libusb-win32-device-bin-0.1.12.2.tar.gz 
31 package.  Extract this file into a temp directory. 
32
33 Copy the file libusb-win32-device-bin-0.1.12.2\include\usb.h
34 to your MinGW include directory.
35
36 Copy the library libusb-win32-device-bin-0.1.12.2\lib\gcc\libusb.a
37 to your MinGW library directory.
38
39 Take note that different Linux distributions often have different MinGW
40 installation directory.  Some of them also put the library and include
41 into a separate sys-root directory.
42
43 If there is a new svn version of libusb-win32, you can build it as well. 
44
45 These are the instruction from the libusb-win32 Makefile:
46
47 # If you're cross-compiling and your mingw32 tools are called
48 # i586-mingw32msvc-gcc and so on, then you can compile libusb-win32
49 # by running
50 #    make host_prefix=i586-mingw32msvc all
51
52 libftdi
53 -------
54
55 The author does not provide Windows binary. You can build it from a
56 released source tarball or the git tree.
57
58 If you are using the git tree, the following are the instructions from
59 README.mingw. You will need to have the cmake utility installed.
60
61 - Edit Toolchain-mingw32.cmake to point to the correct MinGW 
62   installation.
63 - Create a build directory like "mkdir build-win32", e.g in ../libftdi/
64 - cd into that directory and run  
65   "cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain-mingw32.cmake .."
66 - Copy src/ftdi.h to your MinGW include directory.
67 - Copy build-win32/src/*.a to your MinGW lib directory.
68
69 libftd2xx
70 ---------
71
72 The Cygwin/Win32 ZIP file contains a directory named ftd2xx.win32.
73 After being extracted, the directory does not need further preparation.
74 Instead, its path must be provided to the --with-ftd2xx-win32-zipdir
75 configure option, as shown in the next section.
76
77 OpenOCD
78 -------
79
80 Now you can build OpenOCD under Linux using MinGW.  You need to use
81 --build and --host configure options.
82
83 To use libftdi:
84
85   ./configure --build=i686-pc-linux-gnu --host=i586-mingw32msvc \
86         --enable-ft2232_libftdi \
87         ... other options ...
88
89 To use ftd2xx:
90
91   ./configure --build=i686-pc-linux-gnu --host=i586-mingw32msvc \
92         --enable-ft2232_ftd2xx \
93         --with-ftd2xx-win32-zipdir=/path/to/libftd2xx-win32 \
94         ... other options ...
95
96 If you are using the SVN repository, see the README file for additional
97 instructions about configuring and building OpenOCD.