aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/ocaml.scm42
1 files changed, 42 insertions, 0 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 69a3801e97..7a5ea6bfbc 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -864,3 +864,45 @@ arbitrary-precision integers. It uses GMP to efficiently implement arithmetic
over big integers. Small integers are represented as Caml unboxed integers,
for speed and space economy.")
(license license:lgpl2.1+))) ; with an exception
+
+(define-public ocaml-frontc
+ (package
+ (name "ocaml-frontc")
+ (version "3.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.irit.fr/recherches/ARCHI/MARCH/"
+ "frontc/Frontc-" version ".tgz"))
+ (sha256
+ (base32
+ "16dz153s92dgbw1rrfwbhscy73did87kfmjwyh3qpvs748h1sc4g"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'install 'install-meta
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (with-output-to-file
+ (string-append out "/lib/ocaml/frontc/META")
+ (lambda _
+ (display
+ (string-append
+ "description = \"Parser for the C language\"
+version = \"" ,version "\"
+requires = \"unix\"
+archive(byte) = \"frontc.cma\"
+archive(native) = \"frontc.cmxa\""))))
+ (symlink (string-append out "/lib/ocaml/frontc")
+ (string-append out "/lib/ocaml/FrontC"))))))
+ #:make-flags (list (string-append "PREFIX="
+ (assoc-ref %outputs "out"))
+ "OCAML_SITE=$(LIB_DIR)/ocaml/")))
+ (home-page "https://www.irit.fr/FrontC")
+ (synopsis "C parser and lexer library")
+ (description "FrontC is an OCAML library providing a C parser and lexer.
+The result is a syntactic tree easy to process with usual OCAML tree management.
+It provides support for ANSI C syntax, old-C K&R style syntax and the standard
+GNU CC attributes. It provides also a C pretty printer as an example of use.")
+ (license license:lgpl2.1)))