summary refs log tree commit diff
path: root/pkgs/development/compilers/gnu-cobol/default.nix
blob: c5e42c3afe8a51c4b81351a6e08cf6b57ec0a8b9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{ stdenv, fetchurl, gcc, makeWrapper
, db, gmp, ncurses }:

let
  version = "2.2";
  lib = stdenv.lib;
in
stdenv.mkDerivation rec {
  pname = "gnu-cobol";
  inherit version;

  src = fetchurl {
    url = "https://sourceforge.com/projects/open-cobol/files/gnu-cobol/${version}/gnucobol-${version}.tar.gz";
    sha256 = "1jrjmdx0swssjh388pp08awhiisbrs2i7gx4lcm4p1k5rpg3hn4j";
  };

  nativeBuildInputs = [ makeWrapper ];

  buildInputs = [ db gmp ncurses ];

  cflags  = stdenv.lib.concatMapStringsSep " " (p: "-L" + (lib.getLib p) + "/lib ") buildInputs;
  ldflags = stdenv.lib.concatMapStringsSep " " (p: "-I" + (lib.getDev p) + "/include ") buildInputs;

  cobolCCFlags = "-I$out/include ${ldflags} -L$out/lib ${cflags}";

  postInstall = with stdenv.lib; ''
    wrapProgram "$out/bin/cobc" \
      --set COB_CC "${gcc}/bin/gcc" \
      --prefix COB_LDFLAGS " " "${cobolCCFlags}" \
      --prefix COB_CFLAGS " " "${cobolCCFlags}"
  '';

  meta = with stdenv.lib; {
    description = "An open-source COBOL compiler";
    homepage = "https://sourceforge.net/projects/open-cobol/";
    license = licenses.gpl3;
    maintainers = with maintainers; [ ericsagnes the-kenny ];
    platforms = with platforms; linux ++ darwin;
  };
}