summary refs log tree commit diff
path: root/pkgs/development/interpreters/io/default.nix
blob: 3277d0145f94f70ba7f8a9746e8c503b7244e97a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
args :  
let 
  lib = args.lib;
  fetchurl = args.fetchurl;
  fullDepEntry = args.fullDepEntry;
  doPatchShebangs = args.doPatchShebangs;

  version = lib.attrByPath ["version"] "2008.03.30" args; 
  buildInputs = with args; [
    zlib sqlite gmp libffi cairo ncurses freetype mesa
    libpng libtiff libjpeg readline libsndfile libxml2
    freeglut e2fsprogs libsamplerate pcre libevent libedit
  ];
in
rec {
  src = /* Here a fetchurl expression goes */
    fetchurl {
      url = "http://github.com/stevedekorte/io/tarball/${version}";
      name = "io-${version}.tar.gz";
      sha256 = "0mn7vm2q1r5l3la5k4hdx5cqrp3nhpw01ywnx43k9gfxkdbajn9g";
    };

  inherit buildInputs;
  configureFlags = [];

  makeFlags = ["INSTALL_PREFIX=$out"];

  /* doConfigure should be specified separately */
  phaseNames = ["preBuild" "doMakeInstall" "postInstall" (doPatchShebangs "$out/share/io/samples") 
    (doPatchShebangs "$out/lib/io")];
      
  preBuild = fullDepEntry (''
    for i in $pkgs ${
        if args.stdenv ? glibc then args.stdenv.glibc else ""
      } ${
        if args ? libffi &&  args.libffi != null then "$(echo ${args.libffi}/lib/*/include/..)" else ""
      }; do
        echo "Path: $i"
        sed -i build/AddonBuilder.io -e '/"\/sw"/asearchPrefixes append("'"$i"'"); '
	sed -i addons/Flux/io/Flux.io -e 's@/usr/local/@'"$out/"'@g' 
    done
  '') ["minInit" "addInputs" "doUnpack"];

  postInstall = fullDepEntry (''
    ensureDir $out/share/io

    ln -s $out/lib/io/addons $out/share/io
    cp -r samples $out/share/io
  '') ["minInit" "doUnpack" "defEnsureDir" "doMakeInstall"];

  name = "io-" + version;
  meta = {
    description = "Io programming language";
  };
}