summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2017-03-02 11:50:17 +0100
committerRicardo Wurmus <rekado@elephly.net>2017-05-15 22:33:13 +0200
commitd44bcd7ac7295dbcbf0bd103901f277deadb943e (patch)
tree1d75908cc1b304b452c222913b41304f03350652
parentc48a145fbb613ac2b623f0a11278848923b312f1 (diff)
gnu: Add java-asm.
* gnu/packages/java.scm (java-asm): 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 127f4521ad..c68ff1477d 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2826,3 +2826,47 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;"))))
`(("junit" ,java-junit)))
(propagated-inputs
`(("stringtemplate" ,stringtemplate3)))))
+
+(define-public java-asm
+ (package
+ (name "java-asm")
+ (version "5.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://download.forge.ow2.org/asm/"
+ "asm-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0kxvmv5275rnjl7jv0442k3wjnq03ngkb7sghs78avf45pzm4qgr"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:build-target "compile"
+ #:test-target "test"
+ ;; The tests require an old version of Janino, which no longer compiles
+ ;; with the JDK7.
+ #:tests? #f
+ ;; We don't need these extra ant tasks, but the build system asks us to
+ ;; provide a path anyway.
+ #:make-flags (list (string-append "-Dobjectweb.ant.tasks.path=foo"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'build-jars
+ (lambda* (#:key make-flags #:allow-other-keys)
+ ;; We cannot use the "jar" target because it depends on a couple
+ ;; of unpackaged, complicated tools.
+ (mkdir "dist")
+ (zero? (system* "jar"
+ "-cf" (string-append "dist/asm-" ,version ".jar")
+ "-C" "output/build/tmp" "."))))
+ (replace 'install
+ (install-jars "dist")))))
+ (native-inputs
+ `(("java-junit" ,java-junit)))
+ (home-page "http://asm.ow2.org/")
+ (synopsis "Very small and fast Java bytecode manipulation framework")
+ (description "ASM is an all purpose Java bytecode manipulation and
+analysis framework. It can be used to modify existing classes or dynamically
+generate classes, directly in binary form. The provided common
+transformations and analysis algorithms allow to easily assemble custom
+complex transformations and code analysis tools.")
+ (license license:bsd-3)))