{ lib, stdenv, fetchurl, alsa-lib, pkg-config, libjack2 , AudioUnit, AudioToolbox, CoreAudio, CoreServices, Carbon }: stdenv.mkDerivation rec { pname = "portaudio"; version = "190600-20161030"; src = fetchurl { url = "http://www.portaudio.com/archives/pa_stable_v${lib.replaceStrings ["-"] ["_"] version}.tgz"; sha256 = "04qmin6nj144b8qb9kkd9a52xfvm0qdgm8bg8jbl7s3frmyiv8pm"; }; nativeBuildInputs = [ pkg-config ]; buildInputs = [ libjack2 ] ++ lib.optional (!stdenv.isDarwin) alsa-lib; configureFlags = [ "--disable-mac-universal" "--enable-cxx" ]; NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=nullability-inferred-on-nested-type -Wno-error=nullability-completeness-on-arrays"; propagatedBuildInputs = lib.optionals stdenv.isDarwin [ AudioUnit AudioToolbox CoreAudio CoreServices Carbon ]; patchPhase = lib.optionalString stdenv.isDarwin '' sed -i '50 i\ #include \ #include \ #include ' \ include/pa_mac_core.h ''; # not sure why, but all the headers seem to be installed by the make install installPhase = '' make install '' + lib.optionalString (!stdenv.isDarwin) '' # fixup .pc file to find alsa library sed -i "s|-lasound|-L${alsa-lib.out}/lib -lasound|" "$out/lib/pkgconfig/"*.pc '' + lib.optionalString stdenv.isDarwin '' cp include/pa_mac_core.h $out/include/pa_mac_core.h ''; meta = with lib; { description = "Portable cross-platform Audio API"; homepage = "http://www.portaudio.com/"; # Not exactly a bsd license, but alike license = licenses.mit; maintainers = with maintainers; [ lovek323 ]; platforms = platforms.unix; }; passthru = { api_version = 19; }; }