summary refs log tree commit diff
path: root/pkgs/development/compilers/squeak/default.nix
blob: 7f3ed5c6ec3a867f125183592d3b154e087f2626 (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
{ stdenv, fetchurl, cmake, coreutils, dbus, freetype, glib, gnused
, libpthreadstubs, pango, pkgconfig, libpulseaudio, which }:

let version = "4.10.2.2614"; in
stdenv.mkDerivation {
  name = "squeak-${version}";

  src = fetchurl {
    sha256 = "0bpwbnpy2sb4gylchfx50sha70z36bwgdxraym4vrr93l8pd3dix";
    url = "http://squeakvm.org/unix/release/Squeak-${version}-src.tar.gz";
  };

  meta = with stdenv.lib; {
    inherit version;
    description = "Smalltalk programming language and environment";
    longDescription = ''
      Squeak is a full-featured implementation of the Smalltalk programming
      language and environment based on (and largely compatible with) the
      original Smalltalk-80 system. Squeak has very powerful 2- and 3-D
      graphics, sound, video, MIDI, animation and other multimedia
      capabilities. It also includes a customisable framework for creating
      dynamic HTTP servers and interactively extensible Web sites.
    '';
    homepage = http://squeakvm.org/;
    downloadPage = http://squeakvm.org/unix/index.html;
    license = with licenses; [ asl20 mit ];
    platforms = with platforms; linux;
    maintainers = with maintainers; [ nckx ];
  };

  buildInputs = [ coreutils dbus freetype glib gnused libpthreadstubs
    pango libpulseaudio which ];
  nativeBuildInputs = [ cmake pkgconfig ];

  postPatch = ''
    for i in squeak.in squeak.sh.in; do
      substituteInPlace unix/cmake/$i --replace "PATH=" \
        "PATH=${coreutils}/bin:${gnused}/bin:${which}/bin #"
    done
  '';

  configurePhase = ''
    unix/cmake/configure --prefix=$out --enable-mpg-{mmx,pthreads}
  '';

  enableParallelBuilding = true;
}