Ubuntu Compilation / Development Guide¶
The easiest route to get into building RetroArch and libretro cores on Ubuntu linux is to use libretro's PPA. For stable releases you can add the PPA like this:
# add-apt-repository ppa:libretro/stable # apt-get update
For development work we recommend the testing PPA instead:
# add-apt-repository ppa:libretro/testing # apt-get update
You will need git and a few build tools at least to proceed which you can install by issuing the following command:
# apt-get install git build-essential
The first step is to obtain RetroArch's source tree.
$ git clone https://github.com/libretro/RetroArch.git retroarch
You can get RetroArch's dependenencies by running the following command:
# apt-get build-dep retroarch
Depending on your configuration you may need to uncomment the deb-src repositories in /etc/apt/sources.list, /etc/apt/sources.list.d/libretro-ubuntu-testing-$version.list and then run apt-get update before running apt-get build-dep
For subsequent builds you will need to pull the changes from the repo
$ cd retroarch $ git pull
To compile RetroArch run the following commands inside RetroArch's source tree:
1 2 3
$ ./configure $ make clean $ make -j4
For development purposes you might want to run a debug build instead. In such case use the following commands:
1 2 3
$ ./configure $ make clean $ make DEBUG=1 GL_DEBUG=1 -j4
You can then start RetroArch by running:
If you're building frequently you may want to add ccache to the mix to speed up the build process. Install ccache via apt and the prepend the ccache symlink directory to your build environment path as shown below.
For further instructions check the documentation
# apt-get install ccache
$ export PATH=/usr/lib/ccache/bin/:$PATH
You can add that last line to your ~/.bashrc to avoid having to type that every time you start your working environment.
You can find the cores on libretro's GitHUB organization.
We have an all-in-one tool to fetch and compile cores which you can use to streamline the process. You can obtain the tool by using these commands:
$ git clone https://github.com/libretro/libretro-super.git $ cd libretro-super
Then you can fetch one or all the cores by using libretro-fetch.sh
Fetch all cores:
Fetch one core:
$ ./libretro-fetch.sh *corename*
Replace corename with the name of the core you want to fetch, for example gambatte
The easiest way to build all the cores is to use libretro-build.sh from within libretro-super's source tree:
In case you only want to build one and/or more cores instead of all, you can specify the cores you want to build after the first command in no particular order:
$ ./libretro-build.sh snes9x2010 fceumm
Once compilation has finished, you can find the libretro cores inside dist/unix.
Manual Fetching and Compilation¶
Get the core's source tree. As an example we'll use fceumm
$ git clone https://github.com/libretro/libretro-fceumm.git
Then compile the core:
$ cd libretro-fceumm $ make -f Makefile.libretro
Optionally strip the build product:
$ strip fceumm_libretro.so
Most cores will build with these instructions. You might need to browse to a subdirectory in some cases.