BuildingOnLinux.wiki
changeset 494 37952cd70b0d
parent 493 300f6d2615ce
child 495 729c2ff600fa
--- a/BuildingOnLinux.wiki	Sun Dec 14 18:34:32 2014 +0000
+++ b/BuildingOnLinux.wiki	Sun Dec 14 19:47:08 2014 +0000
@@ -1,18 +1,87 @@
-#summary Instructions for building the development version of Hedgewars on GNU/Linux (Debian focus)
+#summary Instructions for building the development version of Hedgewars on GNU/Linux (slight Debian focus)
 #labels Phase-Implementation,Phase-Deploy,Phase-Support
 
 = Building on GNU/Linux =
 == Introduction ==
 
-This page contains copy-and-paste instructions for a Hedgewars development build.
-They should work on Debian and derivates (Ubuntu, Mint).
-Required packages for other distros should have similar names.
+This page contains both generic and copy-and-paste instructions for a Hedgewars development build.
 
-Please remember to copy the _entire_ `apt-get` lines!
+It has a partial focus on Debian, but this guide attempts to include generic information as well.
 
-Also, see http://hedgewars.org/download.html if you are just looking to play latest stable—there’s a good chance it exists for your distro.
+Also, see http://hedgewars.org/download.html if you are just looking to play latest stable—there’s a good chance it exists for your distribution.
 
 == Prerequisites ==
+The first section contains dependency lists, the second section contain copy-and-paste instructions for Debian and derivates (Ubuntu, Linux Mint, etc.).
+
+=== Required packages ===
+This section contains lists of required packages to build Hedgewars. In most Linux distributions, you should find readily available packages.
+
+Please note that for libraries, you need to have the *entire* library installed, including the headers. Some distributions (most notably Debian and Debian derivates) provide seperate packages for the headers.
+
+==== Build dependencies ===
+You need these packages to build Hedgewars, but not afterwards:
+
+|| *Name* || *Version* || *Homepage* ||
+|| Mercurial || || [http://mercurial.selenic.com/] ||
+|| CMake || || [http://www.cmake.org/] ||
+|| QMake || || [http://www.qt.io/] ||
+
+==== Core dependencies ===
+You need these softwares no matter what:
+
+|| *Name* || *Version* || *Homepage* ||
+|| Qt || 4 || [http://www.qt.io/] ||
+|| SDL || 1.2 || [http://libsdl.org/] ||
+|| SDL_net || 1.2 || [http://libsdl.org/] ||
+|| SDL_mixer || 1.2 || [http://libsdl.org/] ||
+|| SDL_image || 1.2 || [http://libsdl.org/] ||
+|| SDL_TTF || 2.0 || [http://libsdl.org/] ||
+|| Lua || 5.1 || [http://www.lua.org/] ||
+|| FPC || ??? || [http://freepascal.org/] ||
+|| PhysFS || ??? || [https://icculus.org/physfs/] ||
+
+You also need the following fonts:
+|| *Name* || *Homepage* || *Comment* ||
+|| !DejaVu Sans Bold || [http://dejavu-fonts.org/] || — ||
+|| Zen Hei || [http://wenq.org/] || From the !WenQuanYi project. Font is internally known as “wgy-zenhei” ||
+
+==== Optional packages ====
+You don’t need to install these packages to build Hedgewars, but if you don’t, some features will be missing.
+
+For PNG screenshots:
+|| *Name* || *Version* || *Homepage* ||
+|| libpng || 1.2 || [http://www.libpng.org/pub/png/libpng.html] ||
+
+For video recording:
+|| *Name* || *Version* || *Homepage* ||
+|| libavcodec || ??? || [http://ffmpeg.org/libavcodec.html] ||
+|| libavformat || ??? || [http://ffmpeg.org/libavformat.html] ||
+|| FreeGLUT || 3.0 || [http://freeglut.sourceforge.net/] ||
+
+If you want to build the server you need a couple of Haskell-related packages. First you need GHC:
+|| *Name* || *Version* || *Homepage* ||
+|| GHC || || [https://www.haskell.org/ghc/] ||
+
+Then you need a couple of Haskell software. Note that package names for Haskell software varies wildly between Linux distributions. When in doubt, check your distribution’s documentation about any naming conventions they may have about Haskell packages.
+|| *Haskell library name* || *Version* || *Hackage link* ||
+|| bytestring || || http://hackage.haskell.org/package/bytestring ||
+|| bytestring-show || || http://hackage.haskell.org/package/bytestring-show ||
+|| dataenc || || http://hackage.haskell.org/package/dataenc ||
+|| deepseq || || http://hackage.haskell.org/package/deepseq ||
+|| hslogger || || http://hackage.haskell.org/packages/hslogger ||
+|| mtl || || http://hackage.haskell.org/package/mtl ||
+|| network || || http://hackage.haskell.org/package/network ||
+|| parsec3 || || http://hackage.haskell.org/package/parsec3 ||
+|| utf8-string || || http://hackage.haskell.org/package/utf8-string ||
+|| vector || || http://hackage.haskell.org/package/vector ||
+|| random || || http://hackage.haskell.org/package/random ||
+|| zlib || || http://hackage.haskell.org/package/zlib ||
+|| SHA || || http://hackage.haskell.org/package/SHA ||
+|| entropy || || http://hackage.haskell.org/package/entropy ||
+
+
+=== Resolving dependencies under Debian and Debian-like systems ===
+These line contain `apt-get` lines you can simply paste into your shell and execute. Please remember to copy the _entire_ `apt-get` lines!
 
 {{{
 sudo apt-get install mercurial cmake g++ qt4-qmake libqt4-dev libsdl1.2-dev libsdl-net1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev liblua5.1-dev fpc libphysfs-dev fonts-dejavu-core ttf-wqy-zenhei