diff options
Diffstat (limited to 'nixpkgs/pkgs/development/interpreters/j/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/interpreters/j/default.nix | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/interpreters/j/default.nix b/nixpkgs/pkgs/development/interpreters/j/default.nix new file mode 100644 index 000000000000..b7f8b63d54ad --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/j/default.nix @@ -0,0 +1,78 @@ +{ stdenv, fetchFromGitHub, readline, libedit, bc +, avxSupport ? stdenv.hostPlatform.avxSupport +}: + +stdenv.mkDerivation rec { + pname = "j"; + version = "901"; + jtype = "release-f"; + src = fetchFromGitHub { + owner = "jsoftware"; + repo = "jsource"; + rev = "j${version}-${jtype}"; + sha256 = "1776021m0j1aanzwg60by83n53pw7i6afd5wplfzczwk8bywax4p"; + name = "jsource"; + }; + + buildInputs = [ readline libedit bc ]; + bits = if stdenv.is64bit then "64" else "32"; + platform = + if (stdenv.isAarch32 || stdenv.isAarch64) then "raspberry" else + if stdenv.isLinux then "linux" else + if stdenv.isDarwin then "darwin" else + "unknown"; + variant = if stdenv.isx86_64 && avxSupport then "avx" else ""; + + j64x="j${bits}${variant}"; + + doCheck = true; + + # Causes build failure due to warning + hardeningDisable = stdenv.lib.optional stdenv.cc.isClang "strictoverflow"; + + buildPhase = '' + export SOURCE_DIR=$(pwd) + export HOME=$TMPDIR + export JLIB=$SOURCE_DIR/jlibrary + + echo $OUT_DIR + + cd make2 + + patchShebangs . + sed -i $JLIB/bin/profile.ijs -e "s@'/usr/share/j/.*'@'$out/share/j'@;" + + j64x="${j64x}" ./build_all.sh + + cp $SOURCE_DIR/bin/${platform}/j${bits}*/* "$JLIB/bin" + ''; + + checkPhase = '' + + echo 'i. 5' | $JLIB/bin/jconsole | fgrep "0 1 2 3 4" + + # Now run the real tests + cd $SOURCE_DIR/test + for f in *.ijs + do + echo $f + $JLIB/bin/jconsole < $f > /dev/null || echo FAIL && echo PASS + done + ''; + + installPhase = '' + mkdir -p "$out" + + mkdir -p "$out/share/j" + cp -r $JLIB/{addons,system} "$out/share/j" + cp -r $JLIB/bin "$out" + ''; + + meta = with stdenv.lib; { + description = "J programming language, an ASCII-based APL successor"; + maintainers = with maintainers; [ raskin synthetica ]; + platforms = with platforms; linux ++ darwin; + license = licenses.gpl3Plus; + homepage = "http://jsoftware.com/"; + }; +} |