diff options
| author | lizzie <lizzie@eden-emu.dev> | 2025-07-23 18:40:59 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-07-23 18:40:59 +0200 |
| commit | ca06dad650d6a71e6b0bb570f9167151ee928317 (patch) | |
| tree | 9654abeb9bc44bf73fc7190188d2ece5a5583318 /docs/build | |
| parent | 016ebf3cd880f6cfac5ec538da5c75879e129230 (diff) | |
[docs] add solaris to build inst on readme (#105)
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/105
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'docs/build')
| -rw-r--r-- | docs/build/Solaris.md | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/docs/build/Solaris.md b/docs/build/Solaris.md new file mode 100644 index 0000000000..c7daa2279b --- /dev/null +++ b/docs/build/Solaris.md @@ -0,0 +1,94 @@ +# Building for Solaris
+
+## Dependencies.
+Always consult [the OpenIndiana package list](https://pkg.openindiana.org/hipster/en/index.shtml) to cross-verify availability.
+
+Run the usual update + install of essential toolings: `sudo pkg update && sudo pkg install git cmake`.
+
+- **gcc**: `sudo pkg install developer/gcc-14`.
+- **clang**: Version 20 is broken, use `sudo pkg install developer/clang-19`.
+
+Then install the libraies: `sudo pkg install qt6 boost glslang libzip library/lz4 nlohmann-json openssl opus sdl2 zlib compress/zstd unzip pkg-config nasm autoconf mesa library/libdrm header-drm`.
+
+fmtlib is not available on repositories and has to be manually built:
+```sh
+git clone --recurisve --depth=1 https://github.com/fmtlib/fmt.git
+cd fmt
+cmake -DCMAKE_BUILD_TYPE=Release -B build
+cmake --build build
+sudo cmake --install build
+```
+
+pkg lz4 doesn't provide a proper CMakeFile to find the library, has to also be manually built:
+```sh
+git clone --depth=1 https://github.com/lz4/lz4.git
+cd lz4
+gmake
+sudo gmake install
+```
+
+Same goes for zstd:
+```sh
+git clone --depth=1 https://github.com/facebook/zstd.git
+cd zstd
+cmake -DCMAKE_BUILD_TYPE=Release -B build0 -S build/cmake
+cmake --build build0
+cd build0
+sudo gmake install
+```
+
+pkg SDL2 is also not nice to work with on CMake, save yourself some pain and compile it yourself:
+```sh
+git clone --depth=1 --branch=release-2.32.8 https://github.com/libsdl-org/SDL
+cmake -DCMAKE_BUILD_TYPE=Release -B build
+cmake --build build
+sudo cmake --install build
+```
+
+Audio is broken in OpenIndiana [see this issue](https://github.com/libsdl-org/SDL/issues/13405), go into `SDL/CMakeLists.txt` and comment out lines 1468:
+```diff
++# set(SDL_AUDIO_DRIVER_SUNAUDIO 1)
++# file(GLOB SUN_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/sun/*.c)
++# list(APPEND SOURCE_FILES ${SUN_AUDIO_SOURCES})
++# set(HAVE_SDL_AUDIO TRUE)
+```
+For Solaris this issue does not exist - however PulseAudio crashes on Solaris - so use a different backend.
+
+---
+
+### Build preparations:
+Run the following command to clone eden with git:
+```sh
+git clone --recursive https://git.eden-emu.dev/eden-emu/eden
+```
+You usually want to add the `--recursive` parameter as it also takes care of the external dependencies for you.
+
+Now change into the eden directory and create a build directory there:
+```sh
+cd eden
+mkdir build
+```
+
+Change into that build directory: `cd build`
+
+Now choose one option either 1 or 2, but not both as one option overwrites the other.
+
+### Building
+
+```sh
+# Needed for some dependencies that call cc directly (tz)
+echo '#!/bin/sh' >cc
+echo 'gcc $@' >>cc
+chmod +x cc
+export PATH="$PATH:$PWD"
+```
+
+- **Configure**: `cmake -B build -DYUZU_TESTS=OFF -DYUZU_USE_BUNDLED_SDL2=OFF -DYUZU_USE_EXTERNAL_SDL2=OFF -DYUZU_USE_LLVM_DEMANGLE=OFF -DYUZU_USE_QT_MULTIMEDIA=OFF -DYUZU_USE_QT_WEB_ENGINE=OFF -DYUZU_USE_BUNDLED_VCPKG=OFF -DYUZU_USE_BUNDLED_QT=OFF -DENABLE_QT=OFF -DSDL_AUDIO=OFF -DENABLE_WEB_SERVICE=OFF -DENABLE_QT_UPDATE_CHECKER=OFF`.
+- **Build**: `cmake --build build`.
+- **Installing**: `sudo cmake --install build`.
+
+### Notes
+
+- Modify the generated ffmpeg.make (in build dir) if using multiple threads (base system `make` doesn't use `-j4`, so change for `gmake`).
+- If using OpenIndiana, due to a bug in SDL2 cmake configuration; Audio driver defaults to SunOS `<sys/audioio.h>`, which does not exist on OpenIndiana.
+- Enabling OpenSSL requires compiling OpenSSL manually instead of using the provided one from repositores.
|
