summaryrefslogtreecommitdiff
path: root/audio/sonic-visualiser
diff options
context:
space:
mode:
authorTobias Kortkamp <tobik@FreeBSD.org>2017-03-02 08:56:14 +0000
committerTobias Kortkamp <tobik@FreeBSD.org>2017-03-02 08:56:14 +0000
commit8e3d2854314ee8dea84189736b0ec1a394ce4982 (patch)
tree4379e354f261ba2ee8217a04a29140e26ddf1b29 /audio/sonic-visualiser
parentUpgrade net/p5-Net-Nmsg to version 0.17: (diff)
New port: audio/sonic-visualiser
Sonic Visualiser is a program for viewing and analysing the contents of music audio files. It supports serveral audio file formats and displays their waveforms and spectograms in a straightforward way. The audio data can be annotated and played back featuring time streching. Furthermore it can be extended by third-party vamp plugins for feature extraction. WWW: http://www.sonicvisualiser.org/ PR: 208401 Submitted by: uddka@student.kit.edu Approved by: mat (mentor) Differential Revision: https://reviews.freebsd.org/D9788
Notes
Notes: svn path=/head/; revision=435214
Diffstat (limited to 'audio/sonic-visualiser')
-rw-r--r--audio/sonic-visualiser/Makefile86
-rw-r--r--audio/sonic-visualiser/distinfo3
-rw-r--r--audio/sonic-visualiser/files/patch-acinclude.m442
-rw-r--r--audio/sonic-visualiser/files/patch-configure.ac13
-rw-r--r--audio/sonic-visualiser/files/patch-sonic-visualiser.pro11
-rw-r--r--audio/sonic-visualiser/files/patch-sv.pro10
-rw-r--r--audio/sonic-visualiser/files/patch-svapp_acinclude.m442
-rw-r--r--audio/sonic-visualiser/files/patch-svapp_audioio_AudioJACKTarget.cpp11
-rw-r--r--audio/sonic-visualiser/files/patch-svcore_acinclude.m442
-rw-r--r--audio/sonic-visualiser/files/patch-svcore_base_RealTime.cpp11
-rw-r--r--audio/sonic-visualiser/files/patch-svcore_config.pri.in10
-rw-r--r--audio/sonic-visualiser/files/patch-svcore_plugin_DSSIPluginInstance.cpp15
-rw-r--r--audio/sonic-visualiser/files/patch-svgui_acinclude.m442
-rw-r--r--audio/sonic-visualiser/pkg-descr9
-rw-r--r--audio/sonic-visualiser/pkg-plist8
15 files changed, 355 insertions, 0 deletions
diff --git a/audio/sonic-visualiser/Makefile b/audio/sonic-visualiser/Makefile
new file mode 100644
index 000000000000..92698ac6d081
--- /dev/null
+++ b/audio/sonic-visualiser/Makefile
@@ -0,0 +1,86 @@
+# $FreeBSD$
+
+PORTNAME= sonic-visualiser
+PORTVERSION= 2.5
+CATEGORIES= audio
+MASTER_SITES= https://code.soundsoftware.ac.uk/attachments/download/1675/
+
+MAINTAINER= uddka@student.kit.edu
+COMMENT= Program for viewing and analysing the contents of music audio files
+
+LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+LIB_DEPENDS= libfftw3.so:math/fftw3 \
+ libfftw3f.so:math/fftw3-float \
+ libsamplerate.so:audio/libsamplerate \
+ libsndfile.so:audio/libsndfile \
+ librubberband.so:audio/rubberband \
+ libserd-0.so:devel/serd \
+ libsord-0.so:devel/sord \
+ libvamp-hostsdk.so:audio/vamp-plugin-sdk
+
+USES= autoreconf desktop-file-utils pkgconfig
+
+GNU_CONFIGURE= yes
+USE_QT5= buildtools_build core gui network qmake_build testlib widgets xml
+USE_XORG= x11
+USE_GL= gl
+
+OPTIONS_DEFINE= DEBUG FISHSOUND ID3TAG JACK LRDF MAD OGGZ OSC PORTAUDIO PULSE
+OPTIONS_DEFAULT= FISHSOUND ID3TAG MAD OGGZ PORTAUDIO
+OPTIONS_SUB= yes
+
+DEBUG_CONFIGURE_ENABLE= debug
+
+FISHSOUND_CONFIGURE_WITH= fishsound
+FISHSOUND_DESC= FLAC, Speex and Vorbis codecs support
+FISHSOUND_LIB_DEPENDS= libfishsound.so:audio/libfishsound \
+ libogg.so:audio/libogg \
+ libvorbis.so:audio/libvorbis \
+ libspeex.so:audio/speex \
+ libFLAC.so:audio/flac
+
+ID3TAG_CONFIGURE_WITH= id3tag
+ID3TAG_LIB_DEPENDS= libid3tag.so:audio/libid3tag
+
+JACK_CONFIGURE_WITH= jack
+JACK_LIB_DEPENDS= libjack.so:audio/jack
+
+LRDF_CONFIGURE_WITH= lrdf
+LRDF_DESC= Resource Description Framework support
+LRDF_LIB_DEPENDS= liblrdf.so:textproc/liblrdf
+
+MAD_CONFIGURE_WITH= mad
+MAD_LIB_DEPENDS= libmad.so:audio/libmad
+
+OGGZ_CONFIGURE_WITH= oggz
+OGGZ_DESC= Ogg container format support
+OGGZ_LIB_DEPENDS= liboggz.so:audio/liboggz \
+ libogg.so:audio/libogg
+
+OSC_CONFIGURE_WITH= lo
+OSC_DESC= OpenSound Control support
+OSC_LIB_DEPENDS= liblo.so:audio/liblo
+
+PORTAUDIO_CONFIGURE_WITH= portaudio
+PORTAUDIO_LIB_DEPENDS= libportaudio.so:audio/portaudio
+
+PULSE_CONFIGURE_WITH= pulse
+PULSE_DESC= PulseAudio server support
+PULSE_LIB_DEPENDS= libpulse.so:audio/pulseaudio
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/sonic-visualiser ${STAGEDIR}${PREFIX}/bin
+ ${INSTALL_DATA} ${WRKSRC}/sonic-visualiser.desktop ${STAGEDIR}${PREFIX}/share/applications
+ ${INSTALL_DATA} ${WRKSRC}/x-sonicvisualiser.desktop ${STAGEDIR}${PREFIX}/share/applications
+ ${INSTALL_DATA} ${WRKSRC}/x-sonicvisualiser-layer.desktop ${STAGEDIR}${PREFIX}/share/applications
+ ${INSTALL_DATA} ${WRKSRC}/icons/sv-icon.svg ${STAGEDIR}${PREFIX}/share/pixmaps
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/CHANGELOG ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/README ${STAGEDIR}${DOCSDIR}
+
+do-install-OSC-on:
+ ${INSTALL_DATA} ${WRKSRC}/README.OSC ${STAGEDIR}${DOCSDIR}
+
+.include <bsd.port.mk>
diff --git a/audio/sonic-visualiser/distinfo b/audio/sonic-visualiser/distinfo
new file mode 100644
index 000000000000..d88c11bcf24d
--- /dev/null
+++ b/audio/sonic-visualiser/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1487954437
+SHA256 (sonic-visualiser-2.5.tar.gz) = 5a66f20bae002876c64bc26d79dcba4f4c96c3c71ae160b5aafb40cfeacecdbe
+SIZE (sonic-visualiser-2.5.tar.gz) = 4112133
diff --git a/audio/sonic-visualiser/files/patch-acinclude.m4 b/audio/sonic-visualiser/files/patch-acinclude.m4
new file mode 100644
index 000000000000..5756b8eeed59
--- /dev/null
+++ b/audio/sonic-visualiser/files/patch-acinclude.m4
@@ -0,0 +1,42 @@
+--- acinclude.m4.orig 2015-10-22 11:26:02 UTC
++++ acinclude.m4
+@@ -30,33 +30,12 @@ fi
+
+ AC_DEFUN([SV_MODULE_OPTIONAL],
+ [
+-SV_MODULE_MODULE=$1
+-SV_MODULE_VERSION_TEST="$2"
+-SV_MODULE_HEADER=$3
+-SV_MODULE_LIB=$4
+-SV_MODULE_FUNC=$5
+-SV_MODULE_HAVE=HAVE_$(echo $1 | tr '[a-z]' '[A-Z]')
+-SV_MODULE_FAILED=1
+-if test -n "$$1_LIBS" ; then
+- AC_MSG_NOTICE([User set ${SV_MODULE_MODULE}_LIBS explicitly, skipping test for $SV_MODULE_MODULE])
+- CXXFLAGS="$CXXFLAGS $$1_CFLAGS"
+- LIBS="$LIBS $$1_LIBS"
+- SV_MODULE_FAILED=""
+-fi
+-if test -z "$SV_MODULE_VERSION_TEST" ; then
+- SV_MODULE_VERSION_TEST=$SV_MODULE_MODULE
+-fi
+-if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
+- PKG_CHECK_MODULES($1,[$SV_MODULE_VERSION_TEST],[HAVES="$HAVES $SV_MODULE_HAVE";CXXFLAGS="$CXXFLAGS $$1_CFLAGS";LIBS="$LIBS $$1_LIBS";SV_MODULE_FAILED=""],[AC_MSG_NOTICE([Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means])])
+-fi
+-if test -n "$SV_MODULE_FAILED"; then
+- AC_CHECK_HEADER([$SV_MODULE_HEADER],[HAVES="$HAVES $SV_MODULE_HAVE";SV_MODULE_FAILED=""],[AC_MSG_NOTICE([Failed to find header $SV_MODULE_HEADER for optional module $SV_MODULE_MODULE])])
+- if test -z "$SV_MODULE_FAILED"; then
+- if test -n "$SV_MODULE_LIB"; then
+- AC_CHECK_LIB([$SV_MODULE_LIB],[$SV_MODULE_FUNC],[LIBS="$LIBS -l$SV_MODULE_LIB"],[AC_MSG_NOTICE([Failed to find library $SV_MODULE_LIB for optional module $SV_MODULE_MODULE])])
+- fi
+- fi
+-fi
++AC_ARG_WITH([$4],
++ [AS_HELP_STRING([--with-$4],
++ [Enable support for $1 [default=no]])],
++ [],
++ [with_$4=no])
++AS_IF([test "x$with_$4" = xyes], [SV_MODULE_REQUIRED($1,$2,$3,$4,$5)])
+ ])
+
+ # Check for Qt. The only part of Qt we use directly is qmake.
diff --git a/audio/sonic-visualiser/files/patch-configure.ac b/audio/sonic-visualiser/files/patch-configure.ac
new file mode 100644
index 000000000000..eb0500818fdb
--- /dev/null
+++ b/audio/sonic-visualiser/files/patch-configure.ac
@@ -0,0 +1,13 @@
+--- configure.ac.orig 2015-10-22 11:26:02 UTC
++++ configure.ac
+@@ -99,8 +99,8 @@ SV_MODULE_OPTIONAL([fishsound],[fishsoun
+ SV_MODULE_OPTIONAL([mad],[mad >= 0.15.0],[mad.h],[mad],[mad_decoder_init])
+ SV_MODULE_OPTIONAL([id3tag],[id3tag >= 0.15.0],[id3tag.h],[id3tag],[id3_tag_new])
+
+-# Link in -lX11 if it exists -- this is for the X error handler
+-SV_MODULE_OPTIONAL([X11],[x11 >= 1.0.0],[X11/X.h],[x11],[XGetErrorText])
++# Link in -lX11 -- this is for the X error handler
++SV_MODULE_REQUIRED([X11],[x11 >= 1.0.0],[X11/X.h],[x11],[XGetErrorText])
+
+ AC_SUBST(PERL)
+ AC_SUBST(XARGS)
diff --git a/audio/sonic-visualiser/files/patch-sonic-visualiser.pro b/audio/sonic-visualiser/files/patch-sonic-visualiser.pro
new file mode 100644
index 000000000000..9533354751f0
--- /dev/null
+++ b/audio/sonic-visualiser/files/patch-sonic-visualiser.pro
@@ -0,0 +1,11 @@
+Disable building the tests. They prevent building sonic-visualiser in parallel.
+--- sonic-visualiser.pro.orig 2017-02-24 17:52:22 UTC
++++ sonic-visualiser.pro
+@@ -5,7 +5,6 @@ SUBDIRS = sub_dataquay svcore svgui svap
+ # We should build and run the tests on any platform,
+ # but doing it automatically doesn't work so well from
+ # within an IDE on Windows, so remove that from here
+- SUBDIRS += svcore/base/test svcore/data/fileio/test svcore/data/model/test
+ }
+
+ sub_sv.file = sv.pro
diff --git a/audio/sonic-visualiser/files/patch-sv.pro b/audio/sonic-visualiser/files/patch-sv.pro
new file mode 100644
index 000000000000..13270d2ab8ee
--- /dev/null
+++ b/audio/sonic-visualiser/files/patch-sv.pro
@@ -0,0 +1,10 @@
+--- sv.pro.orig 2015-10-22 11:26:02 UTC
++++ sv.pro
+@@ -41,6 +41,7 @@ QT += network xml gui widgets
+
+ TARGET = "Sonic Visualiser"
+ linux*:TARGET = sonic-visualiser
++freebsd*:TARGET = sonic-visualiser
+ solaris*:TARGET = sonic-visualiser
+
+ DEPENDPATH += . svcore svgui svapp
diff --git a/audio/sonic-visualiser/files/patch-svapp_acinclude.m4 b/audio/sonic-visualiser/files/patch-svapp_acinclude.m4
new file mode 100644
index 000000000000..ba17072fdeee
--- /dev/null
+++ b/audio/sonic-visualiser/files/patch-svapp_acinclude.m4
@@ -0,0 +1,42 @@
+--- svapp/acinclude.m4.orig 2015-10-22 11:26:02 UTC
++++ svapp/acinclude.m4
+@@ -30,33 +30,12 @@ fi
+
+ AC_DEFUN([SV_MODULE_OPTIONAL],
+ [
+-SV_MODULE_MODULE=$1
+-SV_MODULE_VERSION_TEST="$2"
+-SV_MODULE_HEADER=$3
+-SV_MODULE_LIB=$4
+-SV_MODULE_FUNC=$5
+-SV_MODULE_HAVE=HAVE_$(echo $1 | tr '[a-z]' '[A-Z]')
+-SV_MODULE_FAILED=1
+-if test -n "$$1_LIBS" ; then
+- AC_MSG_NOTICE([User set ${SV_MODULE_MODULE}_LIBS explicitly, skipping test for $SV_MODULE_MODULE])
+- CXXFLAGS="$CXXFLAGS $$1_CFLAGS"
+- LIBS="$LIBS $$1_LIBS"
+- SV_MODULE_FAILED=""
+-fi
+-if test -z "$SV_MODULE_VERSION_TEST" ; then
+- SV_MODULE_VERSION_TEST=$SV_MODULE_MODULE
+-fi
+-if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
+- PKG_CHECK_MODULES($1,[$SV_MODULE_VERSION_TEST],[HAVES="$HAVES $SV_MODULE_HAVE";CXXFLAGS="$CXXFLAGS $$1_CFLAGS";LIBS="$LIBS $$1_LIBS";SV_MODULE_FAILED=""],[AC_MSG_NOTICE([Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means])])
+-fi
+-if test -n "$SV_MODULE_FAILED"; then
+- AC_CHECK_HEADER([$SV_MODULE_HEADER],[HAVES="$HAVES $SV_MODULE_HAVE";SV_MODULE_FAILED=""],[AC_MSG_NOTICE([Failed to find header $SV_MODULE_HEADER for optional module $SV_MODULE_MODULE])])
+- if test -z "$SV_MODULE_FAILED"; then
+- if test -n "$SV_MODULE_LIB"; then
+- AC_CHECK_LIB([$SV_MODULE_LIB],[$SV_MODULE_FUNC],[LIBS="$LIBS -l$SV_MODULE_LIB"],[AC_MSG_NOTICE([Failed to find library $SV_MODULE_LIB for optional module $SV_MODULE_MODULE])])
+- fi
+- fi
+-fi
++AC_ARG_WITH([$4],
++ [AS_HELP_STRING([--with-$4],
++ [Enable support for $1 [default=no]])],
++ [],
++ [with_$4=no])
++AS_IF([test "x$with_$4" = xyes], [SV_MODULE_REQUIRED($1,$2,$3,$4,$5)])
+ ])
+
+ # Check for Qt. The only part of Qt we use directly is qmake.
diff --git a/audio/sonic-visualiser/files/patch-svapp_audioio_AudioJACKTarget.cpp b/audio/sonic-visualiser/files/patch-svapp_audioio_AudioJACKTarget.cpp
new file mode 100644
index 000000000000..aa502caa4084
--- /dev/null
+++ b/audio/sonic-visualiser/files/patch-svapp_audioio_AudioJACKTarget.cpp
@@ -0,0 +1,11 @@
+--- svapp/audioio/AudioJACKTarget.cpp.orig 2015-10-22 11:26:02 UTC
++++ svapp/audioio/AudioJACKTarget.cpp
+@@ -21,8 +21,6 @@
+ #include <iostream>
+ #include <cmath>
+
+-#include <alloca.h>
+-
+ //#define DEBUG_AUDIO_JACK_TARGET 1
+
+ #ifdef BUILD_STATIC
diff --git a/audio/sonic-visualiser/files/patch-svcore_acinclude.m4 b/audio/sonic-visualiser/files/patch-svcore_acinclude.m4
new file mode 100644
index 000000000000..c74e466bf137
--- /dev/null
+++ b/audio/sonic-visualiser/files/patch-svcore_acinclude.m4
@@ -0,0 +1,42 @@
+--- svcore/acinclude.m4.orig 2015-10-22 11:26:02 UTC
++++ svcore/acinclude.m4
+@@ -30,33 +30,12 @@ fi
+
+ AC_DEFUN([SV_MODULE_OPTIONAL],
+ [
+-SV_MODULE_MODULE=$1
+-SV_MODULE_VERSION_TEST="$2"
+-SV_MODULE_HEADER=$3
+-SV_MODULE_LIB=$4
+-SV_MODULE_FUNC=$5
+-SV_MODULE_HAVE=HAVE_$(echo $1 | tr '[a-z]' '[A-Z]')
+-SV_MODULE_FAILED=1
+-if test -n "$$1_LIBS" ; then
+- AC_MSG_NOTICE([User set ${SV_MODULE_MODULE}_LIBS explicitly, skipping test for $SV_MODULE_MODULE])
+- CXXFLAGS="$CXXFLAGS $$1_CFLAGS"
+- LIBS="$LIBS $$1_LIBS"
+- SV_MODULE_FAILED=""
+-fi
+-if test -z "$SV_MODULE_VERSION_TEST" ; then
+- SV_MODULE_VERSION_TEST=$SV_MODULE_MODULE
+-fi
+-if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
+- PKG_CHECK_MODULES($1,[$SV_MODULE_VERSION_TEST],[HAVES="$HAVES $SV_MODULE_HAVE";CXXFLAGS="$CXXFLAGS $$1_CFLAGS";LIBS="$LIBS $$1_LIBS";SV_MODULE_FAILED=""],[AC_MSG_NOTICE([Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means])])
+-fi
+-if test -n "$SV_MODULE_FAILED"; then
+- AC_CHECK_HEADER([$SV_MODULE_HEADER],[HAVES="$HAVES $SV_MODULE_HAVE";SV_MODULE_FAILED=""],[AC_MSG_NOTICE([Failed to find header $SV_MODULE_HEADER for optional module $SV_MODULE_MODULE])])
+- if test -z "$SV_MODULE_FAILED"; then
+- if test -n "$SV_MODULE_LIB"; then
+- AC_CHECK_LIB([$SV_MODULE_LIB],[$SV_MODULE_FUNC],[LIBS="$LIBS -l$SV_MODULE_LIB"],[AC_MSG_NOTICE([Failed to find library $SV_MODULE_LIB for optional module $SV_MODULE_MODULE])])
+- fi
+- fi
+-fi
++AC_ARG_WITH([$4],
++ [AS_HELP_STRING([--with-$4],
++ [Enable support for $1 [default=no]])],
++ [],
++ [with_$4=no])
++AS_IF([test "x$with_$4" = xyes], [SV_MODULE_REQUIRED($1,$2,$3,$4,$5)])
+ ])
+
+ # Check for Qt. The only part of Qt we use directly is qmake.
diff --git a/audio/sonic-visualiser/files/patch-svcore_base_RealTime.cpp b/audio/sonic-visualiser/files/patch-svcore_base_RealTime.cpp
new file mode 100644
index 000000000000..186b2552e234
--- /dev/null
+++ b/audio/sonic-visualiser/files/patch-svcore_base_RealTime.cpp
@@ -0,0 +1,11 @@
+--- svcore/base/RealTime.cpp.orig 2015-10-22 11:26:02 UTC
++++ svcore/base/RealTime.cpp
+@@ -105,7 +105,7 @@ RealTime::fromXsdDuration(std::string xs
+ char *eptr = 0;
+
+ if (isdigit(s[i]) || s[i] == '.') {
+- value = strtod(&s[i], &eptr);
++ value = strtod_l(&s[i], &eptr, NULL);
+ i = int(eptr - s);
+ }
+
diff --git a/audio/sonic-visualiser/files/patch-svcore_config.pri.in b/audio/sonic-visualiser/files/patch-svcore_config.pri.in
new file mode 100644
index 000000000000..911f4fa0f543
--- /dev/null
+++ b/audio/sonic-visualiser/files/patch-svcore_config.pri.in
@@ -0,0 +1,10 @@
+--- svcore/config.pri.in.orig 2015-10-22 11:26:02 UTC
++++ svcore/config.pri.in
+@@ -1,6 +1,6 @@
+ CONFIG += @QMAKE_CONFIG@
+
+-DEFINES += @HAVES@ HAVE_DATAQUAY
++DEFINES += @HAVES@ HAVE_DATAQUAY __RTMIDI_DUMMY_ONLY__
+
+ QMAKE_CC = @CC@
+ QMAKE_CXX = @CXX@
diff --git a/audio/sonic-visualiser/files/patch-svcore_plugin_DSSIPluginInstance.cpp b/audio/sonic-visualiser/files/patch-svcore_plugin_DSSIPluginInstance.cpp
new file mode 100644
index 000000000000..6462a50a655c
--- /dev/null
+++ b/audio/sonic-visualiser/files/patch-svcore_plugin_DSSIPluginInstance.cpp
@@ -0,0 +1,15 @@
+--- svcore/plugin/DSSIPluginInstance.cpp.orig 2015-10-22 11:26:02 UTC
++++ svcore/plugin/DSSIPluginInstance.cpp
+@@ -27,12 +27,6 @@
+
+ #include <cstdlib>
+
+-#ifndef Q_OS_WIN32
+-#include <alloca.h>
+-#else
+-#include <memory.h>
+-#endif
+-
+ //#define DEBUG_DSSI 1
+ #define DEBUG_DSSI_PROCESS 1
+
diff --git a/audio/sonic-visualiser/files/patch-svgui_acinclude.m4 b/audio/sonic-visualiser/files/patch-svgui_acinclude.m4
new file mode 100644
index 000000000000..821d474f6945
--- /dev/null
+++ b/audio/sonic-visualiser/files/patch-svgui_acinclude.m4
@@ -0,0 +1,42 @@
+--- svgui/acinclude.m4.orig 2015-10-22 11:26:02 UTC
++++ svgui/acinclude.m4
+@@ -30,33 +30,12 @@ fi
+
+ AC_DEFUN([SV_MODULE_OPTIONAL],
+ [
+-SV_MODULE_MODULE=$1
+-SV_MODULE_VERSION_TEST="$2"
+-SV_MODULE_HEADER=$3
+-SV_MODULE_LIB=$4
+-SV_MODULE_FUNC=$5
+-SV_MODULE_HAVE=HAVE_$(echo $1 | tr '[a-z]' '[A-Z]')
+-SV_MODULE_FAILED=1
+-if test -n "$$1_LIBS" ; then
+- AC_MSG_NOTICE([User set ${SV_MODULE_MODULE}_LIBS explicitly, skipping test for $SV_MODULE_MODULE])
+- CXXFLAGS="$CXXFLAGS $$1_CFLAGS"
+- LIBS="$LIBS $$1_LIBS"
+- SV_MODULE_FAILED=""
+-fi
+-if test -z "$SV_MODULE_VERSION_TEST" ; then
+- SV_MODULE_VERSION_TEST=$SV_MODULE_MODULE
+-fi
+-if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
+- PKG_CHECK_MODULES($1,[$SV_MODULE_VERSION_TEST],[HAVES="$HAVES $SV_MODULE_HAVE";CXXFLAGS="$CXXFLAGS $$1_CFLAGS";LIBS="$LIBS $$1_LIBS";SV_MODULE_FAILED=""],[AC_MSG_NOTICE([Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means])])
+-fi
+-if test -n "$SV_MODULE_FAILED"; then
+- AC_CHECK_HEADER([$SV_MODULE_HEADER],[HAVES="$HAVES $SV_MODULE_HAVE";SV_MODULE_FAILED=""],[AC_MSG_NOTICE([Failed to find header $SV_MODULE_HEADER for optional module $SV_MODULE_MODULE])])
+- if test -z "$SV_MODULE_FAILED"; then
+- if test -n "$SV_MODULE_LIB"; then
+- AC_CHECK_LIB([$SV_MODULE_LIB],[$SV_MODULE_FUNC],[LIBS="$LIBS -l$SV_MODULE_LIB"],[AC_MSG_NOTICE([Failed to find library $SV_MODULE_LIB for optional module $SV_MODULE_MODULE])])
+- fi
+- fi
+-fi
++AC_ARG_WITH([$4],
++ [AS_HELP_STRING([--with-$4],
++ [Enable support for $1 [default=no]])],
++ [],
++ [with_$4=no])
++AS_IF([test "x$with_$4" = xyes], [SV_MODULE_REQUIRED($1,$2,$3,$4,$5)])
+ ])
+
+ # Check for Qt. The only part of Qt we use directly is qmake.
diff --git a/audio/sonic-visualiser/pkg-descr b/audio/sonic-visualiser/pkg-descr
new file mode 100644
index 000000000000..8dc4f47045cd
--- /dev/null
+++ b/audio/sonic-visualiser/pkg-descr
@@ -0,0 +1,9 @@
+Sonic Visualiser is a program for viewing and analysing the contents
+of music audio files.
+
+It supports serveral audio file formats and displays their waveforms
+and spectograms in a straightforward way. The audio data can be
+annotated and played back featuring time streching. Furthermore it
+can be extended by third-party vamp plugins for feature extraction.
+
+WWW: http://www.sonicvisualiser.org/
diff --git a/audio/sonic-visualiser/pkg-plist b/audio/sonic-visualiser/pkg-plist
new file mode 100644
index 000000000000..d1ff2606da7a
--- /dev/null
+++ b/audio/sonic-visualiser/pkg-plist
@@ -0,0 +1,8 @@
+bin/sonic-visualiser
+share/applications/sonic-visualiser.desktop
+share/applications/x-sonicvisualiser.desktop
+share/applications/x-sonicvisualiser-layer.desktop
+share/pixmaps/sv-icon.svg
+%%DOCSDIR%%/CHANGELOG
+%%DOCSDIR%%/README
+%%OSC%%%%DOCSDIR%%/README.OSC