Solus Distro - How to compile retroarch

I’ve been distro hopping for awhile now. Currently im using Solus Distro with Budgie desktop environment. i have been manually compiling retroarch on each distro and i had some problem with dependencies since each distro names them differently. this is how i manage to compile in Solus.

(all commands are run in terminal)

** Make sure you update your distro first:

sudo eopkg upgrade

Reboot your computer after upgrading. this is necessary.

** Once distro is successfully updated, we need to download build dependencies (gcc and stuff):

sudo eopkg install -c system.devel

** Download dependencies:

sudo eopkg install systemd-devel freetype2-devel mesalib-devel ffmpeg-devel libxkbcommon-devel zlib-devel sdl2-devel libusb-devel libxv-devel v4l-utils-devel alsa-lib-devel pulseaudio-devel glfw-devel miniupnpc-devel openal-soft-devel

*** If you need to have vulkan support, install vulkan-devel:

sudo eopkg install vulkan-devel

*** if you want to have the new wimp menu -gui (QT menu), then install qt5-base-devel

sudo eopkg install qt5-base-devel

** create a folder somewhere you want the retroarch sources will be saved(eg. /Downloads). then clone the retroarch repository:

git clone https://github.com/libretro/RetroArch.git retroarch

** if you get error: “bash: git: command not found”, then install git first, then try the command again.

sudo eopkg install git

** Compile:

cd retroarch

./configure 

make clean

make

** Then ‘run sudo make install

sudo make install

** If you don’t see Retroarch from the menu, then we need to move the shortcut in another location. (Solus does not seem to support /usr/local/share/applications for whatever internal reason)

ln -sf /usr/local/share/applications/retroarch.cfg ~/.local/share/applications/

You should now have a working retroarch, but you still need to update stuff for it to be complete.

Goto Online Updater and choose to download Update Core Info Files, Update Assets, Update Autoconfig Profiles, Update Databases.

You should be all done by now. follow other retroarch guides for configurations like system folder, download cores etc.

If you want to build your own cores, follow this official guide: http://buildbot.libretro.com/docs/compilation/ubuntu/#building-cores

NOTE:

there is one problem though with Solus, i cant seem to find a compatible dependency for nvidia-cg-toolkit, so CG Shaders will not work. if anyone can point me to have this dependency available for solus it would be nice. You can still use GLSL Shaders and Slang Shaders(if you have vulkan capable gpu)

There is probably easier way to get this done but this is what worked for me.

Checking operating system ... Linux (Solus 3.9999)
Checking for suitable working C compiler ... /usr/bin/gcc works
Checking for suitable working C++ compiler ... /usr/bin/g++ works
Checking for moc ... /usr/bin/moc
Checking for pkg-config ... /usr/bin/pkg-config
Checking for availability of switch -std=gnu99 in /usr/bin/gcc ... yes
Checking for availability of switch -Wno-unused-result in /usr/bin/gcc ... yes
Checking for availability of switch -Wno-unused-variable in /usr/bin/gcc ... yes
Checking function sd_get_machine_names in -lsystemd ... yes
Checking presence of package bcm_host ... no
Checking function bcm_host_init in -lbcm_host ... no
Checking presence of package egl ... 18.2.3
Checking function ass_library_init in -lass ... no
Checking function pthread_create in -lpthread ... yes
Checking function pthread_key_create in -lpthread ... yes
Checking function dlopen in -ldl ... yes
Checking function socket in -lc ... yes
Checking function getaddrinfo in -lc ... yes
Checking existence of -lminiupnpc ... yes
Checking function fcntl in -lc ... yes
Checking function getopt_long in -lc ... yes
Checking presence of package alsa ... 1.1.5
Checking presence of header file sys/soundcard.h ... yes
Checking presence of header file soundcard.h ... no
Checking existence of -lossaudio ... no
Checking function alcOpenDevice in -lopenal ... yes
Checking presence of package rsound >= 1.1 ... no
Checking presence of package libroar ... no
Checking presence of package jack >= 0.120.1 ... no
Checking presence of package libpulse ... 12.2-rebootstrapped
Checking presence of package sdl >= 1.2.10 ... no
Checking presence of package sdl2 >= 2.0.0 ... 2.0.9
Checking existence of -ljack ... no
Checking existence of -lSDL ... no
Checking presence of package Qt5Core >= 5.2 ... 5.11.2
Checking presence of package Qt5Gui >= 5.2 ... 5.11.2
Checking presence of package Qt5Widgets >= 5.2 ... 5.11.2
Checking presence of package Qt5Concurrent >= 5.2 ... 5.11.2
Checking presence of package Qt5Network >= 5.2 ... 5.11.2
Checking presence of package openssl >= 1.0.0 ... 1.0.2p
Checking presence of package flac ... 1.3.2
Checking presence of package libusb-1.0 >= 1.0.13 ... 1.0.22
Checking presence of header file GL/gl.h ... yes
Checking existence of -lGL ... yes
Checking function cgCreateContext in -lCg -lCgGL ... no
Checking presence of package zlib ... 1.2.11
Checking presence of package libmpv ... no
Checking presence of package libavcodec >= 54 ... 57.107.100
Checking presence of package libavformat >= 54 ... 57.83.100
Checking presence of package libavdevice ... 57.10.100
Checking presence of package libswresample ... 2.9.100
Checking presence of package libavresample ... 3.7.0
Checking presence of package libavutil >= 51 ... 55.78.100
Checking presence of package libswscale >= 2.1 ... 4.8.100
Checking presence of header file libavutil/channel_layout.h ... yes
Checking function dlopen in -ldl ... yes
Checking presence of package gbm >= 9.0 ... 18.2.3
Checking presence of package libdrm ... 2.4.96
Checking presence of package libxml-2.0 ... 2.9.8
Checking presence of package vg ... no
Checking existence of -lOpenVG ... no
Checking presence of package libv4l2 ... 1.16.1
Checking presence of package freetype2 ... 20.0.14
Checking presence of package x11 ... 1.6.7
Checking presence of package xcb ... 1.13.1
Checking presence of package wayland-egl ... 18.1.0
Checking presence of package wayland-cursor ... 1.16.0
Checking presence of package xkbcommon >= 0.3.2 ... 0.8.2
Checking presence of package xext ... 1.3.3
Checking presence of package xxf86vm ... 1.1.4
Checking presence of package xinerama ... 1.1.4
Checking presence of package xv ... 1.0.11
Checking presence of package libudev ... 239
Checking presence of header file linux/parport.h ... yes
Checking presence of header file linux/ppdev.h ... yes
Checking function strcasestr in -lc ... yes
Checking function mmap in -lc ... yes
Checking function vkCreateInstance in -lvulkan ... yes
Creating make config: config.mk
Creating config header: config.h
1 Like

git clone is the same as the “download to zipfile” green button at github?

updated for solus 3.9999 and missing wimp-ui dependency