1{
2 lib,
3 stdenv,
4 fetchurl,
5}:
6
7stdenv.mkDerivation rec {
8 pname = "gnu-cim";
9 version = "5.1";
10
11 outputs = [
12 "out"
13 "lib"
14 "man"
15 "info"
16 ];
17
18 src = fetchurl {
19 url = "mirror://gnu/cim/cim-${version}.tar.gz";
20 hash = "sha256-uQcXtm7EAFA73WnlN+i38+ip0QbDupoIoErlc2mgaak=";
21 };
22
23 postPatch = ''
24 for fname in lib/{simulation,simset}.c; do
25 substituteInPlace "$fname" \
26 --replace-fail \
27 '#include "../../lib/cim.h"' \
28 '#include "../lib/cim.h"'
29 done
30 '';
31
32 # lib.escapeShellArgs does not work
33 env.CFLAGS = lib.concatStringsSep " " [
34 "-Wno-error=implicit-function-declaration"
35 "-Wno-error=implicit-int"
36 "-Wno-error=return-mismatch"
37 "-Wno-error=incompatible-pointer-types"
38 ];
39
40 doCheck = true;
41
42 meta = with lib; {
43 description = "GNU compiler for the programming language Simula";
44 longDescription = ''
45 GNU Cim is a compiler for the programming language Simula.
46 It offers a class concept, separate compilation with full type checking,
47 interface to external C routines, an application package for process
48 simulation and a coroutine concept. Commonly used with the Demos for
49 discrete event modelling.
50 '';
51 homepage = "https://www.gnu.org/software/cim/";
52 license = licenses.gpl2;
53 platforms = platforms.all;
54 badPlatforms = [ "aarch64-darwin" ];
55 maintainers = with maintainers; [ pbsds ];
56 };
57}