summaryrefslogtreecommitdiff
path: root/README.windows
blob: 2021bc5157930be1880c23b13511044e32b1d116 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
Installation on Woe32 (Microsoft Windows):

There are three ways to create binaries of this package for Woe32:
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.

===============================================================================
1) Native binaries, built using the mingw tool chain.

   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.

   Building for mingw is achieved through the following preparation,
   configure, and build commands:

      PATH=/usr/local/mingw/bin:$PATH
      export PATH
      ./configure --host=i586-pc-mingw32 --prefix=/usr/local/mingw \
        CC="gcc-3 -mno-cygwin" \
        CXX="g++-3 -mno-cygwin"
      make
      make check

   Installation:

      make install

===============================================================================
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
   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
   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

   Then start a bash (from cygwin or mingw).

   Building for mingw is achieved through the following preparation,
   configure, and build commands:

      PATH=/usr/local/msvc/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

      ./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=":"
      make
      make check

   Installation:

      make install

===============================================================================