Add ocaml 4.07

Julien LepillerWed Sep 19 11:58:25+0200 2018

ce55973

Add ocaml 4.07

more/packages/ocaml.scm

5252
                 (number->string file-number) "/" name "-" version
5353
                 ".tar.gz"))
5454
55+
(define-public ocaml-4.07
56+
  (package
57+
    (inherit ocaml)
58+
    (version "4.07.0")
59+
    (source (origin
60+
              (method url-fetch)
61+
              (uri (string-append
62+
                    "http://caml.inria.fr/pub/distrib/ocaml-"
63+
                    (version-major+minor version)
64+
                    "/ocaml-" version ".tar.xz"))
65+
              (sha256
66+
               (base32
67+
                "03wzkzv6w4rdiiva20g5amz0n4x75swpjl8d80468p6zm8hgfnzl"))))
68+
    (arguments
69+
     `(#:phases
70+
       (modify-phases %standard-phases
71+
         (add-after 'unpack 'patch-/bin/sh-references
72+
           (lambda* (#:key inputs #:allow-other-keys)
73+
             (let* ((sh (string-append (assoc-ref inputs "bash")
74+
                                       "/bin/sh"))
75+
                    (quoted-sh (string-append "\"" sh "\"")))
76+
               (with-fluids ((%default-port-encoding #f))
77+
                 (for-each
78+
                  (lambda (file)
79+
                    (substitute* file
80+
                      (("\"/bin/sh\"")
81+
                       (begin
82+
                         (format (current-error-port) "\
83+
patch-/bin/sh-references: ~a: changing `\"/bin/sh\"' to `~a'~%"
84+
                                 file quoted-sh)
85+
                         quoted-sh))))
86+
                  (find-files "." "\\.ml$"))
87+
                 #t))))
88+
         (replace 'configure
89+
           (lambda* (#:key outputs #:allow-other-keys)
90+
             (let* ((out (assoc-ref outputs "out"))
91+
                    (mandir (string-append out "/share/man")))
92+
               ;; Custom configure script doesn't recognize
93+
               ;; --prefix=<PREFIX> syntax (with equals sign).
94+
               (invoke "./configure"
95+
                       "--prefix" out
96+
                       "--mandir" mandir))
97+
             #t))
98+
         (replace 'build
99+
           (lambda _
100+
             (invoke "make" "-j" (number->string
101+
                                  (parallel-job-count))
102+
                     "world.opt")
103+
             #t))
104+
         (delete 'check)
105+
         (add-after 'install 'check
106+
           (lambda _
107+
             (with-directory-excursion "testsuite"
108+
               (invoke "make" "all"))
109+
             #t)))))))
110+
55111
(define-public ocaml-fix
56112
  (package
57113
    (inherit ocaml)