nonguix/modules/nongnu/packages/coq.scm
Giacomo Leidi 89b524ab58
Move Guile modules under modules/ .
This patch moves Guile modules shipped as a Guix channel under the
modules directory.  The rationale behind this is that we are probably
adding unwanted files into Guile's load path, such as the news file and
possible scripts that could be added to the channel repository in the future.

* guix-channel (channel): Set directory field.

* nongnu/*: Move under modules/nongnu.

* nonguix/*: Move under modules/nonguix.
2025-01-04 02:11:36 +01:00

78 lines
3.1 KiB
Scheme

;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2021 Isaac Young <isyoung@pm.me>
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
(define-module (nongnu packages coq)
#:use-module (ice-9 match)
#:use-module (guix packages)
#:use-module (guix build-system gnu)
#:use-module (guix git-download)
#:use-module (gnu packages coq)
#:use-module (gnu packages ocaml)
#:use-module (nonguix licenses))
(define-public compcert
(package
(name "compcert")
(version "3.14")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/AbsInt/compcert")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"030fsg0qr9aasmwk0ahp78sw8rbjmf6pl1w9ws5ghs61kyk4qwj1"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((system ,(match (or (%current-target-system) (%current-system))
("armhf-linux" "arm-eabihf")
("i686-linux" "x86_32-linux")
(s s))))
(format #t "Building for ~a~%" system)
(invoke "./configure" system "-prefix"
(assoc-ref outputs "out")))
#t))
(add-after 'install 'install-lib
(lambda* (#:key outputs #:allow-other-keys)
(for-each
(lambda (file)
(install-file
file
(string-append
(assoc-ref outputs "out")
"/lib/coq/user-contrib/compcert/" (dirname file))))
(find-files "." ".*.vo$"))
#t)))
#:tests? #f))
;; MIPS is not supported.
(supported-systems (delete "mips64el-linux" %supported-systems))
(native-inputs
(list coq
ocaml
ocaml-findlib)) ; for menhir --suggest-menhirlib
(inputs
(list ocaml-menhir))
(home-page "http://compcert.inria.fr")
(synopsis "Certified C compiler")
(description "The CompCert project investigates the formal verification of
realistic compilers usable for critical embedded software. Such verified
compilers come with a mathematical, machine-checked proof that the generated
executable code behaves exactly as prescribed by the semantics of the source
program. By ruling out the possibility of compiler-introduced bugs, verified
compilers strengthen the guarantees that can be obtained by applying formal
methods to source programs.
The main result of the project is the CompCert C verified compiler, a
high-assurance compiler for almost all of the C language (ISO C99), generating
efficient code for the PowerPC, ARM, RISC-V and x86 processors.")
;; actually the "INRIA Non-Commercial License Agreement"
;; a non-free license.
(license (nonfree "file:///LICENSE"))))