-
-
Notifications
You must be signed in to change notification settings - Fork 428
DEV: How to compile toolchain only
Many people that want to help are turned off because they think they need to compile the whole distro to do so, well its time I explain how to help, without compiling the whole distro.
Before you start, keep in mind this is a big project, so a lot of disk space is needed, for example for one project this is the disk space:
21G sources/
63G build.EmuELEC-Amlogic-ng.aarch64-4.2/
So around 84GB is needed just for the sources and one project folder EmuELEC has 4 projects, so multiply 63GB times 4 and that is you need to build all the projects. But remember this is not counting everything else that might be needed in your computer.
But for just the toolchain the space needed is about 25GB per project counting sources and the build folder
First follow the steps on github, with some slight changes. I will compile for Amlogic-ng, these instructions are for Ubuntu but I am sure they work for any Linux distro (although I cannot guarantee it), even on WSL2 (tried it on 18.04 and 20.04):
sudo apt update && sudo apt upgrade
sudo apt-get install gcc make git unzip wget xz-utils libsdl2-dev libsdl2-mixer-dev libfreeimage-dev libfreetype6-dev libcurl4-openssl-dev rapidjson-dev libasound2-dev libgl1-mesa-dev build-essential libboost-all-dev cmake fonts-droid-fallback libvlc-dev libvlccore-dev vlc-bin texinfo premake4 golang libssl-dev curl patchelf xmlstarlet default-jre xsltproc xfonts-utils python
git clone https://github.com/EmuELEC/EmuELEC.git EmuELEC
cd EmuELEC
git checkout dev
PROJECT=Amlogic-ng ARCH=aarch64 DISTRO=EmuELEC ./scripts/build toolchain
This will compile JUST the toolchain for Amlogic-ng.
For Amlogic do:
PROJECT=Amlogic ARCH=aarch64 DISTRO=EmuELEC ./scripts/build toolchain
For OdroidGoAdvance:
PROJECT=Rockchip DEVICE=OdroidGoAdvance ARCH=aarch64 DISTRO=EmuELEC ./scripts/build toolchain
For GameForce:
PROJECT=Rockchip DEVICE=GameForce ARCH=aarch64 DISTRO=EmuELEC ./scripts/build toolchain(edited)
NOTE: you can replace ./scripts/build with ./scripts/build_mt to build in multi thread mode which should be faster.
Once you have the toolchain, which takes about 15 minutes to build depending on your computer, you can build single packages
for example:
PROJECT=Amlogic-ng ARCH=aarch64 DISTRO=EmuELEC ./scripts/build flycast
resulting core will be in build.xxxxxxxxx/install_pkg/flycast-xxxxxxx folder
At this point you can now create your own package.mk for any core/emulator/program but I won't go into detail as it depends on what you want to compile but there is a very comprehensive README about packages.mk here https://github.com/EmuELEC/EmuELEC/tree/master/packages as well as some templates.
Once you have your package built, you can copy them via network to /emuelec/bin or if its a lib to /emuelec/lib you can SSH to your device, and execute your new binary, or make a script and run it. Those paths are both first priority on the env variables (PATH and LD_LIBRARY_PATH), so anything you put there will be executed before the ones in /usr/bin or /usr/lib, even retroarch and emulationstation.
An example, say you compiled a retroarch core, copy the resulting xxxx_libretro.so (it needs to end in _libretro.so) to /tmp/cores (or Cores on network share) then edit the es_systems.cfg, add the corresponding core to the section you want it to appear, or create a new one for that core, restart ES and you should now be able to run that core directly.
Further discussion can be done via Discord on the #dev-tech-talk channel
- Common Questions FAQ
- Supported emulators and paths
- Needed BIOS (with md5sum and paths)
- WiFI-Ethernet
- Recommended Gamepads
- Bluetooth
- ROMS on external USB media
- ROMS on CIFS/SAMBA shares
- Scraping ROMS
- How to run Dreamcast, Naomi and Atomiswave games on lr flycast
- How to play God of War on S905 with standalone PPSSPP at a decent speed?
- OpenBOR
- PICO-8 Setup Guide
- Filter MAME ROMS
- Dosbox Games
- DOSBox Configuration for individual games
- Daphne games (laserdisc) with Hypseus
- Amiga IPF support on PUAE
- ADVMame SDL setup instead of FB
- FMTowns
- Mt32 Emulation
- SHARP X68000 MIDI Support
- SHARP X68000 MDIDI SUPPORT Game LIST
- Cave Story
- Chocolate Doom / LZDoom
- DOOM I & II
- ECWolf
- OpenTyrian
- VVVVVV
- Return to Castle Wolfstein
- Wipeout
- Portmaster games setup
- Portmaster games list for Emuelec
- Wiimote Lightgun Guide for Dolphin Bar
- Wiimote Lightgun Guide for normal IR sensorbars
- HotKeys Odroid Go / GameForce
- FAQ
- Freely downloadable games
- Libretro General Questions?
- How to enable/use custom Bezels and Splash screens
- Developers Corner - How to submit a PR
- Developers Corner - how to help/contribute?
- How to SSH into EmuELEC
- Inicio
- Preguntas Comunes
- Instalación y Actualizaciones
- ¿Como poner en Español EmuELEC?
- Bios necesarias(con md5sum y sus rutas)
- ¿Como conectarse por WiFi?
- Como configurar el VFD y Ajustar la hora
- Diferencias de EmuELEC Addon vs Standalone
- Emuladores soportados y Directorio de ROMS
- Mandos probados
- Roms en Dispositivos USB
- ROMS en unidades de red CIFS/SAMBA
- Bluetooth
- ¿Cómo instalar Ports?
- Guía Instalación PICO-8
- Temas
- Instalación EmuELEC Addon
- Arcade ,FB Neo ,Mame
- OpenBOR
- Juegos Daphne(Laserdisc) con Hypseus
- Filtrar ROMS de Mame
- DOSBox Configuración Individual
- ADVmame SDL en vez de FB
- Como correr juegos Dreamcast, Naomi y Atomiswave en Ir-Flycast
- Forzar RGB para TV Philip o Sony
- Descargar caratulas 3D
- ¿Cómo usar el mando del tvbox?
- Bezels y pantalla de Splash
- Hotkeys en Odroid Go / Gameforce
- Salida RCA
- Zona de Peligro
- Activar Netplay (ONLINE)
- Instalación en memoria interna
- Sistema Ficheros EEROMS
- Fix USBs en TvBox Ugoos