[153444] trunk/dports/multimedia/audacious-plugins

ionic at macports.org ionic at macports.org
Fri Sep 30 13:15:27 CEST 2016


Revision: 153444
          https://trac.macports.org/changeset/153444
Author:   ionic at macports.org
Date:     2016-09-30 04:15:27 -0700 (Fri, 30 Sep 2016)
Log Message:
-----------
multimedia/audacious-plugins: update to 3.8 including patchset.

Changes:
  - Renamed patches to drop the file name and add a description of what they
    do.
  - Refreshed patches.
  - Dropped the patch switching from -std=gnu++11 to -std=c++11 on OS X.
    Enabling GNU extensions shouldn't Hurd.
  - +vorbis and +flac now require +filewriter, as it doesn't make sense
    to not enable it if it comes for free (filewriter has no external
    dependencies, other than vorbis, faac and lame, which are pulled in
    by the vorbis, flac or lame variants.)
  - Initial support for the ampache plugin via a variant, but commented
    out, as the required dependency has not been ported yet.
  - +notifications can now be used with Qt5 as well and has been added
    to the +full variant set.
  - +filewriter added to the +full variant set, as it adds no external
    dependencies by itself and can now be used with GTK2, GTK3 and Qt5.
  - The Qt5 interface will now be regarded as a fully-qualified member,
    as it matured quite a lot.

Modified Paths:
--------------
    trunk/dports/multimedia/audacious-plugins/Portfile
    trunk/dports/multimedia/audacious-plugins/files/patch-gtk3.diff

Added Paths:
-----------
    trunk/dports/multimedia/audacious-plugins/files/patch-drop-libc++.diff
    trunk/dports/multimedia/audacious-plugins/files/patch-update-buildsys-and-make-verbose.diff

Removed Paths:
-------------
    trunk/dports/multimedia/audacious-plugins/files/patch-acinclude.m4-drop-libc++-switch-from-gnu++11-to-c++11.diff
    trunk/dports/multimedia/audacious-plugins/files/patch-buildsys.diff

Modified: trunk/dports/multimedia/audacious-plugins/Portfile
===================================================================
--- trunk/dports/multimedia/audacious-plugins/Portfile	2016-09-30 11:15:18 UTC (rev 153443)
+++ trunk/dports/multimedia/audacious-plugins/Portfile	2016-09-30 11:15:27 UTC (rev 153444)
@@ -8,7 +8,7 @@
 name                audacious-plugins
 
 # Please keep audacious, audacious-core and audacious-plugins synchronized.
-version             3.7.2
+version             3.8
 revision            0
 
 # FIXME: probably more licenses involved here...
@@ -28,15 +28,15 @@
 
 master_sites        http://distfiles.audacious-media-player.org
 use_bzip2           yes
-checksums           rmd160  d0786b32eb5e4ad2a724e0ffa0195e052d0bf41f \
-                    sha256  fcf7488f01781c8f51e0af5cabacdd582b22537a0085f26aa5ca636373f8e1ff
+checksums           rmd160  a9599198be430218fcfda4184222df7fcaf8398e \
+                    sha256  8179b80fffc893d4a2533fc7b7c4800981bc9ab3c6d1742a4c832fd6176ca24a
 
 universal_variant   no
 
 conflicts_build     ${name}
 
-patchfiles          patch-buildsys.diff \
-                    patch-acinclude.m4-drop-libc++-switch-from-gnu++11-to-c++11.diff
+patchfiles          patch-update-buildsys-and-make-verbose.diff \
+                    patch-drop-libc++.diff
 
 depends_build       path:bin/pkg-config:pkgconfig \
                     path:bin/aclocal:automake \
@@ -78,7 +78,7 @@
                     --disable-notify \
                     --disable-mpris2 \
                     --disable-vorbis \
-                    --disable-flacng \
+                    --disable-flac \
                     --disable-wavpack \
                     --disable-aac \
                     --disable-sndfile \
@@ -92,11 +92,11 @@
                     --disable-amidiplug \
                     --disable-cdaudio \
                     --disable-scrobbler2 \
+                    --disable-ampache \
                     --disable-mms \
                     --disable-cue \
                     --disable-filewriter \
                     --disable-filewriter_mp3 \
-                    --disable-filewriter_flac \
                     --disable-bs2b \
                     --disable-resample \
                     --disable-speedpitch \
@@ -173,27 +173,23 @@
                             --enable-filewriter
 }
 
-variant vorbis description {Add support for the OggVorbis audio codec} {
+variant vorbis requires filewriter description {Add support for the OggVorbis audio codec} {
     depends_lib-append      port:libvorbis
     depends_lib-append      port:libogg
     configure.args-replace  --disable-vorbis \
                             --enable-vorbis
 
-    if {([variant_isset gtk2] || [variant_isset gtk3]) && [variant_isset filewriter]} {
-        configure.args-replace  --disable-filewriter \
-                                --enable-filewriter
-    }
+    configure.args-replace  --disable-filewriter \
+                            --enable-filewriter
 }
 
-variant flac description {Add support for FLAC: Free Lossless Audio Codec} {
+variant flac requires filewriter description {Add support for FLAC: Free Lossless Audio Codec} {
     depends_lib-append      port:flac
-    configure.args-replace  --disable-flacng \
-                            --enable-flacng
+    configure.args-replace  --disable-flac \
+                            --enable-flac
 
-    if {([variant_isset gtk2] || [variant_isset gtk3]) && [variant_isset filewriter]} {
-        configure.args-replace  --disable-filewriter_flac \
-                                --enable-filewriter_flac
-    }
+    configure.args-replace  --disable-filewriter \
+                            --enable-filewriter
 }
 
 variant wavpack description {Add support for wavpack audio compression tools} {
@@ -245,7 +241,7 @@
                             --enable-amidiplug
 }
 
-variant cdaudio description {Add support for CDAudio-NG} {
+variant cdaudio description {Add support for CDAudio} {
     depends_lib-append      port:libcdio \
                             port:libcdio-paranoia \
                             port:libcddb
@@ -259,6 +255,13 @@
                             --enable-scrobbler2
 }
 
+# ampache_browser not ported yet.
+#variant ampache requires qt5 description {Add support for browsing music on an Ampache server} {
+#   depends_lib-append      port:ampache_browser
+#   configure.args-replace  --disable-ampache \
+#                           --enable-ampache
+#}
+
 variant mms description {Add support for Microsoft Media Server (MMS) streams} {
     depends_lib-append      port:libmms
     configure.args-replace  --disable-mms \
@@ -330,8 +333,8 @@
                             --enable-qtaudio
 
     notes-append {
-                    Qt5 support is optional and untested.
-                    If it breaks, you've got to keep the pieces.\
+                    The Qt5 interface is known to crash upon exit, \
+                    but should otherwise be functional.\
     }
 }
 
@@ -359,6 +362,7 @@
 
 variant full requires console mp3 dbus lirc wavpack aac sndfile modplug \
                       midi cdaudio mms cue lame flac transform opengl \
+                      filewriter notifications \
              description {Build all plugins, except additional sound output plugins and potentially conflicting variants} {}
 
 if {[variant_isset jack]} {
@@ -381,7 +385,7 @@
 
 # Add other variants to the "full" set if gtk2 or gtk3 have been enabled.
 if {[variant_isset full] && ([variant_isset gtk2] || [variant_isset gtk3])} {
-    default_variants-append +filewriter +osd +osd_composite +notifications +lastfm
+    default_variants-append +osd +osd_composite +lastfm
 }
 
 # OSD only supported with gtk2 or gtk3.
@@ -390,24 +394,12 @@
     error "+osd or +osd_composite require +gtk2 or +gtk3."
 }
 
-# Notifications only supported with gtk2 or gtk3.
-if {![variant_isset gtk2] && ![variant_isset gtk3] && [variant_isset notifications]} {
-    ui_debug "The notifications variant requires either the gtk2 or gtk3 variants to be enabled."
-    error "+notifications requires +gtk2 or +gtk3."
-}
-
 # LastFM/scrobbler2 only supported with gtk2 or gtk3.
 if {![variant_isset gtk2] && ![variant_isset gtk3] && [variant_isset lastfm]} {
     ui_debug "The lastfm variant requires either the gtk2 or gtk3 variants to be enabled."
     error "+lastfm requires +gtk2 or +gtk3."
 }
 
-# Filewriter only supported with gtk2 or gtk3.
-if {![variant_isset gtk2] && ![variant_isset gtk3] && [variant_isset filewriter]} {
-    ui_debug "The filewriter variant requires either the gtk2 or gtk3 variants to be enabled."
-    error "+filewriter requires +gtk2 or +gtk3."
-}
-
 # OpenGL only supported with gtk2, gtk3 or Qt5.
 if {![variant_isset gtk2] && ![variant_isset gtk3] && ![variant_isset qt5] && [variant_isset opengl]} {
     ui_debug "The opengl variant requires either the gtk2, gtk3 or qt5 variants to be enabled."

Deleted: trunk/dports/multimedia/audacious-plugins/files/patch-acinclude.m4-drop-libc++-switch-from-gnu++11-to-c++11.diff
===================================================================
--- trunk/dports/multimedia/audacious-plugins/files/patch-acinclude.m4-drop-libc++-switch-from-gnu++11-to-c++11.diff	2016-09-30 11:15:18 UTC (rev 153443)
+++ trunk/dports/multimedia/audacious-plugins/files/patch-acinclude.m4-drop-libc++-switch-from-gnu++11-to-c++11.diff	2016-09-30 11:15:27 UTC (rev 153444)
@@ -1,22 +0,0 @@
---- acinclude.m4.orig
-+++ acinclude.m4
-@@ -83,8 +83,8 @@ AC_REQUIRE([AC_SYS_LARGEFILE])
- if test "x$GCC" = "xyes"; then
-     CFLAGS="$CFLAGS -std=gnu99 -ffast-math -Wall -pipe -Wno-deprecated-declarations"
-     if test "x$HAVE_DARWIN" = "xyes"; then
--        CXXFLAGS="$CXXFLAGS -stdlib=libc++ -std=gnu++11 -ffast-math -Wall -pipe -Wno-deprecated-declarations"
--        LDFLAGS="$LDFLAGS -lc++ -stdlib=libc++"
-+        CXXFLAGS="$CXXFLAGS -std=c++11 -ffast-math -Wall -pipe -Wno-deprecated-declarations"
-+        LDFLAGS="$LDFLAGS"
-     else
-         CXXFLAGS="$CXXFLAGS -std=gnu++11 -ffast-math -Wall -pipe -Wno-deprecated-declarations"
-     fi
-@@ -101,7 +101,7 @@ if test "x$HAVE_DARWIN" = "xyes"; then
-     AC_PROG_OBJCXX
-     AC_PROG_OBJCXXCPP
- 
--    OBJCXXFLAGS="$OBJCXXFLAGS -stdlib=libc++ -std=c++11"
-+    OBJCXXFLAGS="$OBJCXXFLAGS -std=c++11"
- fi
- 
- dnl Enable "-Wl,-z,defs" only on Linux

Deleted: trunk/dports/multimedia/audacious-plugins/files/patch-buildsys.diff
===================================================================
--- trunk/dports/multimedia/audacious-plugins/files/patch-buildsys.diff	2016-09-30 11:15:18 UTC (rev 153443)
+++ trunk/dports/multimedia/audacious-plugins/files/patch-buildsys.diff	2016-09-30 11:15:27 UTC (rev 153444)
@@ -1,670 +0,0 @@
---- buildsys.mk.in.orig
-+++ buildsys.mk.in
-@@ -1,5 +1,5 @@
- #
--#  Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012
-+#  Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
- #  Jonathan Schleifer <js at webkeks.org>
- #
- #  https://webkeks.org/git/?p=buildsys.git
-@@ -45,6 +45,7 @@ OBJCFLAGS = @OBJCFLAGS@
- OBJCXXFLAGS = @OBJCXXFLAGS@
- LDFLAGS = @LDFLAGS@
- LDFLAGS_RPATH = @LDFLAGS_RPATH@
-+LDFLAGS_INSTALL_NAME = @LDFLAGS_INSTALL_NAME@
- LIBS = @LIBS@
- PYTHON_FLAGS = @PYTHON_FLAGS@
- PROG_IMPLIB_NEEDED = @PROG_IMPLIB_NEEDED@
-@@ -107,19 +108,24 @@ PLUGIN_OBJS = ${OBJS:.o=.plugin.o}
- 
- MO_FILES = ${LOCALES:.po=.mo}
- 
--.SILENT:
- .SUFFIXES:
- .SUFFIXES: .beam .c .c.dep .cc .cc.dep .class .cxx .cxx.dep .d .erl .lib.o .java .mo .m .m.dep .mm .mm.dep .o .plugin.o .po .py .pyc .rc .S .S.dep .xpm
--.PHONY: all subdirs pre-depend depend install install-extra uninstall uninstall-extra clean distclean locales ${SUBDIRS}
-+.PHONY: all subdirs subdirs-after pre-depend depend install install-extra uninstall uninstall-extra clean distclean locales ${SUBDIRS} ${SUBDIRS_AFTER}
- 
- all:
-+	${MAKE} pre-all
- 	${MAKE} ${MFLAGS} subdirs
- 	${MAKE} ${MFLAGS} depend
- 	${MAKE} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${SHARED_LIB} ${SHARED_LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} ${JARFILE} locales
-+	${MAKE} ${MFLAGS} subdirs-after
-+	${MAKE} post-all
-+
-+pre-all post-all:
- 
- subdirs: ${SUBDIRS}
-+subdirs-after: ${SUBDIRS_AFTER}
- 
--${SUBDIRS}:
-+${SUBDIRS} ${SUBDIRS_AFTER}:
- 	for i in $@; do \
- 		${DIR_ENTER}; \
- 		${MAKE} ${MFLAGS} || exit $$?; \
-@@ -205,6 +211,7 @@ pre-depend:
- 
- ${PROG} ${PROG_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA}
- 	${LINK_STATUS}
-+	out="$@"; \
- 	if ${LD} -o $@ ${OBJS} ${OBJS_EXTRA} ${LDFLAGS} ${LIBS}; then \
- 		${LINK_OK}; \
- 	else \
-@@ -228,7 +235,8 @@ ${JARFILE}: ${EXT_DEPS} ${JAR_MANIFEST} ${OBJS} ${OBJS_EXTRA}
- 	fi
- 
- ${SHARED_LIB} ${SHARED_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
--	${LINK_STATUS}; \
-+	${LINK_STATUS}
-+	out="$@"; \
- 	objs=""; \
- 	ars=""; \
- 	for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; do \
-@@ -252,7 +260,7 @@ ${SHARED_LIB} ${SHARED_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
- 		done; \
- 		cd ..; \
- 	done; \
--	if ${LD} -o $@ $$objs ${LIB_LDFLAGS} ${LDFLAGS} ${LIBS}; then \
-+	if ${LD} -o $@ $$objs ${LIB_LDFLAGS} ${LDFLAGS_INSTALL_NAME} ${LDFLAGS} ${LIBS}; then \
- 		${LINK_OK}; \
- 	else \
- 		${LINK_FAILED}; \
-@@ -264,6 +272,7 @@ ${SHARED_LIB} ${SHARED_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
- 
- ${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
- 	${LINK_STATUS}
-+	out="$@"; \
- 	objs=""; \
- 	ars=""; \
- 	for i in ${PLUGIN_OBJS}; do \
-@@ -300,6 +309,7 @@ ${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
- ${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA}
- 	${LINK_STATUS}
- 	rm -f $@
-+	out="$@"; \
- 	objs=""; \
- 	ars=""; \
- 	for i in ${OBJS} ${OBJS_EXTRA}; do \
-@@ -337,6 +347,7 @@ ${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA}
- ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
- 	${LINK_STATUS}
- 	rm -f $@
-+	out="$@"; \
- 	objs=""; \
- 	ars=""; \
- 	for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; do \
-@@ -375,21 +386,27 @@ locales: ${MO_FILES}
- 
- .c.o:
- 	${COMPILE_STATUS}
--	if ${CC} ${CFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${CC} ${CFLAGS} ${CPPFLAGS} ${CFLAGS_$@} -c -o $@ $<; then \
- 		${COMPILE_OK}; \
- 	else \
- 		${COMPILE_FAILED}; \
- 	fi
- .c.lib.o:
- 	${COMPILE_LIB_STATUS}
--	if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} ${CFLAGS_$@} -c -o $@ $<; then \
- 		${COMPILE_LIB_OK}; \
- 	else \
- 		${COMPILE_LIB_FAILED}; \
- 	fi
- .c.plugin.o:
- 	${COMPILE_PLUGIN_STATUS}
--	if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} ${CFLAGS_$@} -c -o $@ $<; then \
- 		${COMPILE_PLUGIN_OK}; \
- 	else \
- 		${COMPILE_PLUGIN_FAILED}; \
-@@ -397,21 +414,27 @@ locales: ${MO_FILES}
- 
- .cc.o .cxx.o:
- 	${COMPILE_STATUS}
--	if ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${CXXFLAGS_$@} -c -o $@ $<; then \
- 		${COMPILE_OK}; \
- 	else \
- 		${COMPILE_FAILED}; \
- 	fi
- .cc.lib.o .cxx.lib.o:
- 	${COMPILE_LIB_STATUS}
--	if ${CXX} ${LIB_CFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${CXX} ${LIB_CFLAGS} ${CXXFLAGS} ${CPPFLAGS} ${CXXFLAGS_$@} -c -o $@ $<; then \
- 		${COMPILE_LIB_OK}; \
- 	else \
- 		${COMPILE_LIB_FAILED}; \
- 	fi
- .cc.plugin.o .cxx.plugin.o:
- 	${COMPILE_PLUGIN_STATUS}
--	if ${CXX} ${PLUGIN_CFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${CXX} ${PLUGIN_CFLAGS} ${CXXFLAGS} ${CPPFLAGS} ${CXXFLAGS_$@} -c -o $@ $<; then \
- 		${COMPILE_PLUGIN_OK}; \
- 	else \
- 		${COMPILE_PLUGIN_FAILED}; \
-@@ -419,6 +442,8 @@ locales: ${MO_FILES}
- 
- .d.o:
- 	${COMPILE_STATUS}
-+	in="$<"; \
-+	out="$@"; \
- 	if test x"$(basename ${DC})" = x"dmd"; then \
- 		if ${DC} ${DFLAGS} -c -of$@ $<; then \
- 			${COMPILE_OK}; \
-@@ -435,6 +460,8 @@ locales: ${MO_FILES}
- 
- .erl.beam:
- 	${COMPILE_STATUS}
-+	in="$<"; \
-+	out="$@"; \
- 	if ${ERLC} ${ERLCFLAGS} -o $@ $<; then \
- 		${COMPILE_OK}; \
- 	else \
-@@ -443,6 +470,8 @@ locales: ${MO_FILES}
- 
- .java.class:
- 	${COMPILE_STATUS}
-+	in="$<"; \
-+	out="$@"; \
- 	if ${JAVAC} ${JAVACFLAGS} $<; then \
- 		${COMPILE_OK}; \
- 	else \
-@@ -451,21 +480,27 @@ locales: ${MO_FILES}
- 
- .m.o:
- 	${COMPILE_STATUS}
--	if ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${OBJCFLAGS_$@} -c -o $@ $<; then \
- 		${COMPILE_OK}; \
- 	else \
- 		${COMPILE_FAILED}; \
- 	fi
- .m.lib.o:
- 	${COMPILE_LIB_STATUS}
--	if ${OBJC} ${LIB_CFLAGS} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${OBJC} ${LIB_CFLAGS} ${OBJCFLAGS} ${CPPFLAGS} ${OBJCFLAGS_$@} -c -o $@ $<; then \
- 		${COMPILE_LIB_OK}; \
- 	else \
- 		${COMPILE_LIB_FAILED}; \
- 	fi
- .m.plugin.o:
- 	${COMPILE_PLUGIN_STATUS}
--	if ${OBJC} ${PLUGIN_CFLAGS} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${OBJC} ${PLUGIN_CFLAGS} ${OBJCFLAGS} ${CPPFLAGS} ${OBJCFLAGS_$@} -c -o $@ $<; then \
- 		${COMPILE_PLUGIN_OK}; \
- 	else \
- 		${COMPILE_PLUGIN_FAILED}; \
-@@ -473,21 +508,27 @@ locales: ${MO_FILES}
- 
- .mm.o:
- 	${COMPILE_STATUS}
--	if ${OBJCXX} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${OBJCXX} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} ${OBJCXXFLAGS_$@} -c -o $@ $<; then \
- 		${COMPILE_OK}; \
- 	else \
- 		${COMPILE_FAILED}; \
- 	fi
- .mm.lib.o:
- 	${COMPILE_LIB_STATUS}
--	if ${OBJCXX} ${LIB_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${OBJCXX} ${LIB_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} ${OBJCXXFLAGS_$@} -c -o $@ $<; then \
- 		${COMPILE_LIB_OK}; \
- 	else \
- 		${COMPILE_LIB_FAILED}; \
- 	fi
- .mm.plugin.o:
- 	${COMPILE_PLUGIN_STATUS}
--	if ${OBJCXX} ${PLUGIN_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${OBJCXX} ${PLUGIN_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} ${OBJCXXFLAGS_$@} -c -o $@ $<; then \
- 		${COMPILE_PLUGIN_OK}; \
- 	else \
- 		${COMPILE_PLUGIN_FAILED}; \
-@@ -495,6 +536,8 @@ locales: ${MO_FILES}
- 
- .po.mo:
- 	${COMPILE_STATUS}
-+	in="$<"; \
-+	out="$@"; \
- 	if ${MSGFMT} -c -o $@ $<; then \
- 		${COMPILE_OK}; \
- 	else \
-@@ -503,6 +546,8 @@ locales: ${MO_FILES}
- 
- .py.pyc:
- 	${COMPILE_STATUS}
-+	in="$<"; \
-+	out="$@"; \
- 	if ${PYTHON} ${PYTHON_FLAGS} -c "import py_compile; py_compile.compile('$<')"; then \
- 		${COMPILE_OK}; \
- 	else \
-@@ -511,7 +556,9 @@ locales: ${MO_FILES}
- 
- .rc.o .rc.lib.o .rc.plugin.o:
- 	${COMPILE_STATUS}
--	if ${WINDRES} -J rc -O coff -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${WINDRES} ${CPPFLAGS} -J rc -O coff -o $@ $<; then \
- 		${COMPILE_OK}; \
- 	else \
- 		${COMPILE_FAILED}; \
-@@ -519,21 +566,27 @@ locales: ${MO_FILES}
- 
- .S.o:
- 	${COMPILE_STATUS}
--	if ${AS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${AS} ${ASFLAGS} ${CPPFLAGS} ${ASFLAGS_$@} -c -o $@ $<; then \
- 		${COMPILE_OK}; \
- 	else \
- 		${COMPILE_FAILED}; \
- 	fi
- .S.lib.o:
- 	${COMPILE_LIB_STATUS}
--	if ${AS} ${LIB_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${AS} ${LIB_CFLAGS} ${ASFLAGS} ${CPPFLAGS} ${ASFLAGS_$@} -c -o $@ $<; then \
- 		${COMPILE_LIB_OK}; \
- 	else \
- 		${COMPILE_LIB_FAILED}; \
- 	fi
- .S.plugin.o:
- 	${COMPILE_PLUGIN_STATUS}
--	if ${AS} ${PLUGIN_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${AS} ${PLUGIN_CFLAGS} ${ASFLAGS} ${CPPFLAGS} ${ASFLAGS_$@} -c -o $@ $<; then \
- 		${COMPILE_PLUGIN_OK}; \
- 	else \
- 		${COMPILE_PLUGIN_FAILED}; \
-@@ -541,28 +594,34 @@ locales: ${MO_FILES}
- 
- .xpm.o:
- 	${COMPILE_STATUS}
--	if ${CC} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${CC} ${CFLAGS} ${CPPFLAGS} ${CFLAGS_$@} -x c -c -o $@ $<; then \
- 		${COMPILE_OK}; \
- 	else \
- 		${COMPILE_FAILED}; \
- 	fi
- .xpm.lib.o:
- 	${COMPILE_LIB_STATUS}
--	if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} ${CFLAGS_$@} -x c -c -o $@ $<; then \
- 		${COMPILE_LIB_OK}; \
- 	else \
- 		${COMPILE_LIB_FAILED}; \
- 	fi
- .xpm.plugin.o:
- 	${COMPILE_PLUGIN_STATUS}
--	if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
-+	in="$<"; \
-+	out="$@"; \
-+	if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} ${CFLAGS_$@} -x c -c -o $@ $<; then \
- 		${COMPILE_PLUGIN_OK}; \
- 	else \
- 		${COMPILE_PLUGIN_FAILED}; \
- 	fi
- 
--install: install-extra
--	for i in ${SUBDIRS}; do \
-+install: all install-extra
-+	for i in ${SUBDIRS} ${SUBDIRS_AFTER}; do \
- 		${DIR_ENTER}; \
- 		${MAKE} ${MFLAGS} install || exit $$?; \
- 		${DIR_LEAVE}; \
-@@ -643,7 +702,7 @@ install: install-extra
- install-extra:
- 
- uninstall: uninstall-extra
--	for i in ${SUBDIRS}; do \
-+	for i in ${SUBDIRS} ${SUBDIRS_AFTER}; do \
- 		${DIR_ENTER}; \
- 		${MAKE} ${MFLAGS} uninstall || exit $$?; \
- 		${DIR_LEAVE}; \
-@@ -736,7 +795,7 @@ uninstall: uninstall-extra
- uninstall-extra:
- 
- clean:
--	for i in ${SUBDIRS}; do \
-+	for i in ${SUBDIRS} ${SUBDIRS_AFTER}; do \
- 		${DIR_ENTER}; \
- 		${MAKE} ${MFLAGS} clean || exit $$?; \
- 		${DIR_LEAVE}; \
-@@ -753,7 +812,7 @@ clean:
- 	done
- 
- distclean: clean
--	for i in ${SUBDIRS}; do \
-+	for i in ${SUBDIRS} ${SUBDIRS_AFTER}; do \
- 		${DIR_ENTER}; \
- 		${MAKE} ${MFLAGS} distclean || exit $$?; \
- 		${DIR_LEAVE}; \
-@@ -769,27 +828,39 @@ distclean: clean
- 		fi \
- 	done
- 
--DIR_ENTER = printf "@TERM_EL@@TERM_SETAF6 at Entering directory @TERM_BOLD@$$i at TERM_SGR0@@TERM_SETAF6 at .@TERM_SGR0@\n"; cd $$i || exit $$?
--DIR_LEAVE = printf "@TERM_EL@@TERM_SETAF6 at Leaving directory @TERM_BOLD@$$i at TERM_SGR0@@TERM_SETAF6 at .@TERM_SGR0@\n"; cd .. || exit $$?
-+print-hierarchy:
-+	for i in ${SUBDIRS} ${SUBDIRS_AFTER}; do \
-+		echo ${PRINT_HIERARCHY_PREFIX}$$i; \
-+		cd $$i || exit $$?; \
-+		${MAKE} ${MFLAGS} PRINT_HIERARCHY_PREFIX=$$i/ print-hierarchy || exit $$?; \
-+		cd .. || exit $$?; \
-+	done
-+
-+print-var:
-+	printf '%s\n' '${${VAR}}'
-+
-+DIR_ENTER = printf "@TERM_EL@@TERM_SETAF6 at Entering directory @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF6 at .@TERM_SGR0@\n" "$$i"; cd $$i || exit $$?
-+DIR_LEAVE = printf "@TERM_EL@@TERM_SETAF6 at Leaving directory @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF6 at .@TERM_SGR0@\n" "$$i"; cd .. || exit $$?
- DEPEND_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Generating dependencies... at TERM_SGR0@\r"
- DEPEND_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully generated dependencies. at TERM_SGR0@\n"
- DEPEND_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to generate dependencies!@TERM_SGR0@\n"; exit $$err
--COMPILE_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Compiling @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF3 at ...@TERM_SGR0@\r"
--COMPILE_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully compiled @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF2 at .@TERM_SGR0@\n"
--COMPILE_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to compile @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n"; exit $$err
--COMPILE_LIB_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Compiling @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF3@ (lib)... at TERM_SGR0@\r"
--COMPILE_LIB_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully compiled @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF2@ (lib). at TERM_SGR0@\n"
--COMPILE_LIB_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to compile @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF1@ (lib)!@TERM_SGR0@\n"; exit $$err
--COMPILE_PLUGIN_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Compiling @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF3@ (plugin)... at TERM_SGR0@\r"
--COMPILE_PLUGIN_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully compiled @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF2@ (plugin). at TERM_SGR0@\n"
--COMPILE_PLUGIN_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to compile @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF1@ (plugin)!@TERM_SGR0@\n"; exit $$err
-+COMPILE_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Compiling @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF3 at ...@TERM_SGR0@\r" "$<"
-+COMPILE_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully compiled @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF2 at .@TERM_SGR0@\n" "$<"
-+COMPILE_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to compile @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n" "$<"; exit $$err
-+COMPILE_LIB_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Compiling @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF3@ (lib)... at TERM_SGR0@\r" "$<"
-+COMPILE_LIB_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully compiled @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF2@ (lib). at TERM_SGR0@\n" "$<"
-+COMPILE_LIB_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to compile @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF1@ (lib)!@TERM_SGR0@\n" "$<"; exit $$err
-+COMPILE_PLUGIN_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Compiling @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF3@ (plugin)... at TERM_SGR0@\r" "$<"
-+COMPILE_PLUGIN_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully compiled @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF2@ (plugin). at TERM_SGR0@\n" "$<"
-+COMPILE_PLUGIN_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to compile @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF1@ (plugin)!@TERM_SGR0@\n" "$<"; exit $$err
- LINK_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Linking @TERM_BOLD@$@@TERM_SGR0@@TERM_SETAF3 at ...@TERM_SGR0@\r"
- LINK_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully linked @TERM_BOLD@$@@TERM_SGR0@@TERM_SETAF2 at .@TERM_SGR0@\n"
- LINK_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to link @TERM_BOLD@$@@TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n"; exit $$err
--INSTALL_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Installing @TERM_BOLD@$$i at TERM_SGR0@@TERM_SETAF3 at ...@TERM_SGR0@\r"
--INSTALL_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully installed @TERM_BOLD@$$i at TERM_SGR0@@TERM_SETAF2 at .@TERM_SGR0@\n"
--INSTALL_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to install @TERM_BOLD@$$i at TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n"; exit $$err
--DELETE_OK = printf "@TERM_EL@@TERM_SETAF4 at Deleted @TERM_BOLD@$$i at TERM_SGR0@@TERM_SETAF4 at .@TERM_SGR0@\n"
--DELETE_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to delete @TERM_BOLD@$$i at TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n"; exit $$err
--
--include .deps
-+INSTALL_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Installing @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF3 at ...@TERM_SGR0@\r" "$$i"
-+INSTALL_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully installed @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF2 at .@TERM_SGR0@\n" "$$i"
-+INSTALL_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to install @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n" "$$i"; exit $$err
-+DELETE_OK = printf "@TERM_EL@@TERM_SETAF4 at Deleted @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF4 at .@TERM_SGR0@\n" "$$i"
-+DELETE_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to delete @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n" "$$i"; exit $$err
-+
-+.CURDIR ?= .
-+include ${.CURDIR}/.deps
---- configure.ac.old
-+++ configure.ac
-@@ -8,6 +8,8 @@ AC_PREREQ([2.59])
- AC_INIT([audacious-plugins], [3.7.2])
- AC_COPYRIGHT([Copyright (C) 2001-2016 Audacious developers and others])
- 
-+BUILDSYS_INIT
-+
- AC_DEFINE_UNQUOTED([PACKAGE], "$PACKAGE_NAME", [Name of package])
- AC_DEFINE_UNQUOTED([VERSION], "$PACKAGE_VERSION", [Version number of package])
- 
---- m4/buildsys.m4.orig
-+++ m4/buildsys.m4
-@@ -1,5 +1,5 @@
- dnl
--dnl Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012
-+dnl Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
- dnl Jonathan Schleifer <js at webkeks.org>
- dnl
- dnl https://webkeks.org/git/?p=buildsys.git
-@@ -21,65 +21,76 @@ dnl ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- dnl POSSIBILITY OF SUCH DAMAGE.
- dnl
- 
--AC_CONFIG_COMMANDS_PRE([
--	AC_SUBST(CC_DEPENDS, $GCC)
--	AC_SUBST(CXX_DEPENDS, $GXX)
--	AC_SUBST(OBJC_DEPENDS, $GOBJC)
--	AC_SUBST(OBJCXX_DEPENDS, $GOBJCXX)
-+AC_DEFUN([BUILDSYS_INIT], [
-+	AC_CONFIG_COMMANDS_PRE([
-+		AC_SUBST(CC_DEPENDS, $GCC)
-+		AC_SUBST(CXX_DEPENDS, $GXX)
-+		AC_SUBST(OBJC_DEPENDS, $GOBJC)
-+		AC_SUBST(OBJCXX_DEPENDS, $GOBJCXX)
- 
--	AC_PATH_PROG(TPUT, tput)
-+		AC_PATH_PROG(TPUT, tput)
- 
--	AS_IF([test x"$TPUT" != x""], [
--		if x=$($TPUT el 2>/dev/null); then
--			AC_SUBST(TERM_EL, "$x")
--		else
--			AC_SUBST(TERM_EL, "$($TPUT ce 2>/dev/null)")
--		fi
-+		AS_IF([test x"$TPUT" != x""], [
-+			if x=$($TPUT el 2>/dev/null); then
-+				AC_SUBST(TERM_EL, "$x")
-+			else
-+				AC_SUBST(TERM_EL, "$($TPUT ce 2>/dev/null)")
-+			fi
- 
--		if x=$($TPUT sgr0 2>/dev/null); then
--			AC_SUBST(TERM_SGR0, "$x")
--		else
--			AC_SUBST(TERM_SGR0, "$($TPUT me 2>/dev/null)")
--		fi
-+			if x=$($TPUT sgr0 2>/dev/null); then
-+				AC_SUBST(TERM_SGR0, "$x")
-+			else
-+				AC_SUBST(TERM_SGR0, "$($TPUT me 2>/dev/null)")
-+			fi
- 
--		if x=$($TPUT bold 2>/dev/null); then
--			AC_SUBST(TERM_BOLD, "$x")
--		else
--			AC_SUBST(TERM_BOLD, "$($TPUT md 2>/dev/null)")
--		fi
-+			if x=$($TPUT bold 2>/dev/null); then
-+				AC_SUBST(TERM_BOLD, "$x")
-+			else
-+				AC_SUBST(TERM_BOLD, "$($TPUT md 2>/dev/null)")
-+			fi
- 
--		if x=$($TPUT setaf 1 2>/dev/null); then
--			AC_SUBST(TERM_SETAF1, "$x")
--			AC_SUBST(TERM_SETAF2, "$($TPUT setaf 2 2>/dev/null)")
--			AC_SUBST(TERM_SETAF3, "$($TPUT setaf 3 2>/dev/null)")
--			AC_SUBST(TERM_SETAF4, "$($TPUT setaf 4 2>/dev/null)")
--			AC_SUBST(TERM_SETAF6, "$($TPUT setaf 6 2>/dev/null)")
--		else
--			AC_SUBST(TERM_SETAF1, "$($TPUT AF 1 2>/dev/null)")
--			AC_SUBST(TERM_SETAF2, "$($TPUT AF 2 2>/dev/null)")
--			AC_SUBST(TERM_SETAF3, "$($TPUT AF 3 2>/dev/null)")
--			AC_SUBST(TERM_SETAF4, "$($TPUT AF 4 2>/dev/null)")
--			AC_SUBST(TERM_SETAF6, "$($TPUT AF 6 2>/dev/null)")
--		fi
--	], [
--		AC_SUBST(TERM_EL, '\033\133K')
--		AC_SUBST(TERM_SGR0, '\033\133m')
--		AC_SUBST(TERM_BOLD, '\033\1331m')
--		AC_SUBST(TERM_SETAF1, '\033\13331m')
--		AC_SUBST(TERM_SETAF2, '\033\13332m')
--		AC_SUBST(TERM_SETAF3, '\033\13333m')
--		AC_SUBST(TERM_SETAF4, '\033\13334m')
--		AC_SUBST(TERM_SETAF6, '\033\13336m')
-+			if x=$($TPUT setaf 1 2>/dev/null); then
-+				AC_SUBST(TERM_SETAF1, "$x")
-+				AC_SUBST(TERM_SETAF2,
-+					"$($TPUT setaf 2 2>/dev/null)")
-+				AC_SUBST(TERM_SETAF3,
-+					"$($TPUT setaf 3 2>/dev/null)")
-+				AC_SUBST(TERM_SETAF4,
-+					"$($TPUT setaf 4 2>/dev/null)")
-+				AC_SUBST(TERM_SETAF6,
-+					"$($TPUT setaf 6 2>/dev/null)")
-+			else
-+				AC_SUBST(TERM_SETAF1,
-+					"$($TPUT AF 1 2>/dev/null)")
-+				AC_SUBST(TERM_SETAF2,
-+					"$($TPUT AF 2 2>/dev/null)")
-+				AC_SUBST(TERM_SETAF3,
-+					"$($TPUT AF 3 2>/dev/null)")
-+				AC_SUBST(TERM_SETAF4,
-+					"$($TPUT AF 4 2>/dev/null)")
-+				AC_SUBST(TERM_SETAF6,
-+					"$($TPUT AF 6 2>/dev/null)")
-+			fi
-+		], [
-+			AC_SUBST(TERM_EL, '\033\133K')
-+			AC_SUBST(TERM_SGR0, '\033\133m')
-+			AC_SUBST(TERM_BOLD, '\033\1331m')
-+			AC_SUBST(TERM_SETAF1, '\033\13331m')
-+			AC_SUBST(TERM_SETAF2, '\033\13332m')
-+			AC_SUBST(TERM_SETAF3, '\033\13333m')
-+			AC_SUBST(TERM_SETAF4, '\033\13334m')
-+			AC_SUBST(TERM_SETAF6, '\033\13336m')
-+		])
- 	])
--])
- 
--AC_CONFIG_COMMANDS_POST([
--	${as_echo:="echo"} ${as_me:="configure"}": touching .deps files"
--	for i in $(find . -name Makefile); do
--		DEPSFILE="$(dirname $i)/.deps"
--		test -f "$DEPSFILE" && rm "$DEPSFILE"
--		touch -t 0001010000 "$DEPSFILE"
--	done
-+	AC_CONFIG_COMMANDS_POST([
-+		${as_echo:="echo"} ${as_me:="configure"}": touching .deps files"
-+		for i in $(find . -name Makefile); do
-+			DEPSFILE="$(dirname $i)/.deps"
-+			test -f "$DEPSFILE" && rm "$DEPSFILE"
-+			touch -t 0001010000 "$DEPSFILE"
-+		done
-+	])
- ])
- 
- AC_DEFUN([BUILDSYS_PROG_IMPLIB], [
-@@ -108,31 +119,32 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
- 	case "$host_os" in
- 		darwin*)
- 			AC_MSG_RESULT(Darwin)
--			LIB_CFLAGS='-fPIC -DPIC -mmacosx-version-min=10.7'
--			LIB_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR} -mmacosx-version-min=10.7 -install_name "${libdir}/$$(i=${SHARED_LIB}; echo $${i%${LIB_SUFFIX}}).${LIB_MAJOR}${LIB_SUFFIX}"'
-+			LIB_CFLAGS='-fPIC -DPIC'
-+			LIB_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
- 			LIB_PREFIX='lib'
- 			LIB_SUFFIX='.dylib'
- 			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
--			PLUGIN_CFLAGS='-fPIC -DPIC -mmacosx-version-min=10.7'
--			PLUGIN_LDFLAGS='-bundle -undefined dynamic_lookup -mmacosx-version-min=10.7'
-+			LDFLAGS_INSTALL_NAME='-Wl,-install_name,${libdir}/$${out%.dylib}.${LIB_MAJOR}.dylib'
-+			PLUGIN_CFLAGS='-fPIC -DPIC'
-+			PLUGIN_LDFLAGS='-bundle -undefined dynamic_lookup'
- 			PLUGIN_SUFFIX='.bundle'
- 			INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$$i'
- 			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib'
- 			CLEAN_LIB=''
- 			;;
--		solaris*)
--			AC_MSG_RESULT(Solaris)
--			LIB_CFLAGS='-fPIC -DPIC'
--			LIB_LDFLAGS='-shared -Wl,-soname=${SHARED_LIB}.${LIB_MAJOR}.${LIB_MINOR}'
-+		mingw* | cygwin*)
-+			AC_MSG_RESULT(MinGW / Cygwin)
-+			LIB_CFLAGS=''
-+			LIB_LDFLAGS='-shared -Wl,--out-implib,${SHARED_LIB}.a'
- 			LIB_PREFIX='lib'
--			LIB_SUFFIX='.so'
-+			LIB_SUFFIX='.dll'
- 			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
--			PLUGIN_CFLAGS='-fPIC -DPIC'
-+			PLUGIN_CFLAGS=''
- 			PLUGIN_LDFLAGS='-shared'
--			PLUGIN_SUFFIX='.so'
--			INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i'
--			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
--			CLEAN_LIB=''
-+			PLUGIN_SUFFIX='.dll'
-+			INSTALL_LIB='&& ${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a'
-+			UNINSTALL_LIB='&& rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a'
-+			CLEAN_LIB='${SHARED_LIB}.a'
- 			;;
- 		openbsd* | mirbsd*)
- 			AC_MSG_RESULT(OpenBSD)
-@@ -148,22 +160,22 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
- 			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i'
- 			CLEAN_LIB=''
- 			;;
--		cygwin* | mingw*)
--			AC_MSG_RESULT(Win32)
--			LIB_CFLAGS=''
--			LIB_LDFLAGS='-shared -Wl,--out-implib,${SHARED_LIB}.a'
-+		solaris*)
-+			AC_MSG_RESULT(Solaris)
-+			LIB_CFLAGS='-fPIC -DPIC'
-+			LIB_LDFLAGS='-shared -Wl,-soname=${SHARED_LIB}.${LIB_MAJOR}.${LIB_MINOR}'
- 			LIB_PREFIX='lib'
--			LIB_SUFFIX='.dll'
-+			LIB_SUFFIX='.so'
- 			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
--			PLUGIN_CFLAGS=''
-+			PLUGIN_CFLAGS='-fPIC -DPIC'
- 			PLUGIN_LDFLAGS='-shared'
--			PLUGIN_SUFFIX='.dll'
--			INSTALL_LIB='&& ${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a'
--			UNINSTALL_LIB='&& rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a'
--			CLEAN_LIB='${SHARED_LIB}.a'
-+			PLUGIN_SUFFIX='.so'
-+			INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i'
-+			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
-+			CLEAN_LIB=''
- 			;;
- 		*)
--			AC_MSG_RESULT(GNU)
-+			AC_MSG_RESULT(ELF)
- 			LIB_CFLAGS='-fPIC -DPIC'
- 			LIB_LDFLAGS='-shared -Wl,-soname=${SHARED_LIB}.${LIB_MAJOR}'
- 			LIB_PREFIX='lib'
-@@ -183,6 +195,7 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
- 	AC_SUBST(LIB_PREFIX)
- 	AC_SUBST(LIB_SUFFIX)
- 	AC_SUBST(LDFLAGS_RPATH)
-+	AC_SUBST(LDFLAGS_INSTALL_NAME)
- 	AC_SUBST(PLUGIN_CFLAGS)
- 	AC_SUBST(PLUGIN_LDFLAGS)
- 	AC_SUBST(PLUGIN_SUFFIX)

Copied: trunk/dports/multimedia/audacious-plugins/files/patch-drop-libc++.diff (from rev 153443, trunk/dports/multimedia/audacious-plugins/files/patch-acinclude.m4-drop-libc++-switch-from-gnu++11-to-c++11.diff)
===================================================================
--- trunk/dports/multimedia/audacious-plugins/files/patch-drop-libc++.diff	                        (rev 0)
+++ trunk/dports/multimedia/audacious-plugins/files/patch-drop-libc++.diff	2016-09-30 11:15:27 UTC (rev 153444)
@@ -0,0 +1,22 @@
+--- acinclude.m4.old
++++ acinclude.m4
+@@ -83,8 +83,8 @@ AC_REQUIRE([AC_SYS_LARGEFILE])
+ if test "x$GCC" = "xyes"; then
+     CFLAGS="$CFLAGS -std=gnu99 -ffast-math -Wall -pipe"
+     if test "x$HAVE_DARWIN" = "xyes"; then
+-        CXXFLAGS="$CXXFLAGS -stdlib=libc++ -std=gnu++11 -ffast-math -Wall -pipe"
+-        LDFLAGS="$LDFLAGS -lc++ -stdlib=libc++"
++        CXXFLAGS="$CXXFLAGS -std=gnu++11 -ffast-math -Wall -pipe"
++        LDFLAGS="$LDFLAGS"
+     else
+         CXXFLAGS="$CXXFLAGS -std=gnu++11 -ffast-math -Wall -pipe"
+     fi
+@@ -101,7 +101,7 @@ if test "x$HAVE_DARWIN" = "xyes"; then
+     AC_PROG_OBJCXX
+     AC_PROG_OBJCXXCPP
+ 
+-    OBJCXXFLAGS="$OBJCXXFLAGS -stdlib=libc++ -std=c++11"
++    OBJCXXFLAGS="$OBJCXXFLAGS -std=c++11"
+ fi
+ 
+ dnl Enable "-Wl,-z,defs" only on Linux

Modified: trunk/dports/multimedia/audacious-plugins/files/patch-gtk3.diff
===================================================================
--- trunk/dports/multimedia/audacious-plugins/files/patch-gtk3.diff	2016-09-30 11:15:18 UTC (rev 153443)
+++ trunk/dports/multimedia/audacious-plugins/files/patch-gtk3.diff	2016-09-30 11:15:27 UTC (rev 153444)
@@ -11,63 +11,18 @@
  
 --- configure.ac.old
 +++ configure.ac
-@@ -75,7 +75,7 @@ TRANSPORT_PLUGINS="gio"
+@@ -450,7 +450,7 @@ ENABLE_PLUGIN_WITH_DEP(hotkey,
+     auto,
+     GENERAL,
+     GDKX11,
+-    gdk-x11-2.0)
++    gdk-x11-3.0)
  
- if test "x$USE_GTK" = "xyes" ; then
-     EFFECT_PLUGINS="$EFFECT_PLUGINS ladspa"
--    GENERAL_PLUGINS="$GENERAL_PLUGINS alarm albumart delete-files lyricwiki playlist-manager search-tool statusicon"
-+    GENERAL_PLUGINS="$GENERAL_PLUGINS alarm albumart delete-files lyricwiki playlist-manager search-tool"
-     GENERAL_PLUGINS="$GENERAL_PLUGINS gtkui skins"
-     VISUALIZATION_PLUGINS="$VISUALIZATION_PLUGINS blur_scope cairo-spectrum"
- fi
-@@ -194,11 +194,11 @@ if test $enable_hotkey = yes -a $USE_GTK != yes ; then
- fi
- 
- if test $enable_hotkey != no -a $USE_GTK = yes ; then
--    PKG_CHECK_MODULES(GDKX11, [gdk-x11-2.0],
-+    PKG_CHECK_MODULES(GDKX11, [gdk-x11-3.0],
-         [have_hotkey="yes"
-          GENERAL_PLUGINS="$GENERAL_PLUGINS hotkey"],
-         [if test "x$enable_hotkey" = "xyes"; then
--            AC_MSG_ERROR([Cannot find gdk-x11-2.0 development files, but compilation of X11 Global Hotkey plugin has been explicitly requested; please install gdk-x11-2.0 dev files and run configure again])
-+            AC_MSG_ERROR([Cannot find gdk-x11-3.0 development files, but compilation of X11 Global Hotkey plugin has been explicitly requested; please install gdk-x11-3.0 dev files and run configure again])
-          fi]
-     )
- fi
-@@ -260,6 +260,21 @@ if test $enable_songchange != no ; then
-     )
- fi
- 
-+dnl Status Icon
-+dnl ===========
-+
-+AC_ARG_ENABLE(statusicon,
-+ [AS_HELP_STRING([--enable-statusicon], [enable X11 Status Icon plugin (default=disabled)])],
-+ [have_statusicon=$enableval], [have_statusicon="no"])
-+
-+if test $have_statusicon = yes -a $USE_GTK != yes ; then
-+    AC_MSG_ERROR([--enable-statusicon cannot be used without --enable-gtk])
-+fi
-+
-+if test $have_statusicon != no ; then
-+    GENERAL_PLUGINS="$GENERAL_PLUGINS statusicon"
-+fi
-+
- dnl *** Audacious OSD plugin (pangocairo-based)
- 
- AC_ARG_ENABLE(aosd,
-@@ -1112,7 +1127,7 @@ echo "  Search Tool:                            $USE_GTK"
- echo "  Search Tool (Qt):                       $USE_QT"
- echo "  Song Change:                            $have_songchange"
- echo "  Song Info (Qt):                         $USE_QT"
--echo "  Status Icon:                            $USE_GTK"
-+echo "  Status Icon:                            $have_statusicon"
- echo "  Status Icon (Qt):                       $USE_QT"
- echo "  Audacious OSD:                          $have_aosd"
- echo "    -> X Composite support:               $have_aosd_xcomp"
+ ENABLE_PLUGIN_WITH_DEP(aosd,
+     X11 OSD,
 --- src/alarm/interface.cc.old
 +++ src/alarm/interface.cc
-@@ -23,6 +23,10 @@
+@@ -24,6 +24,10 @@
  
  #include "callbacks.h"
  
@@ -78,7 +33,7 @@
  static const char help_text[] =
   N_("Time\n"
      "  Alarm at:\n"
-@@ -164,62 +168,67 @@ GtkWidget *create_config_notebook ()
+@@ -158,62 +162,71 @@ GtkWidget *create_config_notebook ()
  
      /* Page 1 */
      frame = gtk_frame_new (_("Time"));
@@ -101,6 +56,7 @@
 -    adjustment = (GtkAdjustment *) gtk_adjustment_new (6, 0, 23, 1, 10, 0);
 +    adjustment = gtk_adjustment_new (6, 0, 23, 1, 10, 0);
      alarm_h_spin = gtk_spin_button_new (adjustment, 1, 0);
++    gtk_widget_set_valign (alarm_h_spin, GTK_ALIGN_CENTER);
      g_object_set_data (G_OBJECT (notebook), "alarm_h_spin", alarm_h_spin);
      gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (alarm_h_spin), GTK_UPDATE_IF_VALID);
      gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (alarm_h_spin), true);
@@ -115,6 +71,7 @@
 -    adjustment = (GtkAdjustment *) gtk_adjustment_new (30, 0, 59, 1, 10, 0);
 +    adjustment = gtk_adjustment_new (30, 0, 59, 1, 10, 0);
      alarm_m_spin = gtk_spin_button_new (adjustment, 1, 0);
++    gtk_widget_set_valign (alarm_m_spin, GTK_ALIGN_CENTER);
      g_object_set_data (G_OBJECT (notebook), "alarm_m_spin", alarm_m_spin);
      gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (alarm_m_spin), GTK_UPDATE_IF_VALID);
      gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (alarm_m_spin), true);
@@ -137,6 +94,7 @@
 -    adjustment = (GtkAdjustment *) gtk_adjustment_new (0, 0, 100, 1, 10, 0);
 +    adjustment = gtk_adjustment_new (0, 0, 100, 1, 10, 0);
      stop_h_spin = gtk_spin_button_new (adjustment, 1, 0);
++    gtk_widget_set_valign (stop_h_spin, GTK_ALIGN_CENTER);
      g_object_set_data (G_OBJECT (notebook), "stop_h_spin", stop_h_spin);
      gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (stop_h_spin), GTK_UPDATE_IF_VALID);
      gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (stop_h_spin), true);
@@ -152,6 +110,7 @@
 -    adjustment = (GtkAdjustment *) gtk_adjustment_new (0, 0, 59, 1, 10, 0);
 +    adjustment = gtk_adjustment_new (0, 0, 59, 1, 10, 0);
      stop_m_spin = gtk_spin_button_new (adjustment, 1, 0);
++    gtk_widget_set_valign (stop_m_spin, GTK_ALIGN_CENTER);
      g_object_set_data (G_OBJECT (notebook), "stop_m_spin", stop_m_spin);
      gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (stop_m_spin), GTK_UPDATE_IF_VALID);
      gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (stop_m_spin), true);
@@ -165,7 +124,7 @@
      gtk_container_add (GTK_CONTAINER (frame), grid);
  
      label = gtk_label_new (_("Time"));
-@@ -228,24 +237,25 @@ GtkWidget *create_config_notebook ()
+@@ -222,24 +235,25 @@ GtkWidget *create_config_notebook ()
  
      /* Page 2 */
      frame = gtk_frame_new (_("Choose the days for the alarm to come on"));
@@ -199,7 +158,7 @@
      }
      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget[6]), false);
  
-@@ -254,30 +264,31 @@ GtkWidget *create_config_notebook ()
+@@ -248,30 +262,31 @@ GtkWidget *create_config_notebook ()
          checkbutton = gtk_check_button_new_with_label (_("Default"));
          g_object_set_data (G_OBJECT (notebook), day_def[i], checkbutton);
          gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), true);
@@ -237,7 +196,7 @@
      }
  
      label = gtk_label_new (_("Days"));
-@@ -286,110 +297,117 @@ GtkWidget *create_config_notebook ()
+@@ -280,107 +295,113 @@ GtkWidget *create_config_notebook ()
  
  
      /* Page 3 */
@@ -363,15 +322,10 @@
 +    hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
 +    gtk_container_set_border_width (GTK_CONTAINER (frame), 10);
 +    gtk_container_set_border_width (GTK_CONTAINER (hbox), 8);
-     playlist_entry = gtk_entry_new ();
+     playlist_entry = audgui_file_entry_new (GTK_FILE_CHOOSER_ACTION_OPEN, _("Select a playlist"));
      g_object_set_data (G_OBJECT (notebook), "playlist", playlist_entry);
  
-     file_chooser_button = gtk_file_chooser_button_new (_("Select a playlist"), GTK_FILE_CHOOSER_ACTION_OPEN);
-+    gtk_widget_set_valign (file_chooser_button, GTK_ALIGN_CENTER);
-     g_signal_connect (file_chooser_button, "file-set", G_CALLBACK (file_set_cb), playlist_entry);
      gtk_box_pack_start (GTK_BOX (hbox), playlist_entry, true, true, 0);
--    gtk_box_pack_start (GTK_BOX (hbox), file_chooser_button, true, true, 0);
-+    gtk_container_add (GTK_CONTAINER (hbox), file_chooser_button);
      gtk_container_add (GTK_CONTAINER (frame), hbox);
 -    gtk_box_pack_start (GTK_BOX (vbox), frame, false, false, 0);
 +    gtk_container_add (GTK_CONTAINER (vbox), frame);
@@ -396,7 +350,7 @@
  
      label = gtk_label_new (_("Options"));
      gtk_notebook_append_page (GTK_NOTEBOOK (notebook), vbox, label);
-@@ -397,7 +415,7 @@ GtkWidget *create_config_notebook ()
+@@ -388,7 +409,7 @@ GtkWidget *create_config_notebook ()
  
      /* Page 5 */
      frame = gtk_frame_new (_("What do these options mean?"));
@@ -405,8 +359,8 @@
      view = gtk_text_view_new ();
      gtk_text_view_set_editable (GTK_TEXT_VIEW (view), false);
      gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (view), false);
---- src/amidi-plug/i_configure-fluidsynth.cc.old
-+++ src/amidi-plug/i_configure-fluidsynth.cc
+--- src/amidiplug/i_configure-fluidsynth.cc.old
++++ src/amidiplug/i_configure-fluidsynth.cc
 @@ -218,9 +218,8 @@ void * create_soundfont_list ()
              g_strfreev (sffiles);
          }
@@ -427,8 +381,8 @@
          soundfont_file_bbox_addbt = gtk_button_new();
          gtk_button_set_image (GTK_BUTTON (soundfont_file_bbox_addbt),
                                gtk_image_new_from_icon_name ("list-add", GTK_ICON_SIZE_MENU));
---- src/amidi-plug/i_fileinfo.cc.old
-+++ src/amidi-plug/i_fileinfo.cc
+--- src/amidiplug/i_fileinfo.cc.old
++++ src/amidiplug/i_fileinfo.cc
 @@ -49,11 +49,14 @@ void i_fileinfo_grid_add_entry (char * field_text, char * value_text,
      GtkWidget * field, *value;
      field = gtk_label_new (field_text);
@@ -592,7 +546,7 @@
  
    return false;
  }
-@@ -157,16 +159,16 @@ aosd_ui_configure_position ( aosd_cfg_t * cfg )
+@@ -156,16 +158,16 @@ aosd_ui_configure_position ( aosd_cfg_t * cfg )
    int monitors_num = gdk_screen_get_n_monitors( gdk_screen_get_default() );
    int i = 0;
  
@@ -612,7 +566,7 @@
    for ( i = 0 ; i < 9 ; i++ )
    {
      if ( i == 0 )
-@@ -177,10 +179,9 @@ aosd_ui_configure_position ( aosd_cfg_t * cfg )
+@@ -176,10 +178,9 @@ aosd_ui_configure_position ( aosd_cfg_t * cfg )
      pos_placement_bt_darea[i] = gtk_drawing_area_new();
      gtk_widget_set_size_request( pos_placement_bt_darea[i] , 40 , 40 );
      gtk_container_add( GTK_CONTAINER(pos_placement_bt[i]) , pos_placement_bt_darea[i] );
@@ -625,7 +579,7 @@
      g_object_set_data( G_OBJECT(pos_placement_bt[i]) , "value" , GINT_TO_POINTER(i+1) );
      if ( cfg->position.placement == (i+1) )
        gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(pos_placement_bt[i]) , true );
-@@ -188,38 +189,38 @@ aosd_ui_configure_position ( aosd_cfg_t * cfg )
+@@ -187,38 +188,38 @@ aosd_ui_configure_position ( aosd_cfg_t * cfg )
    gtk_box_pack_start( GTK_BOX(pos_placement_hbox) , pos_placement_grid , false , false , 0 );
    aosd_cb_list.append( pos_placement_grid , aosd_cb_configure_position_placement_commit );
  
@@ -678,7 +632,7 @@
    gtk_container_set_border_width( GTK_CONTAINER(pos_multimon_hbox) , 6 );
    gtk_container_add( GTK_CONTAINER(pos_multimon_frame), pos_multimon_hbox );
    pos_multimon_label = gtk_label_new( _("Display OSD using:") );
-@@ -245,7 +246,7 @@ static GtkWidget *
+@@ -244,7 +245,7 @@ static GtkWidget *
  aosd_ui_configure_animation_timing ( char * label_string )
  {
    GtkWidget *hbox, *desc_label, *spinbt;
@@ -687,7 +641,7 @@
    desc_label = gtk_label_new( label_string );
    spinbt = gtk_spin_button_new_with_range( 0 , 99999 , 1 );
    gtk_box_pack_start( GTK_BOX(hbox) , desc_label , false , false , 0 );
-@@ -275,10 +276,10 @@ aosd_ui_configure_animation ( aosd_cfg_t * cfg )
+@@ -274,10 +275,10 @@ aosd_ui_configure_animation ( aosd_cfg_t * cfg )
    GtkWidget *ani_timing_fadein_widget, *ani_timing_fadeout_widget, *ani_timing_stay_widget;
    GtkSizeGroup *sizegroup;
  
@@ -700,7 +654,7 @@
    ani_timing_frame = gtk_frame_new( _("Timing (ms)") );
    gtk_container_set_border_width( GTK_CONTAINER(ani_timing_hbox) , 6 );
    gtk_container_add( GTK_CONTAINER(ani_timing_frame) , ani_timing_hbox );
-@@ -288,12 +289,12 @@ aosd_ui_configure_animation ( aosd_cfg_t * cfg )
+@@ -287,12 +288,12 @@ aosd_ui_configure_animation ( aosd_cfg_t * cfg )
    gtk_spin_button_set_value( GTK_SPIN_BUTTON(g_object_get_data(
      G_OBJECT(ani_timing_stay_widget),"spinbt")) , cfg->animation.timing_display );
    gtk_box_pack_start( GTK_BOX(ani_timing_hbox) , ani_timing_stay_widget , true , true , 0 );
@@ -715,7 +669,7 @@
    ani_timing_fadeout_widget = aosd_ui_configure_animation_timing( _("Fade out:") );
    gtk_spin_button_set_value( GTK_SPIN_BUTTON(g_object_get_data(
      G_OBJECT(ani_timing_fadeout_widget),"spinbt")) , cfg->animation.timing_fadeout );
-@@ -329,7 +330,7 @@ static void
+@@ -328,7 +329,7 @@ static void
  aosd_cb_configure_text_font_commit ( GtkWidget * fontbt , aosd_cfg_t * cfg )
  {
    int fontnum = GPOINTER_TO_INT(g_object_get_data( G_OBJECT(fontbt) , "fontnum" ));
@@ -724,7 +678,7 @@
  
    cfg->text.fonts_name[fontnum] =
     String (gtk_font_button_get_font_name (GTK_FONT_BUTTON (fontbt)));
-@@ -337,10 +338,10 @@ aosd_cb_configure_text_font_commit ( GtkWidget * fontbt , aosd_cfg_t * cfg )
+@@ -336,10 +337,10 @@ aosd_cb_configure_text_font_commit ( GtkWidget * fontbt , aosd_cfg_t * cfg )
    cfg->text.fonts_draw_shadow[fontnum] = gtk_toggle_button_get_active(
      GTK_TOGGLE_BUTTON(g_object_get_data(G_OBJECT(fontbt),"use_shadow")) );
  
@@ -737,7 +691,7 @@
    chooser_get_aosd_color (chooser, & cfg->text.fonts_shadow_color[fontnum]);
  }
  
-@@ -355,14 +356,14 @@ aosd_ui_configure_text ( aosd_cfg_t * cfg )
+@@ -354,14 +355,14 @@ aosd_ui_configure_text ( aosd_cfg_t * cfg )
    GtkWidget *tex_font_shadow_colorbt[3];
    int i = 0;
  
@@ -756,7 +710,7 @@
    for ( i = 0 ; i < AOSD_TEXT_FONTS_NUM ; i++ )
    {
      char *label_str = g_strdup_printf( _("Font %i:") , i+1 );
-@@ -374,16 +375,17 @@ aosd_ui_configure_text ( aosd_cfg_t * cfg )
+@@ -373,16 +374,17 @@ aosd_ui_configure_text ( aosd_cfg_t * cfg )
      gtk_font_button_set_use_font( GTK_FONT_BUTTON(tex_font_fontbt[i]) , false );
      gtk_font_button_set_use_size( GTK_FONT_BUTTON(tex_font_fontbt[i]) , false );
      gtk_font_button_set_font_name( GTK_FONT_BUTTON(tex_font_fontbt[i]) , cfg->text.fonts_name[i] );
@@ -776,7 +730,7 @@
       & cfg->text.fonts_shadow_color[i]);
  
      gtk_widget_set_sensitive( tex_font_shadow_colorbt[i] , false );
-@@ -392,11 +394,11 @@ aosd_ui_configure_text ( aosd_cfg_t * cfg )
+@@ -391,11 +393,11 @@ aosd_ui_configure_text ( aosd_cfg_t * cfg )
                        tex_font_shadow_colorbt[i] );
      gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(tex_font_shadow_togglebt[i]) ,
        cfg->text.fonts_draw_shadow[i] );
@@ -793,7 +747,7 @@
      g_object_set_data( G_OBJECT(tex_font_fontbt[i]) , "fontnum" , GINT_TO_POINTER(i) );
      g_object_set_data( G_OBJECT(tex_font_fontbt[i]) , "color" , tex_font_colorbt[i] );
      g_object_set_data( G_OBJECT(tex_font_fontbt[i]) , "use_shadow" , tex_font_shadow_togglebt[i] );
-@@ -430,7 +432,7 @@ static void
+@@ -429,7 +431,7 @@ static void
  aosd_cb_configure_decoration_color_commit ( GtkWidget * colorbt , aosd_cfg_t * cfg )
  {
    aosd_color_t color;
@@ -802,7 +756,7 @@
  
    int colnum = GPOINTER_TO_INT( g_object_get_data( G_OBJECT(colorbt) , "colnum" ) );
    cfg->decoration.colors[colnum] = color;
-@@ -451,7 +453,7 @@ aosd_ui_configure_decoration ( aosd_cfg_t * cfg )
+@@ -450,7 +452,7 @@ aosd_ui_configure_decoration ( aosd_cfg_t * cfg )
    GtkWidget *dec_rstyleopts_frame, *dec_rstyleopts_grid;
    int colors_max_num = 0, i = 0;
  
@@ -811,7 +765,7 @@
    gtk_container_set_border_width( GTK_CONTAINER(dec_hbox) , 6 );
  
    /* decoration style model
-@@ -495,31 +497,31 @@ aosd_ui_configure_decoration ( aosd_cfg_t * cfg )
+@@ -494,31 +496,31 @@ aosd_ui_configure_decoration ( aosd_cfg_t * cfg )
    gtk_box_pack_start( GTK_BOX(dec_hbox) , dec_rstyle_lv_frame , false , false , 0 );
    aosd_cb_list.append( dec_rstyle_lv , aosd_cb_configure_decoration_style_commit );
  
@@ -850,7 +804,7 @@
      g_object_set_data( G_OBJECT(colorbt) , "colnum" , GINT_TO_POINTER(i) );
      aosd_cb_list.append( colorbt , aosd_cb_configure_decoration_color_commit );
    }
-@@ -573,7 +575,7 @@ aosd_ui_configure_trigger ( aosd_cfg_t * cfg )
+@@ -572,7 +574,7 @@ aosd_ui_configure_trigger ( aosd_cfg_t * cfg )
    gtk_notebook_set_show_tabs( GTK_NOTEBOOK(tri_event_nb) , false );
    gtk_notebook_set_show_border( GTK_NOTEBOOK(tri_event_nb) , false );
  
@@ -859,7 +813,7 @@
    gtk_container_set_border_width( GTK_CONTAINER(tri_hbox) , 6 );
  
    /* trigger model
-@@ -591,19 +593,19 @@ aosd_ui_configure_trigger ( aosd_cfg_t * cfg )
+@@ -590,19 +592,19 @@ aosd_ui_configure_trigger ( aosd_cfg_t * cfg )
      gtk_list_store_set( tri_event_store , &iter ,
        0 , _(aosd_trigger_get_name( i )) ,
        1 , i , 2 , i , -1 );
@@ -882,7 +836,7 @@
      gtk_box_pack_start( GTK_BOX(vbox) , label , false , false , 0 );
      frame = gtk_frame_new( nullptr );
      gtk_container_add( GTK_CONTAINER(frame) , vbox );
-@@ -699,10 +701,10 @@ aosd_ui_configure_misc ( aosd_cfg_t * cfg )
+@@ -698,10 +700,10 @@ aosd_ui_configure_misc ( aosd_cfg_t * cfg )
    GtkWidget *mis_transp_status_frame, *mis_transp_status_hbox;
    GtkWidget *mis_transp_status_img, *mis_transp_status_label;
  
@@ -895,7 +849,7 @@
    mis_transp_frame = gtk_frame_new( _("Transparency") );
    gtk_container_set_border_width( GTK_CONTAINER(mis_transp_vbox) , 6 );
    gtk_container_add( GTK_CONTAINER(mis_transp_frame) , mis_transp_vbox );
-@@ -719,16 +721,15 @@ aosd_ui_configure_misc ( aosd_cfg_t * cfg )
+@@ -718,16 +720,15 @@ aosd_ui_configure_misc ( aosd_cfg_t * cfg )
    gtk_box_pack_start( GTK_BOX(mis_transp_vbox) , mis_transp_fake_rbt , true , true , 0 );
    gtk_box_pack_start( GTK_BOX(mis_transp_vbox) , mis_transp_real_rbt , true , true , 0 );
  
@@ -1016,7 +970,49 @@
  
 --- src/cairo-spectrum/cairo-spectrum.cc.old
 +++ src/cairo-spectrum/cairo-spectrum.cc
-@@ -184,12 +184,29 @@ static void hsv_to_rgb (float h, float s, float v, float * r, float * g, float *
+@@ -123,41 +123,6 @@ void CairoSpectrum::clear ()
+         gtk_widget_queue_draw (spect_widget);
+ }
+ 
+-static void rgb_to_hsv (float r, float g, float b, float * h, float * s, float * v)
+-{
+-    float max, min;
+-
+-    max = r;
+-    if (g > max)
+-        max = g;
+-    if (b > max)
+-        max = b;
+-
+-    min = r;
+-    if (g < min)
+-        min = g;
+-    if (b < min)
+-        min = b;
+-
+-    * v = max;
+-
+-    if (max == min)
+-    {
+-        * h = 0;
+-        * s = 0;
+-        return;
+-    }
+-
+-    if (r == max)
+-        * h = 1 + (g - b) / (max - min);
+-    else if (g == max)
+-        * h = 3 + (b - r) / (max - min);
+-    else
+-        * h = 5 + (r - g) / (max - min);
+-
+-    * s = (max - min) / max;
+-}
+-
+ static void hsv_to_rgb (float h, float s, float v, float * r, float * g, float * b)
+ {
+     for (; h >= 2; h -= 2)
+@@ -186,18 +151,15 @@ static void hsv_to_rgb (float h, float s, float v, float * r, float * g, float *
      * b = v * (1 - s * (1 - * b));
  }
  
@@ -1025,35 +1021,14 @@
  {
 -    GdkColor * c = (gtk_widget_get_style (widget))->base + GTK_STATE_SELECTED;
 -    float h, s, v;
-+    static GdkRGBA c;
-+    static gboolean valid = false;
+-
+-    rgb_to_hsv (c->red / 65535.0, c->green / 65535.0, c->blue / 65535.0, & h, & s, & v);
 +    gfloat h, s, v, n;
  
--    rgb_to_hsv (c->red / 65535.0, c->green / 65535.0, c->blue / 65535.0, & h, & s, & v);
-+    if (! valid)
-+    {
-+        /* we want a color that matches the current theme
-+         * selected color of a GtkEntry should be reasonable */
-+        GtkStyleContext * style = gtk_style_context_new ();
-+        GtkWidgetPath * path = gtk_widget_path_new ();
-+        gtk_widget_path_append_type (path, GTK_TYPE_ENTRY);
-+        gtk_style_context_set_path (style, path);
-+        gtk_widget_path_free (path);
-+        gtk_style_context_add_class (style, "entry");
-+        gtk_style_context_get_background_color (style,
-+         (GtkStateFlags) (GTK_STATE_FLAG_FOCUSED | GTK_STATE_FLAG_SELECTED), & c);
-+        g_object_unref (style);
-+        valid = true;
-+    }
-+
-+    rgb_to_hsv (c.red, c.green, c.blue, & h, & s, & v);
+-    if (s < 0.1) /* monochrome theme? use blue instead */
+-        h = 4.6;
++    h = 4.6; /* hard-coded to blue due to repeatedly broken theming in GTK3 */
  
-     if (s < 0.1) /* monochrome theme? use blue instead */
-     {
-@@ -197,8 +214,9 @@ static void get_color (GtkWidget * widget, int i, float * r, float * g, float *
-         s = 0.75;
-     }
- 
 -    s = 1 - 0.9 * i / (bands - 1);
 -    v = 0.75 + 0.25 * i / (bands - 1);
 +    n = i / (gfloat) (bands - 1);
@@ -1062,7 +1037,7 @@
  
      hsv_to_rgb (h, s, v, r, g, b);
  }
-@@ -219,7 +237,7 @@ static void draw_visualizer (GtkWidget *widget, cairo_t *cr)
+@@ -218,7 +180,7 @@ static void draw_visualizer (GtkWidget *widget, cairo_t *cr)
          int x = ((width / bands) * i) + 2;
          float r, g, b;
  
@@ -1071,7 +1046,7 @@
          cairo_set_source_rgb (cr, r, g, b);
          cairo_rectangle (cr, x + 1, height - (bars[i] * height / 40),
           (width / bands) - 1, (bars[i] * height / 40));
-@@ -240,14 +258,11 @@ static gboolean configure_event (GtkWidget * widget, GdkEventConfigure * event)
+@@ -239,14 +201,11 @@ static gboolean configure_event (GtkWidget * widget, GdkEventConfigure * event)
      return true;
  }
  
@@ -1087,7 +1062,7 @@
      return true;
  }
  
-@@ -256,7 +271,7 @@ void * CairoSpectrum::get_gtk_widget ()
+@@ -255,7 +214,7 @@ void * CairoSpectrum::get_gtk_widget ()
      GtkWidget *area = gtk_drawing_area_new();
      spect_widget = area;
  
@@ -1096,252 +1071,9 @@
      g_signal_connect(area, "configure-event", (GCallback) configure_event, nullptr);
      g_signal_connect(area, "destroy", (GCallback) gtk_widget_destroyed, & spect_widget);
  
---- src/filewriter/mp3.cc.old
-+++ src/filewriter/mp3.cc
-@@ -563,10 +563,10 @@ void * mp3_configure ()
- 
-         /* Quality */
- 
--        quality_vbox = gtk_vbox_new (false, 5);
-+        quality_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
-         gtk_container_set_border_width(GTK_CONTAINER(quality_vbox), 5);
- 
--        quality_hbox1 = gtk_hbox_new (false, 5);
-+        quality_hbox1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-         gtk_box_pack_start(GTK_BOX(quality_vbox), quality_hbox1, false, false, 0);
- 
-         /* Algorithm Quality */
-@@ -574,7 +574,7 @@ void * mp3_configure ()
-         alg_quality_frame = gtk_frame_new(_("Algorithm Quality:"));
-         gtk_box_pack_start(GTK_BOX(quality_hbox1), alg_quality_frame, true, true, 0);
- 
--        alg_quality_hbox = gtk_hbox_new (false, 5);
-+        alg_quality_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-         gtk_container_set_border_width(GTK_CONTAINER(alg_quality_hbox), 5);
-         gtk_container_add(GTK_CONTAINER(alg_quality_frame),
-                           alg_quality_hbox);
-@@ -594,7 +594,7 @@ void * mp3_configure ()
-         samplerate_frame = gtk_frame_new(_("Output Sample Rate:"));
-         gtk_box_pack_start(GTK_BOX(quality_hbox1), samplerate_frame, true, true, 0);
- 
--        samplerate_hbox = gtk_hbox_new (false, 5);
-+        samplerate_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-         gtk_container_set_border_width(GTK_CONTAINER(samplerate_hbox), 5);
-         gtk_container_add(GTK_CONTAINER(samplerate_frame),
-                           samplerate_hbox);
-@@ -619,7 +619,7 @@ void * mp3_configure ()
-         g_signal_connect (combo, "changed", (GCallback) samplerate_changed, nullptr);
- 
-         samplerate_label = gtk_label_new(_("(Hz)"));
--        gtk_misc_set_alignment(GTK_MISC(samplerate_label), 0, 0.5);
-+        gtk_widget_set_halign(samplerate_label, GTK_ALIGN_START);
-         gtk_box_pack_start(GTK_BOX(samplerate_hbox), samplerate_label, false, false, 0);
- 
-         /* Encoder Quality */
-@@ -628,14 +628,14 @@ void * mp3_configure ()
-         gtk_box_pack_start(GTK_BOX(quality_vbox), enc_quality_frame, false, false, 0);
- 
-         // vbox sorrounding hbox1 and hbox2
--        enc_quality_vbox = gtk_vbox_new (false, 5);
-+        enc_quality_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
-         gtk_container_set_border_width(GTK_CONTAINER(enc_quality_vbox), 5);
- 
-         // pack vbox to frame
-         gtk_container_add(GTK_CONTAINER(enc_quality_frame), enc_quality_vbox);
- 
-         // hbox1 for bitrate
--        hbox1 = gtk_hbox_new (false, 5);
-+        hbox1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-         gtk_container_add(GTK_CONTAINER(enc_quality_vbox), hbox1);
- 
-         // radio 1
-@@ -664,7 +664,7 @@ void * mp3_configure ()
-         g_signal_connect (combo, "changed", (GCallback) bitrate_changed, nullptr);
- 
-         // hbox2 for compression ratio
--        hbox2 = gtk_hbox_new (false, 5);
-+        hbox2 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-         gtk_container_add(GTK_CONTAINER(enc_quality_vbox), hbox2);
- 
-         // radio 2
-@@ -703,7 +703,7 @@ void * mp3_configure ()
-         mode_frame = gtk_frame_new(_("Audio Mode:"));
-         gtk_box_pack_start(GTK_BOX(quality_vbox), mode_frame, false, false, 0);
- 
--        mode_hbox = gtk_hbox_new (false, 5);
-+        mode_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-         gtk_container_set_border_width(GTK_CONTAINER(mode_hbox), 5);
-         gtk_container_add(GTK_CONTAINER(mode_frame), mode_hbox);
- 
-@@ -727,7 +727,7 @@ void * mp3_configure ()
-         misc_frame = gtk_frame_new(_("Miscellaneous:"));
-         gtk_box_pack_start(GTK_BOX(quality_vbox), misc_frame, false, false, 0);
- 
--        misc_vbox = gtk_vbox_new (false, 5);
-+        misc_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
-         gtk_container_set_border_width(GTK_CONTAINER(misc_vbox), 5);
-         gtk_container_add(GTK_CONTAINER(misc_frame), misc_vbox);
- 
-@@ -758,7 +758,7 @@ void * mp3_configure ()
- 
-         /* VBR/ABR */
- 
--        vbr_vbox = gtk_vbox_new (false, 5);
-+        vbr_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
-         gtk_container_set_border_width(GTK_CONTAINER(vbr_vbox), 5);
- 
-         /* Toggle VBR */
-@@ -767,7 +767,7 @@ void * mp3_configure ()
-         gtk_box_pack_start(GTK_BOX(vbr_vbox), vbr_toggle, false, false, 0);
-         g_signal_connect (vbr_toggle, "toggled", (GCallback) toggle_vbr, nullptr);
- 
--        vbr_options_vbox = gtk_vbox_new (false, 5);
-+        vbr_options_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
-         gtk_container_add(GTK_CONTAINER(vbr_vbox), vbr_options_vbox);
-         gtk_widget_set_sensitive(vbr_options_vbox, false);
- 
-@@ -776,7 +776,7 @@ void * mp3_configure ()
-         vbr_type_frame = gtk_frame_new(_("Type:"));
-         gtk_box_pack_start(GTK_BOX(vbr_options_vbox), vbr_type_frame, false, false, 0);
- 
--        vbr_type_hbox = gtk_hbox_new (false, 5);
-+        vbr_type_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-         gtk_container_set_border_width(GTK_CONTAINER(vbr_type_hbox), 5);
-         gtk_container_add(GTK_CONTAINER(vbr_type_frame), vbr_type_hbox);
- 
-@@ -804,16 +804,16 @@ void * mp3_configure ()
-         vbr_frame = gtk_frame_new(_("VBR Options:"));
-         gtk_box_pack_start(GTK_BOX(vbr_options_vbox), vbr_frame, false, false, 0);
- 
--        vbr_options_vbox2 = gtk_vbox_new (false, 5);
-+        vbr_options_vbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
-         gtk_container_set_border_width(GTK_CONTAINER(vbr_options_vbox2), 5);
-         gtk_container_add(GTK_CONTAINER(vbr_frame), vbr_options_vbox2);
- 
--        vbr_options_hbox1 = gtk_hbox_new (false, 5);
-+        vbr_options_hbox1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-         gtk_container_add(GTK_CONTAINER(vbr_options_vbox2),
-                           vbr_options_hbox1);
- 
-         vbr_min_label = gtk_label_new(_("Minimum bitrate (kbps):"));
--        gtk_misc_set_alignment(GTK_MISC(vbr_min_label), 0, 0.5);
-+        gtk_widget_set_halign(vbr_min_label, GTK_ALIGN_START);
-         gtk_box_pack_start(GTK_BOX(vbr_options_hbox1), vbr_min_label, false, false, 0);
- 
-         combo = gtk_combo_box_text_new ();
-@@ -831,12 +831,12 @@ void * mp3_configure ()
-         gtk_box_pack_start ((GtkBox *) vbr_options_hbox1, combo, false, false, 0);
-         g_signal_connect (combo, "changed", (GCallback) vbr_min_changed, nullptr);
- 
--        vbr_options_hbox2 = gtk_hbox_new (false, 5);
-+        vbr_options_hbox2 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-         gtk_container_add(GTK_CONTAINER(vbr_options_vbox2),
-                           vbr_options_hbox2);
- 
-         vbr_max_label = gtk_label_new(_("Maximum bitrate (kbps):"));
--        gtk_misc_set_alignment(GTK_MISC(vbr_max_label), 0, 0.5);
-+        gtk_widget_set_halign(vbr_max_label, GTK_ALIGN_START);
-         gtk_box_pack_start(GTK_BOX(vbr_options_hbox2), vbr_max_label, false, false, 0);
- 
-         combo = gtk_combo_box_text_new ();
-@@ -871,12 +871,12 @@ void * mp3_configure ()
-         gtk_box_pack_start(GTK_BOX(vbr_options_vbox), abr_frame, false, false, 0);
-         gtk_widget_set_sensitive(abr_frame, false);
- 
--        abr_hbox = gtk_hbox_new (false, 5);
-+        abr_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-         gtk_container_set_border_width(GTK_CONTAINER(abr_hbox), 5);
-         gtk_container_add(GTK_CONTAINER(abr_frame), abr_hbox);
- 
-         abr_label = gtk_label_new(_("Average bitrate (kbps):"));
--        gtk_misc_set_alignment(GTK_MISC(abr_label), 0, 0.5);
-+        gtk_widget_set_halign(abr_label, GTK_ALIGN_START);
-         gtk_box_pack_start(GTK_BOX(abr_hbox), abr_label, false, false, 0);
- 
-         combo = gtk_combo_box_text_new ();
-@@ -896,12 +896,12 @@ void * mp3_configure ()
- 
-         /* Quality Level */
- 
--        vbr_options_hbox3 = gtk_hbox_new (false, 5);
-+        vbr_options_hbox3 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-         gtk_container_add(GTK_CONTAINER(vbr_options_vbox),
-                           vbr_options_hbox3);
- 
-         vbr_quality_label = gtk_label_new(_("VBR quality level:"));
--        gtk_misc_set_alignment(GTK_MISC(vbr_quality_label), 0, 0.5);
-+        gtk_widget_set_halign(vbr_quality_label, GTK_ALIGN_START);
-         gtk_box_pack_start(GTK_BOX(vbr_options_hbox3), vbr_quality_label, false, false, 0);
- 
-         vbr_quality_adj = (GtkAdjustment *) gtk_adjustment_new (4, 0, 9, 1, 1, 0);
-@@ -933,7 +933,7 @@ void * mp3_configure ()
- 
-         /* Tags */
- 
--        tags_vbox = gtk_vbox_new (false, 5);
-+        tags_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
-         gtk_container_set_border_width(GTK_CONTAINER(tags_vbox), 5);
- 
-         /* Frame Params */
-@@ -941,7 +941,7 @@ void * mp3_configure ()
-         tags_frames_frame = gtk_frame_new(_("Frame Parameters:"));
-         gtk_box_pack_start(GTK_BOX(tags_vbox), tags_frames_frame, false, false, 0);
- 
--        tags_frames_hbox = gtk_hbox_new (false, 5);
-+        tags_frames_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-         gtk_container_set_border_width(GTK_CONTAINER(tags_frames_hbox), 5);
-         gtk_container_add(GTK_CONTAINER(tags_frames_frame),
-                           tags_frames_hbox);
-@@ -972,7 +972,7 @@ void * mp3_configure ()
-         tags_id3_frame = gtk_frame_new(_("ID3 Parameters:"));
-         gtk_box_pack_start(GTK_BOX(tags_vbox), tags_id3_frame, false, false, 0);
- 
--        tags_id3_vbox = gtk_vbox_new (false, 5);
-+        tags_id3_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
-         gtk_container_set_border_width(GTK_CONTAINER(tags_id3_vbox), 5);
-         gtk_container_add(GTK_CONTAINER(tags_id3_frame), tags_id3_vbox);
- 
-@@ -983,7 +983,7 @@ void * mp3_configure ()
-         g_signal_connect (tags_force_id3v2_toggle, "toggled", (GCallback)
-          force_v2_toggle, nullptr);
- 
--        tags_id3_hbox = gtk_hbox_new (false, 5);
-+        tags_id3_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-         gtk_container_add(GTK_CONTAINER(tags_id3_vbox), tags_id3_hbox);
- 
-         tags_only_v1_toggle =
---- src/filewriter/vorbis.cc.old
-+++ src/filewriter/vorbis.cc
-@@ -188,22 +188,22 @@ static void quality_change(GtkAdjustment *adjustment, void * user_data)
- 
- void * vorbis_configure ()
- {
--        GtkWidget * vbox = gtk_vbox_new (false, 5);
-+        GtkWidget * vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
- 
-         /* quality options */
-         quality_frame = gtk_frame_new(_("Quality"));
-         gtk_box_pack_start(GTK_BOX(vbox), quality_frame, false, false, 0);
- 
--        quality_vbox = gtk_vbox_new (false, 5);
-+        quality_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
-         gtk_container_set_border_width(GTK_CONTAINER(quality_vbox), 5);
-         gtk_container_add(GTK_CONTAINER(quality_frame), quality_vbox);
- 
-         /* quality option: vbr level */
--        quality_hbox1 = gtk_hbox_new (false, 5);
-+        quality_hbox1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-         gtk_container_add(GTK_CONTAINER(quality_vbox), quality_hbox1);
- 
-         quality_label = gtk_label_new(_("Quality level (0 - 10):"));
--        gtk_misc_set_alignment(GTK_MISC(quality_label), 0, 0.5);
-+        gtk_widget_set_halign(quality_label, GTK_ALIGN_START);
-         gtk_box_pack_start(GTK_BOX(quality_hbox1), quality_label, false, false, 0);
- 
-         quality_adj = (GtkAdjustment *) gtk_adjustment_new (5, 0, 10, 0.1, 1, 0);
---- src/gl-spectrum/gl-spectrum.cc.old
-+++ src/gl-spectrum/gl-spectrum.cc
-@@ -245,7 +245,7 @@ static void draw_bars ()
+--- src/glspectrum/gl-spectrum.cc.old
++++ src/glspectrum/gl-spectrum.cc
+@@ -246,7 +246,7 @@ static void draw_bars ()
      glPopMatrix ();
  }
  
@@ -1350,7 +1082,7 @@
  {
  #ifdef GDK_WINDOWING_X11
      if (! s_context)
-@@ -416,7 +416,7 @@ void * GLSpectrum::get_gtk_widget ()
+@@ -417,13 +417,17 @@ void * GLSpectrum::get_gtk_widget ()
  
      s_widget = gtk_drawing_area_new ();
  
@@ -1359,6 +1091,17 @@
      g_signal_connect (s_widget, "realize", (GCallback) widget_realized, nullptr);
      g_signal_connect (s_widget, "destroy", (GCallback) widget_destroyed, nullptr);
      g_signal_connect (s_widget, "configure-event", (GCallback) widget_resize, nullptr);
+ 
+-    /* Disable GTK double buffering */
++    /* Disable GTK double buffering -- this still works and is still necessary
++     * in GTK3, regardless of the deprecation */
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+     gtk_widget_set_double_buffered (s_widget, false);
++#pragma GCC diagnostic pop
+ 
+     return s_widget;
+ }
 --- src/gtkui/columns.cc.old
 +++ src/gtkui/columns.cc
 @@ -299,7 +299,7 @@ void * pw_col_create_chooser ()
@@ -1430,7 +1173,7 @@
  
 --- src/gtkui/ui_gtk.cc.old
 +++ src/gtkui/ui_gtk.cc
-@@ -781,15 +781,17 @@ bool GtkUI::init ()
+@@ -793,15 +793,17 @@ bool GtkUI::init ()
      accel = gtk_accel_group_new ();
      gtk_window_add_accel_group ((GtkWindow *) window, accel);
  
@@ -1450,7 +1193,7 @@
      gtk_box_pack_start ((GtkBox *) vbox_outer, toolbar, false, false, 0);
  
      /* search button */
-@@ -817,12 +819,13 @@ bool GtkUI::init ()
+@@ -829,12 +831,13 @@ bool GtkUI::init ()
      gtk_tool_item_set_expand (boxitem1, true);
      gtk_toolbar_insert ((GtkToolbar *) toolbar, boxitem1, -1);
  
@@ -1466,7 +1209,7 @@
      gtk_widget_set_can_focus (slider, false);
      gtk_box_pack_start ((GtkBox *) box1, slider, true, true, 6);
  
-@@ -844,7 +847,7 @@ bool GtkUI::init ()
+@@ -856,7 +859,7 @@ bool GtkUI::init ()
      GtkToolItem * boxitem2 = gtk_tool_item_new ();
      gtk_toolbar_insert ((GtkToolbar *) toolbar, boxitem2, -1);
  
@@ -1475,7 +1218,7 @@
      gtk_container_add ((GtkContainer *) boxitem2, box2);
  
      volume = gtk_volume_button_new ();
-@@ -864,7 +867,7 @@ bool GtkUI::init ()
+@@ -876,7 +879,7 @@ bool GtkUI::init ()
      GtkWidget * layout = layout_new ();
      gtk_box_pack_start ((GtkBox *) vbox_outer, layout, true, true, 0);
  
@@ -1484,7 +1227,7 @@
      layout_add_center (vbox);
  
      ui_playlist_notebook_new ();
-@@ -947,15 +950,13 @@ void GtkUI::cleanup ()
+@@ -959,15 +962,13 @@ void GtkUI::cleanup ()
  
  static void menu_position_cb (GtkMenu * menu, int * x, int * y, int * push, void * button)
  {
@@ -1503,7 +1246,50 @@
  
 --- src/gtkui/ui_infoarea.cc.old
 +++ src/gtkui/ui_infoarea.cc
-@@ -240,12 +240,29 @@ static void hsv_to_rgb (float h, float s, float v, float * r, float * g,
+@@ -175,42 +175,6 @@ static void draw_text (GtkWidget * widget, cairo_t * cr, int x, int y, int
+ 
+ /****************************************************************************/
+ 
+-static void rgb_to_hsv (float r, float g, float b, float * h, float * s,
+- float * v)
+-{
+-    float max, min;
+-
+-    max = r;
+-    if (g > max)
+-        max = g;
+-    if (b > max)
+-        max = b;
+-
+-    min = r;
+-    if (g < min)
+-        min = g;
+-    if (b < min)
+-        min = b;
+-
+-    * v = max;
+-
+-    if (max == min)
+-    {
+-        * h = 0;
+-        * s = 0;
+-        return;
+-    }
+-
+-    if (r == max)
+-        * h = 1 + (g - b) / (max - min);
+-    else if (g == max)
+-        * h = 3 + (b - r) / (max - min);
+-    else
+-        * h = 5 + (r - g) / (max - min);
+-
+-    * s = (max - min) / max;
+-}
+-
+ static void hsv_to_rgb (float h, float s, float v, float * r, float * g,
+  float * b)
+ {
+@@ -240,15 +204,11 @@ static void hsv_to_rgb (float h, float s, float v, float * r, float * g,
      * b = v * (1 - s * (1 - * b));
  }
  
@@ -1511,33 +1297,17 @@
 +static void get_color (int i, float * r, float * g, float * b)
  {
 -    GdkColor * c = (gtk_widget_get_style (widget))->base + GTK_STATE_SELECTED;
--    float h, s, v;
-+    static GdkRGBA c;
-+    static gboolean valid = false;
-+
-+    if (! valid)
-+    {
-+        /* we want a color that matches the current theme
-+         * selected color of a GtkEntry should be reasonable */
-+        GtkStyleContext * style = gtk_style_context_new ();
-+        GtkWidgetPath * path = gtk_widget_path_new ();
-+        gtk_widget_path_append_type (path, GTK_TYPE_ENTRY);
-+        gtk_style_context_set_path (style, path);
-+        gtk_widget_path_free (path);
-+        gtk_style_context_add_class (style, "entry");
-+        gtk_style_context_get_background_color (style,
-+         (GtkStateFlags) (GTK_STATE_FLAG_FOCUSED | GTK_STATE_FLAG_SELECTED), & c);
-+        g_object_unref (style);
-+        valid = true;
-+    }
+     float h, s, v;
  
 -    rgb_to_hsv (c->red / 65535.0, c->green / 65535.0, c->blue / 65535.0, & h, & s, & v);
-+    float h, s, v;
-+    rgb_to_hsv (c.red, c.green, c.blue, & h, & s, & v);
+-
+-    if (s < 0.1) /* monochrome theme? use blue instead */
+-        h = 4.6;
++    h = 4.6; /* hard-coded to blue due to repeatedly broken theming in GTK3 */
  
-     if (s < 0.1) /* monochrome theme? use blue instead */
-         h = 5;
-@@ -256,10 +273,8 @@ static void get_color (GtkWidget * widget, int i, float * r, float * g, float *
+     s = 1 - 0.9 * i / (VIS_BANDS - 1);
+     v = 0.75 + 0.25 * i / (VIS_BANDS - 1);
+@@ -256,10 +216,8 @@ static void get_color (GtkWidget * widget, int i, float * r, float * g, float *
      hsv_to_rgb (h, s, v, r, g, b);
  }
  
@@ -1549,7 +1319,7 @@
      clear (widget, cr);
  
      for (int i = 0; i < VIS_BANDS; i++)
-@@ -269,7 +284,7 @@ static int expose_vis_cb (GtkWidget * widget, GdkEventExpose * event)
+@@ -269,7 +227,7 @@ static int expose_vis_cb (GtkWidget * widget, GdkEventExpose * event)
          int m = aud::min (VIS_CENTER + v, HEIGHT);
  
          float r, g, b;
@@ -1558,7 +1328,7 @@
  
          cairo_set_source_rgb (cr, r, g, b);
          cairo_rectangle (cr, x, VIS_CENTER - v, BAND_WIDTH, v);
-@@ -280,7 +295,6 @@ static int expose_vis_cb (GtkWidget * widget, GdkEventExpose * event)
+@@ -280,7 +238,6 @@ static int expose_vis_cb (GtkWidget * widget, GdkEventExpose * event)
          cairo_fill (cr);
      }
  
@@ -1566,7 +1336,7 @@
      return true;
  }
  
-@@ -335,16 +349,15 @@ static void draw_title (cairo_t * cr)
+@@ -335,16 +292,15 @@ static void draw_title (cairo_t * cr)
           0.7, 0.7, area->last_alpha, "9", area->last_album);
  }
  
@@ -1585,7 +1355,7 @@
      return true;
  }
  
-@@ -472,7 +485,7 @@ void ui_infoarea_show_vis (bool show)
+@@ -472,7 +428,7 @@ void ui_infoarea_show_vis (bool show)
          gtk_widget_set_size_request (vis.widget, VIS_WIDTH + 2 * SPACING, HEIGHT);
          gtk_box_pack_start ((GtkBox *) area->box, vis.widget, false, false, 0);
  
@@ -1594,7 +1364,7 @@
          gtk_widget_show (vis.widget);
  
          aud_visualizer_add (& vis);
-@@ -519,13 +532,13 @@ GtkWidget * ui_infoarea_new ()
+@@ -519,13 +475,13 @@ GtkWidget * ui_infoarea_new ()
      compute_sizes ();
  
      area = new UIInfoArea ();
@@ -1620,7 +1390,7 @@
      }
  }
  
-@@ -103,14 +104,6 @@ static void close_button_cb (GtkWidget * button, void * id)
+@@ -103,40 +104,16 @@ static void close_button_cb (GtkWidget * button, void * id)
      audgui_confirm_playlist_delete (aud_playlist_by_unique_id (GPOINTER_TO_INT (id)));
  }
  
@@ -1635,10 +1405,16 @@
  static GtkWidget * make_close_button (GtkWidget * ebox, int list)
  {
      GtkWidget * button = gtk_button_new ();
-@@ -123,19 +116,22 @@ static GtkWidget * make_close_button (GtkWidget * ebox, int list)
+     GtkWidget * image = gtk_image_new_from_icon_name ("window-close", GTK_ICON_SIZE_MENU);
+     gtk_button_set_image ((GtkButton *) button, image);
+     gtk_button_set_relief ((GtkButton *) button, GTK_RELIEF_NONE);
+-    gtk_button_set_focus_on_click ((GtkButton *) button, false);
+-    gtk_widget_set_name (button, "gtkui-tab-close-button");
++    gtk_widget_set_can_focus (button, false);
+ 
      g_signal_connect (button, "clicked", (GCallback) close_button_cb,
       GINT_TO_POINTER (aud_playlist_get_unique_id (list)));
- 
+-
 -    gtk_rc_parse_string (
 -     "style \"gtkui-tab-close-button-style\" {"
 -     " GtkButton::default-border = {0, 0, 0, 0}"
@@ -1652,26 +1428,11 @@
 -    );
 -
 -    g_signal_connect (button, "style-set", (GCallback) close_button_style_set, nullptr);
-+    GtkCssProvider * provider = gtk_css_provider_new ();
-+    gtk_css_provider_load_from_data (provider,
-+     "#gtkui-tab-close-button {"
-+     " -GtkButton-default-border: 0;"
-+     " -GtkButton-default-outside-border: 0;"
-+     " -GtkButton-inner-border: 0;"
-+     " -GtkWidget-focus-padding: 0;"
-+     " -GtkWidget-focus-line-width: 0;"
-+     " margin: 0;"
-+     " padding: 0; }",
-+     -1, nullptr);
-+
-+    gtk_style_context_add_provider (gtk_widget_get_style_context (button),
-+     GTK_STYLE_PROVIDER (provider),
-+     GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
-+    g_object_unref (provider);
- 
+-
      gtk_widget_show (button);
  
-@@ -295,7 +291,7 @@ void ui_playlist_notebook_create_tab (int playlist)
+     return button;
+@@ -295,7 +272,7 @@ void ui_playlist_notebook_create_tab (int playlist)
      GtkWidget * ebox = gtk_event_box_new ();
      gtk_event_box_set_visible_window ((GtkEventBox *) ebox, false);
  
@@ -1898,7 +1659,7 @@
      GtkWidget * disable_button = gtk_button_new_with_label (_("Disable"));
 --- src/lyricwiki/lyricwiki.cc.old
 +++ src/lyricwiki/lyricwiki.cc
-@@ -339,7 +339,7 @@ static GtkWidget * build_widget ()
+@@ -341,7 +341,7 @@ static GtkWidget * build_widget ()
      GtkWidget * scrollview = gtk_scrolled_window_new (nullptr, nullptr);
      gtk_scrolled_window_set_shadow_type ((GtkScrolledWindow *) scrollview, GTK_SHADOW_IN);
      gtk_scrolled_window_set_policy ((GtkScrolledWindow *) scrollview, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
@@ -1907,7 +1668,7 @@
  
      gtk_container_add ((GtkContainer *) scrollview, (GtkWidget *) textview);
      gtk_box_pack_start ((GtkBox *) vbox, scrollview, true, true, 0);
-@@ -350,7 +350,7 @@ static GtkWidget * build_widget ()
+@@ -352,7 +352,7 @@ static GtkWidget * build_widget ()
      gtk_text_buffer_create_tag (textbuffer, "size_x_large", "scale", PANGO_SCALE_X_LARGE, nullptr);
      gtk_text_buffer_create_tag (textbuffer, "style_italic", "style", PANGO_STYLE_ITALIC, nullptr);
  
@@ -1918,7 +1679,7 @@
      edit_button = gtk_button_new_with_mnemonic (_("Edit lyrics ..."));
 --- src/playlist-manager/playlist-manager.cc.old
 +++ src/playlist-manager/playlist-manager.cc
-@@ -213,7 +213,7 @@ static void destroy_cb (GtkWidget * window)
+@@ -215,7 +215,7 @@ static void destroy_cb (GtkWidget * window)
  
  void * PlaylistManager::get_gtk_widget ()
  {
@@ -1927,7 +1688,7 @@
  
      /* ListView */
      GtkWidget * playman_pl_lv = audgui_list_new (& callbacks, nullptr, aud_playlist_count ());
-@@ -235,7 +235,7 @@ void * PlaylistManager::get_gtk_widget ()
+@@ -237,7 +237,7 @@ void * PlaylistManager::get_gtk_widget ()
      gtk_box_pack_start ((GtkBox *) playman_vbox, playman_pl_lv_sw, true, true, 0);
  
      /* ButtonBox */
@@ -1936,38 +1697,9 @@
      GtkWidget * new_button = audgui_button_new (_("_New"), "document-new",
       (AudguiCallback) aud_playlist_new, nullptr);
      GtkWidget * delete_button = audgui_button_new (_("_Remove"), "edit-delete", delete_cb, nullptr);
---- src/scrobbler2/config_window.cc.old
-+++ src/scrobbler2/config_window.cc
-@@ -167,11 +167,11 @@ static void *config_status_checker () {
-     GtkWidget *details_box;
-     GtkWidget *additional_details_box;
- 
--    config_box              = gtk_vbox_new (false, 15);
--    permission_box          = gtk_hbox_new (false, 0);
--    buttons_box             = gtk_vbutton_box_new ();
--    details_box             = gtk_vbox_new (false, 0);
--    additional_details_box  = gtk_hbox_new (false, 7);
-+    config_box              = gtk_box_new(GTK_ORIENTATION_VERTICAL,  15);
-+    permission_box          = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
-+    buttons_box             = gtk_button_box_new(GTK_ORIENTATION_VERTICAL);
-+    details_box             = gtk_box_new(GTK_ORIENTATION_VERTICAL,   0);
-+    additional_details_box  = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 7);
- 
-     button                  = gtk_button_new_with_mnemonic(_("C_heck Permission"));
-     revoke_button           = gtk_button_new_with_mnemonic(_("_Revoke Permission"));
-@@ -183,6 +183,9 @@ static void *config_status_checker () {
-     details_label_first  = gtk_label_new ("");
-     url_button           = gtk_link_button_new("");
-     details_label_second = gtk_label_new("");
-+    gtk_widget_set_halign(details_label_first,  GTK_ALIGN_CENTER);
-+    gtk_widget_set_halign(url_button,           GTK_ALIGN_CENTER);
-+    gtk_widget_set_halign(details_label_second, GTK_ALIGN_CENTER);
- 
-     gtk_widget_hide(url_button);
-     gtk_widget_set_no_show_all(url_button, true);
 --- src/search-tool/search-tool.cc.old
 +++ src/search-tool/search-tool.cc
-@@ -675,11 +675,11 @@ static void refresh_cb (GtkButton * button, GtkWidget * chooser)
+@@ -745,11 +745,11 @@ static void refresh_cb (GtkButton * button, GtkWidget * file_entry)
  
  void * SearchTool::get_gtk_widget ()
  {
@@ -1981,7 +1713,7 @@
      g_signal_connect (entry, "destroy", (GCallback) gtk_widget_destroyed, & entry);
      gtk_box_pack_start ((GtkBox *) vbox, entry, false, false, 0);
  
-@@ -716,7 +716,7 @@ void * SearchTool::get_gtk_widget ()
+@@ -786,7 +786,7 @@ void * SearchTool::get_gtk_widget ()
      gtk_widget_set_no_show_all (stats_label, true);
      gtk_box_pack_start ((GtkBox *) vbox, stats_label, false, false, 0);
  
@@ -1989,10 +1721,10 @@
 +    GtkWidget * hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
      gtk_box_pack_end ((GtkBox *) vbox, hbox, false, false, 0);
  
-     GtkWidget * chooser = gtk_file_chooser_button_new (_("Choose Folder"),
+     GtkWidget * file_entry = audgui_file_entry_new
 --- src/skins/menus.cc.old
 +++ src/skins/menus.cc
-@@ -319,7 +319,7 @@ static void position_menu (GtkMenu * menu, int * x, int * y, gboolean * push_in,
+@@ -323,7 +323,7 @@ static void position_menu (GtkMenu * menu, int * x, int * y, gboolean * push_in,
      audgui_get_monitor_geometry (gtk_widget_get_screen ((GtkWidget *) menu), pos->x, pos->y, & geom);
  
      GtkRequisition request;
@@ -2094,7 +1826,7 @@
      gtk_container_add ((GtkContainer *) gtk_dialog_get_content_area
 --- src/skins/skinselector.cc.old
 +++ src/skins/skinselector.cc
-@@ -190,6 +190,11 @@ static void skin_view_on_cursor_changed (GtkTreeView * treeview)
+@@ -186,6 +186,11 @@ static void skin_view_on_cursor_changed (GtkTreeView * treeview)
      GtkTreeIter iter;
  
      auto selection = gtk_tree_view_get_selection (treeview);
@@ -2106,7 +1838,7 @@
      if (! gtk_tree_selection_get_selected (selection, & model, & iter))
          return;
  
-@@ -206,7 +211,6 @@ void skin_view_realize (GtkTreeView * treeview)
+@@ -202,7 +207,6 @@ void skin_view_realize (GtkTreeView * treeview)
  {
      gtk_widget_show_all ((GtkWidget *) treeview);
  
@@ -2294,3 +2026,12 @@
  };
  
  void dock_add_window (int id, Window * window, int * x, int * y, int w, int h);
+--- src/statusicon/Makefile.old
++++ src/statusicon/Makefile
+@@ -11,3 +11,6 @@ LD = ${CXX}
+ CFLAGS += ${PLUGIN_CFLAGS}
+ CPPFLAGS += ${PLUGIN_CPPFLAGS} ${GTK_CFLAGS} -I../..
+ LIBS += ${GTK_LIBS} -laudgui
++
++# GTK3 branch: ignore GtkStatusIcon deprecation
++CPPFLAGS += -Wno-deprecated-declarations

Copied: trunk/dports/multimedia/audacious-plugins/files/patch-update-buildsys-and-make-verbose.diff (from rev 153443, trunk/dports/multimedia/audacious-plugins/files/patch-buildsys.diff)
===================================================================
--- trunk/dports/multimedia/audacious-plugins/files/patch-update-buildsys-and-make-verbose.diff	                        (rev 0)
+++ trunk/dports/multimedia/audacious-plugins/files/patch-update-buildsys-and-make-verbose.diff	2016-09-30 11:15:27 UTC (rev 153444)
@@ -0,0 +1,721 @@
+--- buildsys.mk.in.old
++++ buildsys.mk.in
+@@ -1,8 +1,8 @@
+ #
+-#  Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012
+-#  Jonathan Schleifer <js at webkeks.org>
++#  Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016
++#  Jonathan Schleifer <js at heap.zone>
+ #
+-#  https://webkeks.org/git/?p=buildsys.git
++#  https://heap.zone/git/?p=buildsys.git
+ #
+ #  Permission to use, copy, modify, and/or distribute this software for any
+ #  purpose with or without fee is hereby granted, provided that the above
+@@ -45,6 +45,7 @@ OBJCFLAGS = @OBJCFLAGS@
+ OBJCXXFLAGS = @OBJCXXFLAGS@
+ LDFLAGS = @LDFLAGS@
+ LDFLAGS_RPATH = @LDFLAGS_RPATH@
++LDFLAGS_INSTALL_NAME = @LDFLAGS_INSTALL_NAME@
+ LIBS = @LIBS@
+ PYTHON_FLAGS = @PYTHON_FLAGS@
+ PROG_IMPLIB_NEEDED = @PROG_IMPLIB_NEEDED@
+@@ -107,22 +108,27 @@ PLUGIN_OBJS = ${OBJS:.o=.plugin.o}
+ 
+ MO_FILES = ${LOCALES:.po=.mo}
+ 
+-.SILENT:
+ .SUFFIXES:
+ .SUFFIXES: .beam .c .c.dep .cc .cc.dep .class .cxx .cxx.dep .d .erl .lib.o .java .mo .m .m.dep .mm .mm.dep .o .plugin.o .po .py .pyc .rc .S .S.dep .xpm
+-.PHONY: all subdirs pre-depend depend install install-extra uninstall uninstall-extra clean distclean locales ${SUBDIRS}
++.PHONY: all subdirs subdirs-after pre-depend depend install install-extra uninstall uninstall-extra clean distclean locales ${SUBDIRS} ${SUBDIRS_AFTER}
+ 
+ all:
+-	${MAKE} ${MFLAGS} subdirs
+-	${MAKE} ${MFLAGS} depend
++	${MAKE} pre-all
++	${MAKE} subdirs
++	${MAKE} depend
+ 	${MAKE} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${SHARED_LIB} ${SHARED_LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} ${JARFILE} locales
++	${MAKE} subdirs-after
++	${MAKE} post-all
++
++pre-all post-all:
+ 
+ subdirs: ${SUBDIRS}
++subdirs-after: ${SUBDIRS_AFTER}
+ 
+-${SUBDIRS}:
++${SUBDIRS} ${SUBDIRS_AFTER}:
+ 	for i in $@; do \
+ 		${DIR_ENTER}; \
+-		${MAKE} ${MFLAGS} || exit $$?; \
++		${MAKE} || exit $$?; \
+ 		${DIR_LEAVE}; \
+ 	done
+ 
+@@ -166,7 +172,7 @@ depend: pre-depend ${SRCS}
+ 	done; \
+ 	if test x"$$regen" = x"1" -a x"$$deps" != x""; then \
+ 		${DEPEND_STATUS}; \
+-		if ${MAKE} ${MFLAGS} $$deps && cat $$deps >.deps; then \
++		if ${MAKE} $$deps && cat $$deps >.deps; then \
+ 			rm -f $$deps; \
+ 			${DEPEND_OK}; \
+ 		else \
+@@ -205,6 +211,7 @@ pre-depend:
+ 
+ ${PROG} ${PROG_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA}
+ 	${LINK_STATUS}
++	out="$@"; \
+ 	if ${LD} -o $@ ${OBJS} ${OBJS_EXTRA} ${LDFLAGS} ${LIBS}; then \
+ 		${LINK_OK}; \
+ 	else \
+@@ -228,7 +235,8 @@ ${JARFILE}: ${EXT_DEPS} ${JAR_MANIFEST} ${OBJS} ${OBJS_EXTRA}
+ 	fi
+ 
+ ${SHARED_LIB} ${SHARED_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
+-	${LINK_STATUS}; \
++	${LINK_STATUS}
++	out="$@"; \
+ 	objs=""; \
+ 	ars=""; \
+ 	for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; do \
+@@ -252,7 +260,7 @@ ${SHARED_LIB} ${SHARED_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
+ 		done; \
+ 		cd ..; \
+ 	done; \
+-	if ${LD} -o $@ $$objs ${LIB_LDFLAGS} ${LDFLAGS} ${LIBS}; then \
++	if ${LD} -o $@ $$objs ${LIB_LDFLAGS} ${LDFLAGS_INSTALL_NAME} ${LDFLAGS} ${LIBS}; then \
+ 		${LINK_OK}; \
+ 	else \
+ 		${LINK_FAILED}; \
+@@ -264,6 +272,7 @@ ${SHARED_LIB} ${SHARED_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
+ 
+ ${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
+ 	${LINK_STATUS}
++	out="$@"; \
+ 	objs=""; \
+ 	ars=""; \
+ 	for i in ${PLUGIN_OBJS}; do \
+@@ -300,6 +309,7 @@ ${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
+ ${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA}
+ 	${LINK_STATUS}
+ 	rm -f $@
++	out="$@"; \
+ 	objs=""; \
+ 	ars=""; \
+ 	for i in ${OBJS} ${OBJS_EXTRA}; do \
+@@ -337,6 +347,7 @@ ${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA}
+ ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
+ 	${LINK_STATUS}
+ 	rm -f $@
++	out="$@"; \
+ 	objs=""; \
+ 	ars=""; \
+ 	for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; do \
+@@ -375,21 +386,27 @@ locales: ${MO_FILES}
+ 
+ .c.o:
+ 	${COMPILE_STATUS}
+-	if ${CC} ${CFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${CC} ${CFLAGS} ${CPPFLAGS} ${CFLAGS_$@} -c -o $@ $<; then \
+ 		${COMPILE_OK}; \
+ 	else \
+ 		${COMPILE_FAILED}; \
+ 	fi
+ .c.lib.o:
+ 	${COMPILE_LIB_STATUS}
+-	if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} ${CFLAGS_$@} -c -o $@ $<; then \
+ 		${COMPILE_LIB_OK}; \
+ 	else \
+ 		${COMPILE_LIB_FAILED}; \
+ 	fi
+ .c.plugin.o:
+ 	${COMPILE_PLUGIN_STATUS}
+-	if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} ${CFLAGS_$@} -c -o $@ $<; then \
+ 		${COMPILE_PLUGIN_OK}; \
+ 	else \
+ 		${COMPILE_PLUGIN_FAILED}; \
+@@ -397,21 +414,27 @@ locales: ${MO_FILES}
+ 
+ .cc.o .cxx.o:
+ 	${COMPILE_STATUS}
+-	if ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${CXXFLAGS_$@} -c -o $@ $<; then \
+ 		${COMPILE_OK}; \
+ 	else \
+ 		${COMPILE_FAILED}; \
+ 	fi
+ .cc.lib.o .cxx.lib.o:
+ 	${COMPILE_LIB_STATUS}
+-	if ${CXX} ${LIB_CFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${CXX} ${LIB_CFLAGS} ${CXXFLAGS} ${CPPFLAGS} ${CXXFLAGS_$@} -c -o $@ $<; then \
+ 		${COMPILE_LIB_OK}; \
+ 	else \
+ 		${COMPILE_LIB_FAILED}; \
+ 	fi
+ .cc.plugin.o .cxx.plugin.o:
+ 	${COMPILE_PLUGIN_STATUS}
+-	if ${CXX} ${PLUGIN_CFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${CXX} ${PLUGIN_CFLAGS} ${CXXFLAGS} ${CPPFLAGS} ${CXXFLAGS_$@} -c -o $@ $<; then \
+ 		${COMPILE_PLUGIN_OK}; \
+ 	else \
+ 		${COMPILE_PLUGIN_FAILED}; \
+@@ -419,6 +442,8 @@ locales: ${MO_FILES}
+ 
+ .d.o:
+ 	${COMPILE_STATUS}
++	in="$<"; \
++	out="$@"; \
+ 	if test x"$(basename ${DC})" = x"dmd"; then \
+ 		if ${DC} ${DFLAGS} -c -of$@ $<; then \
+ 			${COMPILE_OK}; \
+@@ -435,6 +460,8 @@ locales: ${MO_FILES}
+ 
+ .erl.beam:
+ 	${COMPILE_STATUS}
++	in="$<"; \
++	out="$@"; \
+ 	if ${ERLC} ${ERLCFLAGS} -o $@ $<; then \
+ 		${COMPILE_OK}; \
+ 	else \
+@@ -443,6 +470,8 @@ locales: ${MO_FILES}
+ 
+ .java.class:
+ 	${COMPILE_STATUS}
++	in="$<"; \
++	out="$@"; \
+ 	if ${JAVAC} ${JAVACFLAGS} $<; then \
+ 		${COMPILE_OK}; \
+ 	else \
+@@ -451,21 +480,27 @@ locales: ${MO_FILES}
+ 
+ .m.o:
+ 	${COMPILE_STATUS}
+-	if ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${OBJCFLAGS_$@} -c -o $@ $<; then \
+ 		${COMPILE_OK}; \
+ 	else \
+ 		${COMPILE_FAILED}; \
+ 	fi
+ .m.lib.o:
+ 	${COMPILE_LIB_STATUS}
+-	if ${OBJC} ${LIB_CFLAGS} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${OBJC} ${LIB_CFLAGS} ${OBJCFLAGS} ${CPPFLAGS} ${OBJCFLAGS_$@} -c -o $@ $<; then \
+ 		${COMPILE_LIB_OK}; \
+ 	else \
+ 		${COMPILE_LIB_FAILED}; \
+ 	fi
+ .m.plugin.o:
+ 	${COMPILE_PLUGIN_STATUS}
+-	if ${OBJC} ${PLUGIN_CFLAGS} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${OBJC} ${PLUGIN_CFLAGS} ${OBJCFLAGS} ${CPPFLAGS} ${OBJCFLAGS_$@} -c -o $@ $<; then \
+ 		${COMPILE_PLUGIN_OK}; \
+ 	else \
+ 		${COMPILE_PLUGIN_FAILED}; \
+@@ -473,21 +508,27 @@ locales: ${MO_FILES}
+ 
+ .mm.o:
+ 	${COMPILE_STATUS}
+-	if ${OBJCXX} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${OBJCXX} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} ${OBJCXXFLAGS_$@} -c -o $@ $<; then \
+ 		${COMPILE_OK}; \
+ 	else \
+ 		${COMPILE_FAILED}; \
+ 	fi
+ .mm.lib.o:
+ 	${COMPILE_LIB_STATUS}
+-	if ${OBJCXX} ${LIB_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${OBJCXX} ${LIB_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} ${OBJCXXFLAGS_$@} -c -o $@ $<; then \
+ 		${COMPILE_LIB_OK}; \
+ 	else \
+ 		${COMPILE_LIB_FAILED}; \
+ 	fi
+ .mm.plugin.o:
+ 	${COMPILE_PLUGIN_STATUS}
+-	if ${OBJCXX} ${PLUGIN_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${OBJCXX} ${PLUGIN_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} ${OBJCXXFLAGS_$@} -c -o $@ $<; then \
+ 		${COMPILE_PLUGIN_OK}; \
+ 	else \
+ 		${COMPILE_PLUGIN_FAILED}; \
+@@ -495,6 +536,8 @@ locales: ${MO_FILES}
+ 
+ .po.mo:
+ 	${COMPILE_STATUS}
++	in="$<"; \
++	out="$@"; \
+ 	if ${MSGFMT} -c -o $@ $<; then \
+ 		${COMPILE_OK}; \
+ 	else \
+@@ -503,6 +546,8 @@ locales: ${MO_FILES}
+ 
+ .py.pyc:
+ 	${COMPILE_STATUS}
++	in="$<"; \
++	out="$@"; \
+ 	if ${PYTHON} ${PYTHON_FLAGS} -c "import py_compile; py_compile.compile('$<')"; then \
+ 		${COMPILE_OK}; \
+ 	else \
+@@ -511,7 +556,9 @@ locales: ${MO_FILES}
+ 
+ .rc.o .rc.lib.o .rc.plugin.o:
+ 	${COMPILE_STATUS}
+-	if ${WINDRES} -J rc -O coff -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${WINDRES} ${CPPFLAGS} -J rc -O coff -o $@ $<; then \
+ 		${COMPILE_OK}; \
+ 	else \
+ 		${COMPILE_FAILED}; \
+@@ -519,21 +566,27 @@ locales: ${MO_FILES}
+ 
+ .S.o:
+ 	${COMPILE_STATUS}
+-	if ${AS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${AS} ${ASFLAGS} ${CPPFLAGS} ${ASFLAGS_$@} -c -o $@ $<; then \
+ 		${COMPILE_OK}; \
+ 	else \
+ 		${COMPILE_FAILED}; \
+ 	fi
+ .S.lib.o:
+ 	${COMPILE_LIB_STATUS}
+-	if ${AS} ${LIB_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${AS} ${LIB_CFLAGS} ${ASFLAGS} ${CPPFLAGS} ${ASFLAGS_$@} -c -o $@ $<; then \
+ 		${COMPILE_LIB_OK}; \
+ 	else \
+ 		${COMPILE_LIB_FAILED}; \
+ 	fi
+ .S.plugin.o:
+ 	${COMPILE_PLUGIN_STATUS}
+-	if ${AS} ${PLUGIN_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${AS} ${PLUGIN_CFLAGS} ${ASFLAGS} ${CPPFLAGS} ${ASFLAGS_$@} -c -o $@ $<; then \
+ 		${COMPILE_PLUGIN_OK}; \
+ 	else \
+ 		${COMPILE_PLUGIN_FAILED}; \
+@@ -541,30 +594,36 @@ locales: ${MO_FILES}
+ 
+ .xpm.o:
+ 	${COMPILE_STATUS}
+-	if ${CC} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${CC} ${CFLAGS} ${CPPFLAGS} ${CFLAGS_$@} -x c -c -o $@ $<; then \
+ 		${COMPILE_OK}; \
+ 	else \
+ 		${COMPILE_FAILED}; \
+ 	fi
+ .xpm.lib.o:
+ 	${COMPILE_LIB_STATUS}
+-	if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} ${CFLAGS_$@} -x c -c -o $@ $<; then \
+ 		${COMPILE_LIB_OK}; \
+ 	else \
+ 		${COMPILE_LIB_FAILED}; \
+ 	fi
+ .xpm.plugin.o:
+ 	${COMPILE_PLUGIN_STATUS}
+-	if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
++	in="$<"; \
++	out="$@"; \
++	if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} ${CFLAGS_$@} -x c -c -o $@ $<; then \
+ 		${COMPILE_PLUGIN_OK}; \
+ 	else \
+ 		${COMPILE_PLUGIN_FAILED}; \
+ 	fi
+ 
+-install: install-extra
+-	for i in ${SUBDIRS}; do \
++install: all install-extra
++	for i in ${SUBDIRS} ${SUBDIRS_AFTER}; do \
+ 		${DIR_ENTER}; \
+-		${MAKE} ${MFLAGS} install || exit $$?; \
++		${MAKE} install || exit $$?; \
+ 		${DIR_LEAVE}; \
+ 	done
+ 
+@@ -643,9 +702,9 @@ install: install-extra
+ install-extra:
+ 
+ uninstall: uninstall-extra
+-	for i in ${SUBDIRS}; do \
++	for i in ${SUBDIRS} ${SUBDIRS_AFTER}; do \
+ 		${DIR_ENTER}; \
+-		${MAKE} ${MFLAGS} uninstall || exit $$?; \
++		${MAKE} uninstall || exit $$?; \
+ 		${DIR_LEAVE}; \
+ 	done
+ 
+@@ -736,9 +795,9 @@ uninstall: uninstall-extra
+ uninstall-extra:
+ 
+ clean:
+-	for i in ${SUBDIRS}; do \
++	for i in ${SUBDIRS} ${SUBDIRS_AFTER}; do \
+ 		${DIR_ENTER}; \
+-		${MAKE} ${MFLAGS} clean || exit $$?; \
++		${MAKE} clean || exit $$?; \
+ 		${DIR_LEAVE}; \
+ 	done
+ 
+@@ -753,9 +812,9 @@ clean:
+ 	done
+ 
+ distclean: clean
+-	for i in ${SUBDIRS}; do \
++	for i in ${SUBDIRS} ${SUBDIRS_AFTER}; do \
+ 		${DIR_ENTER}; \
+-		${MAKE} ${MFLAGS} distclean || exit $$?; \
++		${MAKE} distclean || exit $$?; \
+ 		${DIR_LEAVE}; \
+ 	done
+ 
+@@ -769,27 +828,39 @@ distclean: clean
+ 		fi \
+ 	done
+ 
+-DIR_ENTER = printf "@TERM_EL@@TERM_SETAF6 at Entering directory @TERM_BOLD@$$i at TERM_SGR0@@TERM_SETAF6 at .@TERM_SGR0@\n"; cd $$i || exit $$?
+-DIR_LEAVE = printf "@TERM_EL@@TERM_SETAF6 at Leaving directory @TERM_BOLD@$$i at TERM_SGR0@@TERM_SETAF6 at .@TERM_SGR0@\n"; cd .. || exit $$?
++print-hierarchy:
++	for i in ${SUBDIRS} ${SUBDIRS_AFTER}; do \
++		echo ${PRINT_HIERARCHY_PREFIX}$$i; \
++		cd $$i || exit $$?; \
++		${MAKE} PRINT_HIERARCHY_PREFIX=$$i/ print-hierarchy || exit $$?; \
++		cd .. || exit $$?; \
++	done
++
++print-var:
++	printf '%s\n' '${${VAR}}'
++
++DIR_ENTER = printf "@TERM_EL@@TERM_SETAF6 at Entering directory @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF6 at .@TERM_SGR0@\n" "$$i"; cd $$i || exit $$?
++DIR_LEAVE = printf "@TERM_EL@@TERM_SETAF6 at Leaving directory @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF6 at .@TERM_SGR0@\n" "$$i"; cd .. || exit $$?
+ DEPEND_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Generating dependencies... at TERM_SGR0@\r"
+ DEPEND_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully generated dependencies. at TERM_SGR0@\n"
+ DEPEND_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to generate dependencies!@TERM_SGR0@\n"; exit $$err
+-COMPILE_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Compiling @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF3 at ...@TERM_SGR0@\r"
+-COMPILE_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully compiled @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF2 at .@TERM_SGR0@\n"
+-COMPILE_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to compile @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n"; exit $$err
+-COMPILE_LIB_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Compiling @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF3@ (lib)... at TERM_SGR0@\r"
+-COMPILE_LIB_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully compiled @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF2@ (lib). at TERM_SGR0@\n"
+-COMPILE_LIB_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to compile @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF1@ (lib)!@TERM_SGR0@\n"; exit $$err
+-COMPILE_PLUGIN_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Compiling @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF3@ (plugin)... at TERM_SGR0@\r"
+-COMPILE_PLUGIN_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully compiled @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF2@ (plugin). at TERM_SGR0@\n"
+-COMPILE_PLUGIN_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to compile @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF1@ (plugin)!@TERM_SGR0@\n"; exit $$err
++COMPILE_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Compiling @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF3 at ...@TERM_SGR0@\r" "$<"
++COMPILE_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully compiled @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF2 at .@TERM_SGR0@\n" "$<"
++COMPILE_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to compile @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n" "$<"; exit $$err
++COMPILE_LIB_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Compiling @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF3@ (lib)... at TERM_SGR0@\r" "$<"
++COMPILE_LIB_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully compiled @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF2@ (lib). at TERM_SGR0@\n" "$<"
++COMPILE_LIB_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to compile @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF1@ (lib)!@TERM_SGR0@\n" "$<"; exit $$err
++COMPILE_PLUGIN_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Compiling @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF3@ (plugin)... at TERM_SGR0@\r" "$<"
++COMPILE_PLUGIN_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully compiled @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF2@ (plugin). at TERM_SGR0@\n" "$<"
++COMPILE_PLUGIN_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to compile @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF1@ (plugin)!@TERM_SGR0@\n" "$<"; exit $$err
+ LINK_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Linking @TERM_BOLD@$@@TERM_SGR0@@TERM_SETAF3 at ...@TERM_SGR0@\r"
+ LINK_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully linked @TERM_BOLD@$@@TERM_SGR0@@TERM_SETAF2 at .@TERM_SGR0@\n"
+ LINK_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to link @TERM_BOLD@$@@TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n"; exit $$err
+-INSTALL_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Installing @TERM_BOLD@$$i at TERM_SGR0@@TERM_SETAF3 at ...@TERM_SGR0@\r"
+-INSTALL_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully installed @TERM_BOLD@$$i at TERM_SGR0@@TERM_SETAF2 at .@TERM_SGR0@\n"
+-INSTALL_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to install @TERM_BOLD@$$i at TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n"; exit $$err
+-DELETE_OK = printf "@TERM_EL@@TERM_SETAF4 at Deleted @TERM_BOLD@$$i at TERM_SGR0@@TERM_SETAF4 at .@TERM_SGR0@\n"
+-DELETE_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to delete @TERM_BOLD@$$i at TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n"; exit $$err
+-
+-include .deps
++INSTALL_STATUS = printf "@TERM_EL@@TERM_SETAF3 at Installing @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF3 at ...@TERM_SGR0@\r" "$$i"
++INSTALL_OK = printf "@TERM_EL@@TERM_SETAF2 at Successfully installed @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF2 at .@TERM_SGR0@\n" "$$i"
++INSTALL_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to install @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n" "$$i"; exit $$err
++DELETE_OK = printf "@TERM_EL@@TERM_SETAF4 at Deleted @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF4 at .@TERM_SGR0@\n" "$$i"
++DELETE_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1 at Failed to delete @TERM_BOLD@%s at TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n" "$$i"; exit $$err
++
++.CURDIR ?= .
++include ${.CURDIR}/.deps
+--- configure.ac.old
++++ configure.ac
+@@ -8,6 +8,8 @@ AC_PREREQ([2.59])
+ AC_INIT([audacious-plugins], [3.8])
+ AC_COPYRIGHT([Copyright (C) 2001-2016 Audacious developers and others])
+ 
++BUILDSYS_INIT
++
+ AC_DEFINE_UNQUOTED([PACKAGE], "$PACKAGE_NAME", [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], "$PACKAGE_VERSION", [Version number of package])
+ 
+--- m4/buildsys.m4.old
++++ m4/buildsys.m4
+@@ -1,8 +1,8 @@
+ dnl
+-dnl Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012
+-dnl Jonathan Schleifer <js at webkeks.org>
++dnl Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016
++dnl Jonathan Schleifer <js at heap.zone>
+ dnl
+-dnl https://webkeks.org/git/?p=buildsys.git
++dnl https://heap.zone/git/?p=buildsys.git
+ dnl
+ dnl Permission to use, copy, modify, and/or distribute this software for any
+ dnl purpose with or without fee is hereby granted, provided that the above
+@@ -21,65 +21,76 @@ dnl ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ dnl POSSIBILITY OF SUCH DAMAGE.
+ dnl
+ 
+-AC_CONFIG_COMMANDS_PRE([
+-	AC_SUBST(CC_DEPENDS, $GCC)
+-	AC_SUBST(CXX_DEPENDS, $GXX)
+-	AC_SUBST(OBJC_DEPENDS, $GOBJC)
+-	AC_SUBST(OBJCXX_DEPENDS, $GOBJCXX)
++AC_DEFUN([BUILDSYS_INIT], [
++	AC_CONFIG_COMMANDS_PRE([
++		AC_SUBST(CC_DEPENDS, $GCC)
++		AC_SUBST(CXX_DEPENDS, $GXX)
++		AC_SUBST(OBJC_DEPENDS, $GOBJC)
++		AC_SUBST(OBJCXX_DEPENDS, $GOBJCXX)
+ 
+-	AC_PATH_PROG(TPUT, tput)
++		AC_PATH_PROG(TPUT, tput)
+ 
+-	AS_IF([test x"$TPUT" != x""], [
+-		if x=$($TPUT el 2>/dev/null); then
+-			AC_SUBST(TERM_EL, "$x")
+-		else
+-			AC_SUBST(TERM_EL, "$($TPUT ce 2>/dev/null)")
+-		fi
++		AS_IF([test x"$TPUT" != x""], [
++			if x=$($TPUT el 2>/dev/null); then
++				AC_SUBST(TERM_EL, "$x")
++			else
++				AC_SUBST(TERM_EL, "$($TPUT ce 2>/dev/null)")
++			fi
+ 
+-		if x=$($TPUT sgr0 2>/dev/null); then
+-			AC_SUBST(TERM_SGR0, "$x")
+-		else
+-			AC_SUBST(TERM_SGR0, "$($TPUT me 2>/dev/null)")
+-		fi
++			if x=$($TPUT sgr0 2>/dev/null); then
++				AC_SUBST(TERM_SGR0, "$x")
++			else
++				AC_SUBST(TERM_SGR0, "$($TPUT me 2>/dev/null)")
++			fi
+ 
+-		if x=$($TPUT bold 2>/dev/null); then
+-			AC_SUBST(TERM_BOLD, "$x")
+-		else
+-			AC_SUBST(TERM_BOLD, "$($TPUT md 2>/dev/null)")
+-		fi
++			if x=$($TPUT bold 2>/dev/null); then
++				AC_SUBST(TERM_BOLD, "$x")
++			else
++				AC_SUBST(TERM_BOLD, "$($TPUT md 2>/dev/null)")
++			fi
+ 
+-		if x=$($TPUT setaf 1 2>/dev/null); then
+-			AC_SUBST(TERM_SETAF1, "$x")
+-			AC_SUBST(TERM_SETAF2, "$($TPUT setaf 2 2>/dev/null)")
+-			AC_SUBST(TERM_SETAF3, "$($TPUT setaf 3 2>/dev/null)")
+-			AC_SUBST(TERM_SETAF4, "$($TPUT setaf 4 2>/dev/null)")
+-			AC_SUBST(TERM_SETAF6, "$($TPUT setaf 6 2>/dev/null)")
+-		else
+-			AC_SUBST(TERM_SETAF1, "$($TPUT AF 1 2>/dev/null)")
+-			AC_SUBST(TERM_SETAF2, "$($TPUT AF 2 2>/dev/null)")
+-			AC_SUBST(TERM_SETAF3, "$($TPUT AF 3 2>/dev/null)")
+-			AC_SUBST(TERM_SETAF4, "$($TPUT AF 4 2>/dev/null)")
+-			AC_SUBST(TERM_SETAF6, "$($TPUT AF 6 2>/dev/null)")
+-		fi
+-	], [
+-		AC_SUBST(TERM_EL, '\033\133K')
+-		AC_SUBST(TERM_SGR0, '\033\133m')
+-		AC_SUBST(TERM_BOLD, '\033\1331m')
+-		AC_SUBST(TERM_SETAF1, '\033\13331m')
+-		AC_SUBST(TERM_SETAF2, '\033\13332m')
+-		AC_SUBST(TERM_SETAF3, '\033\13333m')
+-		AC_SUBST(TERM_SETAF4, '\033\13334m')
+-		AC_SUBST(TERM_SETAF6, '\033\13336m')
++			if x=$($TPUT setaf 1 2>/dev/null); then
++				AC_SUBST(TERM_SETAF1, "$x")
++				AC_SUBST(TERM_SETAF2,
++					"$($TPUT setaf 2 2>/dev/null)")
++				AC_SUBST(TERM_SETAF3,
++					"$($TPUT setaf 3 2>/dev/null)")
++				AC_SUBST(TERM_SETAF4,
++					"$($TPUT setaf 4 2>/dev/null)")
++				AC_SUBST(TERM_SETAF6,
++					"$($TPUT setaf 6 2>/dev/null)")
++			else
++				AC_SUBST(TERM_SETAF1,
++					"$($TPUT AF 1 2>/dev/null)")
++				AC_SUBST(TERM_SETAF2,
++					"$($TPUT AF 2 2>/dev/null)")
++				AC_SUBST(TERM_SETAF3,
++					"$($TPUT AF 3 2>/dev/null)")
++				AC_SUBST(TERM_SETAF4,
++					"$($TPUT AF 4 2>/dev/null)")
++				AC_SUBST(TERM_SETAF6,
++					"$($TPUT AF 6 2>/dev/null)")
++			fi
++		], [
++			AC_SUBST(TERM_EL, '\033\133K')
++			AC_SUBST(TERM_SGR0, '\033\133m')
++			AC_SUBST(TERM_BOLD, '\033\1331m')
++			AC_SUBST(TERM_SETAF1, '\033\13331m')
++			AC_SUBST(TERM_SETAF2, '\033\13332m')
++			AC_SUBST(TERM_SETAF3, '\033\13333m')
++			AC_SUBST(TERM_SETAF4, '\033\13334m')
++			AC_SUBST(TERM_SETAF6, '\033\13336m')
++		])
+ 	])
+-])
+ 
+-AC_CONFIG_COMMANDS_POST([
+-	${as_echo:="echo"} ${as_me:="configure"}": touching .deps files"
+-	for i in $(find . -name Makefile); do
+-		DEPSFILE="$(dirname $i)/.deps"
+-		test -f "$DEPSFILE" && rm "$DEPSFILE"
+-		touch -t 0001010000 "$DEPSFILE"
+-	done
++	AC_CONFIG_COMMANDS_POST([
++		${as_echo:="echo"} ${as_me:="configure"}": touching .deps files"
++		for i in $(find . -name Makefile); do
++			DEPSFILE="$(dirname $i)/.deps"
++			test -f "$DEPSFILE" && rm "$DEPSFILE"
++			touch -t 0001010000 "$DEPSFILE"
++		done
++	])
+ ])
+ 
+ AC_DEFUN([BUILDSYS_PROG_IMPLIB], [
+@@ -108,31 +119,32 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
+ 	case "$host_os" in
+ 		darwin*)
+ 			AC_MSG_RESULT(Darwin)
+-			LIB_CFLAGS='-fPIC -DPIC -mmacosx-version-min=10.7'
+-			LIB_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR} -mmacosx-version-min=10.7 -install_name "${libdir}/$$(i=${SHARED_LIB}; echo $${i%${LIB_SUFFIX}}).${LIB_MAJOR}${LIB_SUFFIX}"'
++			LIB_CFLAGS='-fPIC -DPIC'
++			LIB_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
+ 			LIB_PREFIX='lib'
+ 			LIB_SUFFIX='.dylib'
+ 			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+-			PLUGIN_CFLAGS='-fPIC -DPIC -mmacosx-version-min=10.7'
+-			PLUGIN_LDFLAGS='-bundle -undefined dynamic_lookup -mmacosx-version-min=10.7'
++			LDFLAGS_INSTALL_NAME='-Wl,-install_name,${libdir}/$${out%.dylib}.${LIB_MAJOR}.dylib'
++			PLUGIN_CFLAGS='-fPIC -DPIC'
++			PLUGIN_LDFLAGS='-bundle -undefined dynamic_lookup'
+ 			PLUGIN_SUFFIX='.bundle'
+ 			INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$$i'
+ 			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib'
+ 			CLEAN_LIB=''
+ 			;;
+-		solaris*)
+-			AC_MSG_RESULT(Solaris)
+-			LIB_CFLAGS='-fPIC -DPIC'
+-			LIB_LDFLAGS='-shared -Wl,-soname=${SHARED_LIB}.${LIB_MAJOR}.${LIB_MINOR}'
++		mingw* | cygwin*)
++			AC_MSG_RESULT(MinGW / Cygwin)
++			LIB_CFLAGS=''
++			LIB_LDFLAGS='-shared -Wl,--out-implib,${SHARED_LIB}.a'
+ 			LIB_PREFIX='lib'
+-			LIB_SUFFIX='.so'
++			LIB_SUFFIX='.dll'
+ 			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+-			PLUGIN_CFLAGS='-fPIC -DPIC'
++			PLUGIN_CFLAGS=''
+ 			PLUGIN_LDFLAGS='-shared'
+-			PLUGIN_SUFFIX='.so'
+-			INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i'
+-			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
+-			CLEAN_LIB=''
++			PLUGIN_SUFFIX='.dll'
++			INSTALL_LIB='&& ${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a'
++			UNINSTALL_LIB='&& rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a'
++			CLEAN_LIB='${SHARED_LIB}.a'
+ 			;;
+ 		openbsd* | mirbsd*)
+ 			AC_MSG_RESULT(OpenBSD)
+@@ -148,22 +160,36 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
+ 			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i'
+ 			CLEAN_LIB=''
+ 			;;
+-		cygwin* | mingw*)
+-			AC_MSG_RESULT(Win32)
+-			LIB_CFLAGS=''
+-			LIB_LDFLAGS='-shared -Wl,--out-implib,${SHARED_LIB}.a'
++		solaris*)
++			AC_MSG_RESULT(Solaris)
++			LIB_CFLAGS='-fPIC -DPIC'
++			LIB_LDFLAGS='-shared -Wl,-soname=${SHARED_LIB}.${LIB_MAJOR}.${LIB_MINOR}'
+ 			LIB_PREFIX='lib'
+-			LIB_SUFFIX='.dll'
++			LIB_SUFFIX='.so'
+ 			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+-			PLUGIN_CFLAGS=''
++			PLUGIN_CFLAGS='-fPIC -DPIC'
+ 			PLUGIN_LDFLAGS='-shared'
+-			PLUGIN_SUFFIX='.dll'
+-			INSTALL_LIB='&& ${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a'
+-			UNINSTALL_LIB='&& rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a'
+-			CLEAN_LIB='${SHARED_LIB}.a'
++			PLUGIN_SUFFIX='.so'
++			INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i'
++			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
++			CLEAN_LIB=''
++			;;
++		*-android*)
++			AC_MSG_RESULT(Android)
++			LIB_CFLAGS='-fPIC -DPIC'
++			LIB_LDFLAGS='-shared -Wl,-soname=${SHARED_LIB}.${LIB_MAJOR}'
++			LIB_PREFIX='lib'
++			LIB_SUFFIX='.so'
++			LDFLAGS_RPATH=''
++			PLUGIN_CFLAGS='-fPIC -DPIC'
++			PLUGIN_LDFLAGS='-shared'
++			PLUGIN_SUFFIX='.so'
++			INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
++			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
++			CLEAN_LIB=''
+ 			;;
+ 		*)
+-			AC_MSG_RESULT(GNU)
++			AC_MSG_RESULT(ELF)
+ 			LIB_CFLAGS='-fPIC -DPIC'
+ 			LIB_LDFLAGS='-shared -Wl,-soname=${SHARED_LIB}.${LIB_MAJOR}'
+ 			LIB_PREFIX='lib'
+@@ -183,6 +209,7 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
+ 	AC_SUBST(LIB_PREFIX)
+ 	AC_SUBST(LIB_SUFFIX)
+ 	AC_SUBST(LDFLAGS_RPATH)
++	AC_SUBST(LDFLAGS_INSTALL_NAME)
+ 	AC_SUBST(PLUGIN_CFLAGS)
+ 	AC_SUBST(PLUGIN_LDFLAGS)
+ 	AC_SUBST(PLUGIN_SUFFIX)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-changes/attachments/20160930/9f2b551e/attachment-0002.html>


More information about the macports-changes mailing list