Created Building for OpenBSD (markdown)
							
								
								
									
										29
									
								
								Building-for-OpenBSD.md
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
										
											
											
										
										
									
								
							
						
						
									
										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 | ||||
		Reference in New Issue
	
	Block a user
	 hubslave
					hubslave