diff options
author | Bart Brouns <bart@magnetophon.nl> | 2014-11-26 18:08:30 +0100 |
---|---|---|
committer | Bart Brouns <bart@magnetophon.nl> | 2014-11-27 13:23:13 +0100 |
commit | cfe24446a4a40ccccca401683c10eb714d8dab25 (patch) | |
tree | 171a6b37710172a97f3d78edb4ff2bed26874ca5 /pkgs/applications/audio/faust | |
parent | 61d7fb934b0e356cd108afcd293c09837efcc6bf (diff) | |
download | nixpkgs-cfe24446a4a40ccccca401683c10eb714d8dab25.tar nixpkgs-cfe24446a4a40ccccca401683c10eb714d8dab25.tar.gz nixpkgs-cfe24446a4a40ccccca401683c10eb714d8dab25.tar.bz2 nixpkgs-cfe24446a4a40ccccca401683c10eb714d8dab25.tar.lz nixpkgs-cfe24446a4a40ccccca401683c10eb714d8dab25.tar.xz nixpkgs-cfe24446a4a40ccccca401683c10eb714d8dab25.tar.zst nixpkgs-cfe24446a4a40ccccca401683c10eb714d8dab25.zip |
Fully functional faust, faust2alsa and faust2alsaconsole
Diffstat (limited to 'pkgs/applications/audio/faust')
-rw-r--r-- | pkgs/applications/audio/faust/default.nix | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/pkgs/applications/audio/faust/default.nix b/pkgs/applications/audio/faust/default.nix new file mode 100644 index 00000000000..9d25573ccc8 --- /dev/null +++ b/pkgs/applications/audio/faust/default.nix @@ -0,0 +1,79 @@ +{ fetchurl, stdenv, bash, alsaLib, atk, cairo, faust-compiler, fontconfig, freetype +, gcc, gdk_pixbuf, glib, gtk, makeWrapper, pango, pkgconfig, unzip +, gtkSupport ? true +}: + +stdenv.mkDerivation rec { + + 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 + ] + ; + + makeFlags="PREFIX=$(out)"; + FPATH="$out"; # <- where to search + + phases = [ "unpackPhase installPhase postInstall" ]; + + installPhase = '' + 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 + + wrapProgram $out/bin/faust2alsaconsole \ + --prefix PKG_CONFIG_PATH : ${alsaLib}/lib/pkgconfig \ + --set FAUSTLIB ${faust-compiler}/lib/faust \ + --set FAUSTINC ${faust-compiler}/include/ + + GTK_PKGCONFIG_PATHS=${gtk}/lib/pkgconfig:${pango}/lib/pkgconfig:${glib}/lib/pkgconfig:${cairo}/lib/pkgconfig:${gdk_pixbuf}/lib/pkgconfig:${atk}/lib/pkgconfig:${freetype}/lib/pkgconfig:${fontconfig}/lib/pkgconfig + + wrapProgram $out/bin/faust2alsa \ + --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" + ; + + 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 + ''; + + meta = with stdenv.lib; { + description = "A functional programming language for realtime audio signal processing"; + longDescription = '' + FAUST (Functional Audio Stream) is a functional programming + language specifically designed for real-time signal processing + and synthesis. FAUST targets high-performance signal processing + applications and audio plug-ins for a variety of platforms and + standards. + The Faust compiler translates DSP specifications into very + efficient C++ code. Thanks to the notion of architecture, + FAUST programs can be easily deployed on a large variety of + audio platforms and plugin formats (jack, alsa, ladspa, maxmsp, + puredata, csound, supercollider, pure, vst, coreaudio) without + any change to the FAUST code. + ''; + homepage = http://faust.grame.fr/; + downloadPage = http://sourceforge.net/projects/faudiostream/files/; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.magnetophon ]; + }; +} + |