When mixer is not available, recommend SDL2_mixer instead of SDL1.2 mixer
[freeciv.git] / doc / README.msys2
blobfc34aec6814d852a42ea0efd47ed07dec911ede7
2  MSYS2 Windows Installer build notes
3 ====================================
5 This document is about building Freeciv Windows Installer packages
6 using MSYS2 from http://msys2.github.io
9  Status
10 ====================================
12 - Msys1, not msys2, is still the official freeciv Windows Installer
13   build method
14 - Buildable clients are gtk3, gtk3.22, gtk2, sdl2, and Qt
15   - Official pre-made msys2 environment supports only gtk3-, gtk3.22- and
16     sdl2-client builds
19  Setup
20 ====================================
22  This chapter is about creating new msys2 build environment.
24  If you want to reproduce more official freeciv builds, the environment
25  used to make those builds is documented in the next chapter ("Premade environment"),
26  with listing of versions current at the time of this freeciv version.
28 1) Install MSYS2 following the documentation on their homepage
30 1.1) Download
31  https://sourceforge.net/projects/msys2/files/Base/i686/msys2-i686-20160205.exe
32  for win32 or
33  https://sourceforge.net/projects/msys2/files/Base/x86_64/msys2-x86_64-20160205.exe
34  for win64
36 1.2) Run it to install MSYS2 on build system
38 1.3) Launch msys2_shell to update packages
39 > pacman -Syu
41 2) Install following packages with 'pacman -Su'
42    As of 18-Oct-16, one has to use also '--force' option.
44 2.1) Packages needed for building freeciv
45  These packages are needed even if you don't plan to make installer,
46  but only build freeciv for local use.
48 2.1.1) Arch independent packages needed for building freeciv
50 2.1.1.1) Arch independent packages always needed for building freeciv
51  With these packages it's possible to build freeciv source tree that
52  has already such generated files present that are created for the
53  release tarball.
55  - make
56  - gettext
57  - pkg-config
59 2.1.1.2) Arch independent packages needed for getting and extracting freeciv
60  source tarball
62  - tar
64 2.1.1.3) Arch independent packages needed for building freeciv from svn checkout
65  These are needed in addition to the ones always needed for building freeciv.
67  - subversion
68  - automake
69  - libtool
70  - autoconf
71  - python
73 2.1.2) Arch-specific packages needed for building freeciv
75 2.1.2.1) Arch-specific packages for building common parts
76  - mingw-w64-i686-gcc / mingw-w64-x86_64-gcc
77  - mingw-w64-i686-curl / mingw-w64-x86_64-curl
78  - mingw-w64-i686-bzip2 / mingw-w64-x64_64-bzip2
79  - mingw-w64-i686-readline / mingw-w64-x86_64-readline
80  - mingw-w64-i686-SDL2_mixer / mingw-w64-x86_64-SDL2_mixer
82 2.1.2.2) Arch-specific packages for building gtk3- and gtk3.22-client
83  - mingw-w64-i686-gtk3 / mingw-w64-x86_64-gtk3
85 2.1.2.3) Arch-specific packages for buildind Qt-client and/or Ruledit
86  - mingw-w64-i686-qt5 / mingw-w64-x86_64-qt5
88 2.1.2.4) Arch-specific packages for building gtk2-client
89  - mingw-w64-i686-gtk2 / mingw-w64-x86_64-gtk2
91 2.1.2.5) Arch-specific packages for building sdl2-client
92  - mingw-w64-i686-SDL2_image / mingw-w64-x86_64-SDL2_image
93  - mingw-w64-i686-SDL2_ttf / mingw-w64-x86_64-SDL2_ttf
94  - mingw-w64-i686-SDL2_gfx / mingw-w64-x86_64-SDL2_gfx
96 2.2) Packages needed for building installer package
97  These are needed in addition to above ones used in the
98  building step already.
100 2.2.1) Arch-specific packages needed for building installer
101  package
103  - mingw-w64-i686-nsis / mingw-w64-x86_64-nsis
105 2.3) Packages TODO:
107  - MagickWand support
110  Premade environment
111 ====================================
113 Premade msys2 environment is available for download from
114 http://download.gna.org/freeciv/packages/windows/msys2/
116 Current version is
118 win64 host:
119 -----------
120 msys2-freeciv-win64-161018.7z, based on
121 https://sourceforge.net/projects/msys2/files/Base/x86-64/msys2-x86_64-20160921.exe
123 Only win64 target is included - replace <arch> with 'x86_64' in package names below
126 Following packages have been installed:
127 - make
128 - pkg-config
129 - tar
130 - subversion
131 - patch
132 - nano
133 - automake
134 - libtool
135 - autoconf
136 - python
137 - gdb
138 - mingw-w64-<arch>-gcc
139 - mingw-w64-<arch>-icu
140 - mingw-w64-<arch>-curl
141 - mingw-w64-<arch>-sqlite3
142 - mingw-w64-<arch>-gtk3
143 - mingw-w64-<arch>-nsis
144 - mingw-w64-<arch>-bzip2
145 - mingw-w64-<arch>-readline
146 - mingw-w64-<arch>-SDL2_mixer
147 - mingw-w64-<arch>-SDL2_image
148 - mingw-w64-<arch>-SDL2_ttf
149 - mingw-w64-<arch>-SDL2_gfx
150 - mingw-w64-<arch>-qt5
153  Build
154 ====================================
156 Launch msys2 shell. Get the freeciv sources there
157 somehow. Some options are:
158 1) Download freeciv tarball within msys2 shell with wget
159 2) Use svn within msys2 shell to get them from version control
160 3) Copy them from Windows folder where they are to a directory that
161    is within msys2
163 > cd win32/installer_msys2
164 > make <targets>
166   Target can be:
167   - "<gui>-installer", where <gui> is
168      - gtk3
169      - gtk3.22
170      - gtk2
171      - sdl2
172      - qt
173   - "ruledit-installer"
174   - "snapshot", if your freeciv sources are in svn checkout directory
176  You can also set minimum Windows version targeted. While setting this
177  to an older version allows those Windows versions to run the created
178  executables, it may come with the cost of disabling functionality that
179  newer Windows versions could otherwise have.
180  The version is set via MIN_WIN_VER variable. For values to use, see
181  list in: https://msdn.microsoft.com/en-us/library/6sehtctf.aspx
182  Current default is 0x0601 (Windows 7).
186  Problems
187 ====================================
189 - Freeciv linked against readline in msys2 does not work.
190   Configure freeciv with --without-readline
193  TODO
194 ====================================
196 - Readline support