* download as MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-zlib
* use dll from `bin` folder
-Cross-compiling: ** TODO : Remove the "lib" prefix so libpng can load it properly later! **
+Cross-compiling:
```
ZLIBVER="1.2.11"
* download MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-libpng
* use dll from `bin` folder
-Cross-compiling: (WARNING: RESULTING LIBRARY DOESN'T LOAD - THIS MUST BE ADJUSTED!)
+Cross-compiling (requires zlib):
```
d0=$(pwd)
### macOS
Darkplaces loads: `libfreetype.6.dylib` or `libfreetype.dylib`
+# libogg
+libogg is used for the container in cl_capturevideo
+
+### Windows
+Darkplaces loads `libogg-0.dll` or `libogg.dll` or `ogg.dll`
+
+Obtainment instructions:
+* download MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-libogg
+* use dll from `bin` folder
+
+Cross-compiling:
+
+```
+d0=$(pwd)
+OGGVER="v1.3.5"
+git clone -b $OGGVER https://gitlab.xiph.org/xiph/ogg.git
+sed -i 's/^LIBRARY ogg$/LIBRARY libogg/' "$d0/ogg/win32/ogg.def" # Call it libogg
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+rm -rf build
+mkdir build
+cd build
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DBUILD_SHARED_LIBS=true -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_INSTALL_PREFIX="$d0/out" -G"Unix Makefiles" "$d0/ogg"
+make
+make install
+cd "$d0"
+cp out/bin/libogg.dll ~/Games/xonotic/misc/buildfiles/win64/libogg.dll
+```
+
+### macOS
+Darkplaces loads `libogg.dylib`
+
# libvorbis + libvorbisfile + libvorbisenc
libvorbis + libvorbisfile are used to play .ogg audio files while libvorbis + libvorbisenc is used for the audio in video capturing (cl_capturevideo)
* download MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-libvorbis
* use dll from `bin` folder
+Cross-compiling (requires libogg):
+
+```
+d0=$(pwd)
+VORBISVER="v1.3.7"
+OGG_ROOT=$d0/../ogg/out
+
+git clone -b $VORBISVER https://gitlab.xiph.org/xiph/vorbis.git
+
+# Fix win32 def files
+sed -i 's/^LIBRARY$/LIBRARY libvorbis/' "$d0/vorbis/win32/vorbis.def"
+sed -i 's/^LIBRARY$/LIBRARY libvorbisenc/' "$d0/vorbis/win32/vorbisenc.def"
+sed -i 's/^LIBRARY$/LIBRARY libvorbisfile/' "$d0/vorbis/win32/vorbisfile.def"
+
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+rm -rf build
+mkdir build
+cd build
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DBUILD_SHARED_LIBS=true -DOGG_INCLUDE_DIR=$OGG_ROOT/include -DOGG_LIBRARY=$OGG_ROOT/lib/libogg.dll.a -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_INSTALL_PREFIX="$d0/out" -G"Unix Makefiles" "$d0/vorbis"
+make
+make install
+cd "$d0"
+cp out/bin/libvorbis.dll ~/Games/xonotic/misc/buildfiles/win64/libvorbis.dll
+cp out/bin/libvorbisfile.dll ~/Games/xonotic/misc/buildfiles/win64/libvorbisfile.dll
+cp out/bin/libvorbisenc.dll ~/Games/xonotic/misc/buildfiles/win64/libvorbisenc.dll
+```
+
### macOS
Darkplaces loads `libvorbis.dylib` and `libvorbisfile.dylib`
* download MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-libtheora
* use dll from `bin` folder
+Cross-compiling (requires libogg and libvorbis):
+
+```
+d0=$(pwd)
+THEORAVER="v1.1.1"
+OGG_ROOT="$d0/../ogg/out"
+VORBIS_ROOT="$d0/../vorbis/out"
+
+git clone -b $THEORAVER https://gitlab.xiph.org/xiph/theora.git
+
+# Fix mingw32 defs
+sed -i '1iLIBRARY libtheoradec' "$d0/theora/win32/xmingw32/libtheoradec-all.def"
+sed -i '1iLIBRARY libtheoraenc' "$d0/theora/win32/xmingw32/libtheoraenc-all.def"
+sed -i '/TH_VP31_QUANT_INFO/d' "$d0/theora/win32/xmingw32/libtheoraenc-all.def"
+sed -i '/TH_VP31_HUFF_CODES/d' "$d0/theora/win32/xmingw32/libtheoraenc-all.def"
+
+# Start build
+mkdir out
+mkdir build
+cd build
+$d0/theora/autogen.sh --host=x86_64-w64-mingw32 --prefix="$d0/out" --with-ogg="$OGG_ROOT" --with-vorbis="$VORBIS_ROOT" --enable-shared --disable-examples --disable-sdltest --disable-vorbistest --disable-oggtest
+make
+make install
+cd "$d0"
+cp out/bin/libtheora-0.dll ~/Games/xonotic/misc/buildfiles/win64/libtheora-0.dll
+```
+
### macOS
Darkplaces loads `libtheora.dylib`
-# libogg
-libogg is used for the container in cl_capturevideo
+# libgmp
+A dependency of libd0_blind_id-0
+
+### Linux
+
+`./configure --prefix=$HOME/Games/xonotic/misc/builddeps/linux64/gmp --enable-static --disable-shared --with-pic --enable-fat`
### Windows
-Darkplaces loads `libogg-0.dll` or `libogg.dll` or `ogg.dll`
+libd0_blind_id-0 loads `libgmp-10.dll`
Obtainment instructions:
-* download MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-libogg
+* download as MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-gmp
* use dll from `bin` folder
Cross-compiling:
```
-OGGVER="v1.3.5"
-git clone -b $OGGVER https://gitlab.xiph.org/xiph/ogg.git
-curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
d0=$(pwd)
-rm -rf build
+GMPVER="6.2.1"
+
+curl -o gmp-$GMPVER.tar.xz https://gmplib.org/download/gmp/gmp-$GMPVER.tar.xz
+tar xf gmp-$GMPVER.tar.xz
+rm gmp-$GMPVER.tar.xz
+
+mkdir out
mkdir build
cd build
-cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DBUILD_SHARED_LIBS=true -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_INSTALL_PREFIX="$d0/out" -G"Unix Makefiles" "$d0/ogg"
+"$d0/gmp-$GMPVER/configure" --prefix="$d0/out" --host=x86_64-w64-mingw32 --with-pic --enable-fat --disable-static --enable-shared
make
make install
cd "$d0"
-cp out/bin/libogg.dll ~/Games/xonotic/misc/buildfiles/win64/libogg.dll
+cp out/bin/libgmp-10.dll ~/Games/xonotic/misc/buildfiles/win64/libgmp-10.dll
```
-### macOS
-Darkplaces loads `libogg.dylib`
-
# libd0_blind_id-0 & libd0_rijndael-0
Internal project, see https://gitlab.com/xonotic/d0_blind_id
`LDFLAGS='-L$HOME/Games/xonotic/misc/builddeps/linux64/gmp/lib' CPPFLAGS='-I$HOME/Games/xonotic/misc/builddeps/linux64/gmp/include' ./configure --prefix=$HOME/Games/xonotic/misc/builddeps/linux64/d0_blind_id --enable-static --disable-shared --with-pic`
-# libgmp
-A dependency of libd0_blind_id-0
+### Windows
+Cross-compiling (requires libgmp):
-### Linux
+```
+d0=$(pwd)
+GMP_ROOT="$d0/../gmp/out"
+export LDFLAGS="-L$GMP_ROOT/lib"
+export CPPFLAGS="-I$GMP_ROOT/include"
-`./configure --prefix=$HOME/Games/xonotic/misc/builddeps/linux64/gmp --enable-static --disable-shared --with-pic --enable-fat`
+git clone https://gitlab.com/xonotic/d0_blind_id.git
-### Windows
-libd0_blind_id-0 loads `libgmp-10.dll`
+cd d0_blind_id
+./autogen.sh
+sed -i '/libd0_blind_id_la_LDFLAGS/ s/$/ -no-undefined/' Makefile.am
+sed -i '/libd0_rijndael_la_LDFLAGS/ s/$/ -no-undefined/' Makefile.am
-Obtainment instructions:
-* download as MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-gmp
-* use dll from `bin` folder
+cd "$d0"
+mkdir build
+mkdir out
+cd build
+"$d0/d0_blind_id/configure" --with-pic --prefix="$d0/out" --host=x86_64-w64-mingw32
+make
+make install
+
+cd "$d0"
+cp out/bin/libd0_blind_id-0.dll ~/Games/xonotic/misc/buildfiles/win64/libd0_blind_id-0.dll
+cp out/bin/libd0_rijndael-0.dll ~/Games/xonotic/misc/buildfiles/win64/libd0_rijndael-0.dll
+```
# libode
Is not loaded under Windows and crashes the game if it is and a map is loaded up.