INSTALL.md
author Wuzzy <Wuzzy2@mail.ru>
Mon, 06 May 2019 22:43:35 +0200
changeset 14913 444ed0622348
parent 14877 cd0af25c7913
child 15898 1878d95d6e15
permissions -rw-r--r--
Switch to SDL's mutex for critical section handling
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
------------
13715
20768d813518 Write down system requirements
Wuzzy <Wuzzy2@mail.ru>
parents: 13507
diff changeset
    10
### Hardware dependencies
20768d813518 Write down system requirements
Wuzzy <Wuzzy2@mail.ru>
parents: 13507
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
13904
99b265e0d1d0 Drop internal PhysFS, bump PhysFS requirement to 3.0.0
Wuzzy <Wuzzy2@mail.ru>
parents: 13715
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
14668
c09ac49ed1de Update INSTALL notes for FreeBSD (fpc-rtl-extra dependency)
Wuzzy <Wuzzy2@mail.ru>
parents: 14341
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: 14341
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`
14341
f081a984da28 Fix gameServer dependency documentation
Wuzzy <Wuzzy2@mail.ru>
parents: 14310
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`
13507
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
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    84
Building
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    85
--------
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    86
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    87
### Summary
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    88
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    89
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
    90
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    91
   $ cmake .
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    92
   $ make
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    93
   # make install
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    94
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    95
### Step 1: Configure
470
86ca84d5da74 Update instructions
unc0rr
parents: 457
diff changeset
    96
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    97
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
    98
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
    99
    $ cmake .
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   100
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   101
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
   102
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   103
    $ 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
   104
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   105
(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
   106
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
   107
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   108
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
   109
the server.
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   110
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   111
#### CMake options
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
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
   114
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
   115
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   116
Important CMake options:
1415
6fbfee0e113a Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents: 1006
diff changeset
   117
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   118
- `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
   119
- `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
   120
- `NOVIDEOREC`: Set to `ON` to *not* build the video recorder
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   121
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   122
### 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
   123
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   124
Run:
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   125
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   126
    $ make
470
86ca84d5da74 Update instructions
unc0rr
parents: 457
diff changeset
   127
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   128
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
   129
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   130
- `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
   131
- `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
   132
- `bin/hedgewars-server`: Hedgewars Server (optional)
273
3cc5b4dd6770 Add installation manual
unc0rr
parents:
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
### 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
   135
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   136
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
   137
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   138
    # make install
2220
110266ba2ef7 -new openal api for setting sound position
koda
parents: 2141
diff changeset
   139
457
35cc5a6c0e45 Don't let text file to confuse a terminal
unc0rr
parents: 456
diff changeset
   140
That's all! Enjoy!
8120
67c3201365b1 INSTALL and README updates
koda
parents: 7954
diff changeset
   141
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   142
Troubleshooting
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
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   145
### 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
   146
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   147
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
   148
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   149
    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
   150
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   151
(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
   152
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   153
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
   154
(see above).
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   155
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   156
### 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
   157
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   158
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
   159
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
   160
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
   161
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   162
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
   163
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
   164
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   165
### 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
   166
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   167
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
   168
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
   169
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
   170
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   171
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
   172
`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
   173
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
   174
12817
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   175
### 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
   176
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
   177
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   178
* /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
   179
* /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
   180
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   181
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
   182
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
   183
with the bundled Lua version.
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   184
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   185
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
   186
repeat the building process.
b35b6978baa4 Add Lua problems to the troubleshooting section of INSTALL.md
Wuzzy <Wuzzy2@mail.ru>
parents: 12751
diff changeset
   187
12751
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   188
### Cleaning up
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   189
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   190
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
   191
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
   192
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   193
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
   194
*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
   195
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
   196
step 1.
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   197
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   198
### 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
   199
838515c4e6c5 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc.
Wuzzy <Wuzzy2@mail.ru>
parents: 11862
diff changeset
   200
Visit us in the forums or IRC (see `README.md`) and ask for help.