author | Wuzzy |
Wed, 08 Jul 2020 18:19:41 +0200 | |
changeset 2172 | 798ddaa7aa94 |
parent 2140 | 61d7d5e0589a |
child 2219 | 12e5f8732e54 |
permissions | -rw-r--r-- |
494
37952cd70b0d
Add generic dependency list for non-Debian users.
almikes@aol.com
parents:
493
diff
changeset
|
1 |
#summary Instructions for building the development version of Hedgewars on GNU/Linux (slight Debian focus) |
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
2 |
#labels Phase-Implementation,Phase-Deploy,Phase-Support |
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
3 |
|
493 | 4 |
= Building on GNU/Linux = |
2128 | 5 |
|
493 | 6 |
== Introduction == |
395
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
7 |
|
494
37952cd70b0d
Add generic dependency list for non-Debian users.
almikes@aol.com
parents:
493
diff
changeset
|
8 |
This page contains both generic and copy-and-paste instructions for a Hedgewars development build. |
395
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
9 |
|
494
37952cd70b0d
Add generic dependency list for non-Debian users.
almikes@aol.com
parents:
493
diff
changeset
|
10 |
It has a partial focus on Debian, but this guide attempts to include generic information as well. |
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
11 |
|
798
30c5f1ebd552
global replace of http with https for hedgewars.org wiki links
nemo
parents:
686
diff
changeset
|
12 |
Also, see https://hedgewars.org/download.html if you are just looking to play latest stable—there’s a good chance it exists for your distribution. |
493 | 13 |
|
14 |
== Prerequisites == |
|
656 | 15 |
The first section contains dependency lists, the second section contain copy-and-paste instructions for Debian and derivatives (Ubuntu, Linux Mint, etc.). |
494
37952cd70b0d
Add generic dependency list for non-Debian users.
almikes@aol.com
parents:
493
diff
changeset
|
16 |
|
37952cd70b0d
Add generic dependency list for non-Debian users.
almikes@aol.com
parents:
493
diff
changeset
|
17 |
=== Required packages === |
547 | 18 |
For a full list see [Dependencies Dependencies]. |
494
37952cd70b0d
Add generic dependency list for non-Debian users.
almikes@aol.com
parents:
493
diff
changeset
|
19 |
|
509
283791011d7c
Edited wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
497
diff
changeset
|
20 |
In most Linux distributions, you should find readily available packages. |
494
37952cd70b0d
Add generic dependency list for non-Debian users.
almikes@aol.com
parents:
493
diff
changeset
|
21 |
|
656 | 22 |
Please note that for libraries, you also need their development headers. Some distributions (most notably Debian and its derivatives) provide separate packages for the headers. |
494
37952cd70b0d
Add generic dependency list for non-Debian users.
almikes@aol.com
parents:
493
diff
changeset
|
23 |
|
509
283791011d7c
Edited wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
497
diff
changeset
|
24 |
=== Resolving dependencies under Debian and Debian-based systems (e.g. Mint, Ubuntu) === |
494
37952cd70b0d
Add generic dependency list for non-Debian users.
almikes@aol.com
parents:
493
diff
changeset
|
25 |
These line contain `apt-get` lines you can simply paste into your shell and execute. Please remember to copy the _entire_ `apt-get` lines! |
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
26 |
|
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
27 |
{{{ |
1687
425eb8f784a9
Drop 0.9.22 reference to tidy up. - not much point in building anything that old anymore - if anyone wants ancient builds of server, eh, the wiki is versioned.
nemo
parents:
1529
diff
changeset
|
28 |
sudo apt-get install mercurial cmake g++ qtbase5-dev qtbase5-private-dev qttools5-dev-tools qttools5-dev qt5-style-plugins libsdl-ttf2.0-dev libsdl2-dev libsdl2-net-dev libsdl2-mixer-dev libsdl2-image-dev libsdl2-ttf-dev liblua5.1-dev fpc libphysfs-dev fonts-dejavu-core ttf-wqy-zenhei |
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
29 |
}}} |
1523
b67aa6e196de
BuildingOnLinux: Flip order of apt-get lines in order of relevance
Wuzzy
parents:
1320
diff
changeset
|
30 |
|
2004 | 31 |
If you are on Debian stable as of 2018-12-14, you may have to install the backport of physfs. |
1687
425eb8f784a9
Drop 0.9.22 reference to tidy up. - not much point in building anything that old anymore - if anyone wants ancient builds of server, eh, the wiki is versioned.
nemo
parents:
1529
diff
changeset
|
32 |
|
1523
b67aa6e196de
BuildingOnLinux: Flip order of apt-get lines in order of relevance
Wuzzy
parents:
1320
diff
changeset
|
33 |
If you want PNG screenshots (instead of BMP screenshots), add: |
247 | 34 |
{{{ |
2140 | 35 |
sudo apt-get install libpng-dev |
247 | 36 |
}}} |
37 |
If you want video recording, add: |
|
38 |
{{{ |
|
265 | 39 |
sudo apt-get install libavcodec-dev libavformat-dev freeglut3-dev |
247 | 40 |
}}} |
41 |
If you want to try building the server as well (requires at least libghc base 4.3 now) try these too: |
|
910 | 42 |
|
1523
b67aa6e196de
BuildingOnLinux: Flip order of apt-get lines in order of relevance
Wuzzy
parents:
1320
diff
changeset
|
43 |
{{{ |
1529 | 44 |
sudo apt-get install ghc libghc-binary-dev libghc-bytestring-show-dev libghc-sandi-dev libghc-deepseq-dev libghc-hslogger-dev libghc-mtl-dev libghc-network-dev libghc-parsec3-dev libghc-utf8-string-dev libghc-vector-dev libghc-random-dev libghc-zlib-dev libghc-sha-dev libghc-entropy-dev libghc-regex-tdfa-dev libghc-aeson-dev libghc-yaml-dev libghc-text-dev |
1523
b67aa6e196de
BuildingOnLinux: Flip order of apt-get lines in order of relevance
Wuzzy
parents:
1320
diff
changeset
|
45 |
}}} |
1687
425eb8f784a9
Drop 0.9.22 reference to tidy up. - not much point in building anything that old anymore - if anyone wants ancient builds of server, eh, the wiki is versioned.
nemo
parents:
1529
diff
changeset
|
46 |
|
2077
514babfbad9e
Remove outdated legacy hints as clutter
Wuzzy <almikes@aol.com>
parents:
2004
diff
changeset
|
47 |
Note that Haskell is also required to build Hedgewars 0.9.25 on 32 bit Linux due to a FreePascal alignment bug triggered by an undisableable SDL2 CPU feature detection. 0.9.24 and 0.9.23 have same bug, so will not function properly on 32 bit Linux. |
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
48 |
|
493 | 49 |
== Fetching the source code == |
395
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
50 |
|
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
51 |
Below you find instructions for downloading the Hedgewars source code from the development repository. |
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
52 |
|
798
30c5f1ebd552
global replace of http with https for hedgewars.org wiki links
nemo
parents:
686
diff
changeset
|
53 |
If you have already downloaded and unpacked the source code version of your choice (e.g. the source tarball from the [https://hedgewars.org/download.html download page]), just {{{cd}}} to your copy of the Hedgewars source in a terminal and go straight to the building section further below. |
395
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
54 |
---- |
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
55 |
|
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
56 |
{{{ |
263
afcb38bfd761
Revert use of build dir. Nice idea, but breaks pas2c and confused people. Esp people who had done this before. For most people, a purge is adequate if they need to clean up. Heck, that's what unc0rr and I apparently do, or we would have noticed the pas2c thing earlier
kyberneticist@gmail.com
parents:
253
diff
changeset
|
57 |
mkdir -p ~/games ~/hg/hedgewars/ |
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
58 |
cd ~/hg/hedgewars |
798
30c5f1ebd552
global replace of http with https for hedgewars.org wiki links
nemo
parents:
686
diff
changeset
|
59 |
hg clone -v https://hg.hedgewars.org/hedgewars/ trunk |
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
60 |
}}} |
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
61 |
|
1691 | 62 |
The initial clone of the repository will take a while, is just under 700 MiB, due to all the multimedia revisions. |
333
5b70b52c17c4
Edited wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
332
diff
changeset
|
63 |
After that switch to the trunk folder: |
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
64 |
|
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
65 |
{{{ |
263
afcb38bfd761
Revert use of build dir. Nice idea, but breaks pas2c and confused people. Esp people who had done this before. For most people, a purge is adequate if they need to clean up. Heck, that's what unc0rr and I apparently do, or we would have noticed the pas2c thing earlier
kyberneticist@gmail.com
parents:
253
diff
changeset
|
66 |
cd trunk |
333
5b70b52c17c4
Edited wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
332
diff
changeset
|
67 |
}}} |
5b70b52c17c4
Edited wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
332
diff
changeset
|
68 |
|
5b70b52c17c4
Edited wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
332
diff
changeset
|
69 |
If you want to build the latest release version (so that you can play with other people online) use this command: |
5b70b52c17c4
Edited wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
332
diff
changeset
|
70 |
{{{ |
2004 | 71 |
hg update 1.0.0-release |
333
5b70b52c17c4
Edited wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
332
diff
changeset
|
72 |
}}} |
2004 | 73 |
Note. Do *not* run the command above if you want to play the latest development code. |
333
5b70b52c17c4
Edited wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
332
diff
changeset
|
74 |
|
395
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
75 |
|
493 | 76 |
== Building process == |
395
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
77 |
|
493 | 78 |
Now let’s configure and build! |
395
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
79 |
|
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
80 |
If you want to install Hedgewars *just for your user account* run |
333
5b70b52c17c4
Edited wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
332
diff
changeset
|
81 |
{{{ |
1998 | 82 |
cmake -DCMAKE_BUILD_TYPE="Debug" -DCMAKE_INSTALL_PREFIX="$HOME/games" -DDATA_INSTALL_DIR="$HOME/games" -DNOSERVER=1 |
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
83 |
make install |
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
84 |
}}} |
395
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
85 |
If you want to install Hedgewars *system-wide* (not recommended for development builds) then run |
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
86 |
|
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
87 |
{{{ |
1998 | 88 |
cmake -DCMAKE_BUILD_TYPE="Release" -DNOSERVER=1 |
395
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
89 |
sudo make install |
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
90 |
}}} |
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
91 |
|
493 | 92 |
*Important*: If you decided against png-screenshots or video-recording support, please append `-DNOPNG=1` and/or `-DNOVIDEOREC=1` to the cmake command line respectively! |
327 | 93 |
|
493 | 94 |
If you want to build the server as well, change `-DNOSERVER=1` to `-DNOSERVER=0` |
327 | 95 |
|
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
96 |
|
493 | 97 |
then wait for the build to complete, then run … |
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
98 |
|
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
99 |
{{{ |
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
100 |
~/games/bin/hedgewars |
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
101 |
}}} |
395
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
102 |
or just {{{hedgewars}}} if you did a system-wide install. |
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
103 |
|
493 | 104 |
You can also create a launcher for it on your desktop or on applications menu if you wish, using the `$HOME/games/bin/hedgewars` path |
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
105 |
|
493 | 106 |
== Build latest development code repository updates == |
395
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
107 |
|
2ea04ea4594d
Violated wiki page BuildingOnLinux through web user interface.
sheepyluva@gmail.com
parents:
389
diff
changeset
|
108 |
If you have built from your repository clone before and now you want to download more recent updates and rebuild Hedgewars with them, then run |
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
109 |
|
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
110 |
{{{ |
263
afcb38bfd761
Revert use of build dir. Nice idea, but breaks pas2c and confused people. Esp people who had done this before. For most people, a purge is adequate if they need to clean up. Heck, that's what unc0rr and I apparently do, or we would have noticed the pas2c thing earlier
kyberneticist@gmail.com
parents:
253
diff
changeset
|
111 |
cd ~/hg/hedgewars/trunk |
afcb38bfd761
Revert use of build dir. Nice idea, but breaks pas2c and confused people. Esp people who had done this before. For most people, a purge is adequate if they need to clean up. Heck, that's what unc0rr and I apparently do, or we would have noticed the pas2c thing earlier
kyberneticist@gmail.com
parents:
253
diff
changeset
|
112 |
hg pull -u |
afcb38bfd761
Revert use of build dir. Nice idea, but breaks pas2c and confused people. Esp people who had done this before. For most people, a purge is adequate if they need to clean up. Heck, that's what unc0rr and I apparently do, or we would have noticed the pas2c thing earlier
kyberneticist@gmail.com
parents:
253
diff
changeset
|
113 |
cmake . |
129
751dee35e4f1
Created wiki page with build instruction for ubuntu
vittorio.giovara@gmail.com
parents:
diff
changeset
|
114 |
make install |
686 | 115 |
}}} |