# HG changeset patch # User Wuzzy # Date 1508866255 -7200 # Node ID 838515c4e6c506bfeb77aae9d5501ec72f479881 # Parent 6cec6b881a1c57ae044e2068a6c8036b6d5beae9 Rewrite INSTALL file: Markdown format, add troubleshooting section, more detailed build instructions, etc. diff -r 6cec6b881a1c -r 838515c4e6c5 INSTALL --- a/INSTALL Tue Oct 24 06:25:12 2017 +0200 +++ b/INSTALL Tue Oct 24 19:30:55 2017 +0200 @@ -1,48 +1,1 @@ -To compile and install you need: - - CMake >= 2.6.0 - - FreePascal >= 2.2.4 - - Qt >= 4.7.0 - - SDL >= 2.0 - - SDL_net >= 2.0 - - SDL_mixer >= 2.0 - - SDL_image >= 2.0 - - SDL_ttf >= 2.0 - - Lua = 5.1.0 - - Physfs >= 2.0.0 -For server: - - Glasgow Haskell Compiler >= 6.10 - - sandi package - - hslogger package - - regex-tdfa package -For videorecording: - - FFmpeg or LibAV -For compressed screenshots: - - libpng - -Lua will be automatically built if not found. - -PhysFS will internally built unless -DPHYSFS_SYSTEM=on is passed to cmake -(also allows to set PHYSFS_LIBRARY and PHYSFS_INCLUDE_DIR if needed). - -1. Configure: -$ cmake . -or -$ cmake -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="install_prefix" \ --DDATA_INSTALL_DIR="data_dir" -DNOSERVER=1 . - -Add -DNOSERVER=0 to compile net server (remember to check out the additional -dependencies with the hedgewars-server.cabal configuration file. If you have -Qt installed but it is not found, you can set it up with --DQT_QMAKE_EXECUTABLE="path_to_qmake". -To get a glimpse of the main configuration options, you may use this command -`cat CMakeLists.txt | grep option` - -2. Compile: -$ make - -3. Install: -# make install - - -That's all! Enjoy! - +INSTALL.md \ No newline at end of file diff -r 6cec6b881a1c -r 838515c4e6c5 INSTALL.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/INSTALL.md Tue Oct 24 19:30:55 2017 +0200 @@ -0,0 +1,190 @@ +Building and installing Hedgewars +================================= + +This file explains to you how to build/compile Hedgewars and how to install it. + +See also: + +Dependencies +------------ + +### Core dependencies + +To compile and install Hedgewars, you need at least: + +- A C++ compiler (e.g. GCC) +- CMake >= 2.6.0 +- A make program (e.g. GNU Make) +- Free Pascal Compiler (FPC) >= 2.2.4 +- Qt = 4.7.0 +- SDL >= 2.0 +- SDL\_net >= 2.0 +- SDL\_mixer >= 2.0 +- SDL\_image >= 2.0 +- SDL\_ttf >= 2.0 + +### Optional dependencies + +For some additional features, you can optionally install these dependencies: + +- For Hedgewars: + - PhysFS >= 2.0.0 (recommended) + - Lua = 5.1.0 (recommended) +- For PNG screenshots: + - libpng >= 1.2 (recommended) +- For video recording: + - FFmpeg or Libav +- For the Hedgewars Server: + - GHC >= 6.10 + - Various Haskell packages (see below) + +PhysFS will be internally built if `-DPHYSFS_SYSTEM=OFF` is passed to `cmake` +(also allows to set `PHYSFS_LIBRARY` and `PHYSFS_INCLUDE_DIR` if needed). + +Lua will be automatically built if not found. + +### Hedgewars Server dependencies + +The Hedgewars Server is an **optional** separate application. +It provides the online lobby and allows players to create rooms. +You will also be able to launch the server from the frontend +(network play → local network → start server). + +**Most players do not need this!** + +To compile it, you need: + +- Glasgow Haskell Compiler (GHC) >= 6.10 +- These Haskell packages: + - `containers` + - `vector` + - `bytestring` + - `network` >= 2.3 + - `random` + - `time` + - `mtl` >= 2 + - `sandi` + - `hslogger` + - `process` + - `deepseq` + - `utf8-string` + - `SHA` + - `entropy` + - `zlib` >= 0.5.3 and < 0.6 + - `regex-tdfa` + + +Building +-------- + +### Summary + +To build and install Hedgewars, obtain all dependencies, then run: + + $ cmake . + $ make + # make install + +### Step 1: Configure + +For a default install with all dependencis, use this command: + + $ cmake . + +To build with a custom install directory, instead run: + + $ cmake -DCMAKE_INSTALL_PREFIX="" . + +(Replace `` with the directoy in which you +want Hedgewars to be installed.) + +Add the `-DNOSERVER=ON` switch if you do not want to build +the server. + +#### CMake options + +For more detailed build settings, change some CMake options. +Run `ccmake` for an interactive way to edit them. + +Important CMake options: + +- `CMAKE_INSTALL_PREFIX`: Installation directory +- `NOSERVER`: Set to `ON` to *not* build the server +- `NOVIDEOREC`: Set to `ON` to *not* build the video recorder +- `SYSTEM_PHYSFS`: Set to `OFF` to use Hedgewars-bundled PhysFS + +### Step 2: Make + +Run: + + $ make + +This creates the following files: + +- `bin/hedgewars`: Hedgewars +- `bin/hwengine`: Game engine, can be used to play demos and saved games +- `bin/hedgewars-server`: Hedgewars Server (optional) + +### Step 3: Installation + +To install Hedgewars to the install directory run: + + # make install + +That's all! Enjoy! + +Troubleshooting +--------------- + +### Qt is installed but it can't be found + +If this happens, set the following CMake option: + + QT_QMAKE_EXECUTABLE="" + +(Replace `` with the path to the `qmake` application.) + +If this didn't work, make sure you have the correct Qt version +(see above). + +### Hedgewars compiles successfully, but games instantly crash the map preview fails + +This is likely to be a problem with PhysFS. Try to build Hedgewars +with the Hedgewars-bundled PhysFS by setting the CMake option +`SYSTEM_PHYSFS=OFF`, then try to run `make` again. + +If the _bundled_ PhysFS fails, too, this is likely to be a bug in +Hedgewars, please report at . + +### Broken/missing Haskell dependencies + +First, try to obtain the missing Haskell packages and make sure GHC +is up-to date, then try again. Read the error messages carefully +to figure out missing package names. + +If everything fails and you don't need the server, set the CMake +option `NOSERVER=ON` so the server isn't built at all. + +### Error messages related to libavcodec / libavformat + +Update Libav or FFmpeg (whatever is present on your system) to +the latest version or install one of them if you haven't already. +Then try to build again. + +If this still doesn't work and you give up, set the CMake option +`NOVIDEOREC=ON`, but then the video recording functionality will +not be available. + +### Cleaning up + +In case you want to start over and start with a clean build, +run `make clean`, then go back to step 2. + +If things got seriously out of hand, you may want to reset +*everything* (even your configuration). If you use the +Mercural repository, you can run `hg purge --all`. Proceed with +step 1. + +### Still can't build Hedgewars? + +Visit us in the forums or IRC (see `README.md`) and ask for help. diff -r 6cec6b881a1c -r 838515c4e6c5 gameServer/hedgewars-server.cabal --- a/gameServer/hedgewars-server.cabal Tue Oct 24 06:25:12 2017 +0200 +++ b/gameServer/hedgewars-server.cabal Tue Oct 24 19:30:55 2017 +0200 @@ -16,6 +16,7 @@ default-language: Haskell2010 +-- Don't forget to update INSTALL.md when you change these dependencies! Build-depends: base >= 4.3, containers,