summary refs log tree commit diff
path: root/pkgs/development/compilers/haxe/default.nix
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2012-10-07 11:24:51 +0200
committeraszlig <aszlig@redmoonstudios.org>2012-10-07 11:41:59 +0200
commit064cf682815e953b4f17d8400c9708bca7573137 (patch)
tree9d08a02c349e48de2a2b8b58dbf7fe3003db304c /pkgs/development/compilers/haxe/default.nix
parente5239b78bdade58995b0741b82987fa0676da8c9 (diff)
downloadnixpkgs-064cf682815e953b4f17d8400c9708bca7573137.tar
nixpkgs-064cf682815e953b4f17d8400c9708bca7573137.tar.gz
nixpkgs-064cf682815e953b4f17d8400c9708bca7573137.tar.bz2
nixpkgs-064cf682815e953b4f17d8400c9708bca7573137.tar.lz
nixpkgs-064cf682815e953b4f17d8400c9708bca7573137.tar.xz
nixpkgs-064cf682815e953b4f17d8400c9708bca7573137.tar.zst
nixpkgs-064cf682815e953b4f17d8400c9708bca7573137.zip
haxe: Rewrite package from scratch, version 2.10.
As well as for neko, we now have way less cruft within the mkDerivation
attribute set. We also now use make to build haxe, which will include haxelib
and haxedoc as well.

The main reason why I was doing this was because the package didn't build and
still was referencing mawercer.de, which does not contain those tarballs
anymore.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'pkgs/development/compilers/haxe/default.nix')
-rw-r--r--pkgs/development/compilers/haxe/default.nix162
1 files changed, 27 insertions, 135 deletions
diff --git a/pkgs/development/compilers/haxe/default.nix b/pkgs/development/compilers/haxe/default.nix
index 8018b478e80..f7af2467e5f 100644
--- a/pkgs/development/compilers/haxe/default.nix
+++ b/pkgs/development/compilers/haxe/default.nix
@@ -1,141 +1,33 @@
-args: with args;
+{ stdenv, fetchsvn, ocaml, zlib, neko }:
 
-let
+stdenv.mkDerivation {
+  name = "haxe-2.10";
 
-    src_haxe_swflib = {
-      # REGION AUTO UPDATE:                                { name = "haxe_swflib"; type="cvs"; cvsRoot = ":pserver:anonymous@cvs.motion-twin.com:/cvsroot"; module = "ocaml/swflib"; groups = "haxe_group"; }
-      src = sourceFromHead "haxe_swflib-F_10-43-46.tar.gz"
-                   (fetchurl { url = "http://mawercer.de/~nix/repos/haxe_swflib-F_10-43-46.tar.gz"; sha256 = "a63de75e48bf500ef0e8ef715d178d32f0ef113ded8c21bbca698a8cc70e7b58"; });
-      # END
-    }.src;
+  buildInputs = [ocaml zlib neko];
 
-    src_haxe_extc = { 
-      # REGION AUTO UPDATE:                                { name = "haxe_extc"; type="cvs"; cvsRoot = ":pserver:anonymous@cvs.motion-twin.com:/cvsroot"; module = "ocaml/extc"; groups = "haxe_group"; }
-      src = sourceFromHead "haxe_extc-F_10-43-47.tar.gz"
-                   (fetchurl { url = "http://mawercer.de/~nix/repos/haxe_extc-F_10-43-47.tar.gz"; sha256 = "d0a9980527d62ac6cfe27925ddb0964d334ec382f813fdfb8bd6c59fbbede730"; });
-      # END
-    }.src;
-
-    src_haxe_extlib_dev = { 
-      # REGION AUTO UPDATE:                                { name = "haxe_extlib_dev"; type="cvs"; cvsRoot = ":pserver:anonymous@cvs.motion-twin.com:/cvsroot"; module = "ocaml/extlib-dev"; groups = "haxe_group"; }
-      src = sourceFromHead "haxe_extlib_dev-F_10-43-48.tar.gz"
-                   (fetchurl { url = "http://mawercer.de/~nix/repos/haxe_extlib_dev-F_10-43-48.tar.gz"; sha256 = "6b9037230e2615dd5e22f4e7f4165c84f2816bc526957683afc945394fcdf67e"; });
-      # END
-    }.src;
-
-    src_haxe_xml_light = { 
-      # REGION AUTO UPDATE:                                { name = "haxe_xml_light"; type="cvs"; cvsRoot = ":pserver:anonymous@cvs.motion-twin.com:/cvsroot"; module = "ocaml/xml-light"; groups = "haxe_group"; }
-      src = sourceFromHead "haxe_xml_light-F_10-43-48.tar.gz"
-                   (fetchurl { url = "http://mawercer.de/~nix/repos/haxe_xml_light-F_10-43-48.tar.gz"; sha256 = "be29d9e22ad0dbcb3d447cbbc14907aff5f89bb562b8db369659d299f3a5b44f"; });
-      # END
-    }.src;
-
-    src_haxe_neko_include = { 
-      # REGION AUTO UPDATE:                                { name = "haxe_neko_include"; type="cvs"; cvsRoot = ":pserver:anonymous@cvs.motion-twin.com:/cvsroot"; module = "neko/libs/include/ocaml"; groups = "haxe_group"; }
-      src = sourceFromHead "haxe_neko_include-F_10-43-49.tar.gz"
-                   (fetchurl { url = "http://mawercer.de/~nix/repos/haxe_neko_include-F_10-43-49.tar.gz"; sha256 = "e49efc1b348fa6e0f6fb40079a2d380b947d9ebda31843bc293f3cc77f8453db"; });
-      # END
-    }.src;
-
-    src_haxe = {
-      # REGION AUTO UPDATE:       { name="haxe-read-only"; type="svn"; url="http://haxe.googlecode.com/svn/trunk"; groups = "haxe_group"; }
-      src = sourceFromHead "haxe-read-only-3220.tar.gz"
-                   (fetchurl { url = "http://mawercer.de/~nix/repos/haxe-read-only-3220.tar.gz"; sha256 = "2b6702dca95d0829e539cea07b8224e3848e584a425ce8f8e0984a7a2bf7b1f8"; });
-      # END
-    }.src;
-
-
-    # the HaXe compiler
-    haxe = stdenv.mkDerivation {
-      name = "haxe-cvs";
-
-      buildInputs = [ocaml zlib makeWrapper];
-
-      src = src_haxe;
-
-      inherit zlib;
-
-      buildPhase = ''
-        set -x
-        mkdir -p ocaml/{swflib,extc,extlib-dev,xml-light} neko/libs
-
-        # strange setup. install.ml seems to co the same repo again into haxe directory!
-        mkdir haxe
-        tar xfz $src --strip-components=1 -C haxe
-
-        t(){ tar xfz $1 -C $2 --strip-components=2; }
-        t ${src_haxe_swflib} ocaml/swflib
-        t ${src_haxe_extc} ocaml/extc
-        t ${src_haxe_extlib_dev} ocaml/extlib-dev
-        t ${src_haxe_xml_light} ocaml/xml-light
-        t ${src_haxe_neko_include} neko/libs
-
-        sed -e '/download();/d' \
-            -e "s@/usr/lib/@''${zlib}/lib/@g" \
-            doc/install.ml > install.ml
-        
-        ocaml install.ml
-      '';
-
-      # probably rpath should be set properly
-      installPhase = ''
-        mkdir -p $out/lib/haxe
-        cp -r bin $out/bin
-        wrapProgram "$out/bin/haxe" \
-          --set "LD_LIBRARY_PATH" $zlib/lib \
-          --set HAXE_LIBRARY_PATH "''${HAXE_LIBRARY_PATH}''${HAXE_LIBRARY_PATH:-:}:$out/lib/haxe/std:."
-        cp -r std $out/lib/haxe/
-      '';
-
-      meta = { 
-        description = "programming language targeting JavaScript, Flash, NekVM, PHP, C++";
-        homepage = http://haxe.org;
-        license = ["GPLv2" "BSD2" /*?*/ ];  # -> docs/license.txt
-        maintainers = [args.lib.maintainers.marcweber];
-        platforms = args.lib.platforms.linux;
-      };
-    };
-
-    # build a tool found in std/tools/${name} source directory
-    # the .hxml files contain a recipe  to cerate a binary.
-    tool = { name, description }: stdenv.mkDerivation {
-
-        inherit name;
-
-        src = src_haxe;
-
-        buildPhase = ''
-          cd std/tools/${name};
-          haxe *.hxml
-          mkdir -p $out/bin
-          mv ${name} $out/bin/
-        '';
-
-        buildInputs = [haxe neko];
-
-        dontStrip=1;
-
-        installPhase=":";
-
-        meta = {
-          inherit description;
-          homepage = http://haxe.org;
-          # license = "?"; TODO
-          maintainers = [args.lib.maintainers.marcweber];
-          platforms = args.lib.platforms.linux;
-        };
-
-      };
-
-in
-
-{
-
-  inherit haxe;
-
-  haxelib = tool {
-    name = "haxelib";
-    description = "haxelib is a HaXe library management tool similar to easyinstall or ruby gems";
+  src = fetchsvn {
+    url = "http://haxe.googlecode.com/svn/tags/v2-10";
+    sha256 = "dbd3c655e4136eb68a165ef83b96bfc1f0f2eb9ec8729603b19bcd717a61a679";
   };
 
+  prePatch = ''
+    sed -i -e 's|com.class_path <- \[|&"'"$out/lib/haxe/std/"'";|' main.ml
+  '';
+
+  installPhase = ''
+    install -vd "$out/bin" "$out/lib/haxe/std"
+    install -vt "$out/bin" haxe haxelib haxedoc
+    find std -mindepth 1 -maxdepth 1 -path std/tools -o \
+      -exec cp -vr '{}' "$out/lib/haxe/std" \;
+  '';
+
+  dontStrip = true;
+
+  meta = {
+    description = "Programming language targeting JavaScript, Flash, NekoVM, PHP, C++";
+    homepage = http://haxe.org;
+    license = ["GPLv2" "BSD2" /*?*/ ];  # -> docs/license.txt
+    maintainers = [stdenv.lib.maintainers.marcweber];
+    platforms = stdenv.lib.platforms.linux;
+  };
 }