summary refs log tree commit diff
diff options
context:
space:
mode:
authorRicardo Wurmus <ricardo.wurmus@mdc-berlin.de>2017-05-08 15:34:15 +0200
committerRicardo Wurmus <rekado@elephly.net>2017-05-22 18:55:34 +0200
commite1ae3587d26336251d24bed10a9172a9d9fb2f57 (patch)
tree9f82979ee04520fb08a462a7dc6486724ccc0829
parent296b3c631c2e8cf42f5a0920cd11c424daec9ea4 (diff)
downloadguix-e1ae3587d26336251d24bed10a9172a9d9fb2f57.tar.gz
gnu: Add jikes.
* gnu/packages/java.scm (jikes): New variable.
-rw-r--r--gnu/packages/java.scm44
1 files changed, 44 insertions, 0 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index e86c904e71..6dc97fede7 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -60,6 +60,50 @@
   #:use-module (srfi srfi-11)
   #:use-module (ice-9 match))
 
+
+;;;
+;;; Java bootstrap toolchain.
+;;;
+
+;; The Java bootstrap begins with Jikes, a Java compiler written in C++.  We
+;; use it to build the SableVM standard library and virtual machine, which are
+;; written in a simpler dialect of Java and C, respectively.  This is
+;; sufficient to build an older version of Ant, which is needed to build an
+;; older version of ECJ, an incremental Java compiler, both of which are
+;; written in Java.
+;;
+;; ECJ is needed to build the latest release of GNU Classpath (0.99).
+;; Classpath (> 0.98) is a requirement for JamVM, a more modern implementation
+;; of the Java virtual machine.
+;;
+;; With JamVM we can build the latest development version of GNU Classpath,
+;; which has much more support for Java 1.6 than the latest release.  Since
+;; the previous build of JamVM is limited by the use of GNU Classpath 0.99 we
+;; rebuild it with the latest development version of GNU Classpath.
+;;
+;; Finally, we use the bootstrap toolchain to build the OpenJDK with the
+;; Icedtea 1.x build framework.  We then build the more recent JDKs Icedtea
+;; 2.x and Icedtea 3.x.
+
+(define jikes
+  (package
+    (name "jikes")
+    (version "1.22")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/jikes/Jikes/"
+                                  version "/jikes-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1qqldrp74pzpy5ly421srqn30qppmm9cvjiqdngk8hf47dv2rc0c"))))
+    (build-system gnu-build-system)
+    (home-page "http://jikes.sourceforge.net/")
+    (synopsis "Compiler for the Java language")
+    (description "Jikes is a compiler that translates Java source files as
+defined in The Java Language Specification into the bytecoded instruction set
+and binary format defined in The Java Virtual Machine Specification.")
+    (license license:ibmpl1.0)))
+
 (define-public java-swt
   (package
     (name "java-swt")