Created Building for OpenBSD (markdown)

hubslave 2018-03-03 18:09:37 +02:00
parent b782d2af11
commit 1db3e30405

29
Building-for-OpenBSD.md Normal file

@ -0,0 +1,29 @@
*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:
```
pkg_add cmake curl 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' \
-DUSE_SYSTEM_CURL=1 ..
make
```
Rationale:
+ Setting `Qt5_DIR` is necessary because OpenBSD installs the Qt5 CMake files under a nonstandard path.
+ `-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.
+ `USE_SYSTEM_CURL=1` was copied from the [Linux build instructions][1].
[1]: Building-for-Linux