INSTALL.md
author unC0Rr
Wed, 28 Aug 2024 13:36:52 +0200
changeset 16019 eb015d6b4a2a
parent 15985 e42d1819b150
permissions -rw-r--r--
Avoid creating unused string that is quite costly to produce
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
     1
Building and installing Hedgewars
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
     2
=================================
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
     3
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
     4
This file explains to you how to build/compile Hedgewars and how to install it.
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
     5
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
     6
See also: <https://hedgewars.org/kb/BuildingHedgewars>
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
     7
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
     8
Dependencies
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
     9
------------
13713
20768d813518 Write down system requirements
Wuzzy <Wuzzy2@mail.ru>
parents: 13502
diff changeset
    10
### Hardware dependencies
20768d813518 Write down system requirements
Wuzzy <Wuzzy2@mail.ru>
parents: 13502
diff changeset
    11
See README.md.
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    12
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    13
### Core dependencies
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    14
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    15
To compile and install Hedgewars, you need at least:
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    16
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    17
- A C++ compiler (e.g. GCC)
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    18
- CMake >= 2.6.0
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    19
- A make program (e.g. GNU Make)
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    20
- Free Pascal Compiler (FPC) >= 2.2.4
13181
2148b493836e Update INSTALL.md about new Qt5 dependency
Wuzzy <Wuzzy2@mail.ru>
parents: 12817
diff changeset
    21
- Qt 5
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    22
- SDL >= 2.0
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    23
- SDL\_net >= 2.0
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    24
- SDL\_mixer >= 2.0
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    25
- SDL\_image >= 2.0
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    26
- SDL\_ttf >= 2.0
13881
99b265e0d1d0 Drop internal PhysFS, bump PhysFS requirement to 3.0.0
Wuzzy <Wuzzy2@mail.ru>
parents: 13713
diff changeset
    27
- PhysFS >= 3.0.0
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    28
14647
c09ac49ed1de Update INSTALL notes for FreeBSD (fpc-rtl-extra dependency)
Wuzzy <Wuzzy2@mail.ru>
parents: 14320
diff changeset
    29
On FreeBSD, you also need the package “fpc-rtl-extra”.
c09ac49ed1de Update INSTALL notes for FreeBSD (fpc-rtl-extra dependency)
Wuzzy <Wuzzy2@mail.ru>
parents: 14320
diff changeset
    30
13181
2148b493836e Update INSTALL.md about new Qt5 dependency
Wuzzy <Wuzzy2@mail.ru>
parents: 12817
diff changeset
    31
### Recommended optional dependencies
2148b493836e Update INSTALL.md about new Qt5 dependency
Wuzzy <Wuzzy2@mail.ru>
parents: 12817
diff changeset
    32
2148b493836e Update INSTALL.md about new Qt5 dependency
Wuzzy <Wuzzy2@mail.ru>
parents: 12817
diff changeset
    33
These are not strictly required to build Hedgewars, but it's
2148b493836e Update INSTALL.md about new Qt5 dependency
Wuzzy <Wuzzy2@mail.ru>
parents: 12817
diff changeset
    34
usually better to have them installed. Hedgewars has fallback mechanisms
2148b493836e Update INSTALL.md about new Qt5 dependency
Wuzzy <Wuzzy2@mail.ru>
parents: 12817
diff changeset
    35
in if these are not found on your system.
2148b493836e Update INSTALL.md about new Qt5 dependency
Wuzzy <Wuzzy2@mail.ru>
parents: 12817
diff changeset
    36
2148b493836e Update INSTALL.md about new Qt5 dependency
Wuzzy <Wuzzy2@mail.ru>
parents: 12817
diff changeset
    37
- Lua = 5.1.0
2148b493836e Update INSTALL.md about new Qt5 dependency
Wuzzy <Wuzzy2@mail.ru>
parents: 12817
diff changeset
    38
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    39
### Optional dependencies
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    40
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    41
For some additional features, you can optionally install these dependencies:
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    42
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    43
- For PNG screenshots:
13181
2148b493836e Update INSTALL.md about new Qt5 dependency
Wuzzy <Wuzzy2@mail.ru>
parents: 12817
diff changeset
    44
    - libpng >= 1.2
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    45
- For video recording:
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    46
    - FFmpeg or Libav
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    47
- For the Hedgewars Server:
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    48
    - GHC >= 6.10
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    49
    - Various Haskell packages (see below)
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    50
8125
814cc5cf0b66 koda, koda... could have checked your claims
unc0rr
parents: 8120
diff changeset
    51
Lua will be automatically built if not found.
8120
67c3201365b1 INSTALL and README updates
koda
parents: 7954
diff changeset
    52
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    53
### Hedgewars Server dependencies
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    54
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    55
The Hedgewars Server is an **optional** separate application.
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    56
It provides the online lobby and allows players to create rooms.
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    57
You will also be able to launch the server from the frontend
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    58
(network play → local network → start server).
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    59
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    60
**Most players do not need this!**
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    61
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    62
To compile it, you need:
1006
8a0ed701eafb Some fixes
unc0rr
parents: 680
diff changeset
    63
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    64
- Glasgow Haskell Compiler (GHC) >= 6.10
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    65
- These Haskell packages:
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    66
    - `containers`
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    67
    - `vector`
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    68
    - `bytestring`
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    69
    - `network` >= 2.3
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    70
    - `random`
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    71
    - `time`
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    72
    - `mtl` >= 2
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    73
    - `sandi`
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    74
    - `hslogger`
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    75
    - `process`
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    76
    - `deepseq`
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    77
    - `utf8-string`
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    78
    - `SHA`
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    79
    - `entropy`
14320
f081a984da28 Fix gameServer dependency documentation
Wuzzy <Wuzzy2@mail.ru>
parents: 14289
diff changeset
    80
    - `zlib` >= 0.5.3 and < 0.7
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    81
    - `regex-tdfa`
13502
99a99dbfbf6d Update server dependencies in INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 13181
diff changeset
    82
    - `binary` >= 0.8.5.1
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    83
15985
e42d1819b150 Revive cabal build of the game server
Vekhir
parents: 15876
diff changeset
    84
If you use the `Cabal` based build process:
e42d1819b150 Revive cabal build of the game server
Vekhir
parents: 15876
diff changeset
    85
    - `zlib` is not needed.
e42d1819b150 Revive cabal build of the game server
Vekhir
parents: 15876
diff changeset
    86
    - `network` >= 3.0
e42d1819b150 Revive cabal build of the game server
Vekhir
parents: 15876
diff changeset
    87
    - `network-bsd` >= 2.8.1
e42d1819b150 Revive cabal build of the game server
Vekhir
parents: 15876
diff changeset
    88
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    89
Building
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    90
--------
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    91
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    92
### Summary
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    93
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    94
To build and install Hedgewars, obtain all dependencies, then run:
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    95
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    96
   $ cmake .
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    97
   $ make
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    98
   # make install
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    99
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   100
### Step 1: Configure
470
86ca84d5da74 Update instructions
unc0rr
parents: 457
diff changeset
   101
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   102
For a default install with all dependencis, use this command:
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   103
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   104
    $ cmake .
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   105
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   106
To build with a custom install directory, instead run:
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   107
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   108
    $ cmake -DCMAKE_INSTALL_PREFIX="<install_prefix>" .
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   109
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   110
(Replace `<install_prefix>` with the directoy in which you
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   111
want Hedgewars to be installed.)
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   112
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   113
Add the `-DNOSERVER=ON` switch if you do not want to build
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   114
the server.
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   115
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   116
#### CMake options
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   117
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   118
For more detailed build settings, change some CMake options.
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   119
Run `ccmake` for an interactive way to edit them.
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   120
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   121
Important CMake options:
1415
6fbfee0e113a Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents: 1006
diff changeset
   122
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   123
- `CMAKE_INSTALL_PREFIX`: Installation directory
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   124
- `NOSERVER`: Set to `ON` to *not* build the server
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   125
- `NOVIDEOREC`: Set to `ON` to *not* build the video recorder
15876
1878d95d6e15 Add GHC_DYNAMIC cmake option - allows building dynamically-linked haskell object files and executables (needed for some distributions)
S.D.
parents: 14856
diff changeset
   126
- `GHC_DYNAMIC`: Set to `ON` to build dynamically-linked haskell object files and executables (needed for some distributions)
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   127
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   128
### Step 2: Make
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   129
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   130
Run:
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   131
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   132
    $ make
470
86ca84d5da74 Update instructions
unc0rr
parents: 457
diff changeset
   133
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   134
This creates the following files:
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   135
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   136
- `bin/hedgewars`: Hedgewars
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   137
- `bin/hwengine`: Game engine, can be used to play demos and saved games
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   138
- `bin/hedgewars-server`: Hedgewars Server (optional)
273
3cc5b4dd6770 Add installation manual
unc0rr
parents:
diff changeset
   139
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   140
### Step 3: Installation
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   141
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   142
To install Hedgewars to the install directory run:
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   143
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   144
    # make install
2220
110266ba2ef7 -new openal api for setting sound position
koda
parents: 2141
diff changeset
   145
457
35cc5a6c0e45 Don't let text file to confuse a terminal
unc0rr
parents: 456
diff changeset
   146
That's all! Enjoy!
8120
67c3201365b1 INSTALL and README updates
koda
parents: 7954
diff changeset
   147
15985
e42d1819b150 Revive cabal build of the game server
Vekhir
parents: 15876
diff changeset
   148
### Building the Hedgewars Server only
e42d1819b150 Revive cabal build of the game server
Vekhir
parents: 15876
diff changeset
   149
e42d1819b150 Revive cabal build of the game server
Vekhir
parents: 15876
diff changeset
   150
The Hedgewars Server can also be built separately using `Cabal`. All necessary
e42d1819b150 Revive cabal build of the game server
Vekhir
parents: 15876
diff changeset
   151
files, including the `hedgewars-server.cabal`, are in the `gameServer`
e42d1819b150 Revive cabal build of the game server
Vekhir
parents: 15876
diff changeset
   152
subdirectory.
e42d1819b150 Revive cabal build of the game server
Vekhir
parents: 15876
diff changeset
   153
For most users, the server isn't needed, and this possibility is targeted
e42d1819b150 Revive cabal build of the game server
Vekhir
parents: 15876
diff changeset
   154
primarily at packagers. If you don't know how to build Haskell projects with
e42d1819b150 Revive cabal build of the game server
Vekhir
parents: 15876
diff changeset
   155
`Cabal`, this option is likely not for you. Instead use the `cmake` based
e42d1819b150 Revive cabal build of the game server
Vekhir
parents: 15876
diff changeset
   156
instructions above.
e42d1819b150 Revive cabal build of the game server
Vekhir
parents: 15876
diff changeset
   157
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   158
Troubleshooting
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   159
---------------
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   160
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   161
### Qt is installed but it can't be found
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   162
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   163
If this happens, set the following CMake option:
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   164
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   165
    QT_QMAKE_EXECUTABLE="<path_to_qmake>"
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   166
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   167
(Replace `<path_to_qmake>` with the path to the `qmake` application.)
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   168
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   169
If this didn't work, make sure you have the correct Qt version
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   170
(see above).
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   171
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   172
### Broken/missing Haskell dependencies
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   173
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   174
First, try to obtain the missing Haskell packages and make sure GHC
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   175
is up-to date, then try again. Read the error messages carefully
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   176
to figure out missing package names.
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   177
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   178
If everything fails and you don't need the server, set the CMake
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   179
option `NOSERVER=ON` so the server isn't built at all.
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   180
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   181
### Error messages related to libavcodec / libavformat
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   182
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   183
Update Libav or FFmpeg (whatever is present on your system) to
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   184
the latest version or install one of them if you haven't already.
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   185
Then try to build again.
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   186
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   187
If this still doesn't work and you give up, set the CMake option
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   188
`NOVIDEOREC=ON`, but then the video recording functionality will
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   189
not be available.
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   190
12817
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   191
### Error messages related to Lua, “undefined reference to `lua_tonumber'”, and so on
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   192
If you get error messages like these:
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   193
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   194
* /home/username/hw/hedgewars//uScript.pas:226: undefined reference to `lua_tonumber'
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   195
* /home/username/hw/hedgewars/CMakeFiles/hwengine.dir/uScript.o: In function `LUATOVISUALGEARTYPEORD':
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   196
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   197
There might be something wrong with your Lua installation. Try to install Lua 5.1.
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   198
If this doesn't work, or you don't want to install Lua 5.1, try to build Hedgewars
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   199
with the bundled Lua version.
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   200
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   201
To build with the bundled Lua version, adding the CMake option `SYSTEM_LUA=OFF`, then
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   202
repeat the building process.
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   203
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   204
### Cleaning up
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   205
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   206
In case you want to start over and start with a clean build,
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   207
run `make clean`, then go back to step 2.
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   208
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   209
If things got seriously out of hand, you may want to reset
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   210
*everything* (even your configuration). If you use the
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   211
Mercural repository, you can run `hg purge --all`. Proceed with
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   212
step 1.
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   213
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   214
### Still can't build Hedgewars?
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   215
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   216
Visit us in the forums or IRC (see `README.md`) and ask for help.