Difference between revisions of "Compiling ScummVM/GCC"
(→Compiling ScummVM: add info on parallel build) |
m (→Installing the needed libraries via a package manager: Add fribidi) |
||
Line 5: | Line 5: | ||
The following should install all the needed libraries: | The following should install all the needed libraries: | ||
<syntaxhighlight lang="bash"> | <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 | 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 libfribidi-dev | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 15: | Line 15: | ||
===Ubuntu 18.04 to 20.04=== | ===Ubuntu 18.04 to 20.04=== | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
apt install g++ make libsdl2-dev liba52-dev libjpeg-turbo8-dev libmpeg2-4-dev libogg-dev libvorbis-dev libflac-dev libmad0-dev libpng-dev libtheora-dev libfaad-dev libfluidsynth-dev libfreetype6-dev zlib1g-dev | apt install g++ make libsdl2-dev liba52-dev libjpeg-turbo8-dev libmpeg2-4-dev libogg-dev libvorbis-dev libflac-dev libmad0-dev libpng-dev libtheora-dev libfaad-dev libfluidsynth-dev libfreetype6-dev zlib1g-dev libfribidi-dev | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 21: | Line 21: | ||
The following should install all the needed libraries (apart from fluidsynth): | The following should install all the needed libraries (apart from fluidsynth): | ||
<syntaxhighlight lang="bash"> | <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 | 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 fribidi-devel | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 27: | Line 27: | ||
The following command installs the compiler toolchain and all the needed libraries: | The following command installs the compiler toolchain and all the needed libraries: | ||
<syntaxhighlight lang="bash"> | <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 | 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 fribidi | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 23:12, 30 April 2020
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 libfribidi-dev
For Ubuntu, you can also obtain libunity:
apt-get install libunity-dev
Ubuntu 18.04 to 20.04
apt install g++ make libsdl2-dev liba52-dev libjpeg-turbo8-dev libmpeg2-4-dev libogg-dev libvorbis-dev libflac-dev libmad0-dev libpng-dev libtheora-dev libfaad-dev libfluidsynth-dev libfreetype6-dev zlib1g-dev libfribidi-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 fribidi-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 fribidi
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"
It is recommended to run parallel make. Run it with command "make -j10" where "10" is the number of your CPUs, including virtual ones +2. Typical Intel Core i7 has 8 CPUs.
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)