summary refs log tree commit diff
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-01-21 14:39:53 +0000
committerLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-01-21 14:39:53 +0000
commita3e4c7640f18ac4bc07feafc09a0c687c34b1554 (patch)
treee2baf7b650138cf7b9601584794e1cdb8e79c4eb
parente70276079f7a0de76c67843acf252e354525dedd (diff)
downloadnixpkgs-a3e4c7640f18ac4bc07feafc09a0c687c34b1554.tar
nixpkgs-a3e4c7640f18ac4bc07feafc09a0c687c34b1554.tar.gz
nixpkgs-a3e4c7640f18ac4bc07feafc09a0c687c34b1554.tar.bz2
nixpkgs-a3e4c7640f18ac4bc07feafc09a0c687c34b1554.tar.lz
nixpkgs-a3e4c7640f18ac4bc07feafc09a0c687c34b1554.tar.xz
nixpkgs-a3e4c7640f18ac4bc07feafc09a0c687c34b1554.tar.zst
nixpkgs-a3e4c7640f18ac4bc07feafc09a0c687c34b1554.zip
Updating meshlab.
Their build system has changed, and the source tree they distribute too, so the
dependencies changed a bit.
To get meshlab working, I update lib3ds and add levmar.

svn path=/nixpkgs/trunk/; revision=19595
-rw-r--r--pkgs/applications/graphics/meshlab/default.nix29
-rw-r--r--pkgs/development/libraries/levmar/default.nix28
-rw-r--r--pkgs/development/libraries/levmar/use-atlas.patch37
-rw-r--r--pkgs/development/libraries/lib3ds/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix6
5 files changed, 93 insertions, 9 deletions
diff --git a/pkgs/applications/graphics/meshlab/default.nix b/pkgs/applications/graphics/meshlab/default.nix
index 1a1fa1605c5..bc816a1daf7 100644
--- a/pkgs/applications/graphics/meshlab/default.nix
+++ b/pkgs/applications/graphics/meshlab/default.nix
@@ -1,6 +1,6 @@
-{stdenv, fetchurl, qt, bzip2}:
+{stdenv, fetchurl, qt, bzip2, lib3ds, levmar, muparser, unzip}:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "meshlab-1.2.2";
 
   src = fetchurl {
@@ -8,14 +8,29 @@ stdenv.mkDerivation {
     sha256 = "166a8mx72wf3r84pnpr0ssqkd2xw6y5brviywlj8rjk6w9cy8fdc";
   };
 
+  srcGlew151 = fetchurl {
+    url = http://dfn.dl.sourceforge.net/sourceforge/glew/glew-1.5.1-src.tgz;
+    sha256 = "02n1p6s6sia92fgng9iq0kqq890rga8d8g0y34mc6qxmbh43vrl9";
+  };
+
+  srcQHull20031 = fetchurl {
+    url = http://www.qhull.org/download/qhull-2003.1.zip;
+    sha256 = "07mh371i6xs691qz6wwzkqk9h0d2dkih2q818is2b041w1l79b46";
+  };
 
-  setSourceRoot = "sourceRoot=`pwd`/meshlab/src";
 
-  buildPhase = ''
+  patchPhase = ''
+    cd meshlab/src
+    mkdir external
     pushd external
-    qmake -recursive external.pro
-    make
+    tar xf ${srcGlew151}
+    mv glew glew-1.5.1
+    unzip ${srcQHull20031}
     popd
+  '';
+
+  buildPhase = ''
+    pwd
     qmake -recursive meshlabv12.pro
     make
   '';
@@ -28,7 +43,7 @@ stdenv.mkDerivation {
     ln -s $out/opt/meshlab/meshlab $out/bin/meshlab
   '';
 
-  buildInputs = [ qt bzip2 ];
+  buildInputs = [ qt bzip2 lib3ds levmar muparser unzip ];
 
   meta = {
     description = "System for the processing and editing of unstructured 3D triangular meshes";
diff --git a/pkgs/development/libraries/levmar/default.nix b/pkgs/development/libraries/levmar/default.nix
new file mode 100644
index 00000000000..a17cdf0b4d5
--- /dev/null
+++ b/pkgs/development/libraries/levmar/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+        
+stdenv.mkDerivation rec {
+  name = "levmar-2.5";
+
+  src = fetchurl {
+    url = "http://www.ics.forth.gr/~lourakis/levmar/${name}.tgz";
+    sha256 = "0xcx9fvymr0j5kmfy5cqaa2lxf1c64vv25z2a28w43pkxz1nl3xp";
+  };
+
+  patchPhase = ''
+    sed -i 's/define HAVE_LAPACK/undef HAVE_LAPACK/' levmar.h
+    sed -i 's/LAPACKLIBS=.*/LAPACKLIBS=/' Makefile
+  '';
+
+  installPhase = ''
+    ensureDir $out/include $out/lib
+    cp lm.h $out/include
+    cp liblevmar.a $out/lib
+  '';
+
+  meta = { 
+    description = "ANSI C implementations of Levenberg-Marquardt, usable also from C++";
+    homepage = http://www.ics.forth.gr/~lourakis/levmar/;
+    license = "GPLv2+";
+  };
+}
+
diff --git a/pkgs/development/libraries/levmar/use-atlas.patch b/pkgs/development/libraries/levmar/use-atlas.patch
new file mode 100644
index 00000000000..2be9999b40f
--- /dev/null
+++ b/pkgs/development/libraries/levmar/use-atlas.patch
@@ -0,0 +1,37 @@
+diff --git a/Makefile b/Makefile
+index af70b4c..53c6fab 100644
+--- a/Makefile
++++ b/Makefile
+@@ -15,11 +15,11 @@ DEMOBJS=lmdemo.o
+ DEMOSRCS=lmdemo.c
+ AR=ar
+ RANLIB=ranlib
+-LAPACKLIBS=-llapack -lblas -lf2c # comment this line if you are not using LAPACK.
++#LAPACKLIBS=-llapack -lblas -lf2c # comment this line if you are not using LAPACK.
+                                  # On systems with a FORTRAN (not f2c'ed) version of LAPACK, -lf2c is
+                                  # not necessary; on others, -lf2c is equivalent to -lF77 -lI77
+ 
+-#LAPACKLIBS=-L/usr/local/atlas/lib -llapack -lcblas -lf77blas -latlas -lf2c # This works with the ATLAS updated lapack and Linux_P4SSE2
++LAPACKLIBS=-llapack -lcblas -lf77blas -latlas -lgfortran # This works with the ATLAS updated lapack and Linux_P4SSE2
+                                                                             # from http://www.netlib.org/atlas/archives/linux/
+ 
+ #LAPACKLIBS=-llapack -lgoto2 -lpthread -lf2c # This works with GotoBLAS
+diff --git a/misc.h b/misc.h
+index e32f18d..827507e 100644
+--- a/misc.h
++++ b/misc.h
+@@ -30,11 +30,11 @@
+ /* f2c'd BLAS */
+ //#define LM_BLAS_PREFIX f2c_
+ /* C BLAS */
+-//#define LM_BLAS_PREFIX cblas_
++#define LM_BLAS_PREFIX cblas_
+ 
+ /* common suffix for BLAS subroutines */
+-//#define LM_BLAS_SUFFIX  // define empty if a f2c_ or cblas_ prefix was defined for LM_BLAS_PREFIX above
+-#define LM_BLAS_SUFFIX _ // use this in case of no BLAS prefix
++#define LM_BLAS_SUFFIX  // define empty if a f2c_ or cblas_ prefix was defined for LM_BLAS_PREFIX above
++//#define LM_BLAS_SUFFIX _ // use this in case of no BLAS prefix
+ 
+ 
+ #define LCAT_(a, b)    #a b
diff --git a/pkgs/development/libraries/lib3ds/default.nix b/pkgs/development/libraries/lib3ds/default.nix
index 82367600467..a470dac24e1 100644
--- a/pkgs/development/libraries/lib3ds/default.nix
+++ b/pkgs/development/libraries/lib3ds/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   name = "lib3ds-1.3.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/lib3ds/${name}.zip";
+    url = "http://lib3ds.googlecode.com/files/${name}.zip";
     sha256 = "1qr9arfdkjf7q11xhvxwzmhxqz3nhcjkyb8zzfjpz9jm54q0rc7m";
   };
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index db1fb14b41b..7082a8c6049 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3820,6 +3820,10 @@ let
     inherit (xlibs) libXp libXau;
   };
 
+  levmar = import ../development/libraries/levmar {
+    inherit fetchurl stdenv;
+  };
+
   lib3ds = import ../development/libraries/lib3ds {
     inherit fetchurl stdenv unzip;
   };
@@ -7304,7 +7308,7 @@ let
   };
 
   meshlab = import ../applications/graphics/meshlab {
-    inherit fetchurl stdenv bzip2;
+    inherit fetchurl stdenv bzip2 lib3ds levmar muparser unzip;
     qt = qt4;
   };