Building Dolphin on Linux

Only binaries for Ubuntu-based distributions are available on Dolphin's download page, so users of other distros have to Dolphin from source. Dolphin is compatible with 64 bit Linux distributions. This is a guide to compiling Dolphin using the cmake build system.

If looking for help installing on Ubuntu-based distros, such as Linux Mint, Elementary OS, Zorin OS, Bodhi Linux, Deepin, Linux Lite, Pinguy OS, Kubuntu, Xubuntu, Lubuntu, Ubuntu GNOME, Edubuntu, Ubuntu Studio or Mythbuntu, see Installing Dolphin.

12.04 and newer
Install all necessary packages by running the following command:

11.10
If you are still using such an old release, consider upgrading. Run the following to install the dependencies:

Other Linux Distributions
If running a distribution without aptitude, see the build dependencies in [#Addendum A - dependencies] for a list of packages needed to install.

Step 2 - Get the Dolphin Repository
Install git if it's not already installed:
 * for apt-based distros:
 * for rpm-based distros:
 * for pacman-based distros:

Get a local copy of the dolphin-emu repository:

Change to the directory created.

To update the local copy in the future, run  within the   directory and proceed to the following steps.

Step 3 - Building Dolphin
Create a build subdirectory, and change into it. The name Build is used in this example.

Configure the build.

Optionally you can change the install prefix by adding "-D CMAKE_INSTALL_PREFIX=/new/path". Note that this path does not need to be absolute. cmake will complete it to its absolute equivalent. The default prefix is "/usr". This means that the executable will be installed as "/usr/bin/dolphin-emu", the plugins will be installed into "/usr/lib/dolphin-emu", and the shared data files will be installed into "/usr/share/dolphin-emu".

From here build and install in the standard make way.

Note that superuser privileges are needed for.

To have the "local" build setup from the deprecated scons build configure the build with the following command.

Step 4 - Run Dolphin!
Run Dolphin from anywhere by typing:

If the prefix changed and $prefix/bin is not in the path, then precede this with the path to the executable.

FAQ

 * Where can I get help?

Go to the forums. Lots of Dolphin users use Linux, and they are very experienced with this process.


 * My build failed, but I did nothing wrong!

Most of the time, any problems in the build process are due to user error. It's understandable, it is a complicated process and can be quite daunting for a first timer. But sometimes even with everything right, triple checked, and it's still not working. It's rare, but sometimes a build will just be bugged. But many of Dolphin devs are Linux users, so just wait a day or so, and it will be sorted out.


 * I want a PKGBUILD!

Here is a PKGBUILD for the stable branch. For the master branch, see this PKGBUILD (in pkgver=4.0.rxxxx.7222eb1 replace "xxxx" with the number of the desired revision). Other PKGBUILDs can be found on the Arch User Repository.

Addendum A - dependencies
This addendum lists the dependencies to build Dolphin.


 * Build Dependencies
 * git
 * cmake
 * g++
 * wx2.9-headers (wx3.0-headers work too, and are perhaps preferred!)
 * libwxbase2.8-dev
 * libwxgtk2.8-dev
 * libgtk2.0-dev
 * libbluetooth-dev (optional, for real wiimotes)
 * libxrandr-dev (optional, for switching desktop resolution in fullscreen mode)
 * libxext-dev
 * libreadline-dev
 * libasound-dev (optional, for alsa sound backend)
 * libpulse-dev (optional, for pulseaudio sound backend)
 * libao-dev (optional, for ao sound backend)
 * libopenal-dev (optional, for openal sound backend)
 * libavcodec-dev (optional, for dumping frames in AVI format)
 * libavformat-dev (optional, for dumping frames in AVI format)
 * libswscale-dev (optional, for dumping frames in AVI format)
 * liblzo2-dev (optional, if not found will be built statically)
 * libsdl1.2-dev (optional, if not found will be built statically)
 * libsoil-dev (optional, if not found will be built statically)
 * libsfml-dev (optional, if not found will be built statically)