From a3e4c7640f18ac4bc07feafc09a0c687c34b1554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= Date: Thu, 21 Jan 2010 14:39:53 +0000 Subject: [PATCH] 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 --- .../applications/graphics/meshlab/default.nix | 31 ++++++++++++---- pkgs/development/libraries/levmar/default.nix | 28 ++++++++++++++ .../libraries/levmar/use-atlas.patch | 37 +++++++++++++++++++ pkgs/development/libraries/lib3ds/default.nix | 2 +- pkgs/top-level/all-packages.nix | 6 ++- 5 files changed, 94 insertions(+), 10 deletions(-) create mode 100644 pkgs/development/libraries/levmar/default.nix create mode 100644 pkgs/development/libraries/levmar/use-atlas.patch diff --git a/pkgs/applications/graphics/meshlab/default.nix b/pkgs/applications/graphics/meshlab/default.nix index 1a1fa1605c55..bc816a1daf75 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"; + }; - setSourceRoot = "sourceRoot=`pwd`/meshlab/src"; + srcQHull20031 = fetchurl { + url = http://www.qhull.org/download/qhull-2003.1.zip; + sha256 = "07mh371i6xs691qz6wwzkqk9h0d2dkih2q818is2b041w1l79b46"; + }; + + + patchPhase = '' + cd meshlab/src + mkdir external + pushd external + tar xf ${srcGlew151} + mv glew glew-1.5.1 + unzip ${srcQHull20031} + popd + ''; buildPhase = '' - pushd external - qmake -recursive external.pro - make - popd + 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 000000000000..a17cdf0b4d58 --- /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 000000000000..2be9999b40ff --- /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 82367600467f..a470dac24e16 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 db1fb14b41bc..7082a8c60497 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; };