Merge pull request #5639 from magnetophon/faust2jack

fully functional faust2jack.
This commit is contained in:
cillianderoiste 2015-01-08 23:29:57 +01:00
commit 520cc3518a
2 changed files with 48 additions and 18 deletions

View File

@ -1,14 +1,23 @@
{ fetchurl, stdenv, unzip, pkgconfig, makeWrapper, libsndfile, libmicrohttpd, vim }:
{ fetchgit, stdenv, unzip, pkgconfig, makeWrapper, libsndfile, libmicrohttpd, vim }:
stdenv.mkDerivation rec {
version = "0.9.67";
version = "8-1-2015";
name = "faust-compiler-${version}";
src = fetchurl {
url = "http://downloads.sourceforge.net/project/faudiostream/faust-${version}.zip";
sha256 = "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1";
src = fetchgit {
url = git://git.code.sf.net/p/faudiostream/code;
rev = "4db76fdc02b6aec8d15a5af77fcd5283abe963ce";
sha256 = "f1ac92092ee173e4bcf6b2cb1ac385a7c390fb362a578a403b2b6edd5dc7d5d0";
};
# this version has a bug that manifests when doing faust2jack:
/*version = "0.9.67";*/
/*name = "faust-compiler-${version}";*/
/*src = fetchurl {*/
/*url = "http://downloads.sourceforge.net/project/faudiostream/faust-${version}.zip";*/
/*sha256 = "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1";*/
/*};*/
buildInputs = [ unzip pkgconfig makeWrapper libsndfile libmicrohttpd vim];

View File

@ -1,21 +1,32 @@
{ fetchurl, stdenv, bash, alsaLib, atk, cairo, faust-compiler, fontconfig, freetype
, gcc, gdk_pixbuf, glib, gtk, makeWrapper, pango, pkgconfig, unzip
{ fetchgit, stdenv, bash, alsaLib, atk, cairo, faust-compiler, fontconfig, freetype
, gcc, gdk_pixbuf, glib, gtk, jack2, makeWrapper, opencv, pango, pkgconfig, unzip
, gtkSupport ? true
, jackaudioSupport ? true
}:
stdenv.mkDerivation rec {
version = "0.9.67";
version = "8-1-2015";
name = "faust-${version}";
src = fetchurl {
url = "http://downloads.sourceforge.net/project/faudiostream/faust-${version}.zip";
sha256 = "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1";
src = fetchgit {
url = git://git.code.sf.net/p/faudiostream/code;
rev = "4db76fdc02b6aec8d15a5af77fcd5283abe963ce";
sha256 = "f1ac92092ee173e4bcf6b2cb1ac385a7c390fb362a578a403b2b6edd5dc7d5d0";
};
# this version has a bug that manifests when doing faust2jack:
/*version = "0.9.67";*/
/*name = "faust-${version}";*/
/*src = fetchurl {*/
/*url = "http://downloads.sourceforge.net/project/faudiostream/faust-${version}.zip";*/
/*sha256 = "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1";*/
/*};*/
buildInputs = [ bash unzip faust-compiler gcc makeWrapper pkgconfig ]
++ stdenv.lib.optionals gtkSupport [
alsaLib atk cairo fontconfig freetype gdk_pixbuf glib gtk pango
]
++ stdenv.lib.optional jackaudioSupport jack2
;
makeFlags="PREFIX=$(out)";
@ -24,11 +35,15 @@ stdenv.mkDerivation rec {
phases = [ "unpackPhase installPhase postInstall" ];
installPhase = ''
sed -i 23,24d tools/faust2appls/faust2jack
mkdir $out/bin
install tools/faust2appls/faust2alsaconsole $out/bin
install tools/faust2appls/faustpath $out/bin
install tools/faust2appls/faustoptflags $out/bin
install tools/faust2appls/faust2alsa $out/bin
install tools/faust2appls/faust2jack $out/bin
patchShebangs $out/bin
wrapProgram $out/bin/faust2alsaconsole \
--prefix PKG_CONFIG_PATH : ${alsaLib}/lib/pkgconfig \
@ -41,17 +56,23 @@ stdenv.mkDerivation rec {
--prefix PKG_CONFIG_PATH : ${alsaLib}/lib/pkgconfig:$GTK_PKGCONFIG_PATHS \
--set FAUSTLIB ${faust-compiler}/lib/faust \
--set FAUSTINC ${faust-compiler}/include/ \
'' + stdenv.lib.optionalString (!gtkSupport) "rm $out/bin/faust2alsa"
;
wrapProgram $out/bin/faust2jack \
--prefix PKG_CONFIG_PATH : ${jack2}/lib/pkgconfig:${opencv}/lib/pkgconfig:$GTK_PKGCONFIG_PATHS \
--set FAUSTLIB ${faust-compiler}/lib/faust \
--set FAUSTINC ${faust-compiler}/include/ \
''
+ stdenv.lib.optionalString (!gtkSupport) "rm $out/bin/faust2alsa"
+ stdenv.lib.optionalString (!gtkSupport || !jackaudioSupport) "rm $out/bin/faust2jack"
;
postInstall = ''
find $out/bin/ -name "faust2*" -type f | xargs sed "s@/bin/bash@${bash}/bin/bash@g" -i
sed -i "s@/bin/bash@${bash}/bin/bash@g" $out/bin/faustpath
sed -e "s@\$FAUST_INSTALL /usr/local /usr /opt /opt/local@${faust-compiler}@g" -i $out/bin/faustpath
sed -i "s@/bin/bash@${bash}/bin/bash@g" $out/bin/faustoptflags
find $out/bin/ -name "faust2*" -type f | xargs sed "s@pkg-config@${pkgconfig}/bin/pkg-config@g" -i
find $out/bin/ -name "faust2*" -type f | xargs sed "s@CXX=g++@CXX=${gcc}/bin/g++@g" -i
find $out/bin/ -name "faust2*" -type f | xargs sed "s@faust -i -a @${faust-compiler}/bin/faust -i -a ${faust-compiler}/lib/faust/@g" -i
find $out/bin/ -name "*faust2*" -type f | xargs sed "s@pkg-config@${pkgconfig}/bin/pkg-config@g" -i
find $out/bin/ -name "*faust2*" -type f | xargs sed "s@CXX=g++@CXX=${gcc}/bin/g++@g" -i
find $out/bin/ -name "*faust2*" -type f | xargs sed "s@faust -i -a @${faust-compiler}/bin/faust -i -a ${faust-compiler}/lib/faust/@g" -i
'';
meta = with stdenv.lib; {