Difference between revisions of "Compiling ScummVM/GCC"

From ScummVM :: Wiki
Jump to navigation Jump to search
m (Compiling ScummVM GCC moved to Compiling ScummVM/GCC: using subpage instead)
 
(13 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
== Compiling ScummVM with GCC under Linux ==
 
== Compiling ScummVM with GCC under Linux ==
  
== Tools/libraries needed ==
+
==Installing the needed libraries via a package manager==
===Mandatory (these should also install dependencies)===
+
===Debian-based distributions===
* gcc-c++ (under Fedora Core, run "yum install gcc-c++" as root to install the GNU C++ compiler)
+
The following should install all the needed libraries:
* SDL-devel (under Fedora Core, run "yum install SDL-devel" as root to install it)
+
<syntaxhighlight lang="bash">
 +
apt-get install g++ make libsdl2-dev liba52-dev libjpeg62-turbo-dev libmpeg2-4-dev libogg-dev libvorbis-dev libflac-dev libmad0-dev libpng-dev libtheora-dev libfaad-dev libfluidsynth-dev libfreetype6-dev zlib1g-dev
 +
</syntaxhighlight>
  
===Optional===
+
Some distributions, like Ubuntu, do not provide the turbo version of libjpeg. In this case, simply install <tt>libjpeg62-dev</tt> instead of <tt>libjpeg62-turbo-dev</tt>.
* [http://flac.sourceforge.net/ flac] (Free Lossless Audio Codec, needed if you want to play compressed games without quality loss)
 
* [http://www.underbit.com/products/mad/ libmad] (MPEG Audio Decoder, needed if you want to play MP3-compressed games)
 
* [http://www.xiph.org/downloads/ libOGG and libVorbis] (OGG Vorbis decoder, needed if you want to play OGG-Vorbis-compressed games)
 
* [http://libmpeg2.sourceforge.net/ libMPEG2] (.mpg video decoder, needed for the re-encoded cutscenes in Broken Sword 1/2)
 
* TODO (tremor, libfluidsynth)
 
  
== Building the libraries ==
+
For Ubuntu, you can also obtain libunity:
todo
+
<syntaxhighlight lang="bash">
 +
apt-get install libunity-dev
 +
</syntaxhighlight>
  
 +
===RPM-based distributions===
 +
The following should install all the needed libraries (apart from fluidsynth):
 +
<syntaxhighlight lang="bash">
 +
yum install gcc-c++ make SDL-devel libjpeg-turbo-devel libmpeg2-devel libogg-devel libvorbis-devel flac-devel libmad-devel libpng-devel libtheora-devel faad2-devel freetype-devel zlib-devel
 +
</syntaxhighlight>
 +
 +
===Arch Linux-based distributions===
 +
The following command installs the compiler toolchain and all the needed libraries:
 +
<syntaxhighlight lang="bash">
 +
pacman -S --needed base-devel git curl faad2 freetype2 flac fluidsynth libjpeg-turbo libogg libvorbis libmad libmpeg2 libtheora libpng nasm readline sdl2 sdl2_net zlib
 +
</syntaxhighlight>
 +
 +
Per default, some Arch based distributions like Manjaro and Antergos require the usage of "sudo" to gain root access.
  
 
== Configuring ScummVM ==
 
== Configuring ScummVM ==
 
Run the configure script - type "./configure" in the directory with the ScummVM source files. If no errors come up, you should be ready to compile ScummvM. Run "./configure --help" for a list of optional features (eg additional, not yet enabled engines).
 
Run the configure script - type "./configure" in the directory with the ScummVM source files. If no errors come up, you should be ready to compile ScummvM. Run "./configure --help" for a list of optional features (eg additional, not yet enabled engines).
 +
 +
''Note:'' If you are building ScummVM on a system with low main memory (for example, lower than 256MB), you might run out of memory during linking. If you use GNU ld for compiling you can try exporting LDFLAGS="-Wl,--no-keep-memory" before running configure. This tells GNU ld to optimize for memory usage.
  
 
== Compiling ScummVM ==
 
== Compiling ScummVM ==
run make
+
run "make clean" and then "make"
  
 
== Installing ScummVM ==
 
== Installing ScummVM ==
Line 27: Line 41:
  
 
== Further reading ==
 
== Further reading ==
* [http://svn.sourceforge.net/viewcvs.py/*checkout*/scummvm/scummvm/trunk/README ScummVM README, Section 9.0]
+
* [https://github.com/scummvm/scummvm/blob/master/README.md#100-compiling ScummVM README, Section 10.0]

Latest revision as of 05:35, 21 February 2019

Compiling ScummVM with GCC under Linux

Installing the needed libraries via a package manager

Debian-based distributions

The following should install all the needed libraries:

apt-get install g++ make libsdl2-dev liba52-dev libjpeg62-turbo-dev libmpeg2-4-dev libogg-dev libvorbis-dev libflac-dev libmad0-dev libpng-dev libtheora-dev libfaad-dev libfluidsynth-dev libfreetype6-dev zlib1g-dev

Some distributions, like Ubuntu, do not provide the turbo version of libjpeg. In this case, simply install libjpeg62-dev instead of libjpeg62-turbo-dev.

For Ubuntu, you can also obtain libunity:

apt-get install libunity-dev

RPM-based distributions

The following should install all the needed libraries (apart from fluidsynth):

yum install gcc-c++ make SDL-devel libjpeg-turbo-devel libmpeg2-devel libogg-devel libvorbis-devel flac-devel libmad-devel libpng-devel libtheora-devel faad2-devel freetype-devel zlib-devel

Arch Linux-based distributions

The following command installs the compiler toolchain and all the needed libraries:

pacman -S --needed base-devel git curl faad2 freetype2 flac fluidsynth libjpeg-turbo libogg libvorbis libmad libmpeg2 libtheora libpng nasm readline sdl2 sdl2_net zlib

Per default, some Arch based distributions like Manjaro and Antergos require the usage of "sudo" to gain root access.

Configuring ScummVM

Run the configure script - type "./configure" in the directory with the ScummVM source files. If no errors come up, you should be ready to compile ScummvM. Run "./configure --help" for a list of optional features (eg additional, not yet enabled engines).

Note: If you are building ScummVM on a system with low main memory (for example, lower than 256MB), you might run out of memory during linking. If you use GNU ld for compiling you can try exporting LDFLAGS="-Wl,--no-keep-memory" before running configure. This tells GNU ld to optimize for memory usage.

Compiling ScummVM

run "make clean" and then "make"

Installing ScummVM

either run ./scummvm from the current directory or run make install to install ScummVM (you can then run it using "scummvm" from any directory)

Further reading