[suitesparse-metis] 01/28: migration of suitesparse-metis to debian science and some bug fixed

Wolfgang Fütterer wlfuetter-guest at moszumanska.debian.org
Mon Sep 7 10:17:58 UTC 2015


This is an automated email from the git hooks/post-receive script.

wlfuetter-guest pushed a commit to branch master
in repository suitesparse-metis.

commit bbb72ff11854c0563239b425a6215b8d4829478c
Author: sylvestre <sylvestre at 7ca82aff-d165-4cda-a4f1-7f280d66a853>
Date:   Fri May 14 09:58:11 2010 +0000

    migration of suitesparse-metis to debian science and some bug fixed
---
 debian/README.Debian                             |  11 +
 debian/changelog                                 |  70 +++
 debian/compat                                    |   1 +
 debian/control                                   | 128 +++++
 debian/copyright                                 |  24 +
 debian/docs                                      |   1 +
 debian/libsuitesparse-metis-3.1.0.install        |  11 +
 debian/libsuitesparse-metis-3.1.0.overrides      |   1 +
 debian/libsuitesparse-metis-dev.install          |  34 ++
 debian/patches/00list                            |  14 +
 debian/patches/01-Makefile.dpatch                |  20 +
 debian/patches/02-AMD_Lib_GNUmakefile.dpatch     |  67 +++
 debian/patches/03-CAMD_Lib_GNUmakefile.dpatch    |  66 +++
 debian/patches/04-CCOLAMD_Lib_Makefile.dpatch    |  41 ++
 debian/patches/05-COLAMD_Lib_Makefile.dpatch     |  41 ++
 debian/patches/06-BTF_Lib_Makefile.dpatch        |  74 +++
 debian/patches/07-KLU_Lib_Makefile.dpatch        | 370 +++++++++++++
 debian/patches/08-LDL_Lib_Makefile.dpatch        |  39 ++
 debian/patches/09-CSparse_Lib_Makefile.dpatch    |  57 ++
 debian/patches/10-CXSparse_Lib_Makefile.dpatch   |  94 ++++
 debian/patches/11-UMFPACK_Lib_GNUmakefile.dpatch | 304 ++++++++++
 debian/patches/12-CHOLMOD_Lib_Makefile.dpatch    | 676 +++++++++++++++++++++++
 debian/patches/13-CHOLMOD_Demo_Makefile.dpatch   |  18 +
 debian/patches/14-UFconfig_UFconfig.mk.dpatch    |  65 +++
 debian/rules                                     |  29 +
 debian/watch                                     |  22 +
 26 files changed, 2278 insertions(+)

diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644
index 0000000..a138b08
--- /dev/null
+++ b/debian/README.Debian
@@ -0,0 +1,11 @@
+suitesparse-metis for Debian
+----------------------------
+
+SUITESparse-MeTiS is split into 3 packages
+
+libsuitesparse-metis : dynamic libraries
+libsuitesparse-metis-dev : static and .so libraries and headers files in /usr/include/suitesparse
+libsuitesparse-metis-dbg : shared libraries with debugging symbols
+
+
+ -- Daniel Rus Morales <danirus at tol-project.org>,  Mon, 11 Jun 2007 12:30:01 +0200
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..43dac16
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,70 @@
+suitesparse-metis (3.1.0-2) unstable; urgency=low
+
+  * Team upload.
+  * Updated Standards-Version to 3.8.4
+  * Package moved to the Debian Science umbrella
+  * Missing libraries installed (Closes: #541974)
+  * ${misc:Depends} added
+
+ -- Sylvestre Ledru <sylvestre at debian.org>  Fri, 14 May 2010 11:26:03 +0200
+
+suitesparse-metis (3.1.0-1) unstable; urgency=low
+
+  * New upstream release.
+  * Install every provided library ChangeLog as LIB_ChangeLog to be able to
+    keep track of every change explained there by mainstream developers.
+  * debian/*-*_Lib_{GNUm,M}akefile.dpatch: Changed all dpatches to set the
+    soname of the shared libraries to lib*.so.3.1.0. This will avoid
+    problems with the future releases of the package. 
+    Thanks to Rafael Laboissiere for this change which was previously applied
+    in the suitesparse package. Also thanks to Adam C. Powell IV for the 
+    soname numbers suggestions.
+  * debian/libsuitesparse.overrides: Adjusted according to the new sonames.
+  * debian/control: (thanks to Rafael Laboissiere)
+    + Switch from g77 to gfortran, adjusting all dependencies on the
+      appropriate versions of the blas, atlas and lapack packages.  Thanks
+      to Kumar Appaiah for the bug (closes: #463944).	
+    + Drop the Conflicts/Replaces/Provides relationships for the
+      libsuitesparse-3.0.1 package.  This was needed for the
+      previous libsuitesparse package and is not necessary anymore.
+    + Changed the deprecated Source-Version substvar by the recommended
+      binary:Version, which has to be used instead of source:Version,
+      otherwise the package will not be binNMUable
+    + Use the Vcs-* headers instead of the deprecated XS-Vcs-* ones
+    + Bumped Standards-Version to 3.7.3
+	
+ -- Daniel Rus Morales <rus.daniel at gmail.com>  Sun, 17 Feb 2008 14:31:42 +0100
+
+suitesparse-metis (3.0.0-3) unstable; urgency=low
+
+  [Christophe Prud'homme ]
+  * debian/control: libsuitesparse-metis-dev conflicts/replaces/provides
+    with libumfpack4-dev
+  * debian/control: added Homepage field
+
+ -- Christophe Prud'homme <prudhomm at debian.org>  Mon, 22 Oct 2007 10:57:59 +0200
+
+suitesparse-metis (3.0.0-2) unstable; urgency=low
+
+  [Christophe Prud'homme ]
+  * debian/control: Conflicts with and Replaces libumfpack4, Provides
+    libumfpack4
+  
+  [Daniel Rus Morales]
+  * Fixed patches to compile LDL with -fPIC 
+
+ -- Christophe Prud'homme <prudhomm at debian.org>  Sat, 28 Jul 2007 09:49:55 +0200
+
+suitesparse-metis (3.0.0-1) unstable; urgency=low
+
+  [Daniel Rus Morales]
+  * Initial Release of suitesparse with metis support
+  * Fixed some lintian errors/warnings
+
+  [ Christophe Prud'homme ]
+  * debian/control: added libsuitesparse to Provides
+  * Uploaded to contrib
+  * Fixed some lintian errors/warnings
+
+ -- Daniel Rus Morales <danirus at tol-project.org>  Mon, 11 Jun 2007 12:30:01 +0200
+
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+5
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..73b64a5
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,128 @@
+Source: suitesparse-metis
+Section: contrib/math
+Priority: optional
+Maintainer: Debian Science Team <debian-science-maintainers at lists.alioth.debian.org>
+Uploaders: Daniel Rus Morales <rus.daniel at gmail.com>, 
+ Christophe Prud'homme <prudhomm at debian.org>
+Build-Depends: cdbs, debhelper (>= 5.0.0), dpatch, gfortran, libblas-dev, liblapack-dev, libparmetis-dev
+Standards-Version: 3.8.4
+Homepage: http://www.cise.ufl.edu/research/sparse/SuiteSparse/
+Vcs-Svn: svn://svn.debian.org/svn/debian-science/packages/suitesparse-metis/trunk/
+Vcs-Browser: http://svn.debian.org/viewsvn/debian-science/packages/suitesparse-metis/trunk/
+
+Package: libsuitesparse-metis-3.1.0
+Section: contrib/libs
+Architecture: any
+Depends: libblas3gf | libatlas3gf-base | libatlas3gf-sse | libatlas3gf-sse2 | libatlas3gf-3dnow, liblapack3gf | libatlas3gf-base | libatlas3gf-sse | libatlas3gf-sse2 | libatlas3gf-3dnow, 
+ ${shlibs:Depends}, ${misc:Depends}
+Description: collection of libraries for computations for sparse matrices
+ Suitesparse is a collection of libraries for computations involving
+ sparse matrices. libsuitesparse-metis is a replacement for libsuitesparse
+ compiled with libmetis support. The package includes the following libraries:
+ .
+ AMD         approximate minimum degree ordering
+ .
+ CAMD        symmetric approximate minimum degree
+ .
+ BTF         permutation to block triangular form (beta)
+ .
+ COLAMD      column approximate minimum degree ordering
+ .
+ CCOLAMD     constrained column approximate minimum degree ordering
+ .
+ CHOLMOD     sparse Cholesky factorization
+ .
+ CSparse     a concise sparse matrix package
+ .
+ CXSparse    CSparse extended: complex matrix, int and long int support
+ .
+ KLU         sparse LU factorization, primarily for circuit simulation
+ .
+ LDL         a simple LDL' factorization
+ .
+ UMFPACK     sparse LU factorization
+ .
+ UFconfig    configuration file for all the above packages.
+ .
+ This package contains the dynamic libraries.
+ .
+ Homepage: <http://www.cise.ufl.edu/research/sparse/SuiteSparse/>
+
+Package: libsuitesparse-metis-dev
+Section: contrib/libdevel
+Architecture: any
+Replaces: libufsparse-dev, libsuitesparse-dev, libumfpack4-dev
+Conflicts: libufsparse-dev, libsuitesparse-dev, libumfpack4-dev
+Provides: libufsparse-dev, libsuitesparse-dev, libumfpack4-dev
+Depends: libsuitesparse-metis-3.1.0 (= ${binary:Version}), libblas-dev | libatlas-base-dev | libatlas-sse-dev | libatlas-sse2-dev | libatlas-3dnow-dev, liblapack-dev | libatlas-base-dev | libatlas-sse-dev | libatlas-sse2-dev | libatlas-3dnow-dev, libparmetis-dev, libc6-dev,
+ ${misc:Depends}
+Description: collection of libraries for computations for sparse matrices
+ Suitesparse is a collection of libraries for computations involving
+ sparse matrices. libsuitesparse-metis-dev is a replacement for
+ libsuitesparse-dev compiled with libmetis support. The package includes the
+ following libraries:
+ .
+ AMD         approximate minimum degree ordering
+ .
+ CAMD        symmetric approximate minimum degree
+ .
+ BTF         permutation to block triangular form (beta)
+ .
+ COLAMD      column approximate minimum degree ordering
+ .
+ CCOLAMD     constrained column approximate minimum degree ordering
+ .
+ CHOLMOD     sparse Cholesky factorization
+ .
+ CSparse     a concise sparse matrix package
+ .
+ CXSparse    CSparse extended: complex matrix, int and long int support
+ .
+ KLU         sparse LU factorization, primarily for circuit simulation
+ .
+ LDL         a simple LDL' factorization
+ .
+ UMFPACK     sparse LU factorization
+ .
+ UFconfig    configuration file for all the above packages.
+ .
+ This package contains the static libraries and header files.
+
+Package: libsuitesparse-metis-dbg
+Section: contrib/libdevel
+Priority: extra
+Architecture: any
+Depends: libsuitesparse-metis-3.1.0 (= ${binary:Version}), libblas-dev | libatlas-base-dev | libatlas-sse-dev | libatlas-sse2-dev | libatlas-3dnow-dev, liblapack-dev | libatlas-base-dev | libatlas-sse-dev | libatlas-sse2-dev | libatlas-3dnow-dev, libparmetis-dev, libc6-dev, 
+ ${misc:Depends}
+Description: collection of libraries for computations for sparse matrices
+ Suitesparse is a collection of libraries for computations involving
+ sparse matrices. libsuitesparse-metis-dbg is a replacement for
+ libsuitesparse-dbg compiled with libmetis support. The package includes the
+ following libraries:
+ .
+ AMD         approximate minimum degree ordering
+ .
+ CAMD        symmetric approximate minimum degree
+ .
+ BTF         permutation to block triangular form (beta)
+ .
+ COLAMD      column approximate minimum degree ordering
+ .
+ CCOLAMD     constrained column approximate minimum degree ordering
+ .
+ CHOLMOD     sparse Cholesky factorization
+ .
+ CSparse     a concise sparse matrix package
+ .
+ CXSparse    CSparse extended: complex matrix, int and long int support
+ .
+ KLU         sparse LU factorization, primarily for circuit simulation
+ .
+ LDL         a simple LDL' factorization
+ .
+ UMFPACK     sparse LU factorization
+ .
+ UFconfig    configuration file for all the above packages.
+ .
+ This package contains the debug libraries (stored in /usr/lib/debug).
+
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..1b62e60
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,24 @@
+This package was debianized by Daniel Rus Morales <danirus at tol-project.org> on
+Mon, 11 Jun 2007 12:30:01 +0200
+
+Downloaded from <http://www.cise.ufl.edu/research/sparse/SuiteSparse>
+
+Copyright Holder:
+AMD                    Copyright (c) 2004-2007 by Timothy A. Davis, Patrick R. Amestoy, and Iain S. Duff.  All Rights Reserved. Distributed under the GNU LGPL license.
+BTF                    Copyright (C) 2004-2007, University of Florida. Author: Timothy A. Davis. Distributed under the GNU LGPL license.
+CAMD		       Copyright (c) 2004-2007 by Timothy A. Davis, Patrick R. Amestoy, Iain S. Duff, and Yanqing Chen. All Rights Reserved. Distributed under the GNU LGPL license.
+CCOLAMD                Copyright (c) 1998-2007, University of Florida. Author: Timothy A. Davis, Siva Rajamanickam, and Stefan Larimore. The COLAMD algorithm was developed in collaboration Esmond Ng and John Gilbert. Distributed under the GNU LGPL license.
+COLAMD                 Copyright (c) 1998-2007. Authors: Stefan I. Larimore and Timothy A. Davis, University of Florida, in collaboration with John Gilbert, Xerox PARC, and Esmong Ng, Lawrence Berkeley National Laboratory (much of this work he did while at Oak Ridge National Laboratory). Distributed under the GNU LGPL license.
+CSparse                Copyright (c) 2006-2007, Timothy A. Davis, Mar 31, 2007. Distributed under the GNU LGPL license.
+CXSparse               Copyright (c) 2006-2007, Timothy A. Davis. Distributed under the GNU LGPL license.
+KLU                    Copyright (c) 2004-2007, University of Florida. Author: Timothy A. Davis. Co-author: Eka Palamadai. Distributed under the GNU LGPL license. Developed with support from Sandia National Laboratories (Mike Heroux, maherou at sandia.gov). Incorporated into Trilinos. Used in Xyce and other production circuit simulators.
+LDL                    Copyright (c) 2003-2007 by Timothy A. Davis. All Rights Reserved. LDL is distributed under the GNU LGPL license.
+UMFPACK                Copyright (c) 1994-2007 by Timothy A. Davis, University of Florida. All Rights Reserved. Distributed under the GNU LGPL license.
+CHOLDMOD               Copyright (c) 2004-2007. Some portions are Copyright (c) Univ. of Florida. Others are Copyright (c) by their authors (T. A. Davis and W. Hager). Distributed under the GNU LGPL license. Some Modules of CHOLMOD are copyrighted by the University of Florida.  Most are copyrighted by the authors: Timothy A. Davis (all of them), and William W. Hager (the Modify Module).
+
+License: LGPL, GPL
+
+On Debian systems, the complete text of the GNU Lesser General
+Public License can be found in `/usr/share/common-licenses/LGPL'.
+On Debian systems, the complete text of the GNU  General
+Public License can be found in `/usr/share/common-licenses/GPL'.
diff --git a/debian/docs b/debian/docs
new file mode 100644
index 0000000..71dfd5b
--- /dev/null
+++ b/debian/docs
@@ -0,0 +1 @@
+README.txt
diff --git a/debian/libsuitesparse-metis-3.1.0.install b/debian/libsuitesparse-metis-3.1.0.install
new file mode 100644
index 0000000..a390ce5
--- /dev/null
+++ b/debian/libsuitesparse-metis-3.1.0.install
@@ -0,0 +1,11 @@
+AMD/Lib/*.so.* /usr/lib
+CAMD/Lib/*.so.* /usr/lib
+BTF/Lib/*.so.* /usr/lib
+CCOLAMD/Lib/*.so.* /usr/lib
+COLAMD/Lib/*.so.* /usr/lib
+KLU/Lib/*.so.* /usr/lib
+LDL/Lib/*.so.* /usr/lib
+CSparse/Lib/*.so.* /usr/lib
+CXSparse/Lib/*.so.* /usr/lib
+CHOLMOD/Lib/*.so.* /usr/lib
+UMFPACK/Lib/*.so.* /usr/lib
diff --git a/debian/libsuitesparse-metis-3.1.0.overrides b/debian/libsuitesparse-metis-3.1.0.overrides
new file mode 100644
index 0000000..3ad535e
--- /dev/null
+++ b/debian/libsuitesparse-metis-3.1.0.overrides
@@ -0,0 +1 @@
+libsuitesparse-metis-3.1.0: package-name-doesnt-match-sonames libamd3.1.0 libbtf3.1.0 libcamd3.1.0 libccolamd3.1.0 libcholmod3.1.0 libcolamd3.1.0 libcsparse3.1.0 libcxsparse3.1.0 libklu3.1.0 libldl3.1.0 libumfpack3.1.0
diff --git a/debian/libsuitesparse-metis-dev.install b/debian/libsuitesparse-metis-dev.install
new file mode 100644
index 0000000..0b6b651
--- /dev/null
+++ b/debian/libsuitesparse-metis-dev.install
@@ -0,0 +1,34 @@
+AMD/Lib/*.a /usr/lib
+AMD/Lib/*.so /usr/lib
+AMD/Include/*.h /usr/include/suitesparse
+CAMD/Lib/*.a /usr/lib
+CAMD/Lib/*.so /usr/lib
+CAMD/Include/*.h /usr/include/suitesparse
+BTF/Lib/*.a /usr/lib
+BTF/Lib/*.so /usr/lib
+BTF/Include/*.h /usr/include/suitesparse
+CCOLAMD/Lib/*.a /usr/lib
+CCOLAMD/Lib/*.so /usr/lib
+CCOLAMD/Include/*.h /usr/include/suitesparse
+COLAMD/Lib/*.a /usr/lib
+COLAMD/Lib/*.so /usr/lib
+COLAMD/Include/*.h /usr/include/suitesparse
+KLU/Lib/*.a /usr/lib
+KLU/Lib/*.so /usr/lib
+KLU/Include/*.h /usr/include/suitesparse
+LDL/Lib/*.a /usr/lib
+LDL/Lib/*.so /usr/lib
+LDL/Include/*.h /usr/include/suitesparse
+CSparse/Lib/*.a /usr/lib
+CSparse/Lib/*.so /usr/lib
+CSparse/Include/*.h /usr/include/suitesparse
+CXSparse/Lib/*.a /usr/lib
+CXSparse/Lib/*.so /usr/lib
+CXSparse/Include/*.h /usr/include/suitesparse
+CHOLMOD/Lib/*.a /usr/lib
+CHOLMOD/Lib/*.so /usr/lib
+CHOLMOD/Include/*.h /usr/include/suitesparse
+UMFPACK/Lib/*.a /usr/lib
+UMFPACK/Lib/*.so /usr/lib
+UMFPACK/Include/*.h /usr/include/suitesparse
+UFconfig/*.h /usr/include/suitesparse
diff --git a/debian/patches/00list b/debian/patches/00list
new file mode 100644
index 0000000..1b23a52
--- /dev/null
+++ b/debian/patches/00list
@@ -0,0 +1,14 @@
+01-Makefile
+02-AMD_Lib_GNUmakefile
+03-CAMD_Lib_GNUmakefile
+04-CCOLAMD_Lib_Makefile
+05-COLAMD_Lib_Makefile
+06-BTF_Lib_Makefile
+07-KLU_Lib_Makefile
+08-LDL_Lib_Makefile
+09-CSparse_Lib_Makefile
+10-CXSparse_Lib_Makefile
+11-UMFPACK_Lib_GNUmakefile
+12-CHOLMOD_Lib_Makefile
+13-CHOLMOD_Demo_Makefile
+14-UFconfig_UFconfig.mk
diff --git a/debian/patches/01-Makefile.dpatch b/debian/patches/01-Makefile.dpatch
new file mode 100755
index 0000000..f4c0c57
--- /dev/null
+++ b/debian/patches/01-Makefile.dpatch
@@ -0,0 +1,20 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 01-Makefile.dpatch by Daniel Rus Morales <rus.daniel at gmail.com>
+##
+## DP: KLU/Demo requires that CCOLAMD was built before.
+
+ at DPATCH@
+diff -u upstrm/Makefile debsrc/Makefile
+--- upstrm/Makefile	2007-10-29 21:02:03.000000000 +0100
++++ debsrc/Makefile	2008-03-16 13:23:42.000000000 +0100
+@@ -12,9 +12,9 @@
+ 	( cd CAMD ; $(MAKE) )
+ 	( cd COLAMD ; $(MAKE) )
+ 	( cd BTF ; $(MAKE) )
++	( cd CCOLAMD ; $(MAKE) )
+ 	( cd KLU ; $(MAKE) )
+ 	( cd LDL ; $(MAKE) )
+-	( cd CCOLAMD ; $(MAKE) )
+ 	( cd UMFPACK ; $(MAKE) )
+ 	( cd CHOLMOD ; $(MAKE) )
+ 	( cd CSparse ; $(MAKE) )
diff --git a/debian/patches/02-AMD_Lib_GNUmakefile.dpatch b/debian/patches/02-AMD_Lib_GNUmakefile.dpatch
new file mode 100755
index 0000000..af1930d
--- /dev/null
+++ b/debian/patches/02-AMD_Lib_GNUmakefile.dpatch
@@ -0,0 +1,67 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 02-AMD_Lib_GNUmakefile.dpatch by  Daniel Rus Morales <rus.daniel at gmail.com>
+##
+## DP: Build the shared library
+
+ at DPATCH@
+diff -u upstrm/AMD/Lib/GNUmakefile debsrc/AMD/Lib/GNUmakefile
+--- upstrm/AMD/Lib/GNUmakefile	2007-05-06 14:32:19.000000000 +0200
++++ debsrc/AMD/Lib/GNUmakefile	2008-02-17 14:47:54.000000000 +0100
+@@ -2,7 +2,7 @@
+ # AMD Makefile for compiling on Unix systems (for GNU make only)
+ #-------------------------------------------------------------------------------
+ 
+-default: ../Lib/libamd.a
++default: ../Lib/libamd.a libamd.so.3.1.0
+ 
+ include ../../UFconfig/UFconfig.mk
+ 
+@@ -26,18 +26,27 @@
+ AMDI = $(addsuffix .o, $(subst amd_,amd_i_,$(AMD)))
+ AMDL = $(addsuffix .o, $(subst amd_,amd_l_,$(AMD)))
+ 
++AMDI_SL = $(addsuffix .oo, $(subst amd_,amd_i_,$(AMD)))
++AMDL_SL = $(addsuffix .oo, $(subst amd_,amd_l_,$(AMD)))
++
+ #-------------------------------------------------------------------------------
+ # compile each int and long routine (with no real/complex version)
+ #-------------------------------------------------------------------------------
+ 
+ amd_global.o: ../Source/amd_global.c $(INC)
+ 	$(C) -c $< -o $@
++amd_global.oo: ../Source/amd_global.c $(INC)
++	$(C) -fPIC -c $< -o $@
+ 
+ amd_i_%.o: ../Source/amd_%.c $(INC)
+ 	$(C) -DDINT -c $< -o $@
++amd_i_%.oo: ../Source/amd_%.c $(INC)
++	$(C) -fPIC -DDINT -c $< -o $@
+ 
+ amd_l_%.o: ../Source/amd_%.c $(INC)
+ 	$(C) -DDLONG -c $< -o $@
++amd_l_%.oo: ../Source/amd_%.c $(INC)
++	$(C) -fPIC -DDLONG -c $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ # Create the libamd.a library (C versions only)
+@@ -47,6 +56,10 @@
+ 	$(AR) ../Lib/libamd.a $^
+ 	- $(RANLIB) ../Lib/libamd.a
+ 
++libamd.so.3.1.0: amd_global.oo $(AMDI_SL) $(AMDL_SL)
++	$(CC) -shared $^ -lm -Wl,-soname -Wl,$@ -o $@
++	ln -s $@ libamd.so
++
+ #-------------------------------------------------------------------------------
+ # compile the Fortran versions and the libamdf77.a library
+ #-------------------------------------------------------------------------------
+@@ -71,6 +84,9 @@
+ 
+ clean:
+ 	- $(RM) $(CLEAN)
++	-$(RM) *.oo
++	-$(RM) *.a
++	-$(RM) *.so*
+ 
+ purge: distclean
+ 
diff --git a/debian/patches/03-CAMD_Lib_GNUmakefile.dpatch b/debian/patches/03-CAMD_Lib_GNUmakefile.dpatch
new file mode 100755
index 0000000..e3f55ca
--- /dev/null
+++ b/debian/patches/03-CAMD_Lib_GNUmakefile.dpatch
@@ -0,0 +1,66 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 03-CAMD_Lib_GNUmakefile.dpatch by Daniel Rus Morales <rus.daniel at gmail.com>
+##
+## DP: Build the shared library
+
+ at DPATCH@
+diff -u upstrm/CAMD/Lib/GNUmakefile debsrc/CAMD/Lib/GNUmakefile
+--- upstrm/CAMD/Lib/GNUmakefile	2007-05-05 16:29:25.000000000 +0200
++++ debsrc/CAMD/Lib/GNUmakefile	2008-02-17 14:47:54.000000000 +0100
+@@ -2,7 +2,7 @@
+ # CAMD Makefile for compiling on Unix systems (for GNU make only)
+ #-------------------------------------------------------------------------------
+ 
+-default: libcamd.a
++default: libcamd.a libcamd.so.3.1.0
+ 
+ include ../../UFconfig/UFconfig.mk
+ 
+@@ -26,18 +26,27 @@
+ CAMDI = $(addsuffix .o, $(subst camd_,camd_i_,$(CAMD)))
+ CAMDL = $(addsuffix .o, $(subst camd_,camd_l_,$(CAMD)))
+ 
++CAMDI_SL = $(addsuffix .oo, $(subst camd_,camd_i_,$(CAMD)))
++CAMDL_SL = $(addsuffix .oo, $(subst camd_,camd_l_,$(CAMD)))
++
+ #-------------------------------------------------------------------------------
+ # compile each int and long routine (with no real/complex version)
+ #-------------------------------------------------------------------------------
+ 
+ camd_global.o: ../Source/camd_global.c $(INC)
+ 	$(C) -c $< -o $@
++camd_global.oo: ../Source/camd_global.c $(INC)
++	$(C) -fPIC -c $< -o $@
+ 
+ camd_i_%.o: ../Source/camd_%.c $(INC)
+ 	$(C) -DDINT -c $< -o $@
++camd_i_%.oo: ../Source/camd_%.c $(INC)
++	$(C) -fPIC -DDINT -c $< -o $@
+ 
+ camd_l_%.o: ../Source/camd_%.c $(INC)
+ 	$(C) -DDLONG -c $< -o $@
++camd_l_%.oo: ../Source/camd_%.c $(INC)
++	$(C) -fPIC -DDLONG -c $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ # Create the libcamd.a library (C versions only)
+@@ -47,12 +56,19 @@
+ 	$(AR) libcamd.a $^
+ 	- $(RANLIB) libcamd.a
+ 
++libcamd.so.3.1.0: camd_global.oo $(CAMDI_SL) $(CAMDL_SL)
++	$(CC) -shared $^ -lm -Wl,-soname -Wl,$@ -o $@
++	ln -s $@ libcamd.so
++
+ #-------------------------------------------------------------------------------
+ # Remove all but the files in the original distribution
+ #-------------------------------------------------------------------------------
+ 
+ clean:
+ 	- $(RM) $(CLEAN)
++	-$(RM) *.oo
++	-$(RM) *.a
++	-$(RM) *.so*
+ 
+ purge: distclean
+ 
diff --git a/debian/patches/04-CCOLAMD_Lib_Makefile.dpatch b/debian/patches/04-CCOLAMD_Lib_Makefile.dpatch
new file mode 100755
index 0000000..2378131
--- /dev/null
+++ b/debian/patches/04-CCOLAMD_Lib_Makefile.dpatch
@@ -0,0 +1,41 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 04-CCOLAMD_Lib_Makefile.dpatch by Daniel Rus Morales <rus.daniel at gmail.com>
+##
+## DP: Build the shared library
+
+ at DPATCH@
+diff -u upstrm/CCOLAMD/Lib/Makefile debsrc/CCOLAMD/Lib/Makefile
+--- upstrm/CCOLAMD/Lib/Makefile	2007-05-05 15:59:13.000000000 +0200
++++ debsrc/CCOLAMD/Lib/Makefile	2008-02-17 14:47:54.000000000 +0100
+@@ -2,7 +2,7 @@
+ # CCOLAMD Makefile
+ #-------------------------------------------------------------------------------
+ 
+-default: libccolamd.a
++default: libccolamd.a libccolamd.so.3.1.0
+ 
+ include ../../UFconfig/UFconfig.mk
+ 
+@@ -19,12 +19,22 @@
+ 	$(CC) $(CFLAGS) $(I) -c ../Source/ccolamd.c -DDLONG -o ccolamd_l.o
+ 	$(AR) libccolamd.a ccolamd.o ccolamd_l.o ccolamd_global.o
+ 
++libccolamd.so.3.1.0:  $(SRC) $(INC)
++	$(CC) -fPIC $(CFLAGS) $(I) -c ../Source/ccolamd_global.c -o ccolamd_global.oo
++	$(CC) -fPIC $(CFLAGS) $(I) -c ../Source/ccolamd.c -o ccolamd.oo
++	$(CC) -fPIC $(CFLAGS) $(I) -c ../Source/ccolamd.c -DDLONG -o ccolamd_l.oo
++	$(CC) -shared *.oo -lm -Wl,-soname -Wl,$@ -o $@
++	ln -s $@ libccolamd.so
++
+ ccode: libccolamd.a
+ 
+ library: libccolamd.a
+ 
+ clean:
+ 	- $(RM) $(CLEAN)
++	-$(RM) *.oo
++	-$(RM) *.a
++	-$(RM) *.so*
+ 
+ purge: distclean
+ 
diff --git a/debian/patches/05-COLAMD_Lib_Makefile.dpatch b/debian/patches/05-COLAMD_Lib_Makefile.dpatch
new file mode 100755
index 0000000..1ae9d42
--- /dev/null
+++ b/debian/patches/05-COLAMD_Lib_Makefile.dpatch
@@ -0,0 +1,41 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 05-COLAMD_Lib_Makefile.dpatch by Daniel Rus Morales <rus.daniel at gmail.com>
+##
+## DP: Build the shared library
+
+ at DPATCH@
+diff -u upstrm/COLAMD/Lib/Makefile debsrc/COLAMD/Lib/Makefile
+--- upstrm/COLAMD/Lib/Makefile	2007-05-05 15:41:47.000000000 +0200
++++ debsrc/COLAMD/Lib/Makefile	2008-02-17 14:47:54.000000000 +0100
+@@ -2,7 +2,7 @@
+ # COLAMD Makefile
+ #-------------------------------------------------------------------------------
+ 
+-default: libcolamd.a
++default: libcolamd.a libcolamd.so.3.1.0
+ 
+ include ../../UFconfig/UFconfig.mk
+ 
+@@ -19,12 +19,22 @@
+ 	$(CC) $(CFLAGS) $(I) -c ../Source/colamd.c -DDLONG -o colamd_l.o
+ 	$(AR) libcolamd.a colamd.o colamd_l.o colamd_global.o
+ 
++libcolamd.so.3.1.0:  $(SRC) $(INC)
++	$(CC) -fPIC $(CFLAGS) $(I) -c ../Source/colamd_global.c -o colamd_global.oo
++	$(CC) -fPIC $(CFLAGS) $(I) -c ../Source/colamd.c -o colamd.oo
++	$(CC) -fPIC $(CFLAGS) $(I) -c ../Source/colamd.c -DDLONG -o colamd_l.oo
++	$(CC) -shared *.oo -lm -Wl,-soname -Wl,$@ -o $@
++	ln -s $@ libcolamd.so
++
+ ccode: libcolamd.a
+ 
+ library: libcolamd.a
+ 
+ clean:
+ 	- $(RM) $(CLEAN)
++	-$(RM) *.oo
++	-$(RM) *.a
++	-$(RM) *.so*
+ 
+ purge: distclean
+ 
diff --git a/debian/patches/06-BTF_Lib_Makefile.dpatch b/debian/patches/06-BTF_Lib_Makefile.dpatch
new file mode 100755
index 0000000..3282a01
--- /dev/null
+++ b/debian/patches/06-BTF_Lib_Makefile.dpatch
@@ -0,0 +1,74 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 06-BTF_Lib_Makefile.dpatch by Daniel Rus Morales <rus.daniel at gmail.com>
+##
+## DP: Build the shared library
+
+ at DPATCH@
+diff -u upstrm/BTF/Lib/Makefile debsrc/BTF/Lib/Makefile
+--- upstrm/BTF/Lib/Makefile	2007-05-03 22:34:57.000000000 +0200
++++ debsrc/BTF/Lib/Makefile	2008-02-17 14:47:54.000000000 +0100
+@@ -15,38 +15,55 @@
+ 
+ all: library
+ 
+-library: libbtf.a
++library: libbtf.a libbtf.so.3.1.0
+ 
+ OBJ = btf_order.o btf_maxtrans.o btf_strongcomp.o \
+     btf_l_order.o btf_l_maxtrans.o btf_l_strongcomp.o
++OBJ_SL = $(subst .o,.oo,$(OBJ))
+ 
+ libbtf.a: $(OBJ)
+ 	$(AR) libbtf.a $(OBJ)
+ 	$(RANLIB) libbtf.a
+ 
+-$(OBJ): $(INC)
++libbtf.so.3.1.0: $(OBJ_SL)
++	$(CC) -shared $^ -lm -Wl,-soname -Wl,$@ -o $@
++	ln -s $@ libbtf.so
++
++$(OBJ) $(OBJ_SL): $(INC)
+ 
+ #-------------------------------------------------------------------------------
+ 
+ btf_order.o: ../Source/btf_order.c
+ 	$(C) -c $(I) $< -o $@
++btf_order.oo: ../Source/btf_order.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ btf_maxtrans.o: ../Source/btf_maxtrans.c
+ 	$(C) -c $(I) $< -o $@
++btf_maxtrans.oo: ../Source/btf_maxtrans.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ btf_strongcomp.o: ../Source/btf_strongcomp.c
+ 	$(C) -c $(I) $< -o $@
++btf_strongcomp.oo: ../Source/btf_strongcomp.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ 
+ btf_l_order.o: ../Source/btf_order.c
+ 	$(C) -c $(I) -DDLONG $< -o $@
++btf_l_order.oo: ../Source/btf_order.c
++	$(C) -fPIC -c $(I) -DDLONG $< -o $@
+ 
+ btf_l_maxtrans.o: ../Source/btf_maxtrans.c
+ 	$(C) -c $(I) -DDLONG $< -o $@
++btf_l_maxtrans.oo: ../Source/btf_maxtrans.c
++	$(C) -fPIC -c $(I) -DDLONG $< -o $@
+ 
+ btf_l_strongcomp.o: ../Source/btf_strongcomp.c
+ 	$(C) -c $(I) -DDLONG $< -o $@
++btf_l_strongcomp.oo: ../Source/btf_strongcomp.c
++	$(C) -fPIC -c $(I) -DDLONG $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ 
+@@ -57,3 +74,6 @@
+ 
+ clean:
+ 	- $(RM) $(CLEAN)
++	-$(RM) *.oo
++	-$(RM) *.a
++	-$(RM) *.so*
diff --git a/debian/patches/07-KLU_Lib_Makefile.dpatch b/debian/patches/07-KLU_Lib_Makefile.dpatch
new file mode 100755
index 0000000..68e7fb6
--- /dev/null
+++ b/debian/patches/07-KLU_Lib_Makefile.dpatch
@@ -0,0 +1,370 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 07-KLU_Lib_Makefile.dpatch by Daniel Rus Morales <rus.daniel at gmail.com>
+##
+## DP: Build the shared library
+
+ at DPATCH@
+diff -u upstrm/KLU/Lib/Makefile debsrc/KLU/Lib/Makefile
+--- upstrm/KLU/Lib/Makefile	2007-05-05 16:33:38.000000000 +0200
++++ debsrc/KLU/Lib/Makefile	2008-02-17 14:47:54.000000000 +0100
+@@ -17,132 +17,200 @@
+ 
+ all: library
+ 
+-library: libklu.a
++library: libklu.a libklu.so.3.1.0
+ 
+ KLU_D = klu_d.o klu_d_kernel.o klu_d_dump.o \
+     klu_d_factor.o klu_d_free_numeric.o klu_d_solve.o \
+     klu_d_scale.o klu_d_refactor.o \
+     klu_d_tsolve.o klu_d_diagnostics.o klu_d_sort.o klu_d_extract.o
++KLU_D_SL = $(subst .o,.oo,$(KLU_D))
+ 
+ KLU_Z = klu_z.o klu_z_kernel.o klu_z_dump.o \
+     klu_z_factor.o klu_z_free_numeric.o klu_z_solve.o \
+     klu_z_scale.o klu_z_refactor.o \
+     klu_z_tsolve.o klu_z_diagnostics.o klu_z_sort.o klu_z_extract.o
++KLU_Z_SL = $(subst .o,.oo,$(KLU_Z))
+ 
+ KLU_L = klu_l.o klu_l_kernel.o klu_l_dump.o \
+     klu_l_factor.o klu_l_free_numeric.o klu_l_solve.o \
+     klu_l_scale.o klu_l_refactor.o \
+     klu_l_tsolve.o klu_l_diagnostics.o klu_l_sort.o klu_l_extract.o
++KLU_L_SL = $(subst .o,.oo,$(KLU_L))
+ 
+ KLU_ZL = klu_zl.o klu_zl_kernel.o klu_zl_dump.o \
+     klu_zl_factor.o klu_zl_free_numeric.o klu_zl_solve.o \
+     klu_zl_scale.o klu_zl_refactor.o \
+     klu_zl_tsolve.o klu_zl_diagnostics.o klu_zl_sort.o klu_zl_extract.o
++KLU_ZL_SL = $(subst .o,.oo,$(KLU_ZL))
+ 
+ COMMON = \
+     klu_free_symbolic.o klu_defaults.o klu_analyze_given.o \
+     klu_analyze.o klu_memory.o \
+     klu_l_free_symbolic.o klu_l_defaults.o klu_l_analyze_given.o \
+     klu_l_analyze.o klu_l_memory.o
++COMMON_SL = $(subst .o,.oo,$(COMMON))
+ 
+ OBJ = $(COMMON) $(KLU_D) $(KLU_Z) $(KLU_L) $(KLU_ZL)
++OBJ_SL = $(COMMON_SL) $(KLU_D_SL) $(KLU_Z_SL) $(KLU_L_SL) $(KLU_ZL_SL)
+ 
+ libklu.a: $(OBJ)
+ 	$(AR) libklu.a $(OBJ)
+ 	$(RANLIB) libklu.a
+ 
+-$(OBJ): $(INC)
++libklu.so.3.1.0: $(OBJ_SL)
++	$(CC) -shared $^ -lm -Wl,-soname -Wl,$@ -o $@
++	ln -s $@ libklu.so
++
++$(OBJ) $(OBJ_SL): $(INC)
+ 
+ #-------------------------------------------------------------------------------
+ 
+ klu_d.o: ../Source/klu.c
+ 	$(C) -c $(I) $< -o $@
++klu_d.oo: ../Source/klu.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_z.o: ../Source/klu.c
+ 	$(C) -c -DCOMPLEX $(I) $< -o $@
++klu_z.oo: ../Source/klu.c
++	$(C) -fPIC -c -DCOMPLEX $(I) $< -o $@
+ 
+ klu_d_kernel.o: ../Source/klu_kernel.c
+ 	$(C) -c $(I) $< -o $@
++klu_d_kernel.oo: ../Source/klu_kernel.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_z_kernel.o: ../Source/klu_kernel.c
+ 	$(C) -c -DCOMPLEX $(I) $< -o $@
++klu_z_kernel.oo: ../Source/klu_kernel.c
++	$(C) -fPIC -c -DCOMPLEX $(I) $< -o $@
+ 
+ klu_d_sort.o: ../Source/klu_sort.c
+ 	$(C) -c $(I) $< -o $@
++klu_d_sort.oo: ../Source/klu_sort.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_z_sort.o: ../Source/klu_sort.c
+ 	$(C) -c -DCOMPLEX $(I) $< -o $@
++klu_z_sort.oo: ../Source/klu_sort.c
++	$(C) -fPIC -c -DCOMPLEX $(I) $< -o $@
+ 
+ klu_d_diagnostics.o: ../Source/klu_diagnostics.c
+ 	$(C) -c $(I) $< -o $@
++klu_d_diagnostics.oo: ../Source/klu_diagnostics.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_z_diagnostics.o: ../Source/klu_diagnostics.c
+ 	$(C) -c -DCOMPLEX $(I) $< -o $@
++klu_z_diagnostics.oo: ../Source/klu_diagnostics.c
++	$(C) -fPIC -c -DCOMPLEX $(I) $< -o $@
+ 
+ klu_d_dump.o: ../Source/klu_dump.c
+ 	$(C) -c $(I) $< -o $@
++klu_d_dump.oo: ../Source/klu_dump.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_z_dump.o: ../Source/klu_dump.c
+ 	$(C) -c -DCOMPLEX $(I) $< -o $@
++klu_z_dump.oo: ../Source/klu_dump.c
++	$(C) -fPIC -c -DCOMPLEX $(I) $< -o $@
+ 
+ klu_d_factor.o: ../Source/klu_factor.c
+ 	$(C) -c $(I) $< -o $@
++klu_d_factor.oo: ../Source/klu_factor.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_z_factor.o: ../Source/klu_factor.c
+ 	$(C) -c -DCOMPLEX $(I) $< -o $@
++klu_z_factor.oo: ../Source/klu_factor.c
++	$(C) -fPIC -c -DCOMPLEX $(I) $< -o $@
+ 
+ klu_d_free_numeric.o: ../Source/klu_free_numeric.c
+ 	$(C) -c $(I) $< -o $@
++klu_d_free_numeric.oo: ../Source/klu_free_numeric.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_z_free_numeric.o: ../Source/klu_free_numeric.c
+ 	$(C) -c -DCOMPLEX $(I) $< -o $@
++klu_z_free_numeric.oo: ../Source/klu_free_numeric.c
++	$(C) -fPIC -c -DCOMPLEX $(I) $< -o $@
+ 
+ klu_d_extract.o: ../Source/klu_extract.c
+ 	$(C) -c $(I) $< -o $@
++klu_d_extract.oo: ../Source/klu_extract.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_z_extract.o: ../Source/klu_extract.c
+ 	$(C) -c -DCOMPLEX $(I) $< -o $@
++klu_z_extract.oo: ../Source/klu_extract.c
++	$(C) -fPIC -c -DCOMPLEX $(I) $< -o $@
+ 
+ klu_d_refactor.o: ../Source/klu_refactor.c
+ 	$(C) -c $(I) $< -o $@
++klu_d_refactor.oo: ../Source/klu_refactor.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_z_refactor.o: ../Source/klu_refactor.c
+ 	$(C) -c -DCOMPLEX $(I) $< -o $@
++klu_z_refactor.oo: ../Source/klu_refactor.c
++	$(C) -fPIC -c -DCOMPLEX $(I) $< -o $@
+ 
+ klu_d_scale.o: ../Source/klu_scale.c
+ 	$(C) -c $(I) $< -o $@
++klu_d_scale.oo: ../Source/klu_scale.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_z_scale.o: ../Source/klu_scale.c
+ 	$(C) -c -DCOMPLEX $(I) $< -o $@
++klu_z_scale.oo: ../Source/klu_scale.c
++	$(C) -fPIC -c -DCOMPLEX $(I) $< -o $@
+ 
+ klu_d_solve.o: ../Source/klu_solve.c
+ 	$(C) -c $(I) $< -o $@
++klu_d_solve.oo: ../Source/klu_solve.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_z_solve.o: ../Source/klu_solve.c
+ 	$(C) -c -DCOMPLEX $(I) $< -o $@
++klu_z_solve.oo: ../Source/klu_solve.c
++	$(C) -fPIC -c -DCOMPLEX $(I) $< -o $@
+ 
+ klu_d_tsolve.o: ../Source/klu_tsolve.c
+ 	$(C) -c $(I) $< -o $@
++klu_d_tsolve.oo: ../Source/klu_tsolve.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_z_tsolve.o: ../Source/klu_tsolve.c
+ 	$(C) -c -DCOMPLEX $(I) $< -o $@
++klu_z_tsolve.oo: ../Source/klu_tsolve.c
++	$(C) -fPIC -c -DCOMPLEX $(I) $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ 
+ klu_analyze.o: ../Source/klu_analyze.c
+ 	$(C) -c $(I) $< -o $@
++klu_analyze.oo: ../Source/klu_analyze.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_analyze_given.o: ../Source/klu_analyze_given.c
+ 	$(C) -c $(I) $< -o $@
++klu_analyze_given.oo: ../Source/klu_analyze_given.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_defaults.o: ../Source/klu_defaults.c
+ 	$(C) -c $(I) $< -o $@
++klu_defaults.oo: ../Source/klu_defaults.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_free_symbolic.o: ../Source/klu_free_symbolic.c
+ 	$(C) -c $(I) $< -o $@
++klu_free_symbolic.oo: ../Source/klu_free_symbolic.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ klu_memory.o: ../Source/klu_memory.c
+ 	$(C) -c $(I) $< -o $@
++klu_memory.oo: ../Source/klu_memory.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ 
+@@ -153,96 +221,157 @@
+ 
+ clean:
+ 	- $(RM) $(CLEAN)
++	-$(RM) *.oo
++	-$(RM) *.a
++	-$(RM) *.so*
+ 
+ #-------------------------------------------------------------------------------
+ 
+ klu_l.o: ../Source/klu.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l.oo: ../Source/klu.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_zl.o: ../Source/klu.c
+ 	$(C) -c -DCOMPLEX -DDLONG $(I) $< -o $@
++klu_zl.oo: ../Source/klu.c
++	$(C) -fPIC -c -DCOMPLEX -DDLONG $(I) $< -o $@
+ 
+ klu_l_kernel.o: ../Source/klu_kernel.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_kernel.oo: ../Source/klu_kernel.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_zl_kernel.o: ../Source/klu_kernel.c
+ 	$(C) -c -DCOMPLEX -DDLONG $(I) $< -o $@
++klu_zl_kernel.oo: ../Source/klu_kernel.c
++	$(C) -fPIC -c -DCOMPLEX -DDLONG $(I) $< -o $@
+ 
+ klu_l_sort.o: ../Source/klu_sort.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_sort.oo: ../Source/klu_sort.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_zl_sort.o: ../Source/klu_sort.c
+ 	$(C) -c -DCOMPLEX -DDLONG $(I) $< -o $@
++klu_zl_sort.oo: ../Source/klu_sort.c
++	$(C) -fPIC -c -DCOMPLEX -DDLONG $(I) $< -o $@
+ 
+ klu_l_diagnostics.o: ../Source/klu_diagnostics.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_diagnostics.oo: ../Source/klu_diagnostics.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_zl_diagnostics.o: ../Source/klu_diagnostics.c
+ 	$(C) -c -DCOMPLEX -DDLONG $(I) $< -o $@
++klu_zl_diagnostics.oo: ../Source/klu_diagnostics.c
++	$(C) -fPIC -c -DCOMPLEX -DDLONG $(I) $< -o $@
+ 
+ klu_l_dump.o: ../Source/klu_dump.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_dump.oo: ../Source/klu_dump.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_zl_dump.o: ../Source/klu_dump.c
+ 	$(C) -c -DCOMPLEX -DDLONG $(I) $< -o $@
++klu_zl_dump.oo: ../Source/klu_dump.c
++	$(C) -fPIC -c -DCOMPLEX -DDLONG $(I) $< -o $@
+ 
+ klu_l_factor.o: ../Source/klu_factor.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_factor.oo: ../Source/klu_factor.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_zl_factor.o: ../Source/klu_factor.c
+ 	$(C) -c -DCOMPLEX -DDLONG $(I) $< -o $@
++klu_zl_factor.oo: ../Source/klu_factor.c
++	$(C) -fPIC -c -DCOMPLEX -DDLONG $(I) $< -o $@
+ 
+ klu_l_free_numeric.o: ../Source/klu_free_numeric.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_free_numeric.oo: ../Source/klu_free_numeric.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_zl_free_numeric.o: ../Source/klu_free_numeric.c
+ 	$(C) -c -DCOMPLEX -DDLONG $(I) $< -o $@
++klu_zl_free_numeric.oo: ../Source/klu_free_numeric.c
++	$(C) -fPIC -c -DCOMPLEX -DDLONG $(I) $< -o $@
+ 
+ klu_l_extract.o: ../Source/klu_extract.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_extract.oo: ../Source/klu_extract.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_zl_extract.o: ../Source/klu_extract.c
+ 	$(C) -c -DCOMPLEX -DDLONG $(I) $< -o $@
++klu_zl_extract.oo: ../Source/klu_extract.c
++	$(C) -fPIC -c -DCOMPLEX -DDLONG $(I) $< -o $@
+ 
+ klu_l_refactor.o: ../Source/klu_refactor.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_refactor.oo: ../Source/klu_refactor.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_zl_refactor.o: ../Source/klu_refactor.c
+ 	$(C) -c -DCOMPLEX -DDLONG $(I) $< -o $@
++klu_zl_refactor.oo: ../Source/klu_refactor.c
++	$(C) -fPIC -c -DCOMPLEX -DDLONG $(I) $< -o $@
+ 
+ klu_l_scale.o: ../Source/klu_scale.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_scale.oo: ../Source/klu_scale.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_zl_scale.o: ../Source/klu_scale.c
+ 	$(C) -c -DCOMPLEX -DDLONG $(I) $< -o $@
++klu_zl_scale.oo: ../Source/klu_scale.c
++	$(C) -fPIC -c -DCOMPLEX -DDLONG $(I) $< -o $@
+ 
+ klu_l_solve.o: ../Source/klu_solve.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_solve.oo: ../Source/klu_solve.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_zl_solve.o: ../Source/klu_solve.c
+ 	$(C) -c -DCOMPLEX -DDLONG $(I) $< -o $@
++klu_zl_solve.oo: ../Source/klu_solve.c
++	$(C) -fPIC -c -DCOMPLEX -DDLONG $(I) $< -o $@
+ 
+ klu_l_tsolve.o: ../Source/klu_tsolve.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_tsolve.oo: ../Source/klu_tsolve.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_zl_tsolve.o: ../Source/klu_tsolve.c
+ 	$(C) -c -DCOMPLEX -DDLONG $(I) $< -o $@
++klu_zl_tsolve.oo: ../Source/klu_tsolve.c
++	$(C) -fPIC -c -DCOMPLEX -DDLONG $(I) $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ 
+ klu_l_analyze.o: ../Source/klu_analyze.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_analyze.oo: ../Source/klu_analyze.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_l_analyze_given.o: ../Source/klu_analyze_given.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_analyze_given.oo: ../Source/klu_analyze_given.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_l_defaults.o: ../Source/klu_defaults.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_defaults.oo: ../Source/klu_defaults.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_l_free_symbolic.o: ../Source/klu_free_symbolic.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_free_symbolic.oo: ../Source/klu_free_symbolic.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ klu_l_memory.o: ../Source/klu_memory.c
+ 	$(C) -c -DDLONG $(I) $< -o $@
++klu_l_memory.oo: ../Source/klu_memory.c
++	$(C) -fPIC -c -DDLONG $(I) $< -o $@
+ 
+ #-------------------------------------------------------------------------------
diff --git a/debian/patches/08-LDL_Lib_Makefile.dpatch b/debian/patches/08-LDL_Lib_Makefile.dpatch
new file mode 100755
index 0000000..963df06
--- /dev/null
+++ b/debian/patches/08-LDL_Lib_Makefile.dpatch
@@ -0,0 +1,39 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 08-LDL_Lib_Makefile.dpatch by Daniel Rus Morales <rus.daniel at gmail.com>
+##
+## DP: Build the shared library
+
+ at DPATCH@
+diff -u upstrm/LDL/Lib/Makefile debsrc/LDL/Lib/Makefile
+--- upstrm/LDL/Lib/Makefile	2007-05-05 19:31:44.000000000 +0200
++++ debsrc/LDL/Lib/Makefile	2008-02-17 14:47:54.000000000 +0100
+@@ -10,7 +10,7 @@
+ 
+ C = $(CC) $(CFLAGS) $(I)
+ 
+-all: libldl.a
++all: libldl.a libldl.so.3.1.0
+ 
+ #-------------------------------------------------------------------------------
+ # the ldl library:
+@@ -22,6 +22,12 @@
+ 	$(AR) libldl.a ldl.o ldll.o
+ 	- $(RANLIB) libldl.a
+ 
++libldl.so.3.1.0: ../Source/ldl.c ../Include/ldl.h
++	$(C) -fPIC -c ../Source/ldl.c -o ldl.oo
++	$(C) -fPIC -DLDL_LONG -c ../Source/ldl.c -o ldll.oo
++	$(C) -fPIC -shared *.oo -lm -Wl,-soname -Wl,$@ -o $@
++	ln -s $@ libldl.so
++
+ distclean: purge
+ 
+ purge: clean
+@@ -29,4 +35,6 @@
+ 
+ clean:
+ 	- $(RM) $(CLEAN)
+-
++	-$(RM) *.oo
++	-$(RM) *.a
++	-$(RM) *.so*
diff --git a/debian/patches/09-CSparse_Lib_Makefile.dpatch b/debian/patches/09-CSparse_Lib_Makefile.dpatch
new file mode 100755
index 0000000..c6f458d
--- /dev/null
+++ b/debian/patches/09-CSparse_Lib_Makefile.dpatch
@@ -0,0 +1,57 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 09-CSparse_Lib_Makefile.dpatch by  <drus at citosina.muc.uponeits.com>
+##
+## DP: Build the shared library
+
+ at DPATCH@
+diff -u upstrm/CSparse/Lib/Makefile debsrc/CSparse/Lib/Makefile
+--- upstrm/CSparse/Lib/Makefile	2007-05-05 22:46:13.000000000 +0200
++++ debsrc/CSparse/Lib/Makefile	2008-02-17 14:47:54.000000000 +0100
+@@ -1,11 +1,13 @@
+ # Modify the "-O" optimization option for best performance (-O3 on Linux):
+-CC = cc
+-CFLAGS = -O -I../Include
++#CC = cc
++#CFLAGS = -O -I../Include
++
++C = $(CC) -O -I../Include
+ 
+ AR = ar cr
+ RANLIB = ranlib
+ 
+-all: libcsparse.a
++all: libcsparse.a libcsparse.so.3.1.0
+ 
+ CS = cs_add.o cs_amd.o cs_chol.o cs_cholsol.o cs_counts.o cs_cumsum.o \
+ 	cs_droptol.o cs_dropzeros.o cs_dupl.o cs_entry.o \
+@@ -16,18 +18,29 @@
+ 	cs_transpose.o cs_compress.o cs_usolve.o cs_utsolve.o cs_scc.o \
+ 	cs_maxtrans.o cs_dmperm.o cs_updown.o cs_print.o cs_norm.o cs_load.o \
+ 	cs_dfs.o cs_reach.o cs_spsolve.o cs_ereach.o cs_leaf.o cs_randperm.o
++CS_SL = $(subst .o,.oo,$(CS))
+ 
+ $(CS): ../Include/cs.h Makefile
++$(CS_SL): ../Include/cs.h Makefile
+ 
+ %.o: ../Source/%.c ../Include/cs.h
+-	$(CC) $(CFLAGS) -c $<
++	$(C) -c $<
++%.oo: ../Source/%.c ../Include/cs.h
++	$(C) -fPIC -c $< -o $@
+ 
+ libcsparse.a: $(CS)
+ 	$(AR) libcsparse.a $(CS)
+ 	$(RANLIB) libcsparse.a
+ 
++libcsparse.so.3.1.0: $(CS_SL)
++	$(CC) -shared $^ -lm -Wl,-soname -Wl,$@ -o $@
++	ln -s $@ libcsparse.so
++
+ clean:
+ 	rm -f *.o
++	rm -f *.o *.oo
++	-$(RM) *.a
++	-$(RM) *.so*
+ 
+ purge: distclean
+ 
diff --git a/debian/patches/10-CXSparse_Lib_Makefile.dpatch b/debian/patches/10-CXSparse_Lib_Makefile.dpatch
new file mode 100755
index 0000000..5e381f4
--- /dev/null
+++ b/debian/patches/10-CXSparse_Lib_Makefile.dpatch
@@ -0,0 +1,94 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 10-CXSparse_Lib_Makefile.dpatch by Daniel Rus Morales <rus.daniel at gmail.com>
+##
+## DP: Build the shared library
+
+ at DPATCH@
+diff -u upstrm/CXSparse/Lib/Makefile debsrc/CXSparse/Lib/Makefile
+--- upstrm/CXSparse/Lib/Makefile	2007-05-05 23:03:41.000000000 +0200
++++ debsrc/CXSparse/Lib/Makefile	2008-02-17 14:47:54.000000000 +0100
+@@ -6,7 +6,7 @@
+ AR = ar cr
+ RANLIB = ranlib
+ 
+-all: libcxsparse.a
++all: libcxsparse.a libcxsparse.so.3.1.0
+ 
+ CS_SOURCE = cs_add.c cs_amd.c cs_chol.c cs_cholsol.c cs_counts.c cs_cumsum.c \
+ 	cs_droptol.c cs_dropzeros.c cs_dupl.c cs_entry.c \
+@@ -29,6 +29,7 @@
+ 	cs_scc_di.o cs_maxtrans_di.o cs_dmperm_di.o cs_updown_di.o cs_print_di.o \
+ 	cs_norm_di.o cs_load_di.o cs_dfs_di.o cs_reach_di.o cs_spsolve_di.o \
+ 	cs_leaf_di.o cs_ereach_di.o cs_randperm_di.o
++CS_DI_OBJ_SL = $(subst .o,.oo,$(CS_DI_OBJ))
+ 
+ CS_DL_OBJ =  cs_add_dl.o cs_amd_dl.o cs_chol_dl.o cs_cholsol_dl.o cs_counts_dl.o \
+ 	cs_cumsum_dl.o cs_droptol_dl.o cs_dropzeros_dl.o cs_dupl_dl.o \
+@@ -41,6 +42,7 @@
+ 	cs_scc_dl.o cs_maxtrans_dl.o cs_dmperm_dl.o cs_updown_dl.o cs_print_dl.o \
+ 	cs_norm_dl.o cs_load_dl.o cs_dfs_dl.o cs_reach_dl.o cs_spsolve_dl.o \
+ 	cs_leaf_dl.o cs_ereach_dl.o cs_randperm_dl.o
++CS_DL_OBJ_SL = $(subst .o,.oo,$(CS_DL_OBJ))
+ 
+ CS_CI_OBJ =  cs_add_ci.o cs_amd_ci.o cs_chol_ci.o cs_cholsol_ci.o cs_counts_ci.o \
+ 	cs_cumsum_ci.o cs_droptol_ci.o cs_dropzeros_ci.o cs_dupl_ci.o \
+@@ -53,6 +55,7 @@
+ 	cs_scc_ci.o cs_maxtrans_ci.o cs_dmperm_ci.o cs_updown_ci.o cs_print_ci.o \
+ 	cs_norm_ci.o cs_load_ci.o cs_dfs_ci.o cs_reach_ci.o cs_spsolve_ci.o \
+ 	cs_leaf_ci.o cs_ereach_ci.o cs_randperm_ci.o
++CS_CI_OBJ_SL = $(subst .o,.oo,$(CS_CI_OBJ))
+ 
+ CS_CL_OBJ =  cs_add_cl.o cs_amd_cl.o cs_chol_cl.o cs_cholsol_cl.o cs_counts_cl.o \
+ 	cs_cumsum_cl.o cs_droptol_cl.o cs_dropzeros_cl.o cs_dupl_cl.o \
+@@ -65,32 +68,50 @@
+ 	cs_scc_cl.o cs_maxtrans_cl.o cs_dmperm_cl.o cs_updown_cl.o cs_print_cl.o \
+ 	cs_norm_cl.o cs_load_cl.o cs_dfs_cl.o cs_reach_cl.o cs_spsolve_cl.o \
+ 	cs_leaf_cl.o cs_ereach_cl.o cs_randperm_cl.o
++CS_CL_OBJ_SL = $(subst .o,.oo,$(CS_CL_OBJ))
+ 
+ CS = cs_convert.o $(CS_DI_OBJ) $(CS_DL_OBJ) $(CS_CI_OBJ) $(CS_CL_OBJ)
++CS_SL = cs_convert.oo $(CS_DI_OBJ_SL) $(CS_DL_OBJ_SL) $(CS_CI_OBJ_SL) $(CS_CL_OBJ_SL)
+ 
+ $(CS): ../Include/cs.h Makefile
+ 
+ cs_convert.o: ../Source/cs_convert.c
+ 	$(CC) $(CFLAGS) $(I) -c $< -o $@
++cs_convert.oo: ../Source/cs_convert.c
++	$(CC) -fPIC $(CFLAGS) $(I) -c $< -o $@
+ 
+ %_di.o : ../Source/%.c
+ 	$(CC) $(CFLAGS) $(I) -c $< -o $@
++%_di.oo: ../Source/%.c
++	$(CC) -fPIC $(CFLAGS) $(I) -c $< -o $@
+ 
+ %_dl.o : ../Source/%.c
+ 	$(CC) $(CFLAGS) $(I) -DCS_LONG -c $< -o $@
++%_dl.oo : ../Source/%.c
++	$(CC) -fPIC $(CFLAGS) $(I) -DCS_LONG -c $< -o $@
+ 
+ %_ci.o : ../Source/%.c
+ 	$(CC) $(CFLAGS) $(I) -DCS_COMPLEX -c $< -o $@
++%_ci.oo : ../Source/%.c
++	$(CC) -fPIC $(CFLAGS) $(I) -DCS_COMPLEX -c $< -o $@
+ 
+ %_cl.o : ../Source/%.c
+ 	$(CC) $(CFLAGS) $(I) -DCS_LONG -DCS_COMPLEX -c $< -o $@
++%_cl.oo : ../Source/%.c
++	$(CC) -fPIC $(CFLAGS) $(I) -DCS_LONG -DCS_COMPLEX -c $< -o $@
+ 
+ libcxsparse.a: $(CS)
+ 	$(AR) libcxsparse.a $(CS)
+ 	$(RANLIB) libcxsparse.a
+ 
++libcxsparse.so.3.1.0: $(CS_SL)
++	$(CC) -shared $^ -lm -Wl,-soname -Wl,$@ -o $@
++	ln -s $@ libcxsparse.so
++
+ clean:
+-	rm -f *.o
++	rm -f *.o *.oo
++	-$(RM) *.a
++	-$(RM) *.so*
+ 
+ purge: distclean
+ 
diff --git a/debian/patches/11-UMFPACK_Lib_GNUmakefile.dpatch b/debian/patches/11-UMFPACK_Lib_GNUmakefile.dpatch
new file mode 100755
index 0000000..7466722
--- /dev/null
+++ b/debian/patches/11-UMFPACK_Lib_GNUmakefile.dpatch
@@ -0,0 +1,304 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 11-UMFPACK_Lib_GNUmakefile.dpatch by Daniel Rus Morales <rus.daniel at gmail.com>
+##
+## DP: Build the shared library
+
+ at DPATCH@
+diff -u upstrm/UMFPACK/Lib/GNUmakefile debsrc/UMFPACK/Lib/GNUmakefile
+--- upstrm/UMFPACK/Lib/GNUmakefile	2007-05-06 14:31:22.000000000 +0200
++++ debsrc/UMFPACK/Lib/GNUmakefile	2008-02-17 14:47:55.000000000 +0100
+@@ -2,7 +2,7 @@
+ # UMFPACK Makefile for compiling on Unix systems (for GNU Make)
+ #-------------------------------------------------------------------------------
+ 
+-default: ../Lib/libumfpack.a
++default: libumfpack.a libumfpack.so.3.1.0
+ 
+ include ../../UFconfig/UFconfig.mk
+ 
+@@ -79,12 +79,19 @@
+ #-------------------------------------------------------------------------------
+ 
+ DI = $(addsuffix .o, $(subst umf_,umf_di_,$(UMF)) $(subst umfpack_,umfpack_di_,$(USER)))
++DI_SL = $(addsuffix .oo, $(subst umf_,umf_di_,$(UMF)) $(subst umfpack_,umfpack_di_,$(USER)))
+ DL = $(addsuffix .o, $(subst umf_,umf_dl_,$(UMF)) $(subst umfpack_,umfpack_dl_,$(USER)))
++DL_SL = $(addsuffix .oo, $(subst umf_,umf_dl_,$(UMF)) $(subst umfpack_,umfpack_dl_,$(USER)))
+ ZI = $(addsuffix .o, $(subst umf_,umf_zi_,$(UMF)) $(subst umfpack_,umfpack_zi_,$(USER)))
++ZI_SL = $(addsuffix .oo, $(subst umf_,umf_zi_,$(UMF)) $(subst umfpack_,umfpack_zi_,$(USER)))
+ ZL = $(addsuffix .o, $(subst umf_,umf_zl_,$(UMF)) $(subst umfpack_,umfpack_zl_,$(USER)))
++ZL_SL = $(addsuffix .oo, $(subst umf_,umf_zl_,$(UMF)) $(subst umfpack_,umfpack_zl_,$(USER)))
+ II = $(addsuffix .o, $(subst umf_,umf_i_,$(UMFINT)))
++II_SL = $(addsuffix .oo, $(subst umf_,umf_i_,$(UMFINT)))
+ LL = $(addsuffix .o, $(subst umf_,umf_l_,$(UMFINT)))
++LL_SL = $(addsuffix .oo, $(subst umf_,umf_l_,$(UMFINT)))
+ GN = $(addsuffix .o, $(subst umfpack_,umfpack_gn_,$(GENERIC)))
++GN_SL = $(addsuffix .oo, $(subst umfpack_,umfpack_gn_,$(GENERIC)))
+ 
+ #-------------------------------------------------------------------------------
+ # compile each int and UF_long routine (with no real/complex version)
+@@ -92,9 +99,13 @@
+ 
+ umf_i_%.o: ../Source/umf_%.c $(INC)
+ 	$(C) -DDINT -c $< -o $@
++umf_i_%.oo: ../Source/umf_%.c $(INC)
++	$(C) -fPIC -DDINT -c $< -o $@
+ 
+ umf_l_%.o: ../Source/umf_%.c $(INC)
+ 	$(C) -DDLONG -c $< -o $@
++umf_l_%.oo: ../Source/umf_%.c $(INC)
++	$(C) -fPIC -DDLONG -c $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ # compile each routine in the DI version
+@@ -102,33 +113,53 @@
+ 
+ umf_di_%.o: ../Source/umf_%.c $(INC)
+ 	$(C) -DDINT -c $< -o $@
++umf_di_%.oo: ../Source/umf_%.c $(INC)
++	$(C) -fPIC -DDINT -c $< -o $@
+ 
+ umf_di_%hsolve.o: ../Source/umf_%tsolve.c $(INC)
+ 	$(C) -DDINT -DCONJUGATE_SOLVE -c $< -o $@
++umf_di_%hsolve.oo: ../Source/umf_%tsolve.c $(INC)
++	$(C) -fPIC -DDINT -DCONJUGATE_SOLVE -c $< -o $@
+ 
+ umf_di_triplet_map_x.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DDINT -DDO_MAP -DDO_VALUES -c $< -o $@
++umf_di_triplet_map_x.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DDINT -DDO_MAP -DDO_VALUES -c $< -o $@
+ 
+ umf_di_triplet_map_nox.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DDINT -DDO_MAP -c $< -o $@
++umf_di_triplet_map_nox.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DDINT -DDO_MAP -c $< -o $@
+ 
+ umf_di_triplet_nomap_x.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DDINT -DDO_VALUES -c $< -o $@
++umf_di_triplet_nomap_x.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DDINT -DDO_VALUES -c $< -o $@
+ 
+ umf_di_triplet_nomap_nox.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DDINT -c $< -o $@
++umf_di_triplet_nomap_nox.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DDINT -c $< -o $@
+ 
+ umf_di_assemble_fixq.o: ../Source/umf_assemble.c $(INC)
+ 	$(C) -DDINT -DFIXQ -c $< -o $@
++umf_di_assemble_fixq.oo: ../Source/umf_assemble.c $(INC)
++	$(C) -fPIC -DDINT -DFIXQ -c $< -o $@
+ 
+ umf_di_store_lu_drop.o: ../Source/umf_store_lu.c $(INC)
+ 	$(C) -DDINT -DDROP -c $< -o $@
++umf_di_store_lu_drop.oo: ../Source/umf_store_lu.c $(INC)
++	$(C) -fPIC -DDINT -DDROP -c $< -o $@
+ 
+ umfpack_di_wsolve.o: ../Source/umfpack_solve.c $(INC)
+ 	$(C) -DDINT -DWSOLVE -c $< -o $@
++umfpack_di_wsolve.oo: ../Source/umfpack_solve.c $(INC)
++	$(C) -fPIC -DDINT -DWSOLVE -c $< -o $@
+ 
+ umfpack_di_%.o: ../Source/umfpack_%.c $(INC)
+ 	$(C) -DDINT -c $< -o $@
++umfpack_di_%.oo: ../Source/umfpack_%.c $(INC)
++	$(C) -fPIC -DDINT -c $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ # compile each routine in the DL version
+@@ -136,33 +167,53 @@
+ 
+ umf_dl_%.o: ../Source/umf_%.c $(INC)
+ 	$(C) -DDLONG -c $< -o $@
++umf_dl_%.oo: ../Source/umf_%.c $(INC)
++	$(C) -fPIC -DDLONG -c $< -o $@
+ 
+ umf_dl_%hsolve.o: ../Source/umf_%tsolve.c $(INC)
+ 	$(C) -DDLONG -DCONJUGATE_SOLVE -c $< -o $@
++umf_dl_%hsolve.oo: ../Source/umf_%tsolve.c $(INC)
++	$(C) -fPIC -DDLONG -DCONJUGATE_SOLVE -c $< -o $@
+ 
+ umf_dl_triplet_map_x.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DDLONG -DDO_MAP -DDO_VALUES -c $< -o $@
++umf_dl_triplet_map_x.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DDLONG -DDO_MAP -DDO_VALUES -c $< -o $@
+ 
+ umf_dl_triplet_map_nox.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DDLONG -DDO_MAP -c $< -o $@
++umf_dl_triplet_map_nox.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DDLONG -DDO_MAP -c $< -o $@
+ 
+ umf_dl_triplet_nomap_x.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DDLONG -DDO_VALUES -c $< -o $@
++umf_dl_triplet_nomap_x.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DDLONG -DDO_VALUES -c $< -o $@
+ 
+ umf_dl_triplet_nomap_nox.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DDLONG -c $< -o $@
++umf_dl_triplet_nomap_nox.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DDLONG -c $< -o $@
+ 
+ umf_dl_assemble_fixq.o: ../Source/umf_assemble.c $(INC)
+ 	$(C) -DDLONG -DFIXQ -c $< -o $@
++umf_dl_assemble_fixq.oo: ../Source/umf_assemble.c $(INC)
++	$(C) -fPIC -DDLONG -DFIXQ -c $< -o $@
+ 
+ umf_dl_store_lu_drop.o: ../Source/umf_store_lu.c $(INC)
+ 	$(C) -DDLONG -DDROP -c $< -o $@
++umf_dl_store_lu_drop.oo: ../Source/umf_store_lu.c $(INC)
++	$(C) -fPIC -DDLONG -DDROP -c $< -o $@
+ 
+ umfpack_dl_wsolve.o: ../Source/umfpack_solve.c $(INC)
+ 	$(C) -DDLONG -DWSOLVE -c $< -o $@
++umfpack_dl_wsolve.oo: ../Source/umfpack_solve.c $(INC)
++	$(C) -fPIC -DDLONG -DWSOLVE -c $< -o $@
+ 
+ umfpack_dl_%.o: ../Source/umfpack_%.c $(INC)
+ 	$(C) -DDLONG -c $< -o $@
++umfpack_dl_%.oo: ../Source/umfpack_%.c $(INC)
++	$(C) -fPIC -DDLONG -c $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ # compile each routine in the ZI version
+@@ -170,33 +221,58 @@
+ 
+ umf_zi_%.o: ../Source/umf_%.c $(INC)
+ 	$(C) -DZINT -c $< -o $@
++umf_zi_%.oo: ../Source/umf_%.c $(INC)
++	$(C) -fPIC -DZINT -c $< -o $@
+ 
+ umf_zi_%hsolve.o: ../Source/umf_%tsolve.c $(INC)
+ 	$(C) -DZINT -DCONJUGATE_SOLVE -c $< -o $@
++umf_zi_%hsolve.oo: ../Source/umf_%tsolve.c $(INC)
++	$(C) -fPIC -DZINT -DCONJUGATE_SOLVE -c $< -o $@
+ 
+ umf_zi_triplet_map_x.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DZINT -DDO_MAP -DDO_VALUES -c $< -o $@
++umf_zi_triplet_map_x.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DZINT -DDO_MAP -DDO_VALUES -c $< -o $@
+ 
+ umf_zi_triplet_map_nox.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DZINT -DDO_MAP -c $< -o $@
++umf_zi_triplet_map_x.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DZINT -DDO_MAP -DDO_VALUES -c $< -o $@
++
++ umf_zi_triplet_map_nox.o: ../Source/umf_triplet.c $(INC)
++	$(C) -DZINT -DDO_MAP -c $< -o $@
++umf_zi_triplet_map_nox.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DZINT -DDO_MAP -c $< -o $@
+ 
+ umf_zi_triplet_nomap_x.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DZINT -DDO_VALUES -c $< -o $@
++umf_zi_triplet_nomap_x.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DZINT -DDO_VALUES -c $< -o $@
+ 
+ umf_zi_triplet_nomap_nox.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DZINT -c $< -o $@
++umf_zi_triplet_nomap_nox.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DZINT -c $< -o $@
+ 
+ umf_zi_assemble_fixq.o: ../Source/umf_assemble.c $(INC)
+ 	$(C) -DZINT -DFIXQ -c $< -o $@
++umf_zi_assemble_fixq.oo: ../Source/umf_assemble.c $(INC)
++	$(C) -fPIC -DZINT -DFIXQ -c $< -o $@
+ 
+ umf_zi_store_lu_drop.o: ../Source/umf_store_lu.c $(INC)
+ 	$(C) -DZINT -DDROP -c $< -o $@
++umf_zi_store_lu_drop.oo: ../Source/umf_store_lu.c $(INC)
++	$(C) -fPIC -DZINT -DDROP -c $< -o $@
+ 
+ umfpack_zi_wsolve.o: ../Source/umfpack_solve.c $(INC)
+ 	$(C) -DZINT -DWSOLVE -c $< -o $@
++umfpack_zi_wsolve.oo: ../Source/umfpack_solve.c $(INC)
++	$(C) -fPIC -DZINT -DWSOLVE -c $< -o $@
+ 
+ umfpack_zi_%.o: ../Source/umfpack_%.c $(INC)
+ 	$(C) -DZINT -c $< -o $@
++umfpack_zi_%.oo: ../Source/umfpack_%.c $(INC)
++	$(C) -fPIC -DZINT -c $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ # compile each routine in the ZL version
+@@ -204,33 +280,53 @@
+ 
+ umf_zl_%.o: ../Source/umf_%.c $(INC)
+ 	$(C) -DZLONG -c $< -o $@
++umf_zl_%.oo: ../Source/umf_%.c $(INC)
++	$(C) -fPIC -DZLONG -c $< -o $@
+ 
+ umf_zl_%hsolve.o: ../Source/umf_%tsolve.c $(INC)
+ 	$(C) -DZLONG -DCONJUGATE_SOLVE -c $< -o $@
++umf_zl_%hsolve.oo: ../Source/umf_%tsolve.c $(INC)
++	$(C) -fPIC -DZLONG -DCONJUGATE_SOLVE -c $< -o $@
+ 
+ umf_zl_triplet_map_x.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DZLONG -DDO_MAP -DDO_VALUES -c $< -o $@
++umf_zl_triplet_map_x.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DZLONG -DDO_MAP -DDO_VALUES -c $< -o $@
+ 
+ umf_zl_triplet_map_nox.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DZLONG -DDO_MAP -c $< -o $@
++umf_zl_triplet_map_nox.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DZLONG -DDO_MAP -c $< -o $@
+ 
+ umf_zl_triplet_nomap_x.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DZLONG -DDO_VALUES -c $< -o $@
++umf_zl_triplet_nomap_x.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DZLONG -DDO_VALUES -c $< -o $@
+ 
+ umf_zl_triplet_nomap_nox.o: ../Source/umf_triplet.c $(INC)
+ 	$(C) -DZLONG -c $< -o $@
++umf_zl_triplet_nomap_nox.oo: ../Source/umf_triplet.c $(INC)
++	$(C) -fPIC -DZLONG -c $< -o $@
+ 
+ umf_zl_assemble_fixq.o: ../Source/umf_assemble.c $(INC)
+ 	$(C) -DZLONG -DFIXQ -c $< -o $@
++umf_zl_assemble_fixq.oo: ../Source/umf_assemble.c $(INC)
++	$(C) -fPIC -DZLONG -DFIXQ -c $< -o $@
+ 
+ umf_zl_store_lu_drop.o: ../Source/umf_store_lu.c $(INC)
+ 	$(C) -DZLONG -DDROP -c $< -o $@
++umf_zl_store_lu_drop.oo: ../Source/umf_store_lu.c $(INC)
++	$(C) -fPIC -DZLONG -DDROP -c $< -o $@
+ 
+ umfpack_zl_wsolve.o: ../Source/umfpack_solve.c $(INC)
+ 	$(C) -DZLONG -DWSOLVE -c $< -o $@
++umfpack_zl_wsolve.oo: ../Source/umfpack_solve.c $(INC)
++	$(C) -fPIC -DZLONG -DWSOLVE -c $< -o $@
+ 
+ umfpack_zl_%.o: ../Source/umfpack_%.c $(INC)
+ 	$(C) -DZLONG -c $< -o $@
++umfpack_zl_%.oo: ../Source/umfpack_%.c $(INC)
++	$(C) -fPIC -DZLONG -c $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ # Create the generic routines (GN) using a generic rule
+@@ -238,14 +334,20 @@
+ 
+ umfpack_gn_%.o: ../Source/umfpack_%.c $(INC)
+ 	$(C) -c $< -o $@
++umfpack_gn_%.oo: ../Source/umfpack_%.c $(INC)
++	$(C) -fPIC -c $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ # Create the ../Lib/libumfpack.a library
+ #-------------------------------------------------------------------------------
+ 
+-../Lib/libumfpack.a: $(II) $(LL) $(GN) $(DI) $(DL) $(ZI) $(ZL)
+-	$(AR) ../Lib/libumfpack.a $^
+-	- $(RANLIB) ../Lib/libumfpack.a
++libumfpack.a: $(II) $(LL) $(GN) $(DI) $(DL) $(ZI) $(ZL)
++	$(AR) libumfpack.a $^
++	- $(RANLIB) libumfpack.a
++
++libumfpack.so.3.1.0: $(II_SL) $(LL_SL) $(GN_SL) $(DI_SL) $(DL_SL) $(ZI_SL) $(ZL_SL)
++	$(CC) -shared $^ -lm -Wl,-soname -Wl,$@ -o $@
++	ln -s $@ libumfpack.so
+ 
+ #-------------------------------------------------------------------------------
+ # Remove all but the files in the original distribution
+@@ -256,3 +358,6 @@
+ 
+ clean:
+ 	- $(RM) $(CLEAN)
++	-$(RM) *.oo
++	-$(RM) *.a
++	-$(RM) *.so*
diff --git a/debian/patches/12-CHOLMOD_Lib_Makefile.dpatch b/debian/patches/12-CHOLMOD_Lib_Makefile.dpatch
new file mode 100755
index 0000000..7498ef3
--- /dev/null
+++ b/debian/patches/12-CHOLMOD_Lib_Makefile.dpatch
@@ -0,0 +1,676 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 12-CHOLMOD_Lib_Makefile.dpatch by Daniel Rus Morales <rus.daniel at gmail.com>
+##
+## DP: Build the shared library
+
+ at DPATCH@
+diff -u upstrm/CHOLMOD/Lib/Makefile debsrc/CHOLMOD/Lib/Makefile
+--- upstrm/CHOLMOD/Lib/Makefile	2007-05-05 16:36:56.000000000 +0200
++++ debsrc/CHOLMOD/Lib/Makefile	2008-02-17 16:37:51.000000000 +0100
+@@ -10,7 +10,7 @@
+ 
+ C = $(CC) $(CFLAGS) $(CHOLMOD_CONFIG)
+ 
+-all: libcholmod.a
++all: libcholmod.a libcholmod.so.3.1.0
+ 
+ library: libcholmod.a
+ 
+@@ -21,6 +21,9 @@
+ 
+ clean:
+ 	- $(RM) $(CLEAN)
++	-$(RM) *.oo
++	-$(RM) *.a
++	-$(RM) *.so*
+ 
+ #-------------------------------------------------------------------------------
+ # ../Include/ directory contains all include files:
+@@ -49,29 +52,39 @@
+ 	cholmod_copy.o cholmod_dense.o cholmod_error.o cholmod_factor.o \
+ 	cholmod_memory.o cholmod_sparse.o \
+ 	cholmod_transpose.o cholmod_triplet.o
++CORE_SL = $(subst .o,.oo,$(CORE))
+ 
+ CHECK = cholmod_check.o cholmod_read.o cholmod_write.o
++CHECK_SL = $(subst .o,.oo,$(CHECK))
+ 
+ CHOLESKY = cholmod_amd.o cholmod_analyze.o cholmod_colamd.o \
+ 	cholmod_etree.o cholmod_factorize.o cholmod_postorder.o \
+ 	cholmod_rcond.o cholmod_resymbol.o cholmod_rowcolcounts.o \
+ 	cholmod_rowfac.o cholmod_solve.o cholmod_spsolve.o
++CHOLESKY_SL = $(subst .o,.oo,$(CHOLESKY))
+ 
+ MATRIXOPS = cholmod_drop.o cholmod_horzcat.o cholmod_norm.o \
+ 	cholmod_scale.o cholmod_sdmult.o cholmod_ssmult.o \
+ 	cholmod_submatrix.o cholmod_vertcat.o cholmod_symmetry.o
++MATRIXOPS_SL = $(subst .o,.oo,$(MATRIXOPS))
+ 
+ PARTITION = cholmod_ccolamd.o cholmod_csymamd.o \
+ 	cholmod_metis.o cholmod_nesdis.o cholmod_camd.o
++PARTITION_SL = $(subst .o,.oo,$(PARTITION))
+ 
+ MODIFY = cholmod_rowadd.o cholmod_rowdel.o cholmod_updown.o
++MODIFY_SL = $(subst .o,.oo,$(MODIFY))
+ 
+ SUPERNODAL = cholmod_super_numeric.o cholmod_super_solve.o \
+ 	cholmod_super_symbolic.o
++SUPERNODAL_SL = $(subst .o,.oo,$(SUPERNODAL))
+ 
+ DI = $(CORE) $(CHECK) $(CHOLESKY) $(MATRIXOPS) $(MODIFY) $(SUPERNODAL) \
+ 	$(PARTITION)
+ 
++DI_SL = $(CORE_SL) $(CHECK_SL) $(CHOLESKY_SL) $(MATRIXOPS_SL) $(MODIFY_SL) \
++	$(SUPERNODAL_SL) $(PARTITION_SL)
++
+ #-------------------------------------------------------------------------------
+ # CHOLMOD library modules (long, double)
+ #-------------------------------------------------------------------------------
+@@ -81,39 +94,53 @@
+ 	cholmod_l_copy.o cholmod_l_dense.o cholmod_l_error.o \
+ 	cholmod_l_factor.o cholmod_l_memory.o \
+ 	cholmod_l_sparse.o cholmod_l_transpose.o cholmod_l_triplet.o
++LCORE_SL = $(subst .o,.oo,$(LCORE))
+ 
+ LCHECK = cholmod_l_check.o cholmod_l_read.o cholmod_l_write.o
++LCHECK_SL = $(subst .o,.oo,$(LCHECK))
+ 
+ LCHOLESKY = cholmod_l_amd.o cholmod_l_analyze.o cholmod_l_colamd.o \
+ 	cholmod_l_etree.o cholmod_l_factorize.o cholmod_l_postorder.o \
+ 	cholmod_l_rcond.o cholmod_l_resymbol.o cholmod_l_rowcolcounts.o \
+ 	cholmod_l_rowfac.o cholmod_l_solve.o cholmod_l_spsolve.o
++LCHOLESKY_SL = $(subst .o,.oo,$(LCHOLESKY))
+ 
+ LMATRIXOPS = cholmod_l_drop.o cholmod_l_horzcat.o cholmod_l_norm.o \
+ 	cholmod_l_scale.o cholmod_l_sdmult.o cholmod_l_ssmult.o \
+ 	cholmod_l_submatrix.o cholmod_l_vertcat.o cholmod_l_symmetry.o
++LMATRIXOPS_SL = $(subst .o,.oo,$(LMATRIXOPS))
+ 
+ LPARTITION = cholmod_l_ccolamd.o cholmod_l_csymamd.o \
+ 	cholmod_l_metis.o cholmod_l_nesdis.o cholmod_l_camd.o
++LPARTITION_SL = $(subst .o,.oo,$(LPARTITION))
+ 
+ LMODIFY = cholmod_l_rowadd.o cholmod_l_rowdel.o cholmod_l_updown.o
++LMODIFY_SL = $(subst .o,.oo,$(LMODIFY))
+ 
+ LSUPERNODAL = cholmod_l_super_numeric.o cholmod_l_super_solve.o \
+ 	cholmod_l_super_symbolic.o
++LSUPERNODAL_SL = $(subst .o,.oo,$(LSUPERNODAL))
+ 
+ DL = $(LCORE) $(LCHECK) $(LCHOLESKY) $(LMATRIXOPS) $(LMODIFY) $(LSUPERNODAL) \
+ 	$(LPARTITION)
++DL_SL = $(LCORE_SL) $(LCHECK_SL) $(LCHOLESKY_SL) $(LMATRIXOPS_SL) \
++	$(LMODIFY_SL) $(LSUPERNODAL_SL) $(LPARTITION_SL)
+ 
+ #-------------------------------------------------------------------------------
+ 
+ # to compile just the double/int version, use OBJ = $(DI)
+ OBJ = $(DI) $(DL)
++OBJ_SL = $(DI_SL) $(DL_SL)
+ 
+ libcholmod.a: $(OBJ)
+ 	$(AR) libcholmod.a $(OBJ)
+ 	$(RANLIB) libcholmod.a
+ 
+-$(OBJ): $(INC)
++libcholmod.so.3.1.0: $(OBJ_SL)
++	$(CC) -shared $^ -lblas -llapack -lmetis ../../AMD/Lib/libamd.so ../../CAMD/Lib/libcamd.so ../../COLAMD/Lib/libcolamd.so ../../CCOLAMD/Lib/libccolamd.so -lm  -Wl,-soname -Wl,$@ -o $@
++	ln -s $@ libcholmod.so
++
++$(OBJ) $(OBJ_SL): $(INC)
+ 
+ I = -I../../AMD/Include -I../../AMD/Source -I../../COLAMD/Include \
+ 	-I$(METIS_PATH)/Lib -I../../CCOLAMD/Include -I../../CAMD/Include \
+@@ -125,23 +152,35 @@
+ 
+ cholmod_check.o: ../Check/cholmod_check.c
+ 	$(C) -c $(I) $<
++cholmod_check.oo: ../Check/cholmod_check.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_read.o: ../Check/cholmod_read.c
+ 	$(C) -c $(I) $<
++cholmod_read.oo: ../Check/cholmod_read.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_write.o: ../Check/cholmod_write.c
+ 	$(C) -c $(I) $<
++cholmod_write.oo: ../Check/cholmod_write.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ 
+ cholmod_l_check.o: ../Check/cholmod_check.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_check.oo: ../Check/cholmod_check.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_read.o: ../Check/cholmod_read.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_read.oo: ../Check/cholmod_read.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_write.o: ../Check/cholmod_write.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_write.oo: ../Check/cholmod_write.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ 
+ #-------------------------------------------------------------------------------
+@@ -150,92 +189,149 @@
+ 
+ cholmod_common.o: ../Core/cholmod_common.c
+ 	$(C) -c $(I) $<
++cholmod_common.oo: ../Core/cholmod_common.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_dense.o: ../Core/cholmod_dense.c ../Core/t_cholmod_dense.c
+ 	$(C) -c $(I) $<
++cholmod_dense.oo: ../Core/cholmod_dense.c ../Core/t_cholmod_dense.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_factor.o: ../Core/cholmod_factor.c
+ 	$(C) -c $(I) $<
++cholmod_factor.oo: ../Core/cholmod_factor.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_change_factor.o: ../Core/cholmod_change_factor.c \
+ 	../Core/t_cholmod_change_factor.c
+ 	$(C) -c $(I) $<
++cholmod_change_factor.oo: ../Core/cholmod_change_factor.c \
++	../Core/t_cholmod_change_factor.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_memory.o: ../Core/cholmod_memory.c
+ 	$(C) -c $(I) $<
++cholmod_memory.oo: ../Core/cholmod_memory.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_sparse.o: ../Core/cholmod_sparse.c
+ 	$(C) -c $(I) $<
++cholmod_sparse.oo: ../Core/cholmod_sparse.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_complex.o: ../Core/cholmod_complex.c
+ 	$(C) -c $(I) $<
++cholmod_complex.oo: ../Core/cholmod_complex.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_transpose.o: ../Core/cholmod_transpose.c ../Core/t_cholmod_transpose.c
+ 	$(C) -c $(I) $<
++cholmod_transpose.oo: ../Core/cholmod_transpose.c ../Core/t_cholmod_transpose.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_band.o: ../Core/cholmod_band.c
+ 	$(C) -c $(I) $<
++cholmod_band.oo: ../Core/cholmod_band.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_copy.o: ../Core/cholmod_copy.c
+ 	$(C) -c $(I) $<
++cholmod_copy.oo: ../Core/cholmod_copy.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_triplet.o: ../Core/cholmod_triplet.c ../Core/t_cholmod_triplet.c
+ 	$(C) -c $(I) $<
++cholmod_triplet.oo: ../Core/cholmod_triplet.c ../Core/t_cholmod_triplet.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_error.o: ../Core/cholmod_error.c
+ 	$(C) -c $(I) $<
++cholmod_error.oo: ../Core/cholmod_error.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_aat.o: ../Core/cholmod_aat.c
+ 	$(C) -c $(I) $<
++cholmod_aat.oo: ../Core/cholmod_aat.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_add.o: ../Core/cholmod_add.c
+ 	$(C) -c $(I) $<
++cholmod_add.oo: ../Core/cholmod_add.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ 
+ cholmod_l_common.o: ../Core/cholmod_common.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_common.oo: ../Core/cholmod_common.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_dense.o: ../Core/cholmod_dense.c ../Core/t_cholmod_dense.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_dense.oo: ../Core/cholmod_dense.c ../Core/t_cholmod_dense.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_factor.o: ../Core/cholmod_factor.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_factor.oo: ../Core/cholmod_factor.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_change_factor.o: ../Core/cholmod_change_factor.c \
+ 	../Core/t_cholmod_change_factor.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_change_factor.oo: ../Core/cholmod_change_factor.c \
++	../Core/t_cholmod_change_factor.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_memory.o: ../Core/cholmod_memory.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_memory.oo: ../Core/cholmod_memory.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_sparse.o: ../Core/cholmod_sparse.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_sparse.oo: ../Core/cholmod_sparse.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_complex.o: ../Core/cholmod_complex.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_complex.oo: ../Core/cholmod_complex.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_transpose.o: ../Core/cholmod_transpose.c ../Core/t_cholmod_transpose.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_transpose.oo: ../Core/cholmod_transpose.c ../Core/t_cholmod_transpose.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_band.o: ../Core/cholmod_band.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_band.oo: ../Core/cholmod_band.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_copy.o: ../Core/cholmod_copy.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_copy.oo: ../Core/cholmod_copy.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_triplet.o: ../Core/cholmod_triplet.c ../Core/t_cholmod_triplet.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_triplet.oo: ../Core/cholmod_triplet.c ../Core/t_cholmod_triplet.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_error.o: ../Core/cholmod_error.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_error.oo: ../Core/cholmod_error.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_aat.o: ../Core/cholmod_aat.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_aat.oo: ../Core/cholmod_aat.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_add.o: ../Core/cholmod_add.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
+-
++cholmod_l_add.oo: ../Core/cholmod_add.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ # Cholesky Module:
+@@ -243,79 +339,129 @@
+ 
+ cholmod_amd.o: ../Cholesky/cholmod_amd.c
+ 	$(C) -c $(I) $<
++cholmod_amd.oo: ../Cholesky/cholmod_amd.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_analyze.o: ../Cholesky/cholmod_analyze.c
+ 	$(C) -c $(I) $<
++cholmod_analyze.oo: ../Cholesky/cholmod_analyze.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_colamd.o: ../Cholesky/cholmod_colamd.c
+ 	$(C) -c $(I) $<
++cholmod_colamd.oo: ../Cholesky/cholmod_colamd.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_etree.o: ../Cholesky/cholmod_etree.c
+ 	$(C) -c $(I) $<
++cholmod_etree.oo: ../Cholesky/cholmod_etree.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_factorize.o: ../Cholesky/cholmod_factorize.c
+ 	$(C) -c $(I) $<
++cholmod_factorize.oo: ../Cholesky/cholmod_factorize.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_postorder.o: ../Cholesky/cholmod_postorder.c
+ 	$(C) -c $(I) $<
++cholmod_postorder.oo: ../Cholesky/cholmod_postorder.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_rcond.o: ../Cholesky/cholmod_rcond.c
+ 	$(C) -c $(I) $<
++cholmod_rcond.oo: ../Cholesky/cholmod_rcond.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_resymbol.o: ../Cholesky/cholmod_resymbol.c
+ 	$(C) -c $(I) $<
++cholmod_resymbol.oo: ../Cholesky/cholmod_resymbol.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_rowcolcounts.o: ../Cholesky/cholmod_rowcolcounts.c
+ 	$(C) -c $(I) $<
++cholmod_rowcolcounts.oo: ../Cholesky/cholmod_rowcolcounts.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_solve.o: ../Cholesky/cholmod_solve.c ../Cholesky/t_cholmod_lsolve.c \
+ 	../Cholesky/t_cholmod_ltsolve.c ../Cholesky/t_cholmod_solve.c
+ 	$(C) -c $(I) $<
++cholmod_solve.oo: ../Cholesky/cholmod_solve.c ../Cholesky/t_cholmod_lsolve.c \
++	../Cholesky/t_cholmod_ltsolve.c ../Cholesky/t_cholmod_solve.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_spsolve.o: ../Cholesky/cholmod_spsolve.c
+ 	$(C) -c $(I) $<
++cholmod_spsolve.oo: ../Cholesky/cholmod_spsolve.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_rowfac.o: ../Cholesky/cholmod_rowfac.c ../Cholesky/t_cholmod_rowfac.c
+ 	$(C) -c $(I) $<
++cholmod_rowfac.oo: ../Cholesky/cholmod_rowfac.c ../Cholesky/t_cholmod_rowfac.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ 
+ cholmod_l_amd.o: ../Cholesky/cholmod_amd.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_amd.oo: ../Cholesky/cholmod_amd.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_analyze.o: ../Cholesky/cholmod_analyze.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_analyze.oo: ../Cholesky/cholmod_analyze.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_colamd.o: ../Cholesky/cholmod_colamd.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_colamd.oo: ../Cholesky/cholmod_colamd.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_etree.o: ../Cholesky/cholmod_etree.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_etree.oo: ../Cholesky/cholmod_etree.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_factorize.o: ../Cholesky/cholmod_factorize.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_factorize.oo: ../Cholesky/cholmod_factorize.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_postorder.o: ../Cholesky/cholmod_postorder.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_postorder.oo: ../Cholesky/cholmod_postorder.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_rcond.o: ../Cholesky/cholmod_rcond.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_rcond.oo: ../Cholesky/cholmod_rcond.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_resymbol.o: ../Cholesky/cholmod_resymbol.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_resymbol.oo: ../Cholesky/cholmod_resymbol.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_rowcolcounts.o: ../Cholesky/cholmod_rowcolcounts.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_rowcolcounts.oo: ../Cholesky/cholmod_rowcolcounts.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_solve.o: ../Cholesky/cholmod_solve.c ../Cholesky/t_cholmod_lsolve.c \
+ 	../Cholesky/t_cholmod_ltsolve.c ../Cholesky/t_cholmod_solve.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_solve.oo: ../Cholesky/cholmod_solve.c ../Cholesky/t_cholmod_lsolve.c \
++	../Cholesky/t_cholmod_ltsolve.c ../Cholesky/t_cholmod_solve.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_spsolve.o: ../Cholesky/cholmod_spsolve.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_spsolve.oo: ../Cholesky/cholmod_spsolve.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_rowfac.o: ../Cholesky/cholmod_rowfac.c ../Cholesky/t_cholmod_rowfac.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_rowfac.oo: ../Cholesky/cholmod_rowfac.c ../Cholesky/t_cholmod_rowfac.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ # Partition Module:
+@@ -323,35 +469,55 @@
+ 
+ cholmod_ccolamd.o: ../Partition/cholmod_ccolamd.c
+ 	$(C) -c $(I) $<
++cholmod_ccolamd.oo: ../Partition/cholmod_ccolamd.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_csymamd.o: ../Partition/cholmod_csymamd.c
+ 	$(C) -c $(I) $<
++cholmod_csymamd.oo: ../Partition/cholmod_csymamd.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_camd.o: ../Partition/cholmod_camd.c
+ 	$(C) -c $(I) $<
++cholmod_camd.oo: ../Partition/cholmod_camd.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_metis.o: ../Partition/cholmod_metis.c
+ 	$(C) -c $(I) $<
++cholmod_metis.oo: ../Partition/cholmod_metis.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_nesdis.o: ../Partition/cholmod_nesdis.c
+ 	$(C) -c $(I) $<
++cholmod_nesdis.oo: ../Partition/cholmod_nesdis.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ 
+ cholmod_l_ccolamd.o: ../Partition/cholmod_ccolamd.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_ccolamd.oo: ../Partition/cholmod_ccolamd.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_csymamd.o: ../Partition/cholmod_csymamd.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_csymamd.oo: ../Partition/cholmod_csymamd.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_camd.o: ../Partition/cholmod_camd.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_camd.oo: ../Partition/cholmod_camd.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_metis.o: ../Partition/cholmod_metis.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_metis.oo: ../Partition/cholmod_metis.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_nesdis.o: ../Partition/cholmod_nesdis.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_nesdis.oo: ../Partition/cholmod_nesdis.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ 
+ #-------------------------------------------------------------------------------
+@@ -360,61 +526,99 @@
+ 
+ cholmod_horzcat.o: ../MatrixOps/cholmod_horzcat.c
+ 	$(C) -c $(I) $<
++cholmod_horzcat.oo: ../MatrixOps/cholmod_horzcat.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_norm.o: ../MatrixOps/cholmod_norm.c
+ 	$(C) -c $(I) $<
++cholmod_norm.oo: ../MatrixOps/cholmod_norm.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_scale.o: ../MatrixOps/cholmod_scale.c
+ 	$(C) -c $(I) $<
++cholmod_scale.oo: ../MatrixOps/cholmod_scale.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_drop.o: ../MatrixOps/cholmod_drop.c
+ 	$(C) -c $(I) $<
++cholmod_drop.oo: ../MatrixOps/cholmod_drop.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_sdmult.o: ../MatrixOps/cholmod_sdmult.c \
+ 	../MatrixOps/t_cholmod_sdmult.c
+ 	$(C) -c $(I) $<
++cholmod_sdmult.oo: ../MatrixOps/cholmod_sdmult.c \
++	../MatrixOps/t_cholmod_sdmult.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_ssmult.o: ../MatrixOps/cholmod_ssmult.c
+ 	$(C) -c $(I) $<
++cholmod_ssmult.oo: ../MatrixOps/cholmod_ssmult.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_submatrix.o: ../MatrixOps/cholmod_submatrix.c
+ 	$(C) -c $(I) $<
++cholmod_submatrix.oo: ../MatrixOps/cholmod_submatrix.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_vertcat.o: ../MatrixOps/cholmod_vertcat.c
+ 	$(C) -c $(I) $<
++cholmod_vertcat.oo: ../MatrixOps/cholmod_vertcat.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_symmetry.o: ../MatrixOps/cholmod_symmetry.c
+ 	$(C) -c $(I) $<
++cholmod_symmetry.oo: ../MatrixOps/cholmod_symmetry.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ 
+ cholmod_l_horzcat.o: ../MatrixOps/cholmod_horzcat.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_horzcat.oo: ../MatrixOps/cholmod_horzcat.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_norm.o: ../MatrixOps/cholmod_norm.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_norm.oo: ../MatrixOps/cholmod_norm.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_scale.o: ../MatrixOps/cholmod_scale.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_scale.oo: ../MatrixOps/cholmod_scale.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_drop.o: ../MatrixOps/cholmod_drop.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_drop.oo: ../MatrixOps/cholmod_drop.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_sdmult.o: ../MatrixOps/cholmod_sdmult.c \
+ 	../MatrixOps/t_cholmod_sdmult.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_sdmult.oo: ../MatrixOps/cholmod_sdmult.c \
++	../MatrixOps/t_cholmod_sdmult.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_ssmult.o: ../MatrixOps/cholmod_ssmult.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_ssmult.oo: ../MatrixOps/cholmod_ssmult.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_submatrix.o: ../MatrixOps/cholmod_submatrix.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_submatrix.oo: ../MatrixOps/cholmod_submatrix.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_vertcat.o: ../MatrixOps/cholmod_vertcat.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_vertcat.oo: ../MatrixOps/cholmod_vertcat.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_symmetry.o: ../MatrixOps/cholmod_symmetry.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_symmetry.oo: ../MatrixOps/cholmod_symmetry.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ # Modify Module:
+@@ -422,25 +626,39 @@
+ 
+ cholmod_rowadd.o: ../Modify/cholmod_rowadd.c
+ 	$(C) -c $(I) $<
++cholmod_rowadd.oo: ../Modify/cholmod_rowadd.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_rowdel.o: ../Modify/cholmod_rowdel.c
+ 	$(C) -c $(I) $<
++cholmod_rowdel.oo: ../Modify/cholmod_rowdel.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_updown.o: ../Modify/cholmod_updown.c \
+ 	../Modify/t_cholmod_updown.c ../Modify/t_cholmod_updown_numkr.c
+ 	$(C) -c $(I) $<
++cholmod_updown.oo: ../Modify/cholmod_updown.c \
++	../Modify/t_cholmod_updown.c ../Modify/t_cholmod_updown_numkr.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ 
+ cholmod_l_rowadd.o: ../Modify/cholmod_rowadd.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_rowadd.oo: ../Modify/cholmod_rowadd.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_rowdel.o: ../Modify/cholmod_rowdel.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_rowdel.oo: ../Modify/cholmod_rowdel.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_updown.o: ../Modify/cholmod_updown.c \
+ 	../Modify/t_cholmod_updown.c ../Modify/t_cholmod_updown_numkr.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_updown.oo: ../Modify/cholmod_updown.c \
++	../Modify/t_cholmod_updown.c ../Modify/t_cholmod_updown_numkr.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ 
+ #-------------------------------------------------------------------------------
+@@ -450,23 +668,39 @@
+ cholmod_super_numeric.o: ../Supernodal/cholmod_super_numeric.c \
+ 	../Supernodal/t_cholmod_super_numeric.c
+ 	$(C) -c $(I) $<
++cholmod_super_numeric.oo: ../Supernodal/cholmod_super_numeric.c \
++	../Supernodal/t_cholmod_super_numeric.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_super_symbolic.o: ../Supernodal/cholmod_super_symbolic.c
+ 	$(C) -c $(I) $<
++cholmod_super_symbolic.oo: ../Supernodal/cholmod_super_symbolic.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ cholmod_super_solve.o: ../Supernodal/cholmod_super_solve.c \
+ 	../Supernodal/t_cholmod_super_solve.c
+ 	$(C) -c $(I) $<
++cholmod_super_solve.oo: ../Supernodal/cholmod_super_solve.c \
++	../Supernodal/t_cholmod_super_solve.c
++	$(C) -fPIC -c $(I) $< -o $@
+ 
+ #-------------------------------------------------------------------------------
+ 
+ cholmod_l_super_numeric.o: ../Supernodal/cholmod_super_numeric.c \
+ 	../Supernodal/t_cholmod_super_numeric.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_super_numeric.oo: ../Supernodal/cholmod_super_numeric.c \
++	../Supernodal/t_cholmod_super_numeric.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_super_symbolic.o: ../Supernodal/cholmod_super_symbolic.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_super_symbolic.oo: ../Supernodal/cholmod_super_symbolic.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
+ 
+ cholmod_l_super_solve.o: ../Supernodal/cholmod_super_solve.c \
+ 	../Supernodal/t_cholmod_super_solve.c
+ 	$(C) -DDLONG -c $(I) $< -o $@
++cholmod_l_super_solve.oo: ../Supernodal/cholmod_super_solve.c \
++	../Supernodal/t_cholmod_super_solve.c
++	$(C) -fPIC -DDLONG -c $(I) $< -o $@
diff --git a/debian/patches/13-CHOLMOD_Demo_Makefile.dpatch b/debian/patches/13-CHOLMOD_Demo_Makefile.dpatch
new file mode 100755
index 0000000..e91dcae
--- /dev/null
+++ b/debian/patches/13-CHOLMOD_Demo_Makefile.dpatch
@@ -0,0 +1,18 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 13-CHOLMOD_Demo_Makefile.dpatch by Daniel Rus Morales <rus.daniel at gmail.com>
+##
+## DP: Link against metis library.
+
+ at DPATCH@
+diff -u upstrm/CHOLMOD/Demo/Makefile debsrc/CHOLMOD/Demo/Makefile
+--- upstrm/CHOLMOD/Demo/Makefile	2007-05-05 16:37:46.000000000 +0200
++++ debsrc/CHOLMOD/Demo/Makefile	2008-02-17 16:39:17.000000000 +0100
+@@ -19,7 +19,7 @@
+ 	$(LAPACK) $(BLAS) $(XERBLA) $(LIB)
+ #-------------------------------------------------------------------------------
+ 
+-C = $(CC) $(CFLAGS) $(CHOLMOD_CONFIG)
++C = $(CC) $(CFLAGS) $(CHOLMOD_CONFIG) -lmetis
+ 
+ code: library cholmod_demo cholmod_l_demo cholmod_simple
+ 
diff --git a/debian/patches/14-UFconfig_UFconfig.mk.dpatch b/debian/patches/14-UFconfig_UFconfig.mk.dpatch
new file mode 100755
index 0000000..11d46bb
--- /dev/null
+++ b/debian/patches/14-UFconfig_UFconfig.mk.dpatch
@@ -0,0 +1,65 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 14-UFconfig_UFconfig.mk.dpatch by Daniel Rus Morales <rus.daniel at gmail.com>
+##
+## DP: customized compilation flags
+
+ at DPATCH@
+diff -u upstrm/UFconfig/UFconfig.mk debsrc/UFconfig/UFconfig.mk
+--- upstrm/UFconfig/UFconfig.mk	2007-10-24 15:55:44.000000000 +0200
++++ debsrc/UFconfig/UFconfig.mk	2008-02-17 16:40:53.000000000 +0100
+@@ -85,8 +85,8 @@
+ # BLAS = -lgoto -lgfortran -lgfortranbegin
+ 
+ # This is probably slow ... it might connect to the Standard Reference BLAS:
+-BLAS = -lblas -lgfortran -lgfortranbegin
+-LAPACK = -llapack
++BLAS = -lblas
++LAPACK = -llapack
+ 
+ # The BLAS might not contain xerbla, an error-handling routine for LAPACK and
+ # the BLAS.  Also, the standard xerbla requires the Fortran I/O library, and
+@@ -114,13 +114,13 @@
+ # The path is relative to where it is used, in CHOLMOD/Lib, CHOLMOD/MATLAB, etc.
+ # You may wish to use an absolute path.  METIS is optional.  Compile
+ # CHOLMOD with -DNPARTITION if you do not wish to use METIS.
+-METIS_PATH = ../../metis-4.0
+-METIS = ../../metis-4.0/libmetis.a
++#METIS_PATH = ../../metis-4.0
++#METIS = ../../metis-4.0/libmetis.a
+ 
+ # If you use CHOLMOD_CONFIG = -DNPARTITION then you must use the following
+ # options:
+-# METIS_PATH =
+-# METIS =
++METIS_PATH =
++METIS =
+ 
+ #------------------------------------------------------------------------------
+ # UMFPACK configuration:
+@@ -176,7 +176,7 @@
+ # -DNSUNPERF	    for Solaris only.  If defined, do not use the Sun
+ #			Performance Library
+ 
+-CHOLMOD_CONFIG =
++CHOLMOD_CONFIG = -I/usr/include/metis -I/usr/include/mpi
+ 
+ #------------------------------------------------------------------------------
+ # Linux
+@@ -184,7 +184,7 @@
+ 
+ # Using default compilers:
+ # CC = gcc
+-CFLAGS = -O3
++# CFLAGS = -O3
+ 
+ # alternatives:
+ # CFLAGS = -g -fexceptions \
+@@ -193,7 +193,7 @@
+ # CFLAGS = -O3 -fexceptions \
+    	-Wall -W -Werror -Wshadow -Wmissing-prototypes -Wstrict-prototypes \
+     	-Wredundant-decls -Wnested-externs -Wdisabled-optimization -ansi
+-# CFLAGS = -O3 -fexceptions -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
++CFLAGS = -O3 -fexceptions -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
+ # CFLAGS = -O3
+ 
+ # consider:
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..a4e9cc0
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,29 @@
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/dpatch.mk
+include /usr/share/dpatch/dpatch.make
+
+DEB_AUTO_CLEANUP_RCS	:= yes
+DEB_SRCDIR 		:= $(CURDIR)/
+DEB_BUILDDIR 		:= $(DEB_SRCDIR)/
+
+DEB_MAKE_CLEAN_TARGET   := clean
+DEB_MAKE_BUILD_TARGET   := default
+DEB_COMPRESS_EXCLUDE    := .pdf
+
+CFLAGS=-Wall -fexceptions -O3
+ifeq ($(DEB_HOST_ARCH_CPU),amd64)
+ CFLAGS+=-m64
+endif
+
+binary-post-install/libsuitesparse-metis::
+	install -d debian/libsuitesparse-metis/usr/share/lintian/overrides
+	install -m 644 debian/libsuitesparse-metis.overrides debian/libsuitesparse-metis/usr/share/lintian/overrides/libsuitesparse-metis
+
+clean::
+	-make purge
+	-find $(DEB_BUILDDIR) -name "*.a" | xargs rm
+	-find $(DEB_BUILDDIR) -name "*.so*" | xargs rm
+
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..881fbc3
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,22 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+# Uncomment to examine a Webpage
+# <Webpage URL> <string match>
+http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-(.*).tar.gz
+
+# Uncomment to examine a Webserver directory
+#http://www.example.com/pub/ufsparse-(.*)\.tar\.gz
+
+# Uncommment to examine a FTP server
+#ftp://ftp.example.com/pub/ufsparse-(.*)\.tar\.gz debian uupdate
+
+# Uncomment to find new files on sourceforge, for debscripts >= 2.9
+# http://sf.net/ufsparse/ufsparse-(.*)\.tar\.gz
+
+

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/suitesparse-metis.git



More information about the debian-science-commits mailing list