jasmin: init at 2.4
This commit is contained in:
parent
fa2909bf51
commit
446368e529
44
pkgs/development/compilers/jasmin/default.nix
Normal file
44
pkgs/development/compilers/jasmin/default.nix
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{ stdenv
|
||||||
|
, fetchurl
|
||||||
|
, unzip
|
||||||
|
, jdk
|
||||||
|
, ant
|
||||||
|
, makeWrapper
|
||||||
|
, jre
|
||||||
|
, callPackage
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "jasmin";
|
||||||
|
version = "2.4";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "mirror://sourceforge/jasmin/jasmin-${version}/jasmin-${version}.zip";
|
||||||
|
sha256 = "17a41vr96glcdrdbk88805wwvv1r6w8wg7if23yhd0n6rrl0r8ga";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ unzip jdk ant makeWrapper ];
|
||||||
|
|
||||||
|
buildPhase = "ant all";
|
||||||
|
installPhase =
|
||||||
|
''
|
||||||
|
install -Dm644 jasmin.jar $out/share/java/jasmin.jar
|
||||||
|
mkdir -p $out/bin
|
||||||
|
makeWrapper ${jre}/bin/java $out/bin/jasmin \
|
||||||
|
--add-flags "-jar $out/share/java/jasmin.jar"
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru.tests = {
|
||||||
|
minimal-module = callPackage ./test-assemble-hello-world {};
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "An assembler for the Java Virtual Machine";
|
||||||
|
homepage = "http://jasmin.sourceforge.net/";
|
||||||
|
downloadPage = "https://sourceforge.net/projects/jasmin/files/latest/download";
|
||||||
|
license = licenses.bsd3;
|
||||||
|
maintainers = with maintainers; [ fgaz ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,31 @@
|
|||||||
|
.class public HelloWorld
|
||||||
|
.super java/lang/Object
|
||||||
|
|
||||||
|
;
|
||||||
|
; standard initializer (calls java.lang.Object's initializer)
|
||||||
|
;
|
||||||
|
.method public <init>()V
|
||||||
|
aload_0
|
||||||
|
invokenonvirtual java/lang/Object/<init>()V
|
||||||
|
return
|
||||||
|
.end method
|
||||||
|
|
||||||
|
;
|
||||||
|
; main() - prints out Hello World
|
||||||
|
;
|
||||||
|
.method public static main([Ljava/lang/String;)V
|
||||||
|
.limit stack 2 ; up to two items can be pushed
|
||||||
|
|
||||||
|
; push System.out onto the stack
|
||||||
|
getstatic java/lang/System/out Ljava/io/PrintStream;
|
||||||
|
|
||||||
|
; push a string onto the stack
|
||||||
|
ldc "Hello World!"
|
||||||
|
|
||||||
|
; call the PrintStream.println() method.
|
||||||
|
invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
|
||||||
|
|
||||||
|
; done
|
||||||
|
return
|
||||||
|
.end method
|
||||||
|
|
@ -0,0 +1,12 @@
|
|||||||
|
{ stdenv, jasmin, jre }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "jasmin-test-assemble-hello-world";
|
||||||
|
meta.timeout = 60;
|
||||||
|
buildCommand = ''
|
||||||
|
${jasmin}/bin/jasmin ${./HelloWorld.j}
|
||||||
|
${jre}/bin/java HelloWorld | grep "Hello World"
|
||||||
|
touch $out
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
|
@ -8226,6 +8226,8 @@ in
|
|||||||
inherit installjdk pluginSupport;
|
inherit installjdk pluginSupport;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
jasmin = callPackage ../development/compilers/jasmin { };
|
||||||
|
|
||||||
javacard-devkit = pkgsi686Linux.callPackage ../development/compilers/javacard-devkit { };
|
javacard-devkit = pkgsi686Linux.callPackage ../development/compilers/javacard-devkit { };
|
||||||
|
|
||||||
julia_07 = callPackage ../development/compilers/julia/0.7.nix {
|
julia_07 = callPackage ../development/compilers/julia/0.7.nix {
|
||||||
|
Loading…
Reference in New Issue
Block a user