From 4e0a5e253387a51c19e3ce82ac6b30753a769a8f Mon Sep 17 00:00:00 2001 From: Timo Kaufmann Date: Fri, 13 Apr 2018 18:12:53 +0200 Subject: [PATCH] eli: init at 4.8.1 --- pkgs/development/compilers/eli/default.nix | 91 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 93 insertions(+) create mode 100644 pkgs/development/compilers/eli/default.nix diff --git a/pkgs/development/compilers/eli/default.nix b/pkgs/development/compilers/eli/default.nix new file mode 100644 index 000000000000..93e53aa30d13 --- /dev/null +++ b/pkgs/development/compilers/eli/default.nix @@ -0,0 +1,91 @@ +{ stdenv +, fetchurl +, symlinkJoin +, makeWrapper +, tcl +, fontconfig +, tk +, ncurses +, xorg +, file +}: + +let + # eli derives the location of the include folder from the location of the lib folder + tk_combined = symlinkJoin { + name = "tk_combined"; + paths = [ + tk + tk.dev + ]; + }; + curses_combined = symlinkJoin { + name = "curses_combined"; + paths = [ + ncurses + ncurses.dev + ]; + }; +in +stdenv.mkDerivation rec { + name = "eli"; + version = "4.8.1"; + + src = fetchurl { + url = "mirror://sourceforge/project/eli-project/Eli/Eli%20${version}/eli-${version}.tar.bz2"; + sha256="1vran8583hbwrr5dciji4zkhz3f88w4mn8n9sdpr6zw0plpf1whj"; + }; + + buildInputs = [ + ncurses + fontconfig + ] ++ (with xorg; [ + libX11.dev + libXt.dev + libXaw.dev + libXext.dev + ]); + + nativeBuildInputs = [ + file + makeWrapper + ]; + + # skip interactive browser check + buildFlags = "nobrowsers"; + + + preConfigure='' + configureFlagsArray=( + --with-tcltk="${tcl} ${tk_combined}" + --with-curses="${curses_combined}" + ) + export ODIN_LOCALIPC=1 + ''; + + postInstall = '' + wrapProgram "$out/bin/eli" \ + --set ODIN_LOCALIPC 1 + ''; + + # Test if eli starts + doInstallCheck = true; + installCheckPhase = '' + export HOME="$TMP/home" + mkdir -p "$HOME" + $out/bin/eli "!ls" + ''; + + meta = { + description = "Translator Construction Made Easy"; + longDescription = '' + Eli is a programming environment that supports all phases of translator + construction with extensive libraries implementing common tasks, yet handling + arbitrary special cases. Output is the C subset of C++. + ''; + homepage = http://eli-project.sourceforge.net/; + license = stdenv.lib.licenses.gpl2; + maintainers = with stdenv.lib.maintainers; [ timokau ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3fd53aefa54c..640d1f963a27 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5986,6 +5986,8 @@ with pkgs; ecl = callPackage ../development/compilers/ecl { }; ecl_16_1_2 = callPackage ../development/compilers/ecl/16.1.2.nix { }; + eli = callPackage ../development/compilers/eli { }; + eql = callPackage ../development/compilers/eql {}; elmPackages = recurseIntoAttrs (callPackage ../development/compilers/elm { });