diff options
| author | claude-bot <[email protected]> | 2026-07-13 12:40:01 +0000 |
|---|---|---|
| committer | claude-bot <[email protected]> | 2026-07-13 12:40:01 +0000 |
| commit | 02fe7437413eaaf7cee46e5a1862c1fc7ac0dbba (patch) | |
| tree | 50a2f61b89ee66f9ff58b7b9167a8e5232e19e3c /mingw/README.md | |
| download | opusfile-master.tar.gz opusfile-master.zip | |
Snapshot for re3/reVC vendoring, per @lzcnt.
Source: https://github.com/xiph/opusfile (4174c26e0aaab19d01afdea0a46f7f95fdc6b3e6).
Diffstat (limited to 'mingw/README.md')
| -rw-r--r-- | mingw/README.md | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/mingw/README.md b/mingw/README.md new file mode 100644 index 0000000..9134149 --- /dev/null +++ b/mingw/README.md @@ -0,0 +1,69 @@ +# Cross-compiling under mingw + +Just running `make libopusfile-0.dll` in this directory should download +and build opusfile and its dependencies. Some mingw +libraries need to be compiled into the final package. + +## Generic instructions + +To build opusfile under mingw, you need to first build: + +- libogg +- libopus +- openssl + +For 'make check' to work, you may need wine installed. + +To build openssl, try: + + CROSS_COMPILE="i686-w64-mingw32-" ./Configure mingw no-asm no-shared --prefix=$PWD/mingw && make depend && make -j8 && make install + +To build opusfile, try: + + CC=i686-w64-mingw32-gcc PKG_CONFIG_PATH=$PWD/lib/pkgconfig RANLIB=i686-w64-mingw32-ranlib make -f ../unix/Makefile + +## Building the release package + +Running `make package` should produce a binary package. + +The steps are something like + +- Compile dynamic opusfile with: + - ./configure --host=i686-w64-mingw32 --prefix=/path/to/builddir/mingw \ + PKG_CONFIG_PATH=/path/to/builddir/mingw/lib/pkgconfig + - make && make check && make -C doc/latex + - If Doxygen fails because of unescaped '#' characters in URLs + Update to at least Doxygen 1.8.15. Doxygen 1.8.3 also works. +- mkdir opusfile-${version}-win32 +- Copy AUTHORS COPYING README.md include/opusfile.h to the release dir. + - Don't put opusfile.h in an opusfile-${version}-win32/include directory, + just put it straight in the release dir. +- Merge changes between README.md and the version in the last + binary release. E.g. it's good to include versions of the dependencies, + release notes, etc. +- Convert README.md to DOS line endings. +- Copy .libs/libopusfile-0.dll to the release dir. +- Copy .libs/libopusfile.a to the release dir. +- Copy .libs/libopusurl-0.dll to the release dir. +- Copy .libs/libopusurl.a to the release dir. +- Copy mingw/bin/*.dll to the release dir for dependencies. +- Copy any other dependent dlls, e.g. on Fedora 32 I needed to copy + /usr/i686-w64-mingw32/sys-root/mingw/bin/libgcc_s_dw2-1.dll + /usr/i686-w64-mingw32/sys-root/mingw/bin/libwinpthread-1.dll + On Fedora 23 I needed to copy + /usr/i686-w64-mingw32/sys-root/mingw/bin/libgcc_s_sjlj-1.dll + /usr/i686-w64-mingw32/sys-root/mingw/bin/libwinpthread-1.dll + On Gentoo I needed to copy + /usr/lib64/gcc/i686-w64-mingw32/7.3.0/libgcc_s_sjlj-1.dll + TODO: It may be possible to avoid this with CFLAGS="-static-libgcc" +- Copy doc/latex/refman.pdf to opusfile-${version}-win32/opusfile-${version}.pdf +- Copy examples/.libs/*.exe to the release dir. +- Run "i686-w64-ming32-strip *.dll *.a *.exe" in the release dir. +- In the release dir, run: + sha256sum * > SHA256SUMS.txt + gpg --detach-sign --armor SHA256SUMS.txt +- In the parent directory, create the archive: + zip -r opusfile-${version}-win32.zip opusfile-${version}-win32/* +- Copy the archive to a clean system and verify the examples work + to make sure you've included all the necessary libraries. + |
