summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorMateusz Łukasik <mati75@linuxmint.pl>2017-08-21 20:23:34 +0200
committerMateusz Łukasik <mati75@linuxmint.pl>2017-08-21 20:23:34 +0200
commitfe91e6f4733198be72be8dc036fb715b3ffa59b9 (patch)
tree36b115b683b859191fe87a75d852b75b8e1b7d84 /win32
parente71d3c04c4dafb4c9c0cb4f8e46180e4f679ed0b (diff)
New upstream version 3.9
Diffstat (limited to 'win32')
-rw-r--r--win32/merge.sh8
-rw-r--r--win32/notes.html171
-rw-r--r--win32/patches/gcontenttype-win32.c.diff32
-rw-r--r--win32/patches/glib-2-52.diff229
-rw-r--r--win32/patches/gwin32appinfo.c.diff35
-rw-r--r--win32/patches/gwin32networking.h.diff23
-rw-r--r--win32/patches/lame-3.99.diff61
-rw-r--r--win32/patches/libcddb-1.3.diff35
-rw-r--r--win32/patches/libcdio-0.83.diff40
-rw-r--r--win32/patches/libcdio-util.c.diff21
-rw-r--r--win32/patches/libsamplerate-0.1.diff13
-rw-r--r--win32/patches/neon-0.30.diff15
12 files changed, 467 insertions, 216 deletions
diff --git a/win32/merge.sh b/win32/merge.sh
index 018af5c..fb82214 100644
--- a/win32/merge.sh
+++ b/win32/merge.sh
@@ -2,12 +2,14 @@
# Quick-and-dirty script for updating a Windows release folder
+rm -rf /C/aud-win32/share/locale
+
cd /C/aud-win32
for i in `find -type f` ; do
if test -f /C/audacious/win32/override/$i ; then
cp /C/audacious/win32/override/$i $i
- elif test -f /C/MinGW/$i ; then
- cp /C/MinGW/$i $i
+ elif test -f /C/msys32/mingw32/$i ; then
+ cp /C/msys32/mingw32/$i $i
elif test -f /C/GTK/$i ; then
cp /C/GTK/$i $i
elif test -f /C/libs/$i ; then
@@ -22,8 +24,6 @@ done
for i in `find -name *.dll` ; do strip -s $i ; done
for i in `find -name *.exe` ; do strip -s $i ; done
-rm -rf /C/aud-win32/share/locale
-
cd /C/GTK
for i in `find ./share/locale -name gtk20.mo` ; do
mkdir -p /C/aud-win32/${i%%/gtk20.mo}
diff --git a/win32/notes.html b/win32/notes.html
index 1dc8c90..88c4588 100644
--- a/win32/notes.html
+++ b/win32/notes.html
@@ -10,69 +10,43 @@
<h2>Notes for Building Audacious on Windows</h2>
<p><em>John Lindgren<br>
-May 16, 2015</em></p>
+April 13, 2017</em></p>
<p>Several patch files should accompany this document.</p>
-<h3>Set up system paths</h3>
+<h3>Set up MSYS2 environment</h3>
-<p>Under <em>My Computer -> Properties -> Advanced -> Environment Variables</em>, set:</p>
-<blockquote><p><tt>PATH=C:\MinGW\bin;C:\MinGW\msys\1.0\bin;C:\Python27;C:\CMake\bin;C:\GTK\bin;C:\libs\bin;C:\aud\bin<br>
-PKG_CONFIG_PATH=/C/GTK/lib/pkgconfig:/C/libs/lib/pkgconfig:/C/aud/lib/pkgconfig<br>
-C_INCLUDE_PATH=/C/GTK/include:/C/libs/include<br>
-CPLUS_INCLUDE_PATH=/C/GTK/include:/C/libs/include<br>
-LIBRARY_PATH=/C/GTK/lib:/C/libs/lib</tt></p></blockquote>
+<p>Download and run:<br>
+<a href="http://repo.msys2.org/distrib/i686/msys2-i686-20161025.exe">
+<tt>http://repo.msys2.org/distrib/i686/msys2-i686-20161025.exe</tt></a></p>
-<h3>Install MinGW</h3>
+<p>Accept the default options to install to <tt>C:\msys32</tt>.</p>
-<p>Download and run:<br>
-<a href="http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download">
-<tt>http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download</tt></a></p>
-
-<p>In the MinGW Installation Manager window, install the following packages:</p>
-<ul><li>mingw32-base (bin)</li>
-<li>mingw32-gcc-g++ (bin)</li>
-<li>mingw-developer-toolkit (bin)</li>
-<li>mingw32-pthreads-w32 (dev)</li>
-<li>mingw32-libz (dev)</li></ul>
-
-<p>Edit the file <tt>C:\MinGW\msys\1.0\etc\fstab</tt> to contain only the
-following line, in lowercase:</p>
-<blockquote><p><tt>c:/mingw /mingw</tt></p></blockquote>
-
-<p>As of version 4.0.3-1, the MinGW runtime library is missing some mathematical
-functions that are necessary to build Audacious. Downgrade the library by
-running the following in a command prompt window:</p>
-<blockquote><p><tt>mingw-get upgrade mingw32-mingwrt-dev=3.20-2<br>
-mingw-get upgrade mingw32-w32api=3.17-2</tt></p></blockquote>
-
-<p>Open the file <tt>C:\MinGW\lib\gcc\mingw32\4.8.1\include\c++\mingw32\bits\c++config.h</tt>
-and locate the following line:</p>
-<blockquote><p><tt>/* #undef _GLIBCXX_HAVE_FENV_H */</tt></p></blockquote>
-<p>Change it to read:</p>
-<blockquote><p><tt>#define _GLIBCXX_HAVE_FENV_H 1</tt></p></blockquote>
-
-<h3>Install Python</h3>
+<p>Edit <tt>C:\msys32\home\&lt;user&gt;\.bashrc</tt> and add the following lines:</p>
+<blockquote><p><tt>export PATH="$PATH:/C/cmake/bin:/C/GTK/bin:/C/libs/bin:/C/aud/bin"<br>
+export PKG_CONFIG_PATH=/C/GTK/lib/pkgconfig:/C/libs/lib/pkgconfig:/C/aud/lib/pkgconfig<br>
+export C_INCLUDE_PATH=/C/GTK/include:/C/libs/include<br>
+export CPLUS_INCLUDE_PATH=/C/GTK/include:/C/libs/include<br>
+export LIBRARY_PATH=/C/GTK/lib:/C/libs/lib</tt></p></blockquote>
-<p>Download and run:<br>
-<a href="http://python.org/ftp/python/2.7.6/python-2.7.6.msi">
-<tt>http://python.org/ftp/python/2.7.6/python-2.7.6.msi</tt></a></p>
+<p>In the MinGW shell (MSYS2 MinGW 32-bit, <b>not</b> MSYS2 MSYS):</p>
-<p>Follow the prompts to install with default options to <tt>C:\Python27</tt>.</p>
+<blockquote><p><tt>pacman -Syu<br>
+pacman -S autoconf automake bison libtool mingw-w64-i686-gcc mingw-w64-i686-gettext make perl-XML-Parser pkg-config python2</tt></p></blockquote>
<h3>Install CMake</h3>
<p>Download and run:<br>
-<a href="https://cmake.org/files/v3.6/cmake-3.6.1-win32-x86.msi">
-<tt>https://cmake.org/files/v3.6/cmake-3.6.1-win32-x86.msi</tt></a></p>
+<a href="https://cmake.org/files/v3.8/cmake-3.8.2-win32-x86.msi">
+<tt>https://cmake.org/files/v3.8/cmake-3.8.2-win32-x86.msi</tt></a></p>
-<p>Follow the prompts to install, changing the installation path to <tt>C:\CMake</tt>.</p>
+<p>Install to <tt>C:\cmake</tt>.</p>
<h3>Install libpng</h3>
<p>Download and unzip to <tt>C:\libpng</tt>:<br>
-<a href="https://sourceforge.net/projects/libpng/files/libpng16/1.6.23/libpng-1.6.23.tar.xz/download">
-<tt>https://sourceforge.net/projects/libpng/files/libpng16/1.6.23/libpng-1.6.23.tar.xz/download</tt></a></p>
+<a href="https://sourceforge.net/projects/libpng/files/libpng16/1.6.29/libpng-1.6.29.tar.xz/download">
+<tt>https://sourceforge.net/projects/libpng/files/libpng16/1.6.29/libpng-1.6.29.tar.xz/download</tt></a></p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/libpng<br>
@@ -83,8 +57,8 @@ make install</tt></p></blockquote>
<h3>Install libjpeg-turbo</h3>
<p>Download and unzip to <tt>C:\libjpeg</tt>:<br>
-<a href="https://sourceforge.net/projects/libjpeg-turbo/files/1.5.0/libjpeg-turbo-1.5.0.tar.gz/download">
-<tt>https://sourceforge.net/projects/libjpeg-turbo/files/1.5.0/libjpeg-turbo-1.5.0.tar.gz/download</tt></a></p>
+<a href="https://sourceforge.net/projects/libjpeg-turbo/files/1.5.1/libjpeg-turbo-1.5.1.tar.gz/download">
+<tt>https://sourceforge.net/projects/libjpeg-turbo/files/1.5.1/libjpeg-turbo-1.5.1.tar.gz/download</tt></a></p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/libjpeg<br>
@@ -107,34 +81,18 @@ make install</tt></p></blockquote>
<h3>Install GLib</h3>
<p>Download and unzip to <tt>C:\glib</tt>:<br>
-<a href="http://ftp.gnome.org/pub/GNOME/sources/glib/2.44/glib-2.44.1.tar.xz">
-<tt>http://ftp.gnome.org/pub/GNOME/sources/glib/2.44/glib-2.44.1.tar.xz</tt></a></p>
+<a href="http://ftp.gnome.org/pub/GNOME/sources/glib/2.52/glib-2.52.1.tar.xz">
+<tt>http://ftp.gnome.org/pub/GNOME/sources/glib/2.52/glib-2.52.1.tar.xz</tt></a></p>
<p>Apply the patch <tt>ggettext.c.diff</tt> to <tt>C:\glib\glib\ggettext.c</tt>.<br>
-Apply the patch <tt>gcontenttype-win32.c.diff</tt> to <tt>C:\glib\gio\gcontenttype-win32.c.diff</tt>.<br>
-Apply the patch <tt>gwin32appinfo.c.diff</tt> to <tt>C:\glib\gio\gwin32appinfo.c.diff</tt>.<br>
-Apply the patch <tt>gwin32networking.h.diff</tt> to <tt>C:\glib\gio\gwin32networking.h</tt>.</p>
+Apply the recursive patch <tt>glib-2-52.diff</tt>.</p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/glib<br>
-CFLAGS="-O2 -march=i686" LIBFFI_CFLAGS="-I/C/GTK/lib/libffi-3.2.1/include" LIBFFI_LIBS="-lffi" ZLIB_CFLAGS="" ZLIB_LIBS="-lz" ./configure --prefix=/C/GTK<br>
-make<br>
-make install</tt></p></blockquote>
-
-<h3>Install pkg-config</h3>
-
-<p>Download and unzip to <tt>C:\pkgconfig</tt>:<br>
-<a href="https://pkg-config.freedesktop.org/releases/pkg-config-0.29.1.tar.gz">
-<tt>https://pkg-config.freedesktop.org/releases/pkg-config-0.29.1.tar.gz</tt></a></p>
-
-<p>In the MinGW shell:</p>
-<blockquote><p><tt>cd /C/pkgconfig<br>
-GLIB_CFLAGS="-I/C/GTK/include/glib-2.0 -I/C/GTK/lib/glib-2.0/include" GLIB_LIBS="-lglib-2.0" ./configure --prefix=/C/GTK<br>
+CFLAGS="-O2 -march=i686" ./configure --prefix=/C/GTK --with-pcre=internal<br>
make<br>
make install</tt></p></blockquote>
-<p>Copy <tt>C:\GTK\share\aclocal\pkg.m4</tt> to <tt>C:\MinGW\share\aclocal</tt>.</p>
-
<h3>Install pixman</h3>
<p>Download and unzip to <tt>C:\pixman</tt>:<br>
@@ -150,8 +108,8 @@ make install</tt></p></blockquote>
<h3>Install Cairo</h3>
<p>Download and unzip to <tt>C:\cairo</tt>:<br>
-<a href="https://www.cairographics.org/releases/cairo-1.14.6.tar.xz">
-<tt>https://www.cairographics.org/releases/cairo-1.14.6.tar.xz</tt></a></p>
+<a href="https://www.cairographics.org/releases/cairo-1.14.8.tar.xz">
+<tt>https://www.cairographics.org/releases/cairo-1.14.8.tar.xz</tt></a></p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/cairo<br>
@@ -162,8 +120,8 @@ make install</tt></p></blockquote>
<h3>Install Pango</h3>
<p>Download and unzip to <tt>C:\pango</tt>:<br>
-<a href="http://ftp.gnome.org/pub/GNOME/sources/pango/1.40/pango-1.40.1.tar.xz">
-<tt>http://ftp.gnome.org/pub/GNOME/sources/pango/1.40/pango-1.40.1.tar.xz</tt></a></p>
+<a href="http://ftp.gnome.org/pub/GNOME/sources/pango/1.40/pango-1.40.5.tar.xz">
+<tt>http://ftp.gnome.org/pub/GNOME/sources/pango/1.40/pango-1.40.5.tar.xz</tt></a></p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/pango<br>
@@ -174,8 +132,8 @@ make install</tt></p></blockquote>
<h3>Install gdk-pixbuf</h3>
<p>Download and unzip to <tt>C:\gdk-pixbuf</tt>:<br>
-<a href="http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.34/gdk-pixbuf-2.34.0.tar.xz">
-<tt>http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.34/gdk-pixbuf-2.34.0.tar.xz</tt></a></p>
+<a href="http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.36/gdk-pixbuf-2.36.6.tar.xz">
+<tt>http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.36/gdk-pixbuf-2.36.6.tar.xz</tt></a></p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/gdk-pixbuf<br>
@@ -186,8 +144,8 @@ make install</tt></p></blockquote>
<h3>Install ATK</h3>
<p>Download and unzip to <tt>C:\atk</tt>:<br>
-<a href="http://ftp.gnome.org/pub/gnome/sources/atk/2.20/atk-2.20.0.tar.xz">
-<tt>http://ftp.gnome.org/pub/gnome/sources/atk/2.20/atk-2.20.0.tar.xz</tt></a></p>
+<a href="http://ftp.gnome.org/pub/gnome/sources/atk/2.24/atk-2.24.0.tar.xz">
+<tt>http://ftp.gnome.org/pub/gnome/sources/atk/2.24/atk-2.24.0.tar.xz</tt></a></p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/atk<br>
@@ -198,14 +156,14 @@ make install</tt></p></blockquote>
<h3>Install GTK+</h3>
<p>Download and unzip to <tt>C:\gtksrc</tt>:<br>
-<a href="http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.24/gtk+-2.24.30.tar.xz">
-<tt>http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.24/gtk+-2.24.30.tar.xz</tt></a></p>
+<a href="http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.24/gtk+-2.24.31.tar.xz">
+<tt>http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.24/gtk+-2.24.31.tar.xz</tt></a></p>
<p>Apply the patch <tt>gdkwindow-win32.c.diff</tt> to <tt>C:\gtksrc\gdk\win32\gdkwindow-win32.c</tt>.</p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/gtksrc<br>
-CFLAGS="-O2 -D_WIN32_WINNT=0x0501" ./configure --prefix=/C/GTK<br>
+./configure --prefix=/C/GTK<br>
make<br>
make install</tt></p></blockquote>
@@ -262,8 +220,8 @@ make install</tt></p></blockquote>
<h3>Install mpg123</h3>
<p>Download and unzip to <tt>C:\mpg123</tt>:<br>
-<a href="http://mpg123.de/download/mpg123-1.23.6.tar.bz2">
-<tt>http://mpg123.de/download/mpg123-1.23.6.tar.bz2</tt></a></p>
+<a href="http://mpg123.de/download/mpg123-1.25.0.tar.bz2">
+<tt>http://mpg123.de/download/mpg123-1.25.0.tar.bz2</tt></a></p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/mpg123<br>
@@ -282,7 +240,7 @@ Apply the patch <tt>libfaad-main.c.diff</tt> to <tt>C:\libfaad\frontend\main.c</
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/libfaad<br>
-cp /C/MinGW/share/libtool/config/ltmain.sh .<br>
+cp /C/msys32/usr/share/libtool/build-aux/ltmain.sh .<br>
autoreconf<br>
./configure --prefix=/C/libs<br>
make<br>
@@ -291,8 +249,8 @@ make install</tt></p></blockquote>
<h3>Install libsndfile</h3>
<p>Download and unzip to <tt>C:\libsndfile</tt>:<br>
-<a href="http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.27.tar.gz">
-<tt>http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.27.tar.gz</tt></a></p>
+<a href="http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28.tar.gz">
+<tt>http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28.tar.gz</tt></a></p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/libsndfile<br>
@@ -310,7 +268,7 @@ make install</tt></p></blockquote>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/libbs2b<br>
-cp /C/MinGW/share/libtool/config/ltmain.sh build-aux<br>
+cp /C/msys32/usr/share/libtool/build-aux/ltmain.sh build-aux<br>
autoreconf<br>
./configure --prefix=/C/libs<br>
make<br>
@@ -322,7 +280,7 @@ make install</tt></p></blockquote>
<a href="http://ftp.gnu.org/gnu/libcdio/libcdio-0.83.tar.gz">
<tt>http://ftp.gnu.org/gnu/libcdio/libcdio-0.83.tar.gz</tt></a></p>
-<p>Apply the patch <tt>libcdio-util.c.diff</tt> to <tt>C:\libcdio\src\util.c</tt>.</p>
+<p>Apply the recursive patch <tt>libcdio-0.83.diff</tt>.</p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/libcdio<br>
@@ -336,6 +294,8 @@ make install</tt></p></blockquote>
<a href="http://sourceforge.net/projects/libcddb/files/libcddb/1.3.2/libcddb-1.3.2.tar.bz2/download">
<tt>http://sourceforge.net/projects/libcddb/files/libcddb/1.3.2/libcddb-1.3.2.tar.bz2/download</tt></a></p>
+<p>Apply the recursive patch <tt>libcddb-1.3.diff</tt>.</p>
+
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/libcddb<br>
./configure --prefix=/C/libs<br>
@@ -362,8 +322,12 @@ make install</tt></p></blockquote>
<a href="http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz/download">
<tt>http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz/download</tt></a></p>
+<p>Apply the recursive patch <tt>lame-3.99.diff</tt>.</p>
+
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/lame<br>
+cp /C/msys32/usr/share/libtool/build-aux/ltmain.sh .<br>
+autoreconf<br>
./configure --prefix=/C/libs<br>
make<br>
make install</tt></p></blockquote>
@@ -371,8 +335,8 @@ make install</tt></p></blockquote>
<h3>Install libflac</h3>
<p>Download and unzip to <tt>C:\libflac</tt>:<br>
-<a href="http://downloads.xiph.org/releases/flac/flac-1.3.1.tar.xz">
-<tt>http://downloads.xiph.org/releases/flac/flac-1.3.1.tar.xz</tt></a></p>
+<a href="http://downloads.xiph.org/releases/flac/flac-1.3.2.tar.xz">
+<tt>http://downloads.xiph.org/releases/flac/flac-1.3.2.tar.xzz</tt></a></p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/libflac<br>
@@ -407,11 +371,14 @@ make install</tt></p></blockquote>
<h3>Install libneon</h3>
<p>Download and unzip to <tt>C:\libneon</tt>:<br>
-<a href="http://www.webdav.org/neon/neon-0.30.1.tar.gz">
-<tt>http://www.webdav.org/neon/neon-0.30.1.tar.gz</tt></a></p>
+<a href="http://www.webdav.org/neon/neon-0.30.2.tar.gz">
+<tt>http://www.webdav.org/neon/neon-0.30.2.tar.gz</tt></a></p>
+
+<p>Apply the recursive patch <tt>neon-0.30.diff</tt>.</p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/libneon<br>
+./autogen.sh
./configure --prefix=/C/libs --enable-shared<br>
make<br>
make install</tt></p></blockquote>
@@ -419,8 +386,10 @@ make install</tt></p></blockquote>
<h3>Install libsamplerate</h3>
<p>Download and unzip to <tt>C:\libsamplerate</tt>:<br>
-<a href="http://www.mega-nerd.com/SRC/libsamplerate-0.1.8.tar.gz">
-<tt>http://www.mega-nerd.com/SRC/libsamplerate-0.1.8.tar.gz</tt></a></p>
+<a href="http://www.mega-nerd.com/SRC/libsamplerate-0.1.9.tar.gz">
+<tt>http://www.mega-nerd.com/SRC/libsamplerate-0.1.9.tar.gz</tt></a></p>
+
+<p>Apply the recursive patch <tt>libsamplerate-0.1.diff</tt>.</p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/libsamplerate<br>
@@ -431,8 +400,8 @@ make install</tt></p></blockquote>
<h3>Install libwavpack</h3>
<p>Download and unzip to <tt>C:\libwavpack</tt>:<br>
-<a href="http://www.wavpack.com/wavpack-4.80.0.tar.bz2">
-<tt>http://www.wavpack.com/wavpack-4.80.0.tar.bz2</tt></a></p>
+<a href="http://www.wavpack.com/wavpack-5.1.0.tar.bz2">
+<tt>http://www.wavpack.com/wavpack-5.1.0.tar.bz2</tt></a></p>
<p>Apply the recursive patch <tt>wavpack-4.80.diff</tt>.</p>
@@ -445,8 +414,8 @@ make install</tt></p></blockquote>
<h3>Install FFmpeg</h3>
<p>Download and unzip to <tt>C:\ffmpeg</tt>:<br>
-<a href="http://ffmpeg.org/releases/ffmpeg-3.1.1.tar.xz">
-<tt>http://ffmpeg.org/releases/ffmpeg-3.1.1.tar.xz</tt></a></p>
+<a href="http://ffmpeg.org/releases/ffmpeg-3.3.tar.xz">
+<tt>http://ffmpeg.org/releases/ffmpeg-3.3.tar.xz</tt></a></p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/ffmpeg<br>
@@ -464,7 +433,7 @@ make install</tt></p></blockquote>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/libmms<br>
-cp /C/MinGW/share/libtool/config/ltmain.sh .<br>
+cp /C/msys32/usr/share/libtool/build-aux/ltmain.sh .<br>
autoreconf<br>
./configure --prefix=/C/libs<br>
make<br>
@@ -473,8 +442,8 @@ make install</tt></p></blockquote>
<h3>Install libmodplug</h3>
<p>Download and unzip to <tt>C:\libmodplug</tt>:<br>
-<a href="http://sourceforge.net/projects/modplug-xmms/files/libmodplug/0.8.8.5/libmodplug-0.8.8.5.tar.gz/download">
-<tt>http://sourceforge.net/projects/modplug-xmms/files/libmodplug/0.8.8.5/libmodplug-0.8.8.5.tar.gz/download</tt></a></p>
+<a href="https://sourceforge.net/projects/modplug-xmms/files/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz/download">
+<tt>https://sourceforge.net/projects/modplug-xmms/files/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz/download</tt></a></p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/libmodplug<br>
@@ -485,8 +454,8 @@ make install</tt></p></blockquote>
<h3>Install libsidplayfp</h3>
<p>Download and unzip to <tt>C:\libsidplayfp</tt>:<br>
-<a href="https://sourceforge.net/projects/sidplay-residfp/files/libsidplayfp/1.8/libsidplayfp-1.8.6.tar.gz/download">
-<tt>https://sourceforge.net/projects/sidplay-residfp/files/libsidplayfp/1.8/libsidplayfp-1.8.6.tar.gz/download</tt></a></p>
+<a href="https://sourceforge.net/projects/sidplay-residfp/files/libsidplayfp/1.8/libsidplayfp-1.8.7.tar.gz/download">
+<tt>https://sourceforge.net/projects/sidplay-residfp/files/libsidplayfp/1.8/libsidplayfp-1.8.7.tar.gz/download</tt></a></p>
<p>In the MinGW shell:</p>
<blockquote><p><tt>cd /C/libsidplayfp<br>
diff --git a/win32/patches/gcontenttype-win32.c.diff b/win32/patches/gcontenttype-win32.c.diff
deleted file mode 100644
index b0606d7..0000000
--- a/win32/patches/gcontenttype-win32.c.diff
+++ /dev/null
@@ -1,32 +0,0 @@
-From 5f0665cbbc1d8b2fafeeb1fba7569612832b7541 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=D0=A0=D1=83=D1=81=D0=BB=D0=B0=D0=BD=20=D0=98=D0=B6=D0=B1?=
- =?UTF-8?q?=D1=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= <lrn1986@gmail.com>
-Date: Thu, 30 Apr 2015 23:09:30 +0000
-Subject: W32: Special treatment for inode/directory mime/type
-
-This is a hack for GLocalFileInfo to correctly get icons for directories.
-Without this change content type for any W32 directory is NULL
-(because there's no registry entry for "inode/directory" by default,
-and in any way there's no file extension that means "directory" to put there),
-and GLocalFileInfo uses content type to grab icons.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=748727
-
-diff --git a/gio/gcontenttype-win32.c b/gio/gcontenttype-win32.c
-index cc8bd82..2db8bd7 100644
---- a/gio/gcontenttype-win32.c
-+++ b/gio/gcontenttype-win32.c
-@@ -299,6 +299,10 @@ g_content_type_from_mime_type (const gchar *mime_type)
-
- g_return_val_if_fail (mime_type != NULL, NULL);
-
-+ /* This is a hack to allow directories to have icons in filechooser */
-+ if (strcmp ("inode/directory", mime_type) == 0)
-+ return g_strdup (mime_type);
-+
- key = g_strconcat ("MIME\\DataBase\\Content Type\\", mime_type, NULL);
- content_type = get_registry_classes_key (key, L"Extension");
- g_free (key);
---
-cgit v0.10.2
-
diff --git a/win32/patches/glib-2-52.diff b/win32/patches/glib-2-52.diff
new file mode 100644
index 0000000..14d08db
--- /dev/null
+++ b/win32/patches/glib-2-52.diff
@@ -0,0 +1,229 @@
+diff --git a/gio/gwin32appinfo.c b/gio/gwin32appinfo.c
+index b547012b6..4eb7d96c1 100644
+--- a/gio/gwin32appinfo.c
++++ b/gio/gwin32appinfo.c
+@@ -2777,7 +2777,7 @@ read_classes (GWin32RegistryKey *classes_root)
+ (class_name_len <= 1))
+ continue;
+
+- if (class_name[0] == L'.')
++ if (class_name[0] == L'.' || wcscmp(class_name, L"Folder") == 0)
+ read_class_extension (classes_root, class_name, class_name_len);
+ else
+ {
+@@ -3953,6 +3953,79 @@ Legend: (from http://msdn.microsoft.com/en-us/library/windows/desktop/cc144101%2
+ return result;
+ }
+
++/* This is somewhat similar to g_shell_parse_argv, but handles only unquoting.
++ * Escape sequences are not supported since '\' is a path delimiter on Windows. */
++static void
++split_command_line (const gchar *command_line,
++ gint *argcp,
++ gchar ***argvp)
++{
++ GSList *args = NULL;
++ gchar current_quote = '\0';
++ const gchar *current_token = NULL;
++ const gchar *next = command_line;
++ GSList *arg_iter;
++ gchar **argv_iter;
++
++ for (next = command_line;; next++)
++ {
++ if (current_token == NULL)
++ {
++ /* a token begins with:
++ * a quote
++ * a non-whitespace character
++ */
++ if (*next != '\0' && !g_ascii_isspace(*next))
++ {
++ if (*next == '\'' || *next == '"')
++ {
++ current_quote = *next;
++ current_token = next + 1;
++ }
++ else
++ {
++ current_token = next;
++ }
++ }
++ }
++ else /* current_token != NULL */
++ {
++ /* a token ends with:
++ * a NUL
++ * a matching end quote
++ * an unquoted whitespace character
++ */
++ if (*next == '\0' ||
++ *next == current_quote ||
++ (current_quote == '\0' && g_ascii_isspace (*next)))
++ {
++ args = g_slist_prepend (args, g_strndup (current_token, next - current_token));
++
++ current_quote = '\0';
++ current_token = NULL;
++ }
++ }
++
++ if (*next == '\0')
++ break;
++ }
++
++ args = g_slist_reverse (args);
++
++ /* build NULL-terminated argv array */
++ *argcp = g_slist_length (args);
++ *argvp = g_new (gchar*, *argcp + 1);
++
++ argv_iter = *argvp;
++
++ for (arg_iter = args; arg_iter != NULL; arg_iter = arg_iter->next)
++ *argv_iter++ = arg_iter->data;
++
++ *argv_iter = NULL;
++
++ g_slist_free (args);
++}
++
+ static gboolean
+ expand_application_parameters (GWin32AppInfo *info,
+ const gchar *exec_line,
+@@ -3966,7 +4039,6 @@ expand_application_parameters (GWin32AppInfo *info,
+ const char *p = exec_line;
+ GString *expanded_exec;
+ gboolean res;
+- gchar *a_char;
+
+ if (exec_line == NULL)
+ {
+@@ -4005,20 +4077,9 @@ expand_application_parameters (GWin32AppInfo *info,
+ expand_macro ('f', expanded_exec, info, stat_obj_list, objs);
+ }
+
+- /* Replace '\\' with '/', because g_shell_parse_argv considers them
+- * to be escape sequences.
+- */
+- for (a_char = expanded_exec->str;
+- a_char <= &expanded_exec->str[expanded_exec->len];
+- a_char++)
+- {
+- if (*a_char == '\\')
+- *a_char = '/';
+- }
+-
+- res = g_shell_parse_argv (expanded_exec->str, argc, argv, error);
++ split_command_line (expanded_exec->str, argc, argv);
+ g_string_free (expanded_exec, TRUE);
+- return res;
++ return TRUE;
+ }
+
+
+@@ -4286,7 +4347,7 @@ g_win32_app_info_launch_uris (GAppInfo *appinfo,
+ gboolean do_files;
+ GList *objs;
+
+- do_files = g_win32_app_info_supports_files (appinfo);
++ do_files = ! g_win32_app_info_supports_uris (appinfo);
+
+ objs = NULL;
+ while (uris)
+@@ -4305,7 +4366,8 @@ g_win32_app_info_launch_uris (GAppInfo *appinfo,
+ g_object_unref (file);
+ }
+
+- obj->uri = g_strdup (uris->data);
++ if (obj->file == NULL)
++ obj->uri = g_strdup (uris->data);
+
+ objs = g_list_prepend (objs, obj);
+ uris = uris->next;
+@@ -4341,11 +4403,13 @@ g_win32_app_info_launch (GAppInfo *appinfo,
+ {
+ file_or_uri *obj;
+ obj = g_new0 (file_or_uri, 1);
+- obj->file = g_file_get_path (G_FILE (files->data));
+
+ if (do_uris)
+ obj->uri = g_file_get_uri (G_FILE (files->data));
+
++ if (obj->uri == NULL)
++ obj->file = g_file_get_path (G_FILE (files->data));
++
+ objs = g_list_prepend (objs, obj);
+ files = files->next;
+ }
+@@ -4500,6 +4564,9 @@ g_app_info_get_default_for_type (const char *content_type,
+ GWin32AppInfoApplication *app;
+ GHashTableIter iter;
+
++ if (g_strcmp0 (content_type, "inode/directory") == 0)
++ content_type = "Folder";
++
+ ext_down = g_utf8_casefold (content_type, -1);
+
+ if (!ext_down)
+diff --git a/gio/gwin32registrykey.c b/gio/gwin32registrykey.c
+index 313980bc0..ab03a469f 100644
+--- a/gio/gwin32registrykey.c
++++ b/gio/gwin32registrykey.c
+@@ -89,18 +89,18 @@ typedef NTSTATUS
+ PULONG result_size);
+
+ typedef NTSTATUS
+-(* NtNotifyChangeMultipleKeysFunc)(HANDLE key_handle,
+- ULONG subkey_count,
+- POBJECT_ATTRIBUTES subkeys,
+- HANDLE event,
+- PIO_APC_ROUTINE apc_routine,
+- PVOID apc_closure,
+- PIO_STATUS_BLOCK status_block,
+- ULONG filter,
+- BOOLEAN watch_tree,
+- PVOID buffer,
+- ULONG buffer_size,
+- BOOLEAN async);
++(NTAPI * NtNotifyChangeMultipleKeysFunc)(HANDLE key_handle,
++ ULONG subkey_count,
++ POBJECT_ATTRIBUTES subkeys,
++ HANDLE event,
++ PIO_APC_ROUTINE apc_routine,
++ PVOID apc_closure,
++ PIO_STATUS_BLOCK status_block,
++ ULONG filter,
++ BOOLEAN watch_tree,
++ PVOID buffer,
++ ULONG buffer_size,
++ BOOLEAN async);
+
+ static NtQueryKeyFunc nt_query_key = NULL;
+ static NtNotifyChangeMultipleKeysFunc nt_notify_change_multiple_keys = NULL;
+diff --git a/glib/gfileutils.c b/glib/gfileutils.c
+index 6789c537f..ea3806eeb 100644
+--- a/glib/gfileutils.c
++++ b/glib/gfileutils.c
+@@ -317,6 +317,11 @@ gboolean
+ g_file_test (const gchar *filename,
+ GFileTest test)
+ {
++#ifdef G_OS_WIN32
++ int attributes;
++ wchar_t *wfilename;
++#endif
++
+ g_return_val_if_fail (filename != NULL, FALSE);
+
+ #ifdef G_OS_WIN32
+@@ -327,8 +332,7 @@ g_file_test (const gchar *filename,
+ # ifndef FILE_ATTRIBUTE_DEVICE
+ # define FILE_ATTRIBUTE_DEVICE 64
+ # endif
+- int attributes;
+- wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL);
++ wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL);
+
+ if (wfilename == NULL)
+ return FALSE;
diff --git a/win32/patches/gwin32appinfo.c.diff b/win32/patches/gwin32appinfo.c.diff
deleted file mode 100644
index 54082e2..0000000
--- a/win32/patches/gwin32appinfo.c.diff
+++ /dev/null
@@ -1,35 +0,0 @@
---- gwin32appinfo.c.0 2015-02-26 07:57:09 -0500
-+++ gwin32appinfo.c 2015-07-18 11:39:10 -0400
-@@ -287,7 +287,11 @@
-
- for (l = locations; l != NULL; l = l->next)
- {
-- wchar_t *wloc = g_utf8_to_utf16 (l->data, -1, NULL, NULL, NULL);
-+ /* Some Windows apps (at least explorer.exe) don't know how to handle
-+ * file:// URIs, so try to convert them to a local filename. */
-+ gchar *fname = g_filename_from_uri (l->data, NULL, NULL);
-+ wchar_t *wloc = g_utf8_to_utf16 (fname != NULL ? fname : l->data, -1,
-+ NULL, NULL, NULL);
-
- memset (&exec_info, 0, sizeof (exec_info));
- exec_info.cbSize = sizeof (exec_info);
-@@ -308,6 +312,7 @@
- return FALSE;
- }
-
-+ g_free (fname);
- g_free (wloc);
- }
-
-@@ -642,6 +647,11 @@
- wchar_t buffer[1024];
- DWORD buffer_size;
-
-+ /* the GIO content type for a directory is "inode/directory";
-+ * the corresponding Windows registry entry is "Folder" */
-+ if (g_strcmp0 (association, "inode/directory") == 0)
-+ association = "Folder";
-+
- wtype = g_utf8_to_utf16 (association, -1, NULL, NULL, NULL);
-
- /* Verify that we have some sort of app registered for this type */
diff --git a/win32/patches/gwin32networking.h.diff b/win32/patches/gwin32networking.h.diff
deleted file mode 100644
index 10eb20f..0000000
--- a/win32/patches/gwin32networking.h.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- gwin32networking.h.0 2015-05-16 15:55:46 -0400
-+++ gwin32networking.h 2015-05-16 16:16:48 -0400
-@@ -19,14 +19,17 @@
- #ifndef __G_WIN32_NETWORKING_H__
- #define __G_WIN32_NETWORKING_H__
-
-+#include <windef.h>
-+#include <winsock2.h>
-+
- G_BEGIN_DECLS
-
- /* Check if more ANSI-compliant Winsock2 functions are provided */
- /* For run-time compatibility with Windows XP, remove when XP support dropped */
-
--typedef INT (WSAAPI *PFN_InetPton) (INT, PCTSTR, PVOID);
--typedef PCTSTR (WSAAPI *PFN_InetNtop) (INT, PVOID, PTSTR, size_t);
--typedef NET_IFINDEX (WINAPI *PFN_IfNameToIndex) (PCSTR);
-+typedef INT (WSAAPI *PFN_InetPton) (INT, PCSTR, PVOID);
-+typedef PCSTR (WSAAPI *PFN_InetNtop) (INT, PVOID, PSTR, size_t);
-+typedef ULONG (WINAPI *PFN_IfNameToIndex) (PCSTR);
-
- typedef struct _GWin32WinsockFuncs
- {
diff --git a/win32/patches/lame-3.99.diff b/win32/patches/lame-3.99.diff
new file mode 100644
index 0000000..fdb974c
--- /dev/null
+++ b/win32/patches/lame-3.99.diff
@@ -0,0 +1,61 @@
+diff --git a/configure.in b/configure.in
+index 2f8fa66..813d33d 100644
+--- a/configure.in
++++ b/configure.in
+@@ -96,7 +96,6 @@ AC_CHECK_HEADERS( \
+ sys/soundcard.h \
+ sys/time.h \
+ unistd.h \
+- xmmintrin.h \
+ linux/soundcard.h)
+
+ dnl Checks for typedefs, structures, and compiler characteristics.
+@@ -393,8 +392,6 @@ CONFIG_MATH_LIB="${USE_LIBM}"
+
+ dnl configure use of features
+
+-AM_PATH_GTK(1.2.0, HAVE_GTK="yes", HAVE_GTK="no")
+-
+ dnl ElectricFence malloc debugging
+ AC_MSG_CHECKING(use of ElectricFence malloc debugging)
+ AC_ARG_ENABLE(efence,
+@@ -527,7 +524,7 @@ else
+ AC_MSG_RESULT(no)
+ fi
+
+-if test "${HAVE_GTK}" = "no"; then
++if false ; then
+ if test "x${WITH_MP3X}" = "xmp3x"; then
+ AC_MSG_WARN(can't build mp3x, no GTK installed)
+ WITH_MP3X=
+@@ -635,7 +632,7 @@ WITH_VECTOR=no
+ case $host_cpu in
+ x86_64|amd64)
+ CPUTYPE="no"
+- if test $ac_cv_header_xmmintrin_h = yes ; then
++ if false ; then
+ WITH_XMM=yes
+ WITH_VECTOR=yes
+ fi
+@@ -646,7 +643,7 @@ h precission)
+ ;;
+ *86)
+ CPUTYPE="i386"
+- if test $ac_cv_header_xmmintrin_h = yes ; then
++ if false ; then
+ WITH_XMM=yes
+ WITH_VECTOR=yes
+ fi
+diff --git a/frontend/Makefile.am b/frontend/Makefile.am
+index a35cb17..3cf2d8f 100644
+--- a/frontend/Makefile.am
++++ b/frontend/Makefile.am
+@@ -35,7 +35,7 @@ lame_SOURCES = lame_main.c $(common_sources)
+ mp3rtp_SOURCES = mp3rtp.c rtp.c $(common_sources)
+ mp3x_SOURCES = mp3x.c gtkanal.c gpkplotting.c $(common_sources)
+
+-CFLAGS = @CFLAGS@ @GTK_CFLAGS@ @FRONTEND_CFLAGS@ @SNDFILE_CFLAGS@
++CFLAGS = @CFLAGS@ @FRONTEND_CFLAGS@ @SNDFILE_CFLAGS@
+ LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@ @SNDFILE_LIBS@
+
+ INCLUDES = -I$(top_srcdir)/libmp3lame -I$(top_srcdir)/include -I$(top_builddir)
diff --git a/win32/patches/libcddb-1.3.diff b/win32/patches/libcddb-1.3.diff
new file mode 100644
index 0000000..4449221
--- /dev/null
+++ b/win32/patches/libcddb-1.3.diff
@@ -0,0 +1,35 @@
+diff --git a/include/cddb/cddb_conn.h b/include/cddb/cddb_conn.h
+index ada3cdd..dfff5bb 100644
+--- a/include/cddb/cddb_conn.h
++++ b/include/cddb/cddb_conn.h
+@@ -55,6 +55,8 @@ typedef struct cddb_iconv_s *cddb_iconv_t;
+ */
+ typedef struct cddb_conn_s cddb_conn_t;
+
++#undef SEARCH_ALL /* namespace conflict with ntddchgr.h */
++
+ /**
+ * Which fields to use for the full text search is defined by one or
+ * more of the constants below.
+diff --git a/lib/cddb_net.c b/lib/cddb_net.c
+index 7adf37b..6e335b5 100644
+--- a/lib/cddb_net.c
++++ b/lib/cddb_net.c
+@@ -228,7 +228,7 @@ int sock_vfprintf(cddb_conn_t *c, const char *format, va_list ap)
+
+ /* Time-out enabled work-alikes */
+
+-#ifdef HAVE_ALARM
++#if 0
+ /* time-out jump buffer */
+ static jmp_buf timeout_expired;
+
+@@ -241,7 +241,7 @@ static void alarm_handler(int signum)
+
+ struct hostent *timeout_gethostbyname(const char *hostname, int timeout)
+ {
+-#ifdef HAVE_ALARM
++#if 0
+ struct hostent *he = NULL;
+ struct sigaction action;
+ struct sigaction old;
diff --git a/win32/patches/libcdio-0.83.diff b/win32/patches/libcdio-0.83.diff
new file mode 100644
index 0000000..66516a6
--- /dev/null
+++ b/win32/patches/libcdio-0.83.diff
@@ -0,0 +1,40 @@
+diff --git a/lib/driver/MSWindows/win32_ioctl.c b/lib/driver/MSWindows/win32_ioctl.c
+index 02d1576..ca62915 100644
+--- a/lib/driver/MSWindows/win32_ioctl.c
++++ b/lib/driver/MSWindows/win32_ioctl.c
+@@ -30,9 +30,9 @@
+ # include "NtScsi.h"
+ # include "undocumented.h"
+ #else
+-# include <ddk/ntddcdrm.h>
+-# include <ddk/ntddscsi.h>
+-# include <ddk/scsi.h>
++# include <windows.h>
++# include <ntddcdrm.h>
++# include <ntddscsi.h>
+ #endif
+
+ #ifdef WIN32
+diff --git a/src/util.c b/src/util.c
+index 21c83cc..efe9cdb 100644
+--- a/src/util.c
++++ b/src/util.c
+@@ -510,6 +510,7 @@ print_fs_attrs(iso9660_stat_t *p_statbuf, bool b_rock, bool b_xa,
+ (unsigned int) p_statbuf->size );
+ }
+
++#ifdef HAVE_ROCK
+ if (yep == p_statbuf->rr.b3_rock && b_rock) {
+ struct tm tm;
+
+@@ -531,7 +532,9 @@ print_fs_attrs(iso9660_stat_t *p_statbuf, bool b_rock, bool b_xa,
+ report(stdout, " -> %s", p_statbuf->rr.psz_symlink);
+ }
+
+- } else {
++ } else
++#endif
++ {
+ strftime(date_str, sizeof(date_str), "%b %d %Y %H:%M:%S ", &p_statbuf->tm);
+ report (stdout," %s %s", date_str, psz_name_translated);
+ }
diff --git a/win32/patches/libcdio-util.c.diff b/win32/patches/libcdio-util.c.diff
deleted file mode 100644
index 1ade0d1..0000000
--- a/win32/patches/libcdio-util.c.diff
+++ /dev/null
@@ -1,21 +0,0 @@
---- util.c.0 2009-07-12 19:21:30 -0400
-+++ util.c 2011-04-01 20:22:00 -0500
-@@ -503,6 +503,7 @@
- (unsigned int) p_statbuf->size );
- }
-
-+#ifdef HAVE_ROCK
- if (yep == p_statbuf->rr.b3_rock && b_rock) {
- struct tm tm;
-
-@@ -524,7 +525,9 @@
- report(stdout, " -> %s", p_statbuf->rr.psz_symlink);
- }
-
-- } else {
-+ } else
-+#endif
-+ {
- strftime(date_str, sizeof(date_str), "%b %d %Y %H:%M:%S ", &p_statbuf->tm);
- report (stdout," %s %s", date_str, psz_name_translated);
- }
diff --git a/win32/patches/libsamplerate-0.1.diff b/win32/patches/libsamplerate-0.1.diff
new file mode 100644
index 0000000..a95e81e
--- /dev/null
+++ b/win32/patches/libsamplerate-0.1.diff
@@ -0,0 +1,13 @@
+diff --git a/examples/audio_out.c b/examples/audio_out.c
+index 4ba8fb4..32548c8 100644
+--- a/examples/audio_out.c
++++ b/examples/audio_out.c
+@@ -801,7 +801,7 @@ win32_close (AUDIO_OUT *audio_out)
+ static DWORD CALLBACK
+ win32_audio_out_callback (HWAVEOUT hwave, UINT msg, DWORD data, DWORD param1, DWORD param2)
+ { WIN32_AUDIO_OUT *win32_out ;
+- int read_count, frame_count, k ;
++ int read_count, sample_count, frame_count, k ;
+ short *sptr ;
+
+ /*
diff --git a/win32/patches/neon-0.30.diff b/win32/patches/neon-0.30.diff
new file mode 100644
index 0000000..f0f2b72
--- /dev/null
+++ b/win32/patches/neon-0.30.diff
@@ -0,0 +1,15 @@
+diff --git a/macros/neon.m4 b/macros/neon.m4
+index e051e94..2aa1605 100644
+--- a/macros/neon.m4
++++ b/macros/neon.m4
+@@ -543,8 +543,8 @@ if test $ne_fmt_trycompile = yes; then
+ oflags="$CPPFLAGS"
+ # Consider format string mismatches as errors
+ CPPFLAGS="$CPPFLAGS -Wformat -Werror"
+- dnl obscured for m4 quoting: "for str in d ld lld; do"
+- for str in ne_spec l]ne_spec[ ll]ne_spec[; do
++ dnl obscured for m4 quoting: "for str in d ld lld I64d; do"
++ for str in ne_spec l]ne_spec[ ll]ne_spec[ I64]ne_spec[; do
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+ $2
+ #include <stdio.h>]], [[$1 i = 1; printf("%$str", i);]])],