73 lines
1.6 KiB
Nix
73 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;
|
|
};
|
|
}
|