4.1 KiB
Dependencies
Dependencies
libopenmpt
-
Supported compilers for building libopenmpt:
-
Microsoft Visual Studio 2017 or higher, running on a x86-64 build system (other target systems are supported)
-
GCC 7.1 or higher
-
Clang 5 or higher
-
MinGW-W64 7.1 or higher (it is recommended to preferably use posix threading model as opposed to win32 threading model, or at least have mingw-std-threads available otherwise)
-
emscripten 1.39.1 or higher
-
DJGPP GCC 7.2 or higher
-
any other C++17 compliant compiler
libopenmpt makes the following assumptions about the C++ implementation used for building:
std::numeric_limits<unsigned char>::digits == 8
(enforced by static_assert)- existence of
std::uintptr_t
(enforced by static_assert) - in C++20 mode,
std::endian::little != std::endian::big
(enforced by static_assert) wchar_t
encoding is either UTF-16 or UTF-32 (implicitly assumed)- representation of basic source character set is ASCII (implicitly assumed)
- representation of basic source character set is identical in char
and
wchar_t
(implicitly assumed)
libopenmpt does not rely on any specific implementation defined or undefined behaviour (if it does, that's a bug in libopenmpt). In particular:
char
can besigned
orunsigned
- shifting signed values is implementation defined
signed
integer overflow is undefinedfloat
anddouble
can be non-IEEE754
libopenmpt can optionally support for certain incomplete C++ implementations:
- platforms without
wchar_t
support (like DJGPP) - platforms without working
std::random_device
(like Emscripten when running inAudioWorkletProcessor
context) - platforms without working
std::high_resolution_clock
(like Emscripten when running inAudioWorkletProcessor
context)
-
-
Required compilers to use libopenmpt:
- Any C89 / C99 / C11 compatible compiler should work with the C API as long as a C99 compatible stdint.h is available.
- Any C++17 compatible compiler should work with the C++ API.
-
J2B support requires an inflate (deflate decompression) implementation:
- zlib (or miniz can be used internally)
-
MO3 support requires:
- libmpg123 >= 1.14.0 (or minimp3 by Lion (github.com/lieff) can be used internally)
- libogg, libvorbis, and libvorbisfile (or stb_vorbis can be used internally)
-
Building on Unix-like systems requires:
- GNU make
- pkg-config
-
The Autotools-based build system requires:
- pkg-config 0.24 or higher
- zlib
- doxygen
openmpt123
- Supported compilers for building openmpt123:
- Microsoft Visual Studio 2017 or higher, running on a x86-64 build system (other target systems are supported)
- GCC 7.1 or higher
- Clang 5 or higher
- MinGW-W64 7.1 or higher
- DJGPP GCC 7.2 or higher
- any C++17 compliant compiler
- Live sound output requires one of:
- PulseAudio
- SDL 2
- PortAudio v19
- Win32
- liballegro 4.2 on DJGPP/DOS
Optional dependencies
libopenmpt
- doxygen 1.8 or higher is required to build the documentation.
openmpt123
- Rendering to PCM files can use:
- FLAC 1.2 or higher
- libsndfile
- Win32 for WAVE
- raw PCM has no external dependencies
- help2man is required to build the documentation.
Source packages
Building the source packages additionally requires:
- 7z (7-zip)
- autoconf
- autoconf-archive
- automake
- awk (mawk)
- git
- gzip
- help2man
- libtool
- subversion
- tar
- xpath (libxml-xpath-perl)
- zip