about summary refs log tree commit diff
path: root/pkgs/development/libraries/mesa/default.nix
blob: 9b78d54637127d3a062b5201355621565071969a (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
{stdenv, fetchurl, pkgconfig, x11, xlibs, libdrm}:

let

  target =
    if stdenv.system == "i686-linux" then "linux-dri-x86" else
    if stdenv.system == "x86_64-linux" then "linux-dri-x86-64" else
    abort "unsupported platform for Mesa"; # !!! change to throw, remove all the mesa asserts in all-packages.nix

  # Missing file in 7.0.2. Can be removed for >= 7.0.3.
  missingPC = fetchurl {
    url = "http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/media-libs/mesa/files/7.0.2-glw.pc.in?rev=1.1";
    sha256 = "1z4d50pllwi8g6n567dk3zxq4qmam79n72wr55mdqx0jrdj4fj0v";
  };
    
in

stdenv.mkDerivation {
  name = "mesa-7.0.2";
  
  src = fetchurl {
    url = mirror://sourceforge/mesa3d/MesaLib-7.0.2.tar.bz2;
    md5 = "93e6ed7924ff069a4f883b4fce5349dc";
  };
/*    (fetchurl {
      url = http://nix.cs.uu.nl/dist/tarballs/MesaGLUT-6.4.tar.bz2;
      md5 = "1a8c4d4fc699233f5fdb902b8753099e";
    })
    (fetchurl {
      url = http://nix.cs.uu.nl/dist/tarballs/MesaDemos-6.4.tar.bz2;
      md5 = "1a8c4d4fc699233f5fdb902b8753099e";
    }) */
  
  buildFlags = "${target}";
  
  preBuild = "
    makeFlagsArray=(INSTALL_DIR=$out DRI_DRIVER_INSTALL_DIR=$out/lib/modules/dri SHELL=$SHELL)
    cp ${missingPC} src/glw/glw.pc.in
  ";
  
  buildInputs = [
    pkgconfig x11 xlibs.makedepend libdrm xlibs.glproto xlibs.libXmu
    xlibs.libXi xlibs.libXxf86vm xlibs.libXfixes xlibs.libXdamage
  ];
  
  passthru = {inherit libdrm;};
  
  meta = {
    description = "An open source implementation of OpenGL";
    homepage = http://www.mesa3d.org/;
  };
}