Skip to content

Compile from source

Christer Solskogen edited this page Oct 31, 2024 · 17 revisions

Compiling Amiberry from source

Linux

You'll need the development version of the required packages. For example, on Debian-based distros:

  sudo apt install build-essential git cmake libsdl2-dev libsdl2-ttf-dev libsdl2-image-dev libflac-dev libmpg123-dev libpng-dev libmpeg2-4-dev libserialport-dev libportmidi-dev libenet-dev

On Distros that use RPM instead (e.g. Fedora):

  sudo dnf install gcc gcc-c++ git cmake SDL2-devel SDL2_ttf-devel SDL2_image-devel flac-devel libmpg123-devel libpng-devel libmpeg2-devel libserialport-devel portmidi-devel enet-devel

Or if you're using an Arch-based distro (e.g. Manjaro), the relevant packages are:

  sudo pacman -S base-devel cmake sdl2 sdl2_ttf sdl2_image flac mpg123 libmpeg2 libserialport portmidi enet

macOS

Under macOS, you will need to install the required libraries using Homebrew:

    brew install cmake sdl2 mpg123 sdl2_ttf sdl2_image flac libmpeg2 libserialport portmidi enet dylibbundler wget

Clone this repository locally

  git clone https://github.com/BlitterStudio/amiberry
  cd amiberry

Build Amiberry

Amiberry requires CMake to build. The following commands will create a build directory, configure the build, and then compile the source code:

  cmake -B build && cmake --build build

You can also use Ninja, if you prefer:

  cmake -B build -G Ninja && cmake --build build

Note: The default install PREFIX that CMake uses, is /usr/local/. Amiberry will use that internally, so if you want to change it, you should specify one during the configure stage.

E.g. for installing things under /opt, you should use:

cmake -B build -G Ninja -DCMAKE_INSTALL_PREFIX=/opt && cmake --build build

Local installation

You can use the following command to install Amiberry locally:

  sudo cmake --install build

Or combine it with the same PREFIX you used in the configure step, to install it in a specific directory:

  sudo cmake --install build --prefix /opt

After installation, you may want to update the relevant desktop, mime, and man databases accordingly, since that won't be done from CMake itself. For example (replace @CMAKE_INSTALL_PREFIX@ with your prefix):

  update-desktop-database
  update-mime-database "@CMAKE_INSTALL_PREFIX@/share/mime"
  gtk-update-icon-cache -f -t "@CMAKE_INSTALL_PREFIX@/share/icons/hicolor"

Packaging

There are currently several packaging options configured with CPack:

  • TGZ (tar.gz) archive
  • DragNDrop DMG image (macOS only)
  • DEB package (Linux only)
  • RPM package (Linux only)

By default, all the available packaging options for the platform will be built, unless you request a specific one. If you only want a specific one, use the -G <package> parameter. For example, the following will only build the DEB package on Linux:

cpack --config build/CPackConfig.cmake -G DEB

More documentation regarding packaging with CPack can be found here.

Clone this wiki locally