nixpkgs/pkgs/tools/audio/fmtoy/default.nix

72 lines
1.6 KiB
Nix

{ stdenv
, lib
, fetchFromGitHub
, unstableGitUpdater
, dos2unix
, pkg-config
, zlib
, alsa-lib
, libjack2
}:
stdenv.mkDerivation rec {
pname = "fmtoy";
version = "unstable-2022-12-23";
src = fetchFromGitHub {
owner = "vampirefrog";
repo = "fmtoy";
rev = "78b61b5e9bc0c6874962dc4040456581c9999b36";
sha256 = "r5zbr6TCxzDiQvDsLQu/QwNfem1K4Ahaji0yIz/2yl0=";
};
postPatch = ''
dos2unix Makefile
# Don't hardcode compilers
sed -i -e '/CC=/d' -e '/CXX=/d' Makefile
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
# Remove Linux-only program & its dependencies
sed -i -e '/PROGS/ s/fmtoy_jack//' Makefile
substituteInPlace Makefile \
--replace '$(shell pkg-config alsa jack --cflags)' ""
'';
nativeBuildInputs = [
dos2unix
] ++ lib.optionals stdenv.hostPlatform.isLinux [
pkg-config
];
buildInputs = [
zlib
] ++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
libjack2
];
enableParallelBuilding = true;
installPhase = ''
runHook preInstall
for prog in $(grep 'PROGS=' Makefile | cut -d= -f2-); do
install -Dm755 $prog $out/bin/$prog
done
runHook postInstall
'';
passthru.updateScript = unstableGitUpdater {
url = "https://github.com/vampirefrog/fmtoy.git";
};
meta = with lib; {
homepage = "https://github.com/vampirefrog/fmtoy";
description = "Tools for FM voices for Yamaha YM chips (OPL, OPM and OPN series)";
# Unclear if gpl3Only or gpl3Plus
# https://github.com/vampirefrog/fmtoy/issues/1
license = licenses.gpl3;
maintainers = with maintainers; [ OPNA2608 ];
platforms = platforms.all;
};
}