biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / science / math / glsurf / default.nix
blobd2ebba75638b9befa3b926887b2bb64bbabf9b01
1 { lib
2 , stdenv
3 , fetchurl
4 , ocamlPackages
5 , makeWrapper
6 , libGLU
7 , libGL
8 , freeglut
9 , mpfr
10 , gmp
11 , pkgsHostTarget
14 let
15   inherit (pkgsHostTarget.targetPackages.stdenv) cc;
18 stdenv.mkDerivation rec {
19   pname = "glsurf";
20   version = "3.3.1";
22   src = fetchurl {
23     url = "https://raffalli.eu/~christophe/glsurf/glsurf-${version}.tar.gz";
24     sha256 = "0w8xxfnw2snflz8wdr2ca9f5g91w5vbyp1hwlx1v7vg83d4bwqs7";
25   };
27   nativeBuildInputs = [
28     makeWrapper
29   ] ++ (with ocamlPackages; [
30     ocaml
31     findlib
32   ]);
34   buildInputs = [
35     freeglut
36     libGL
37     libGLU
38     mpfr
39     gmp
40   ] ++ (with ocamlPackages; [
41     camlp4
42     lablgl
43     camlimages
44     num
45   ]);
47   postPatch = ''
48     for f in callbacks*/Makefile src/Makefile; do
49       substituteInPlace "$f" --replace "+camlp4" \
50         "${ocamlPackages.camlp4}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/camlp4"
51     done
53     # Fatal error: exception Sys_error("Mutex.unlock: Operation not permitted")
54     sed -i "/gl_started/d" src/draw.ml* src/main.ml
55   '';
57   installPhase = ''
58     mkdir -p $out/bin $out/share/doc/glsurf
59     cp ./src/glsurf.opt $out/bin/glsurf
60     cp ./doc/doc.pdf $out/share/doc/glsurf
61     cp -r ./examples $out/share/doc/glsurf
63     wrapProgram "$out/bin/glsurf" --set CC "${cc}/bin/${cc.targetPrefix}cc"
64   '';
66   meta = {
67     homepage = "https://raffalli.eu/~christophe/glsurf/";
68     description = "A program to draw implicit surfaces and curves";
69     mainProgram = "glsurf";
70     license = lib.licenses.gpl2Plus;
71     platforms = lib.platforms.all;
72   };