summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2016-11-23 19:58:38 +0100
committerBruno Haible <bruno@clisp.org>2016-11-23 19:58:38 +0100
commitd041a56f5438c8a6d8d2f5aa0aebb4b67496e1ab (patch)
treedbc681d68a29809cd1a0a154c88b894ae5e64552
parente480384a737e02ff93b4baf641d42a38b6cffc6a (diff)
downloadgperf-d041a56f5438c8a6d8d2f5aa0aebb4b67496e1ab.tar.gz
Update installation instructions for Windows.
-rw-r--r--ChangeLog7
-rw-r--r--README.windows269
2 files changed, 226 insertions, 50 deletions
diff --git a/ChangeLog b/ChangeLog
index acc7067..e7b04e4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2016-11-23 Bruno Haible <bruno@clisp.org>
+ Update installation instructions for Windows.
+ * README.windows: Assume a 64-bit Windows. Explain both 32-bit and
+ 64-bit builds. Revamp instructions for the MS Visual C/C++ tool chain
+ and for Cygwin.
+
+2016-11-23 Bruno Haible <bruno@clisp.org>
+
Drop the nickname "woe32".
* README.windows: Renamed from README.woe32.
* Makefile.in (SOURCE_FILES): Update.
diff --git a/README.windows b/README.windows
index 2021bc5..baf6435 100644
--- a/README.windows
+++ b/README.windows
@@ -1,28 +1,55 @@
-Installation on Woe32 (Microsoft Windows):
+Installation on Microsoft Windows:
-There are three ways to create binaries of this package for Woe32:
+There are three ways to create binaries of this package for Microsoft Windows:
1) Native binaries, built using the mingw tool chain.
2) Native binaries, built using the MS Visual C/C++ tool chain.
-3) Binaries for the Cygwin environment. For these, please see the normal
- INSTALL file.
+3) Binaries for the Cygwin environment.
===============================================================================
1) Native binaries, built using the mingw tool chain.
- I recommend to use the cygwin environment as the development environment
+ I recommend to use the Cygwin environment as the development environment
and mingw only as the target (runtime, deployment) environment.
For this, you need to install
- - cygwin,
- - the mingw runtime package, also from the cygwin site.
+ * Cygwin (from https://cygwin.com/),
+ * some packages available from the Cygwin package installer:
+ make
+ * the mingw cross-compilation tools and runtime package, available from
+ the Cygwin package installer (setup-x86_64.exe):
+ - for creating 32-bit binaries: packages
+ mingw64-i686-gcc-core,
+ mingw64-i686-gcc-g++,
+ mingw64-i686-headers,
+ mingw64-i686-runtime
+ - for creating 64-bit binaries: packages
+ mingw64-x86_64-gcc-core,
+ mingw64-x86_64-gcc-g++,
+ mingw64-x86_64-headers,
+ mingw64-x86_64-runtime
- Building for mingw is achieved through the following preparation,
- configure, and build commands:
+ Building 32-bit binaries for mingw is achieved through the following
+ preparation, configure, and build commands:
- PATH=/usr/local/mingw/bin:$PATH
+ PATH=/usr/local/mingw32/bin:$PATH
export PATH
- ./configure --host=i586-pc-mingw32 --prefix=/usr/local/mingw \
- CC="gcc-3 -mno-cygwin" \
- CXX="g++-3 -mno-cygwin"
+ ./configure --host=i686-w64-mingw32 --prefix=/usr/local/mingw32 \
+ CC=i686-w64-mingw32-gcc \
+ CXX=i686-w64-mingw32-g++ \
+ CPPFLAGS="-I/usr/local/mingw32/include -Wall" \
+ LDFLAGS="-L/usr/local/mingw32/lib"
+ make
+ make check
+
+ Building 64-bit binaries for mingw is achieved through the following
+ preparation, configure, and build commands:
+
+ PATH=/usr/local/mingw64/bin:$PATH
+ export PATH
+ ./configure --host=x86_64-w64-mingw32 --prefix=/usr/local/mingw64 \
+ CC=x86_64-w64-mingw32-gcc \
+ CXX=x86_64-w64-mingw32-g++ \
+ CPPFLAGS="-I/usr/local/mingw64/include -Wall" \
+ LDFLAGS="-L/usr/local/mingw64/lib"
make
make check
@@ -34,55 +61,197 @@ There are three ways to create binaries of this package for Woe32:
2) Native binaries, built using the MS Visual C/C++ tool chain.
Note that binaries created with MSVC have a distribution constraint: They
- depend on a closed-source library ('msvcr70.dll' for MSVC 7.0, 'msvcr90.dll'
- for MSVC 9.0, and so on) which is not normally part of a Windows
- installation.
- You cannot distribute 'msvcr*.dll' with the binaries - this would be a
+ depend on a closed-source library ('msvcr90.dll' for MSVC 9.0,
+ 'vcruntime140.dll' for MSVC 14.0, and so on) which is not normally part of
+ a Windows installation.
+ You cannot distribute 'vcruntime*.dll' with the binaries - this would be a
violation of the GPL and of the Microsoft EULA.
- You can distribute the binaries without including 'msvcr*.dll', but this
- will cause problems for users that don't have this library on their system.
- Therefore it is not recommended; the mingw tool chain is preferred for
- this reason.
-
- Requires MS Visual C/C++ 4.0 or newer. The "Express" edition which
- contains just the tools and not the IDE is sufficient.
-
- Requires also a cygwin or mingw environment (with 'bash', the common POSIX
- commands, and 'make' ) as a build environment. Building with "nmake" is no
- longer supported.
-
- Make sure that the MSVC tools ("cl" etc.) are found in PATH.
- In a typical MSVC 6.0 installation, this can be achieved by running
- C:\Program Files\Microsoft Visual Studio\VC98\bin\vcvars32.bat
- In a typical MSVC 7.0 installation, it can be achieved by running
- C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\vsvars32.bat
+ You can distribute the binaries without including 'vcruntime*.dll'. Users
+ who don't have this library on their system will require to pull some files
+ (api-ms-win*.dll) through the Windows Update mechanism, see
+ https://support.microsoft.com/en-us/kb/2999226 .
+
+ This recipe requires MS Visual C/C++ 9.0 or newer.
+ You don't need the Visual Studio IDE, just the C/C++ tool chain.
+ As of 2016, you can install the MS Visual C/C++ 14.0 tool chain from
+ http://landinghub.visualstudio.com/visual-cpp-build-tools (it's the file
+ visualcppbuildtools_full.exe).
+
+ This recipe requires also a Cygwin environment (with 'bash', the common POSIX
+ commands, and 'make') as a build environment. Building with 'nmake' is not
+ supported.
+ For this, you need to install
+ * Cygwin (from https://cygwin.com/),
+ * some packages available from the Cygwin package installer:
+ make
+
+ You also need the scripts 'ar-lib' and 'compile' from
+ http://git.savannah.gnu.org/gitweb/?p=automake.git;a=blob_plain;f=lib/ar-lib;hb=HEAD
+ http://git.savannah.gnu.org/gitweb/?p=automake.git;a=blob_plain;f=lib/compile;hb=HEAD
+ respectively.
+ They may also be included in this package, in directory 'build-aux/'.
+ Save them; the instructions below assume that you stored them in $HOME/msvc/.
+ Make them executable:
+ chmod a+x ar-lib compile
+
+ Start a bash (from Cygwin).
+
+ Make sure that the MSVC tools ("cl" etc.) are found in PATH and the
+ environment variables INCLUDE and LIB are set appropriately.
In a typical MSVC 9.0 installation, it can be achieved by running
C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat
+ In a typical MSVC 14.0 installation on Windows 10, it can be achieved
+ - for creating 32-bit binaries: through the following bash commands:
+
+ # Set environment variables for using MSVC 14,
+ # for creating native 32-bit Windows executables.
+
+ # Windows C library headers and libraries.
+ WindowsCrtIncludeDir='C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt'
+ WindowsCrtLibDir='C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\'
+ INCLUDE="${WindowsCrtIncludeDir};$INCLUDE"
+ LIB="${WindowsCrtLibDir}x86;$LIB"
- Then start a bash (from cygwin or mingw).
+ # Windows API headers and libraries.
+ WindowsSdkIncludeDir='C:\Program Files (x86)\Windows Kits\8.1\Include\'
+ WindowsSdkLibDir='C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\'
+ INCLUDE="${WindowsSdkIncludeDir}um;${WindowsSdkIncludeDir}shared;$INCLUDE"
+ LIB="${WindowsSdkLibDir}x86;$LIB"
- Building for mingw is achieved through the following preparation,
- configure, and build commands:
+ # Visual C++ tools, headers and libraries.
+ VSINSTALLDIR='C:\Program Files (x86)\Microsoft Visual Studio 14.0'
+ VCINSTALLDIR="${VSINSTALLDIR}"'\VC'
+ PATH=`cygpath -u "${VCINSTALLDIR}"`/bin:"$PATH"
+ INCLUDE="${VCINSTALLDIR}"'\include;'"${INCLUDE}"
+ LIB="${VCINSTALLDIR}"'\lib;'"${LIB}"
- PATH=/usr/local/msvc/bin:$PATH
+ export INCLUDE LIB
+
+ - for creating 64-bit binaries: through the following bash commands:
+
+ # Set environment variables for using MSVC 14,
+ # for creating native 64-bit Windows executables.
+
+ # Windows C library headers and libraries.
+ WindowsCrtIncludeDir='C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt'
+ WindowsCrtLibDir='C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\'
+ INCLUDE="${WindowsCrtIncludeDir};$INCLUDE"
+ LIB="${WindowsCrtLibDir}x64;$LIB"
+
+ # Windows API headers and libraries.
+ WindowsSdkIncludeDir='C:\Program Files (x86)\Windows Kits\8.1\Include\'
+ WindowsSdkLibDir='C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\'
+ INCLUDE="${WindowsSdkIncludeDir}um;${WindowsSdkIncludeDir}shared;$INCLUDE"
+ LIB="${WindowsSdkLibDir}x64;$LIB"
+
+ # Visual C++ tools, headers and libraries.
+ VSINSTALLDIR='C:\Program Files (x86)\Microsoft Visual Studio 14.0'
+ VCINSTALLDIR="${VSINSTALLDIR}"'\VC'
+ PATH=`cygpath -u "${VCINSTALLDIR}"`/bin/amd64:"$PATH"
+ INCLUDE="${VCINSTALLDIR}"'\include;'"${INCLUDE}"
+ LIB="${VCINSTALLDIR}"'\lib\amd64;'"${LIB}"
+
+ export INCLUDE LIB
+
+ Building 32-bit binaries with MSVC is achieved through the following
+ preparation, configure, and build commands:
+
+ PATH=/usr/local/msvc32/bin:$PATH
export PATH
win32_target=_WIN32_WINNT_WINXP # for MSVC 9.0
win32_target=_WIN32_WINNT_VISTA # possibly for MSVC >= 10.0
win32_target=_WIN32_WINNT_WIN7 # possibly for MSVC >= 10.0
+ win32_target=_WIN32_WINNT_WIN8 # possibly for MSVC >= 10.0
+
+ ./configure --host=i686-w64-mingw32 --prefix=/usr/local/msvc32 \
+ CC="$HOME/msvc/compile cl -nologo" \
+ CFLAGS="-MD" \
+ CXX="$HOME/msvc/compile cl -nologo" \
+ CXXFLAGS="-MD" \
+ CPPFLAGS="-D_WIN32_WINNT=$win32_target -I/usr/local/msvc32/include" \
+ LDFLAGS="-L/usr/local/msvc32/lib" \
+ LD="link" \
+ NM="dumpbin -symbols" \
+ STRIP=":" \
+ AR="$HOME/msvc/ar-lib lib" \
+ RANLIB=":"
+ make
+ make check
+
+ Building 64-bit binaries with MSVC is achieved through the following
+ preparation, configure, and build commands:
- ./configure --host=i586-pc-mingw32 --prefix=/usr/local/msvc \
- CC="`pwd`/build-aux/compile cl -nologo" \
- CFLAGS="-MD" \
- CXX="`pwd`/build-aux/compile cl -nologo" \
- CXXFLAGS="-MD" \
- CPPFLAGS="-D_WIN32_WINNT=$win32_target -I/usr/local/msvc/include" \
- LDFLAGS="-L/usr/local/msvc/lib" \
- LD="link" \
- NM="dumpbin -symbols" \
- STRIP=":" \
- AR="`pwd`/build-aux/ar-lib lib" \
- RANLIB=":"
+ PATH=/usr/local/msvc64/bin:$PATH
+ export PATH
+
+ win32_target=_WIN32_WINNT_WINXP # for MSVC 9.0
+ win32_target=_WIN32_WINNT_VISTA # possibly for MSVC >= 10.0
+ win32_target=_WIN32_WINNT_WIN7 # possibly for MSVC >= 10.0
+ win32_target=_WIN32_WINNT_WIN8 # possibly for MSVC >= 10.0
+
+ ./configure --host=x86_64-w64-mingw32 --prefix=/usr/local/msvc64 \
+ CC="$HOME/msvc/compile cl -nologo" \
+ CFLAGS="-MD" \
+ CXX="$HOME/msvc/compile cl -nologo" \
+ CXXFLAGS="-MD" \
+ CPPFLAGS="-D_WIN32_WINNT=$win32_target -I/usr/local/msvc64/include" \
+ LDFLAGS="-L/usr/local/msvc64/lib" \
+ LD="link" \
+ NM="dumpbin -symbols" \
+ STRIP=":" \
+ AR="$HOME/msvc/ar-lib lib" \
+ RANLIB=":"
+ make
+ make check
+
+ Installation:
+
+ make install
+
+===============================================================================
+3) Binaries for the Cygwin environment.
+
+ The generic instructions in the INSTALL file apply. But here are more
+ specific ones.
+
+ You need to install
+ * Cygwin (from https://cygwin.com/),
+ * some packages available from the Cygwin package installer:
+ make
+ * the Cygwin [cross-]compilation tools package, available from
+ the Cygwin package installer (setup-x86_64.exe):
+ - for creating 32-bit binaries: packages
+ cygwin32-gcc-core,
+ cygwin32-gcc-g++,
+ cygwin32
+ - for creating 64-bit binaries: packages
+ gcc-core,
+ gcc-g++
+
+ Building 32-bit binaries for Cygwin is achieved through the following
+ preparation, configure, and build commands:
+
+ PATH=/usr/local/cygwin32/bin:/usr/i686-pc-cygwin/sys-root/usr/bin:$PATH
+ export PATH
+ ./configure --host=i686-pc-cygwin --prefix=/usr/local/cygwin32 \
+ CC=i686-pc-cygwin-gcc \
+ CXX=i686-pc-cygwin-g++ \
+ CPPFLAGS="-I/usr/local/cygwin32/include -Wall" \
+ LDFLAGS="-L/usr/local/cygwin32/lib"
+ make
+ make check
+
+ Building 64-bit binaries for Cygwin is achieved through the following
+ preparation, configure, and build commands:
+
+ PATH=/usr/local/cygwin64/bin:$PATH
+ export PATH
+ ./configure --host=x86_64-pc-cygwin --prefix=/usr/local/cygwin64 \
+ CC=x86_64-pc-cygwin-gcc \
+ CXX=x86_64-pc-cygwin-g++ \
+ CPPFLAGS="-I/usr/local/cygwin64/include -Wall" \
+ LDFLAGS="-L/usr/local/cygwin64/lib"
make
make check