nixpkgs/pkgs/by-name/al/algol68g/package.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

70 lines
1.8 KiB
Nix
Raw Normal View History

2021-07-30 09:20:36 +03:00
{ lib
, stdenv
, fetchurl
2023-10-15 06:37:24 +03:00
, curl
, gmp
2021-07-30 09:20:36 +03:00
, gsl
2023-10-15 06:37:24 +03:00
, mpfr
, ncurses
2021-07-30 09:20:36 +03:00
, plotutils
, postgresql
2023-10-15 06:37:24 +03:00
, pkg-config
, withPDFDoc ? true
2021-07-30 09:20:36 +03:00
}:
stdenv.mkDerivation (finalAttrs: {
2021-07-30 09:20:36 +03:00
pname = "algol68g";
2023-10-15 06:37:24 +03:00
version = "3.4.2";
2021-07-30 09:20:36 +03:00
src = fetchurl {
url = "https://jmvdveer.home.xs4all.nl/algol68g-${finalAttrs.version}.tar.gz";
2023-10-15 06:37:24 +03:00
hash = "sha256-hKiRMU98sZhGgHhjgtwUNSIv2iPgb4T+dgYw58IGK8Q=";
2021-07-30 09:20:36 +03:00
};
2023-10-15 06:37:24 +03:00
outputs = [ "out" "man" ] ++ lib.optionals withPDFDoc [ "doc" ];
nativeBuildInputs = [
pkg-config
];
2021-07-30 09:20:36 +03:00
buildInputs = [
2023-10-15 06:37:24 +03:00
curl
mpfr
ncurses
gmp
2021-07-30 09:20:36 +03:00
gsl
plotutils
postgresql
];
2023-10-15 06:37:24 +03:00
strictDeps = true;
2021-07-30 09:20:36 +03:00
postInstall = let
pdfdoc = fetchurl {
url = "https://jmvdveer.home.xs4all.nl/learning-algol-68-genie.pdf";
hash = "sha256-QCwn1e/lVfTYTeolCFErvfMhvwCgsBnASqq2K+NYmlU=";
};
in lib.optionalString withPDFDoc
2021-07-30 09:20:36 +03:00
''
install -m644 ${pdfdoc} ${placeholder "doc"}/share/doc/algol68g/learning-algol-68-genie.pdf
2021-07-30 09:20:36 +03:00
'';
meta = {
2021-07-30 09:20:36 +03:00
homepage = "https://jmvdveer.home.xs4all.nl/en.algol-68-genie.html";
description = "Algol 68 Genie compiler-interpreter";
longDescription = ''
Algol 68 Genie (a68g) is a recent checkout hybrid compiler-interpreter,
written from scratch by Marcel van der Veer. It ranks among the most
complete Algol 68 implementations. It implements for example arbitrary
precision arithmetic, complex numbers, parallel processing, partial
parametrisation and formatted transput, as well as support for curses,
regular expressions and sounds. It can be linked to GNU plotutils, the GNU
scientific library and PostgreSQL.
'';
license = lib.licenses.gpl3Plus;
mainProgram = "a68g";
2023-10-15 06:37:24 +03:00
maintainers = with lib.maintainers; [ AndersonTorres ];
platforms = lib.platforms.unix;
2021-07-30 09:20:36 +03:00
};
})