4 Building for OpenBSD
N00byKing edited this page 2018-04-10 19:02:18 +02:00

OpenBSD is not officially supported. These instructions are not actively updated and represent what happened to work for one user on amd64 in March 2018.

Install the required packages: (Please amend if you notice some are missing, I did not test this on a clean installation!)

pkg_add cmake sdl2 qtbase 

The repository uses submodules, so remember to clone it recursively:

git clone --recursive https://github.com/citra-emu/citra
cd citra

To build, run the following in the repository root directory:

mkdir build && cd build
export Qt5_DIR=/usr/local/lib/qt5/cmake/Qt5
cmake \
    -DCMAKE_CXX_FLAGS='-I/usr/local/include -O2' \
    -DCMAKE_EXE_LINKER_FLAGS='-z wxneeded' ..
make

Rationale:

  • Setting Qt5_DIR is necessary because cmake does not know to look for it under /usr/local/lib/qt5/cmake by default.
  • -I/usr/local/include is needed for the compiler to find iconv.h, as the base compiler does not look under /usr/local/include by default.
  • -O2 is needed for playable performance; this needs to be set even if CMAKE_BUILD_TYPE=Release, as it does not set optimization flags by default (perhaps because the base amd64 compiler is clang?)
  • Linking with -z wxneeded is needed to enable writable-executable memory on OpenBSD. The resulting binary still needs to be run a partition with wxallowed set in the mount flags; /usr/local is mounted like this by default.