From 93e04d3ae102937f301259b18d74accd40e069b4 Mon Sep 17 00:00:00 2001 From: Michael Steinert Date: Wed, 16 May 2012 12:31:06 -0600 Subject: Cleanup Win32 artifacts 1. Standardize on `win32` vs `windows/win32` 2. Move `msinttypes` into platform directory Signed-off-by: Michael Steinert --- README-win32.md | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 README-win32.md (limited to 'README-win32.md') diff --git a/README-win32.md b/README-win32.md new file mode 100644 index 0000000..afa338a --- /dev/null +++ b/README-win32.md @@ -0,0 +1,125 @@ +# Using rabbitmq-c on Windows + +There are three approaches to building rabbitmq-c under Windows: + +- THE PREFERRED METHOD: + Build using CMake, which will cover building with MSVC or MinGW + See the README file for details on how to build with cmake. + +- Build using the MinGW/MSYS (MinGW/MSYS is a port of the GNU + toolchain and utilities to Windows, including the gcc compiler). + The results of building in this way are native Windows DLLs and + EXEs, and can be used without having MinGW installed. The drawback + to this approach is that you cannot safely call the resulting + librabbitmq DLL from code compiled with Microsoft's C compiler. The + advantage is that the whole of rabbitmq-c can be built under + Windows, including the tools. + +- Build using Microsoft's C compiler. You will still need to install + MinGW/MSYS in order to run the rabbitmq-c build scripts, but + Microsoft's compiler is used to compile the code. The resulting + librabbitmq DLL can be used from code compiled with Microsoft's C + compiler (i.e. code developed in Visual Studio). The downside to + this approach is that the rabbitmq-c tools cannot be built, due to + dependencies on other libraries. + + +## Common steps + +With either of the approaches, the initial steps are the same: You +should download and install MinGW/MSYS and Python. + +Installing installing the relevant parts of MinGW/MSYS can be fairly +time consuming - there are dozens of files to be downloaded and +unpacked. To make it easier, we provide a bash script that automates +this process, in `rabbitmq-c/etc/install-mingw.sh`. You can run this +script under cygwin or Linux (obviously if you use Linux you'll need +to transfer the resulting files over to the Windows machine). + +Note that some MinGW packages are .tar.lzma files, so it requires a +system with the xz compression utility and a tar that supports the -J +option. Recent cygwin and Linux distros should be fine here. + +Run the install-mingw.sh script specifying the destination directory, +e.g. + + $ etc/install-mingw.sh mingw + +This will download all the required MinGW/MSYS packages, and unpack +them into the `mingw` directory. + +The other prerequisite for the rabbitmq-c build is Python. The +Windows installer from python.org for the latest 2.x version of Python +will do fine. + +You will also need to copy the source code for rabbitmq-c and +rabbitmq-codegen somewhere under your `mingw` directory. + +Then to start the MSYS bash shell, open a `cmd` window, and ensure +that both the MinGW bin directory and the python install directory are +in the path, e.g. + + C:\>set PATH=%PATH%;C:\mingw\bin;C:\Python27 + +Then start bash, and run the following mount command (substituting the +Windows path of your MinGW install if it isn't `C:\mingw`): + + C:\>bash + bash-3.1$ mount 'C:\mingw' /mingw + +Finally, go to wherever you copied the rabbitmq-c source. + + bash-3.1$ cd /rabbitmq-c + + +## Building rabbitmq-c with Microsoft's C compiler + +The Microsoft C/C++ compiler is part of MS Visual Studio, including +the gratis Visual Studio Express. Visual Studio 2005 and higher are +known to work. + +Start by following the steps in the previous section. The GNU build +tools have limited support for Microsoft toolchain, but the +install-mingw.sh script will install versions of the packages that are +known to be suitable. In particular, only libtool version 2.2.7a is +known to work; later versions have been reported to introduce +problems. + +Once you are at the bash prompt, build rabbitmq-c by running the +script in `rabbitmq-c/etc/build-ms.sh`: + + bash-3.1$ etc/build-ms.sh + +You should end up with a directory `build` containing the librabbitmq +DLL, the corresponding .lib file, and header files. These are +sufficient to create applications using librabbitmq within Visual +Studio. + +build-ms.sh produces 32-bit binaries by default. If you have an +appropriate version of Visual Studio (e.g. VS2010), you can build +64-bit binaries with: + + bash-3.1$ etc/build-ms.sh --enable-64-bit + + +## Building rabbitmq-c with gcc + +There is no script to build rabbitmq-c with gcc, but it is as +documented in the README file: + + bash-3.1$ autoreconf -i && ./configure && make + +You can run the resulting tool EXEs without needing the rest of MinGW. To do +this, copy the following files into a single directory: + +- rabbitmq-c/tools/.libs/*.exe + +- rabbitmq-c/librabbitmq/.libs/librabbitmq-0.dll + +- /bin/libpopt-0.dll + +- /bin/libiconv-2.dll + +- /bin/libintl-8.dll + + -- cgit v1.2.1