From 1ad7c5103adc4ced93296c5d8c7cdd5393922c98 Mon Sep 17 00:00:00 2001 From: David Wragg Date: Tue, 30 Nov 2010 23:36:23 +0000 Subject: Support for 64-bit Windows builds --- README.windows | 6 ++++++ etc/build-ms.sh | 30 +++++++++++++++++++++++------- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/README.windows b/README.windows index 836a3be..cfff065 100644 --- a/README.windows +++ b/README.windows @@ -91,6 +91,12 @@ 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 diff --git a/etc/build-ms.sh b/etc/build-ms.sh index 4a70b35..8567eac 100755 --- a/etc/build-ms.sh +++ b/etc/build-ms.sh @@ -4,22 +4,38 @@ set -e +vs64= +sdk64= + +while [ $# -gt 0 ] ; do + case $1 in + --enable-64-bit) + vs64=/amd64 + sdk64=/x64 + ;; + *) + echo "Usage: build-ms.sh [ --enable-64-bit ]" 1>&2 + exit 1 + esac + shift +done + # Locate the necessary lib and include directories drive=$(echo "$SYSTEMDRIVE" | sed 's|^\([A-Za-z]\):$|/\1|') for vsvers in 10.0 9.0 8 ; do vsdir="$drive/Program Files/Microsoft Visual Studio $vsvers" - [ -x "$vsdir/VC/bin/cl.exe" ] && break + [ -x "$vsdir/VC/bin$vs64/cl.exe" ] && break vsdir="$drive/Program Files (x86)/Microsoft Visual Studio $vsvers" - [ -x "$vsdir/VC/bin/cl.exe" ] && break + [ -x "$vsdir/VC/bin$vs64/cl.exe" ] && break vsdir= done if [ -z "$vsdir" ] ; then - echo "Couldn't find suitable Visual Studio installation" + echo "Couldn't find a suitable Visual Studio installation" exit 1 fi @@ -27,10 +43,10 @@ echo "Using Visual Studio install at $vsdir" for sdkpath in "Microsoft SDKs/Windows/"{v7.0A,v6.0A} "Microsoft Visual Studio 8/VC/PlatformSDK" ; do sdkdir="$drive/Program Files/$sdkpath" - [ -d "$sdkdir/lib" -a -d "$sdkdir/include" ] && break + [ -d "$sdkdir/lib$sdk64" -a -d "$sdkdir/include" ] && break sdkdir="$drive/Program Files (x86)/$sdkpath" - [ -d "$sdkdir/lib" -a -d "$sdkdir/include" ] && break + [ -d "$sdkdir/lib$sdk64" -a -d "$sdkdir/include" ] && break sdkdir= done @@ -42,8 +58,8 @@ fi echo "Using Windows SDK install at $sdkdir" -PATH="$PATH:$vsdir/VC/bin:$vsdir/Common7/IDE" -LIB="$vsdir/VC/lib:$sdkdir/lib" +PATH="$PATH:$vsdir/VC/bin$vs64:$vsdir/Common7/IDE" +LIB="$vsdir/VC/lib$vs64:$sdkdir/lib$sdk64" INCLUDE="$vsdir/VC/include:$sdkdir/include" export PATH LIB INCLUDE -- cgit v1.2.1