[hypre] 01/03: Update debian/rules and debian/patches.

Drew Parsons dparsons at moszumanska.debian.org
Tue Nov 1 02:04:27 UTC 2016


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

dparsons pushed a commit to branch experimental
in repository hypre.

commit efc3b7453ec4b828a901eeb24cc78251bd3542e6
Author: Drew Parsons <dparsons at debian.org>
Date:   Tue Nov 1 08:19:40 2016 +0800

    Update debian/rules and debian/patches.
    
    Thanks Christophe Trophime.
---
 debian/changelog                            |   1 +
 debian/patches/blas.patch                   |  24 ++
 debian/patches/cmake-install.patch          |  32 ++
 debian/patches/cmake.patch                  |  45 +++
 debian/patches/complex.patch                |  42 +++
 debian/patches/config-for-petsc.patch       |  15 +
 debian/patches/config-update-dir.patch      |   4 +-
 debian/patches/configure.patch              |  47 +++
 debian/patches/examples.patch               | 257 +++++++++++++
 debian/patches/fgmres-lib.patch             |  38 +-
 debian/patches/flexgmres-to-parcsr_ls.patch |  16 +-
 debian/patches/install-libs.patch           | 342 +++++++++--------
 debian/patches/install.patch                | 293 +++++++++++++++
 debian/patches/series                       |  15 +-
 debian/patches/shlibs-interlink.patch       | 551 +++-------------------------
 debian/patches/superlu.patch                |  23 ++
 debian/patches/test.patch                   | 524 ++++++++++++++++++++++++++
 debian/rules                                | 239 ++++++------
 18 files changed, 1710 insertions(+), 798 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 6cea061..7b9e7f1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ hypre (2.11.1-1) UNRELEASED; urgency=medium
   * Team upload.
   * New upstream version.
   * Updated debian/watch.
+  * Update debian/rules and debian/patches. Thanks Christophe Trophime.
 
  -- Drew Parsons <dparsons at debian.org>  Mon, 31 Oct 2016 14:51:26 +0800
 
diff --git a/debian/patches/blas.patch b/debian/patches/blas.patch
new file mode 100644
index 0000000..81c028a
--- /dev/null
+++ b/debian/patches/blas.patch
@@ -0,0 +1,24 @@
+Index: hypre-2.11.0/src/config/hypre_blas_macros.m4
+===================================================================
+--- hypre-2.11.0.orig/src/config/hypre_blas_macros.m4
++++ hypre-2.11.0/src/config/hypre_blas_macros.m4
+@@ -67,7 +67,7 @@ AC_DEFUN([AC_HYPRE_FIND_BLAS],
+ #***************************************************************
+   hypre_save_LIBS="$LIBS"
+   hypre_save_LDFLGS="$LDFLAGS"
+-  LIBS="$LIBS  -nodefaultlibs -L/usr/local/Cellar/gcc/5.3.0/lib/gcc/5/liblgfortran.a -lm"
++#  LIBS="$LIBS  -nodefaultlibs -L/usr/local/Cellar/gcc/5.3.0/lib/gcc/5/liblgfortran.a -lm"
+ 
+ #***************************************************************
+ #   Set possible BLAS library names
+@@ -77,8 +77,8 @@ AC_DEFUN([AC_HYPRE_FIND_BLAS],
+ #***************************************************************
+ #   Set search paths for BLAS library
+ #***************************************************************
+-  temp_FLAGS="-L/usr/local2/lib -L/usr/lib2 -L/lib -L/opt/intel/mkl70/lib/32"
+-  LDFLAGS="-nodefaultlibs $temp_FLAGS $LDFLAGS"
++#  temp_FLAGS="-L/usr/local2/lib -L/usr/lib2 -L/lib -L/opt/intel/mkl70/lib/32"
++#  LDFLAGS="-nodefaultlibs $temp_FLAGS $LDFLAGS"
+ 
+ #***************************************************************
+ #   Check for function dgemm in BLAS_LIB_NAMES
diff --git a/debian/patches/cmake-install.patch b/debian/patches/cmake-install.patch
new file mode 100644
index 0000000..e165806
--- /dev/null
+++ b/debian/patches/cmake-install.patch
@@ -0,0 +1,32 @@
+Index: hypre-2.10.0b/src/CMakeLists.txt
+===================================================================
+--- hypre-2.10.0b.orig/src/CMakeLists.txt
++++ hypre-2.10.0b/src/CMakeLists.txt
+@@ -8,6 +8,10 @@ set (HYPRE_TIME    00:00:00)
+ set (HYPRE_BUGS    hypre-support at llnl.gov)
+ set (HYPRE_SRCDIR  "${PROJECT_SOURCE_DIR}")
+ 
++set(HYPRE_MAJOR_VERSION 2)
++set(HYPRE_MINOR_VERSION 10)
++set(HYPRE_PATCH_VERSION 0b)
++
+ if (${hypre_SOURCE_DIR} STREQUAL ${hypre_BINARY_DIR})
+   message(FATAL_ERROR "In-place build not allowed! Please use a separate build directory. See the Users Manual or INSTALL file for details.")
+ endif ()
+@@ -778,9 +782,13 @@ if (HYPRE_USING_FEI)
+ endif ()
+ 
+ add_library (HYPRE ${HYPRE_SOURCES} ${FEI_LIBS})
+-
+-install (TARGETS HYPRE DESTINATION lib)
+-install (FILES ${HYPRE_HEADERS} DESTINATION include)
++if (BUILD_SHARED_LIBS)
++set_target_properties(HYPRE PROPERTIES
++     VERSION ${HYPRE_MAJOR_VERSION}.${HYPRE_MINOR_VERSION}.${HYPRE_PATCH_VERSION}
++     SOVERSION ${HYPRE_MAJOR_VERSION})
++endif (BUILD_SHARED_LIBS)
++install (TARGETS HYPRE DESTINATION ${INSTALL_LIB_DIR})
++install (FILES ${HYPRE_HEADERS} DESTINATION include/hypre)
+ 
+ # add_subdirectory (test EXCLUDE_FROM_ALL)
+  
diff --git a/debian/patches/cmake.patch b/debian/patches/cmake.patch
new file mode 100644
index 0000000..4ad9cc7
--- /dev/null
+++ b/debian/patches/cmake.patch
@@ -0,0 +1,45 @@
+Index: hypre-2.9.1a/src/CMakeLists.txt
+===================================================================
+--- hypre-2.9.1a.orig/src/CMakeLists.txt	2013-09-12 08:36:16.000000000 +0200
++++ hypre-2.9.1a/src/CMakeLists.txt	2013-09-12 08:36:16.000000000 +0200
+@@ -772,7 +772,7 @@
+ add_library (HYPRE ${HYPRE_SOURCES} ${FEI_LIBS})
+ 
+ install (TARGETS HYPRE DESTINATION lib)
+-install (FILES ${HYPRE_HEADERS} DESTINATION include)
++install (FILES ${HYPRE_HEADERS} DESTINATION include/hypre)
+ 
+ # add_subdirectory (test EXCLUDE_FROM_ALL)
+  
+Index: hypre-2.9.1a/src/FEI_mv/SuperLU/CMakeLists.txt
+===================================================================
+--- hypre-2.9.1a.orig/src/FEI_mv/SuperLU/CMakeLists.txt	2012-09-25 00:59:53.000000000 +0200
++++ hypre-2.9.1a/src/FEI_mv/SuperLU/CMakeLists.txt	2013-09-12 08:40:05.000000000 +0200
+@@ -59,4 +59,5 @@
+   set_target_properties(HYPRE_superlu PROPERTIES COMPILE_FLAGS "-fPIC")
+ endif()
+ 
+-install (FILES ${HYPRE_superlu_HEADERS} DESTINATION include)
++install (TARGETS HYPRE_superlu DESTINATION lib)
++install (FILES ${HYPRE_superlu_HEADERS} DESTINATION include/hypre)
+Index: hypre-2.9.1a/src/FEI_mv/fei-hypre/CMakeLists.txt
+===================================================================
+--- hypre-2.9.1a.orig/src/FEI_mv/fei-hypre/CMakeLists.txt	2012-09-25 02:13:39.000000000 +0200
++++ hypre-2.9.1a/src/FEI_mv/fei-hypre/CMakeLists.txt	2013-09-12 08:40:41.000000000 +0200
+@@ -66,4 +66,5 @@
+   set_target_properties(HYPRE_fei PROPERTIES COMPILE_FLAGS "-fPIC")
+ endif()
+ 
+-install (FILES ${HYPRE_fei_HEADERS} DESTINATION include)
++install (TARGETS HYPRE_fei DESTINATION lib)
++install (FILES ${HYPRE_fei_HEADERS} DESTINATION include/hypre)
+Index: hypre-2.9.1a/src/FEI_mv/femli/CMakeLists.txt
+===================================================================
+--- hypre-2.9.1a.orig/src/FEI_mv/femli/CMakeLists.txt	2012-09-25 00:59:54.000000000 +0200
++++ hypre-2.9.1a/src/FEI_mv/femli/CMakeLists.txt	2013-09-12 08:49:00.000000000 +0200
+@@ -46,3 +46,5 @@
+ if(BUILD_SHARED_LIBS)
+   set_target_properties(HYPRE_mli PROPERTIES COMPILE_FLAGS "-fPIC")
+ endif()
++
++install (TARGETS HYPRE_mli DESTINATION lib)
diff --git a/debian/patches/complex.patch b/debian/patches/complex.patch
new file mode 100644
index 0000000..2171005
--- /dev/null
+++ b/debian/patches/complex.patch
@@ -0,0 +1,42 @@
+Description: <short summary of the patch>
+ TODO: Put a short summary on the line above and replace this paragraph
+ with a longer explanation of this change. Complete the meta-information
+ with other relevant fields (see below for details). To make it easier, the
+ information below has been extracted from the changelog. Adjust it or drop
+ it.
+ .
+ hypre (2.11.0-1) unstable; urgency=medium
+ .
+   * New upstream release
+Author: Christophe Trophime <christophe.trophime at lncmi.cnrs.fr>
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: <vendor|upstream|other>, <url of original patch>
+Bug: <url in upstream bugtracker>
+Bug-Debian: https://bugs.debian.org/<bugnumber>
+Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
+Forwarded: <no|not-needed|url proving that it has been forwarded>
+Reviewed-By: <name and email of someone who approved the patch>
+Last-Update: <YYYY-MM-DD>
+
+Index: hypre-2.11.0/src/config/configure.in
+===================================================================
+--- hypre-2.11.0.orig/src/config/configure.in
++++ hypre-2.11.0/src/config/configure.in
+@@ -1216,6 +1216,12 @@ HYPRE_INSTALLDIR="${prefix}"
+ HYPRE_LIBINSTALL="${libdir}"
+ HYPRE_INCINSTALL="${includedir}/hypre"
+ 
++if test "$hypre_using_complex" = "yes"
++then
++HYPRE_INCINSTALL="${includedir}/hypre-complex"
++HYPRE_LIBINSTALL="${libdir}/hypre-complex"
++fi
++
+ dnl *********************************************************************
+ dnl * Define machine architecture
+ dnl *********************************************************************
diff --git a/debian/patches/config-for-petsc.patch b/debian/patches/config-for-petsc.patch
new file mode 100644
index 0000000..087c6fa
--- /dev/null
+++ b/debian/patches/config-for-petsc.patch
@@ -0,0 +1,15 @@
+Index: hypre-2.10.0b/src/lib/Makefile
+===================================================================
+--- hypre-2.10.0b.orig/src/lib/Makefile
++++ hypre-2.10.0b/src/lib/Makefile
+@@ -53,9 +53,7 @@ LIBS_HYPRE = ../utilities/libHYPRE_utili
+   ../distributed_ls/Euclid/libHYPRE_Euclid.so \
+   ../distributed_ls/ParaSails/libHYPRE_ParaSails.so \
+   ../distributed_ls/pilut/libHYPRE_DistributedMatrixPilutSolver.so \
+-  ../parcsr_ls/libHYPRE_parcsr_ls.so \
+-  ../FEI_mv/femli/libHYPRE_mli.so \
+-  ../FEI_mv/fei-hypre/libHYPRE_FEI.so
++  ../parcsr_ls/libHYPRE_parcsr_ls.so
+ 
+ SONAME = libHYPRE-${HYPRE_RELEASE_VERSION}.so
+ SOLIBS = ${MPILIBDIRS} ${MPILIBS} ${LAPACKLIBDIRS} ${LAPACKLIBS}\
diff --git a/debian/patches/config-update-dir.patch b/debian/patches/config-update-dir.patch
index 08f2449..87764f2 100644
--- a/debian/patches/config-update-dir.patch
+++ b/debian/patches/config-update-dir.patch
@@ -4,7 +4,7 @@ Index: hypre/src/config/configure.in
 ===================================================================
 --- hypre.orig/src/config/configure.in
 +++ hypre/src/config/configure.in
-@@ -61,9 +61,9 @@ m4_define([M4_HYPRE_TIME],    [00:00:00]
+@@ -61,9 +61,9 @@
  m4_define([M4_HYPRE_BUGS],    [hypre-support at llnl.gov])
  m4_define([M4_HYPRE_SRCDIR],  [`pwd`])
  
@@ -16,4 +16,4 @@ Index: hypre/src/config/configure.in
 +m4_include([hypre_macros_misc.m4])
  
  AC_PREREQ(2.59)
- AC_REVISION($Id$)
+ AC_REVISION($Id: configure.in,v 1.101 2011/11/14 22:36:27 falgout Exp $)
diff --git a/debian/patches/configure.patch b/debian/patches/configure.patch
new file mode 100644
index 0000000..804673b
--- /dev/null
+++ b/debian/patches/configure.patch
@@ -0,0 +1,47 @@
+Index: hypre-2.11.0/src/config/configure.in
+===================================================================
+--- hypre-2.11.0.orig/src/config/configure.in
++++ hypre-2.11.0/src/config/configure.in
+@@ -83,7 +83,7 @@ dnl m4_pattern_allow([AC_HYPRE_[A-Z_]+])
+ 
+ dnl * Change default prefix from /usr/local to ./hypre
+ dnl * Note that $ expansion of shell variables doesn't work with this AC macro.
+-AC_PREFIX_DEFAULT([M4_HYPRE_SRCDIR/hypre])
++##AC_PREFIX_DEFAULT([M4_HYPRE_SRCDIR/hypre])
+ 
+ dnl *********************************************************************
+ dnl * Initialize some variables
+@@ -157,19 +157,18 @@ hypre_lapack_lib_dir_old_style=no
+ dnl *********************************************************************
+ dnl * Determine BUILD, HOST, and TARGET types
+ dnl *********************************************************************
+-if test "x$build_alias" = "x"
+-then
+-   AC_CANONICAL_BUILD
+-fi
++AC_CANONICAL_HOST
++AC_CANONICAL_BUILD
++AC_CANONICAL_TARGET
+ 
+ if test "x$host_alias" = "x"
+ then
+-   AC_CANONICAL_HOST
++   host_alias=$host
+ fi
+ 
+ if test "x$target_alias" = "x"
+ then
+-   target_alias=$host_alias
++   target_alias=$host
+ fi
+ 
+ dnl *********************************************************************
+@@ -1215,7 +1214,7 @@ dnl * Set installation directories
+ dnl *********************************************************************
+ HYPRE_INSTALLDIR="${prefix}"
+ HYPRE_LIBINSTALL="${libdir}"
+-HYPRE_INCINSTALL="${includedir}"
++HYPRE_INCINSTALL="${includedir}/hypre"
+ 
+ dnl *********************************************************************
+ dnl * Define machine architecture
diff --git a/debian/patches/examples.patch b/debian/patches/examples.patch
new file mode 100644
index 0000000..f32288b
--- /dev/null
+++ b/debian/patches/examples.patch
@@ -0,0 +1,257 @@
+Index: hypre-2.10.0b/src/examples/Makefile
+===================================================================
+--- hypre-2.10.0b.orig/src/examples/Makefile
++++ hypre-2.10.0b/src/examples/Makefile
+@@ -11,7 +11,7 @@ HYPRE_DIR = ../hypre
+ # Compiling and linking options
+ ########################################################################
+ COPTS     = -g -Wall
+-CINCLUDES = -I$(HYPRE_DIR)/include
++CINCLUDES = -I${HYPRE_INC_INSTALL}
+ CDEFS     = -DHAVE_CONFIG_H -DHYPRE_TIMING
+ CFLAGS    = $(COPTS) $(CINCLUDES) $(CDEFS)
+ FOPTS     = -g
+@@ -27,7 +27,27 @@ F90FLAGS = $(FFLAGS) $(IF90FLAGS)
+ 
+ 
+ LINKOPTS  = $(COPTS)
+-LIBS      = -L$(HYPRE_DIR)/lib -lHYPRE -lm
++LIBS      = \
++ -L${HYPRE_LIB_INSTALL} \
++ -lHYPRE_utilities \
++ -lHYPRE_multivector \
++ -lHYPRE_krylov \
++ -lHYPRE_struct_mv \
++ -lHYPRE_struct_ls \
++ -lHYPRE_sstruct_mv \
++ -lHYPRE_sstruct_ls \
++ -lHYPRE_seq_mv \
++ -lHYPRE_parcsr_mv \
++ -lHYPRE_parcsr_ls \
++ -lHYPRE_parcsr_block_mv \
++ -lHYPRE_DistributedMatrix \
++ -lHYPRE_MatrixMatrix \
++ -lHYPRE_IJ_mv \
++ -lHYPRE_Euclid \
++ -lHYPRE_ParaSails \
++ -lHYPRE_DistributedMatrixPilutSolver \
++ -lHYPRE \
++ -lblas -llapack -lm
+ LFLAGS    = $(LINKOPTS) $(LIBS) -lstdc++
+ LFLAGS_B =\
+  -L${HYPRE_DIR}/lib\
+@@ -37,7 +57,7 @@ LFLAGS_B =\
+  -lbHYPRE\
+  -lsidl -ldl -lxml2
+ LFLAGS77 = $(LFLAGS)
+-LFLAGS90 =
++LFLAGS90 = $(LFLAGS)
+ 
+ ########################################################################
+ # Rules for compiling the source files
+@@ -47,7 +67,7 @@ LFLAGS90 =
+ .c.o:
+ 	$(CC) $(CFLAGS) -c $<
+ .f.o:
+-	$(F77) $(FFLAGS) -c $<
++	$(F90) $(FFLAGS) -c $<
+ .cxx.o:
+ 	$(CXX) $(CXXFLAGS) -c $<
+ 
+@@ -65,9 +85,10 @@ LFLAGS90 =
+ ########################################################################
+ # List of all programs to be compiled
+ ########################################################################
+-ALLPROGS = ex1 ex2 ex3 ex4 ex5 ex5f ex6 ex7 ex8 ex9 ex10 ex11 ex12 ex12f \
++ALLPROGS = ex1 ex2 ex3 ex4 ex5 ex5f ex6 ex7 ex8 ex9 ex11 ex12 ex12f \
+            ex13 ex14 ex15 ex16
+ BIGINTPROGS = ex5big ex15big
++FEIPROGS= ex10
+ BABELPROGS = ex5b ex5b77 ex5bxx ex6b ex6b77
+ # ... ex5bp and ex5b90 are not in BABELPROGS because they require a
+ # software environment which many people haven't set up.
+@@ -89,59 +110,61 @@ maxdim: $(MAXDIMPROGS)
+ 
+ complex: $(COMPLEXPROGS)
+ 
++fei: $(FEIPROGS)
++
+ ########################################################################
+ # Example 1
+ ########################################################################
+ ex1: ex1.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 2
+ ########################################################################
+ ex2: ex2.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 3
+ ########################################################################
+ ex3: ex3.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 4
+ ########################################################################
+ ex4: ex4.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 5
+ ########################################################################
+ ex5: ex5.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 5 with 64-bit integers
+ ########################################################################
+ ex5big: ex5big.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 5 Fortran 77
+ ########################################################################
+ ex5f: ex5f.o
+-	$(F77) -o $@ $^ $(LFLAGS77)
++	$(F90) -o $@ $^ $(LFLAGS90)
+ 
+ ########################################################################
+ # Example 5 Babel C
+ ########################################################################
+ ex5b: ex5b.o
+-	$(CC) -o $@ $^ $(LFLAGS_B) $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS_B) $(LFLAGS)
+ 
+ ########################################################################
+ # Example 5 Babel Fortran 77
+ ########################################################################
+ ex5b77: ex5b77.o
+-	$(F77) -o $@ $^ $(LFLAGS_B) $(LFLAGS)
++	$(F90) -o $@ $^ $(LFLAGS_B) $(LFLAGS90)
+ 
+ ########################################################################
+ # Example 5 Babel Fortran 90
+@@ -153,97 +176,97 @@ ex5b90: ex5b90.o
+ # Example 5 Babel C++
+ ########################################################################
+ ex5bxx: ex5bxx.o
+-	$(CXX) -o $@ $^ $(LFLAGS_B) $(LFLAGS)
++	$(CXX) -o $@ $^ -Wl,--no-as-needed $(LFLAGS_B) $(LFLAGS)
+ 
+ ########################################################################
+ # Example 6
+ ########################################################################
+ ex6: ex6.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 6 Babel C
+ ########################################################################
+ ex6b: ex6b.o
+-	$(CC) -o $@ $^ $(LFLAGS_B) $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS_B) $(LFLAGS)
+ 
+ ########################################################################
+ # Example 6 Babel Fortran 77
+ ########################################################################
+ ex6b77: ex6b77.o
+-	$(F77) -o $@ $^ $(LFLAGS_B) $(LFLAGS)
++	$(F90) -o $@ $^ $(LFLAGS_B) $(LFLAGS90)
+ 
+ ########################################################################
+ # Example 7
+ ########################################################################
+ ex7: ex7.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 8
+ ########################################################################
+ ex8: ex8.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 9
+ ########################################################################
+ ex9: ex9.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 10
+ ########################################################################
+ ex10: ex10.o
+-	$(CXX) -o $@ $^ $(LFLAGS)
++	$(CXX) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 11
+ ########################################################################
+ ex11: ex11.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 12
+ ########################################################################
+ ex12: ex12.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 12 Fortran 77
+ ########################################################################
+ ex12f: ex12f.o
+-	$(F77) -o $@ $^ $(LFLAGS77)
++	$(F90) -o $@ $^ $(LFLAGS) $(LFLAGS90)
+ 
+ ########################################################################
+ # Example 13
+ ########################################################################
+ ex13: ex13.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 14
+ ########################################################################
+ ex14: ex14.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 15
+ ########################################################################
+ ex15: ex15.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 15 with 64-bit integers
+ ########################################################################
+ ex15big: ex15big.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 16
+ ########################################################################
+ ex16: ex16.o
+-	$(CC) -o $@ $^ $(LFLAGS)
++	$(CC) -o $@ $^ -Wl,--no-as-needed $(LFLAGS)
+ 
+ ########################################################################
+ # Example 17
diff --git a/debian/patches/fgmres-lib.patch b/debian/patches/fgmres-lib.patch
index 84da0da..3cef58e 100644
--- a/debian/patches/fgmres-lib.patch
+++ b/debian/patches/fgmres-lib.patch
@@ -2,24 +2,24 @@ Add libHYPRE_FEI_fgmres.[a|so] to resolve a circular dependency:
 libHYPRE_FEI with fgmres.c depends on libHYPRE_mli.so which links with
 symbols in fgmres.c .  (Resolves issue 182.)
 
-Index: hypre/src/config/configure.in
+Index: hypre-2.9.1a/src/config/configure.in
 ===================================================================
---- hypre.orig/src/config/configure.in
-+++ hypre/src/config/configure.in
-@@ -1011,7 +1011,7 @@ dnl ************************************
+--- hypre-2.9.1a.orig/src/config/configure.in	2013-09-12 17:33:00.000000000 +0200
++++ hypre-2.9.1a/src/config/configure.in	2013-09-12 17:33:00.000000000 +0200
+@@ -914,7 +914,7 @@
  if test "$hypre_using_fei" = "yes"
  then
     HYPRE_FEI_SRC_DIR="$HYPRE_SRCDIR/FEI_mv"
--   HYPRE_FEI_SUBDIRS="fei-hypre"
-+   HYPRE_FEI_SUBDIRS="fgmres fei-hypre"
+-   HYPRE_FEI_SUBDIRS="femli fei-hypre"
++   HYPRE_FEI_SUBDIRS="fgmres femli fei-hypre"
     HYPRE_FEI_HYPRE_FILES="$HYPRE_SRCDIR/FEI_mv/fei-hypre/*.o"
+    HYPRE_FEI_FEMLI_FILES="$HYPRE_SRCDIR/FEI_mv/femli/*.o"
     if test "$hypre_using_superlu" = "yes"
-    then
-Index: hypre/src/FEI_mv/fei-hypre/Makefile
+Index: hypre-2.9.1a/src/FEI_mv/fei-hypre/Makefile
 ===================================================================
---- hypre.orig/src/FEI_mv/fei-hypre/Makefile
-+++ hypre/src/FEI_mv/fei-hypre/Makefile
-@@ -119,7 +119,6 @@ FILESC = \
+--- hypre-2.9.1a.orig/src/FEI_mv/fei-hypre/Makefile	2013-09-12 17:33:00.000000000 +0200
++++ hypre-2.9.1a/src/FEI_mv/fei-hypre/Makefile	2013-09-12 17:33:00.000000000 +0200
+@@ -113,7 +113,6 @@
   HYPRE_parcsr_TFQmr.c\
   HYPRE_parcsr_bicgs.c\
   HYPRE_parcsr_bicgstabl.c\
@@ -27,7 +27,7 @@ Index: hypre/src/FEI_mv/fei-hypre/Makefile
   HYPRE_parcsr_lsicg.c\
   HYPRE_parcsr_symqmr.c\
   HYPRE_parcsr_maxwell.c\
-@@ -127,11 +126,12 @@ FILESC = \
+@@ -121,11 +120,12 @@
   TFQmr.c\
   bicgs.c\
   bicgstabl.c\
@@ -41,10 +41,10 @@ Index: hypre/src/FEI_mv/fei-hypre/Makefile
  
  FILESCXX = \
   FEI_HYPRE_Impl.cxx\
-Index: hypre/src/FEI_mv/fgmres/Makefile
+Index: hypre-2.9.1a/src/FEI_mv/fgmres/Makefile
 ===================================================================
---- /dev/null
-+++ hypre/src/FEI_mv/fgmres/Makefile
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ hypre-2.9.1a/src/FEI_mv/fgmres/Makefile	2013-09-12 17:33:00.000000000 +0200
 @@ -0,0 +1,135 @@
 +#BHEADER**********************************************************************
 +# Copyright (c) 2006   The Regents of the University of California.
@@ -53,15 +53,15 @@ Index: hypre/src/FEI_mv/fgmres/Makefile
 +# All rights reserved.
 +#
 +# This file is part of HYPRE (see http://www.llnl.gov/CASC/hypre/).
-+# Please see the COPYRIGHT_and_LICENSE file for the copyright notice,
++# Please see the COPYRIGHT_and_LICENSE file for the copyright notice, 
 +# disclaimer, contact information and the GNU Lesser General Public License.
 +#
 +# HYPRE is free software; you can redistribute it and/or modify it under the
-+# terms of the GNU General Public License (as published by the Free Software
++# terms of the GNU General Public License (as published by the Free Software 
 +# Foundation) version 2.1 dated February 1999.
 +#
-+# HYPRE is distributed in the hope that it will be useful, but WITHOUT ANY
-+# WARRANTY; without even the IMPLIED WARRANTY OF MERCHANTABILITY or FITNESS
++# HYPRE is distributed in the hope that it will be useful, but WITHOUT ANY 
++# WARRANTY; without even the IMPLIED WARRANTY OF MERCHANTABILITY or FITNESS 
 +# FOR A PARTICULAR PURPOSE.  See the terms and conditions of the GNU General
 +# Public License for more details.
 +#
diff --git a/debian/patches/flexgmres-to-parcsr_ls.patch b/debian/patches/flexgmres-to-parcsr_ls.patch
index 3645be0..e16c774 100644
--- a/debian/patches/flexgmres-to-parcsr_ls.patch
+++ b/debian/patches/flexgmres-to-parcsr_ls.patch
@@ -1,11 +1,11 @@
 Move (HYPRE_)flexgmres.c from krylov to parcsr_ls to resolve another
 circular dependency between those two libraries.
 
-Index: hypre/src/krylov/Makefile
+Index: hypre-2.9.1a/src/krylov/Makefile
 ===================================================================
---- hypre.orig/src/krylov/Makefile
-+++ hypre/src/krylov/Makefile
-@@ -39,17 +39,17 @@ FILES =\
+--- hypre-2.9.1a.orig/src/krylov/Makefile	2013-09-12 17:32:50.000000000 +0200
++++ hypre-2.9.1a/src/krylov/Makefile	2013-09-12 17:32:50.000000000 +0200
+@@ -39,17 +39,17 @@
   bicgstab.c\
   cgnr.c\
   gmres.c\
@@ -25,11 +25,11 @@ Index: hypre/src/krylov/Makefile
  
  OBJS = ${FILES:.c=.o}
  
-Index: hypre/src/parcsr_ls/Makefile
+Index: hypre-2.9.1a/src/parcsr_ls/Makefile
 ===================================================================
---- hypre.orig/src/parcsr_ls/Makefile
-+++ hypre/src/parcsr_ls/Makefile
-@@ -122,7 +122,9 @@ FILES =\
+--- hypre-2.9.1a.orig/src/parcsr_ls/Makefile	2013-09-12 17:32:50.000000000 +0200
++++ hypre-2.9.1a/src/parcsr_ls/Makefile	2013-09-12 17:32:50.000000000 +0200
+@@ -120,7 +120,9 @@
   block_tridiag.c\
   ams.c\
   ads.c\
diff --git a/debian/patches/install-libs.patch b/debian/patches/install-libs.patch
index 1ad4449..98a2715 100644
--- a/debian/patches/install-libs.patch
+++ b/debian/patches/install-libs.patch
@@ -4,38 +4,57 @@ Index: hypre/src/FEI_mv/fei-hypre/Makefile
 ===================================================================
 --- hypre.orig/src/FEI_mv/fei-hypre/Makefile
 +++ hypre/src/FEI_mv/fei-hypre/Makefile
-@@ -191,6 +191,7 @@ all: libHYPRE_FEI${HYPRE_LIB_SUFFIX}
- 	cp -fR $(BASE_DIR)/fei_bool.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(BASE_DIR)/fei_defs.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(BASE_DIR)/fei_mpi.h $(HYPRE_BUILD_DIR)/include
+@@ -182,7 +182,7 @@
+ 	cp -fpPR $(BASE_DIR)/base/Lookup.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fpPR $(BASE_DIR)/base/LinearSystemCore.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fpPR $(BASE_DIR)/fei_defs.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
 +	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: libHYPRE_FEI${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/cfei-hypre.h $(HYPRE_INC_INSTALL)
-@@ -206,6 +207,7 @@ install: libHYPRE_FEI${HYPRE_LIB_SUFFIX}
- 	cp -fR $(BASE_DIR)/fei_bool.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(BASE_DIR)/fei_defs.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(BASE_DIR)/fei_mpi.h $(HYPRE_BUILD_DIR)/include
-+	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 	cp -fpPR $(srcdir)/cfei-hypre.h $(HYPRE_INC_INSTALL)
+@@ -195,7 +195,7 @@
+ 	cp -fpPR $(BASE_DIR)/base/Lookup.h $(HYPRE_INC_INSTALL)
+ 	cp -fpPR $(BASE_DIR)/base/LinearSystemCore.h $(HYPRE_INC_INSTALL)
+ 	cp -fpPR $(BASE_DIR)/fei_defs.h $(HYPRE_INC_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  	@echo  ""
  
  clean:
+Index: hypre/src/FEI_mv/femli/lib/Makefile
+===================================================================
+--- hypre.orig/src/FEI_mv/femli/lib/Makefile
++++ hypre/src/FEI_mv/femli/lib/Makefile
+@@ -145,10 +145,10 @@
+ ##################################################################
+ 
+ all: libHYPRE_mli${HYPRE_LIB_SUFFIX}
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 
+ install: libHYPRE_mli${HYPRE_LIB_SUFFIX}
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	@echo  " "
+ 
+ clean:
 Index: hypre/src/IJ_mv/Makefile
 ===================================================================
 --- hypre.orig/src/IJ_mv/Makefile
 +++ hypre/src/IJ_mv/Makefile
-@@ -69,12 +69,12 @@ SONAME = libHYPRE_IJ_mv-${HYPRE_RELEASE_
+@@ -69,12 +69,12 @@
  all: libHYPRE_IJ_mv${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(srcdir)/_hypre_IJ_mv.h $(HYPRE_BUILD_DIR)/include
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fpPR $(srcdir)/_hypre_IJ_mv.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: libHYPRE_IJ_mv${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
- 	cp -fR $(srcdir)/_hypre_IJ_mv.h $(HYPRE_INC_INSTALL)
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fpPR $(srcdir)/_hypre_IJ_mv.h $(HYPRE_INC_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
  	rm -f *.o libHYPRE*
@@ -43,16 +62,16 @@ Index: hypre/src/distributed_ls/Euclid/Makefile
 ===================================================================
 --- hypre.orig/src/distributed_ls/Euclid/Makefile
 +++ hypre/src/distributed_ls/Euclid/Makefile
-@@ -98,10 +98,10 @@ SONAME = libHYPRE_Euclid-${HYPRE_RELEASE
+@@ -105,10 +105,10 @@
  ##################################################################
  
  all: libHYPRE_Euclid${HYPRE_LIB_SUFFIX}
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: libHYPRE_Euclid${HYPRE_LIB_SUFFIX}
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
  	rm -f *.o libHYPRE*
@@ -60,16 +79,16 @@ Index: hypre/src/distributed_ls/ParaSails/Makefile
 ===================================================================
 --- hypre.orig/src/distributed_ls/ParaSails/Makefile
 +++ hypre/src/distributed_ls/ParaSails/Makefile
-@@ -71,10 +71,10 @@ SONAME = libHYPRE_ParaSails-${HYPRE_RELE
+@@ -71,10 +71,10 @@
  ##################################################################
  
  all: libHYPRE_ParaSails${HYPRE_LIB_SUFFIX}
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: libHYPRE_ParaSails${HYPRE_LIB_SUFFIX}
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
  	rm -f *.o libHYPRE*
@@ -77,17 +96,17 @@ Index: hypre/src/distributed_ls/pilut/Makefile
 ===================================================================
 --- hypre.orig/src/distributed_ls/pilut/Makefile
 +++ hypre/src/distributed_ls/pilut/Makefile
-@@ -63,11 +63,11 @@ SONAME = libHYPRE_DistributedMatrixPilut
+@@ -63,11 +63,11 @@
  
  all: libHYPRE_DistributedMatrixPilutSolver${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: libHYPRE_DistributedMatrixPilutSolver${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
  	rm -f *.o libHYPRE*
@@ -95,17 +114,17 @@ Index: hypre/src/distributed_matrix/Makefile
 ===================================================================
 --- hypre.orig/src/distributed_matrix/Makefile
 +++ hypre/src/distributed_matrix/Makefile
-@@ -50,11 +50,11 @@ SONAME = libHYPRE_DistributedMatrix-${HY
+@@ -50,11 +50,11 @@
  
  all: libHYPRE_DistributedMatrix${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/distributed_matrix.h $(HYPRE_BUILD_DIR)/include
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 	cp -fpPR $(srcdir)/distributed_matrix.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: libHYPRE_DistributedMatrix${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/distributed_matrix.h $(HYPRE_INC_INSTALL)
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	cp -fpPR $(srcdir)/distributed_matrix.h $(HYPRE_INC_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
  	rm -f *.o libHYPRE*
@@ -113,19 +132,19 @@ Index: hypre/src/krylov/Makefile
 ===================================================================
 --- hypre.orig/src/krylov/Makefile
 +++ hypre/src/krylov/Makefile
-@@ -67,13 +67,13 @@ all: libHYPRE_krylov${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(srcdir)/krylov.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(srcdir)/lobpcg.h $(HYPRE_BUILD_DIR)/include
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+@@ -67,13 +67,13 @@
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fpPR $(srcdir)/krylov.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fpPR $(srcdir)/lobpcg.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: all
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
- 	cp -fR $(srcdir)/krylov.h $(HYPRE_INC_INSTALL)
- 	cp -fR $(srcdir)/lobpcg.h $(HYPRE_INC_INSTALL)
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fpPR $(srcdir)/krylov.h $(HYPRE_INC_INSTALL)
+ 	cp -fpPR $(srcdir)/lobpcg.h $(HYPRE_INC_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
  	rm -f *.o libHYPRE*
@@ -133,17 +152,17 @@ Index: hypre/src/matrix_matrix/Makefile
 ===================================================================
 --- hypre.orig/src/matrix_matrix/Makefile
 +++ hypre/src/matrix_matrix/Makefile
-@@ -49,11 +49,11 @@ SONAME = libHYPRE_MatrixMatrix-${HYPRE_R
+@@ -49,11 +49,11 @@
  
  all: libHYPRE_MatrixMatrix${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: libHYPRE_MatrixMatrix${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
  	rm -f *.o lib*
@@ -151,17 +170,17 @@ Index: hypre/src/multivector/Makefile
 ===================================================================
 --- hypre.orig/src/multivector/Makefile
 +++ hypre/src/multivector/Makefile
-@@ -39,11 +39,11 @@ SONAME = libHYPRE_multivector-${HYPRE_RE
+@@ -39,11 +39,11 @@
  
  all: libHYPRE_multivector${HYPRE_LIB_SUFFIX}
- 	cp -fR *.h $(HYPRE_BUILD_DIR)/include
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 	cp -fpPR *.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: libHYPRE_multivector${HYPRE_LIB_SUFFIX}
- 	cp -fR *.h $(HYPRE_INC_INSTALL)
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	cp -fpPR *.h $(HYPRE_INC_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
  	rm -f *.o libHYPRE*
@@ -169,21 +188,21 @@ Index: hypre/src/parcsr_block_mv/Makefile
 ===================================================================
 --- hypre.orig/src/parcsr_block_mv/Makefile
 +++ hypre/src/parcsr_block_mv/Makefile
-@@ -75,7 +75,7 @@ SONAME = libHYPRE_parcsr_block_mv-${HYPR
+@@ -75,7 +75,7 @@
  all: libHYPRE_parcsr_block_mv${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/par_csr_block_matrix.h $(HYPRE_BUILD_DIR)/include	
- 	cp -fR $(srcdir)/csr_block_matrix.h $(HYPRE_BUILD_DIR)/include
--#	cp -fR libHYPRE_* $(HYPRE_BUILD_DIR)/lib/.
-+	cp -fR libHYPRE_* $(HYPRE_BUILD_DIR)/lib/.
+ 	cp -fpPR $(srcdir)/par_csr_block_matrix.h $(HYPRE_BUILD_DIR)/include	
+ 	cp -fpPR $(srcdir)/csr_block_matrix.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE_* $(HYPRE_BUILD_DIR)/lib/.
++	cp -fpPR libHYPRE_* $(HYPRE_BUILD_DIR)/lib/.
  
  driver: driver.o libHYPRE_parcsr_block_mv${HYPRE_LIB_SUFFIX}
  	@echo  "Linking" $@ "... "
-@@ -104,7 +104,7 @@ driver_boolaat: driver_boolaat.o libHYPR
+@@ -104,7 +104,7 @@
  install: libHYPRE_parcsr_block_mv${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/par_csr_block_matrix.h $(HYPRE_INC_INSTALL)/.
- 	cp -fR $(srcdir)/csr_block_matrix.h $(HYPRE_INC_INSTALL)/.
--#	cp -fR libHYPRE_* $(HYPRE_LIB_INSTALL)/.
-+	cp -fR libHYPRE_* $(HYPRE_LIB_INSTALL)/.
+ 	cp -fpPR $(srcdir)/par_csr_block_matrix.h $(HYPRE_INC_INSTALL)/.
+ 	cp -fpPR $(srcdir)/csr_block_matrix.h $(HYPRE_INC_INSTALL)/.
+-#	cp -fpPR libHYPRE_* $(HYPRE_LIB_INSTALL)/.
++	cp -fpPR libHYPRE_* $(HYPRE_LIB_INSTALL)/.
  
  clean:
  	rm -rf *.o libHYPRE_*
@@ -191,18 +210,18 @@ Index: hypre/src/parcsr_ls/Makefile
 ===================================================================
 --- hypre.orig/src/parcsr_ls/Makefile
 +++ hypre/src/parcsr_ls/Makefile
-@@ -153,12 +153,12 @@ SONAME = libHYPRE_parcsr_ls-${HYPRE_RELE
+@@ -155,12 +155,12 @@
  all: libHYPRE_parcsr_ls${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(srcdir)/_hypre_parcsr_ls.h $(HYPRE_BUILD_DIR)/include
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fpPR $(srcdir)/_hypre_parcsr_ls.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: libHYPRE_parcsr_ls${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
- 	cp -fR $(srcdir)/_hypre_parcsr_ls.h $(HYPRE_INC_INSTALL)
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fpPR $(srcdir)/_hypre_parcsr_ls.h $(HYPRE_INC_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
  	rm -f *.o libHYPRE*
@@ -210,40 +229,55 @@ Index: hypre/src/parcsr_mv/Makefile
 ===================================================================
 --- hypre.orig/src/parcsr_mv/Makefile
 +++ hypre/src/parcsr_mv/Makefile
-@@ -84,7 +84,7 @@ SONAME = libHYPRE_parcsr_mv-${HYPRE_RELE
+@@ -85,7 +85,7 @@
  all: libHYPRE_parcsr_mv${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(srcdir)/_hypre_parcsr_mv.h $(HYPRE_BUILD_DIR)/include
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fpPR $(srcdir)/_hypre_parcsr_mv.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  driver: driver.o libHYPRE_parcsr_mv${HYPRE_LIB_SUFFIX} 
  	@echo  "Linking" $@ "... "
-@@ -113,7 +113,7 @@ driver_boolaat: driver_boolaat.o libHYPR
+@@ -114,7 +114,7 @@
  install: libHYPRE_parcsr_mv${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
- 	cp -fR $(srcdir)/_hypre_parcsr_mv.h $(HYPRE_INC_INSTALL)
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fpPR $(srcdir)/_hypre_parcsr_mv.h $(HYPRE_INC_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
  	rm -f *.o libHYPRE*
+Index: hypre/src/seq_ls/pamg/Makefile
+===================================================================
+--- hypre.orig/src/seq_ls/pamg/Makefile
++++ hypre/src/seq_ls/pamg/Makefile
+@@ -90,8 +90,10 @@
+ ##################################################################
+ 
+ lib: libHYPRE_amg_ls${HYPRE_LIB_SUFFIX}
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 
+ all: libHYPRE_amg_ls${HYPRE_LIB_SUFFIX} driver
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ install: all
+ 
 Index: hypre/src/seq_mv/Makefile
 ===================================================================
 --- hypre.orig/src/seq_mv/Makefile
 +++ hypre/src/seq_mv/Makefile
-@@ -54,12 +54,12 @@ SONAME = libHYPRE_seq_mv-${HYPRE_RELEASE
+@@ -55,12 +55,12 @@
  all: libHYPRE_seq_mv${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(srcdir)/seq_mv.h $(HYPRE_BUILD_DIR)/include
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fpPR $(srcdir)/seq_mv.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: libHYPRE_seq_mv${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
- 	cp -fR $(srcdir)/seq_mv.h $(HYPRE_INC_INSTALL)
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fpPR $(srcdir)/seq_mv.h $(HYPRE_INC_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
  	rm -f *.o libHYPRE*
@@ -251,18 +285,18 @@ Index: hypre/src/sstruct_ls/Makefile
 ===================================================================
 --- hypre.orig/src/sstruct_ls/Makefile
 +++ hypre/src/sstruct_ls/Makefile
-@@ -132,12 +132,12 @@ SONAME = libHYPRE_sstruct_ls-${HYPRE_REL
+@@ -133,12 +133,12 @@
  all: libHYPRE_sstruct_ls${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(srcdir)/_hypre_sstruct_ls.h $(HYPRE_BUILD_DIR)/include
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fpPR $(srcdir)/_hypre_sstruct_ls.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: libHYPRE_sstruct_ls${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
- 	cp -fR $(srcdir)/_hypre_sstruct_ls.h $(HYPRE_INC_INSTALL)
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fpPR $(srcdir)/_hypre_sstruct_ls.h $(HYPRE_INC_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
  	rm -f *.o libHYPRE*
@@ -270,18 +304,18 @@ Index: hypre/src/sstruct_mv/Makefile
 ===================================================================
 --- hypre.orig/src/sstruct_mv/Makefile
 +++ hypre/src/sstruct_mv/Makefile
-@@ -76,12 +76,12 @@ SONAME = libHYPRE_sstruct_mv-${HYPRE_REL
+@@ -78,12 +78,12 @@
  all: libHYPRE_sstruct_mv${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(srcdir)/_hypre_sstruct_mv.h $(HYPRE_BUILD_DIR)/include
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fpPR $(srcdir)/_hypre_sstruct_mv.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: libHYPRE_sstruct_mv${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
- 	cp -fR $(srcdir)/_hypre_sstruct_mv.h $(HYPRE_INC_INSTALL)
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fpPR $(srcdir)/_hypre_sstruct_mv.h $(HYPRE_INC_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
  	rm -f *.o libHYPRE*
@@ -289,18 +323,18 @@ Index: hypre/src/struct_ls/Makefile
 ===================================================================
 --- hypre.orig/src/struct_ls/Makefile
 +++ hypre/src/struct_ls/Makefile
-@@ -122,12 +122,12 @@ SONAME = libHYPRE_struct_ls-${HYPRE_RELE
+@@ -119,12 +119,12 @@
  all: libHYPRE_struct_ls${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(srcdir)/_hypre_struct_ls.h $(HYPRE_BUILD_DIR)/include
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fpPR $(srcdir)/_hypre_struct_ls.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: libHYPRE_struct_ls${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
- 	cp -fR $(srcdir)/_hypre_struct_ls.h $(HYPRE_INC_INSTALL)
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fpPR $(srcdir)/_hypre_struct_ls.h $(HYPRE_INC_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
  	rm -f *.o libHYPRE*
@@ -308,18 +342,18 @@ Index: hypre/src/struct_mv/Makefile
 ===================================================================
 --- hypre.orig/src/struct_mv/Makefile
 +++ hypre/src/struct_mv/Makefile
-@@ -75,12 +75,12 @@ SONAME = libHYPRE_struct_mv-${HYPRE_RELE
+@@ -82,12 +82,12 @@
  all: libHYPRE_struct_mv${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(srcdir)/_hypre_struct_mv.h $(HYPRE_BUILD_DIR)/include
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fpPR $(srcdir)/_hypre_struct_mv.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: libHYPRE_struct_mv${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
- 	cp -fR $(srcdir)/_hypre_struct_mv.h $(HYPRE_INC_INSTALL)
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fpPR $(srcdir)/_hypre_struct_mv.h $(HYPRE_INC_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
  	rm -f *.o libHYPRE*
@@ -327,19 +361,19 @@ Index: hypre/src/utilities/Makefile
 ===================================================================
 --- hypre.orig/src/utilities/Makefile
 +++ hypre/src/utilities/Makefile
-@@ -75,13 +75,13 @@ all: libHYPRE_utilities${HYPRE_LIB_SUFFI
- 	cp -fR $(srcdir)/_hypre_utilities.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(srcdir)/hypre_hopscotch_hash.h $(HYPRE_BUILD_DIR)/include
- 	cp -fR $(srcdir)/fortran*.h $(HYPRE_BUILD_DIR)/include
--#	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
-+	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+@@ -73,13 +73,13 @@
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fpPR $(srcdir)/_hypre_utilities.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fpPR $(srcdir)/fortran*.h $(HYPRE_BUILD_DIR)/include
+-#	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
++	cp -fpPR libHYPRE* $(HYPRE_BUILD_DIR)/lib
  
  install: libHYPRE_utilities${HYPRE_LIB_SUFFIX}
- 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
- 	cp -fR $(srcdir)/_hypre_utilities.h $(HYPRE_INC_INSTALL)
- 	cp -fR $(srcdir)/fortran*.h $(HYPRE_INC_INSTALL)
--#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
-+	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	cp -fpPR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fpPR $(srcdir)/_hypre_utilities.h $(HYPRE_INC_INSTALL)
+ 	cp -fpPR $(srcdir)/fortran*.h $(HYPRE_INC_INSTALL)
+-#	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fpPR libHYPRE* $(HYPRE_LIB_INSTALL)
  
  clean:
- 	rm -f *.o libHYPRE*
+ 	rm -f *.o libHYPRE* f2c.h *blas.h *lapack.h 
diff --git a/debian/patches/install.patch b/debian/patches/install.patch
new file mode 100644
index 0000000..2b08525
--- /dev/null
+++ b/debian/patches/install.patch
@@ -0,0 +1,293 @@
+Index: hypre-2.11.0/src/FEI_mv/fei-hypre/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/FEI_mv/fei-hypre/Makefile
++++ hypre-2.11.0/src/FEI_mv/fei-hypre/Makefile
+@@ -180,7 +180,7 @@ all: libHYPRE_FEI${HYPRE_LIB_SUFFIX}
+ install: libHYPRE_FEI${HYPRE_LIB_SUFFIX}
+ 	cp -fR $(srcdir)/cfei-hypre.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/cfei_hypre.h $(HYPRE_INC_INSTALL)
+-	cp -fR $(srcdir)/hypre_cfei.h $(HYPRE_BUILD_DIR)/include
++	cp -fR $(srcdir)/hypre_cfei.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/HYPRE_LinSysCore.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/HYPRE_FEI*.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/LLNL_FEI*.h $(HYPRE_INC_INSTALL)
+@@ -191,6 +191,7 @@ install: libHYPRE_FEI${HYPRE_LIB_SUFFIX}
+ 	cp -fR $(BASE_DIR)/fei_bool.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fR $(BASE_DIR)/fei_defs.h $(HYPRE_BUILD_DIR)/include
+ 	cp -fR $(BASE_DIR)/fei_mpi.h $(HYPRE_BUILD_DIR)/include
++	cp -fR libHYPRE_FEI* $(HYPRE_LIB_INSTALL)
+ 	@echo  ""
+ 
+ clean:
+Index: hypre-2.11.0/src/FEI_mv/femli/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/FEI_mv/femli/Makefile
++++ hypre-2.11.0/src/FEI_mv/femli/Makefile
+@@ -136,7 +136,7 @@ all: libHYPRE_mli${HYPRE_LIB_SUFFIX}
+ #	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 
+ install: libHYPRE_mli${HYPRE_LIB_SUFFIX}
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 	@echo  " "
+ 
+ clean:
+Index: hypre-2.11.0/src/IJ_mv/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/IJ_mv/Makefile
++++ hypre-2.11.0/src/IJ_mv/Makefile
+@@ -67,7 +67,7 @@ all: libHYPRE_IJ_mv${HYPRE_LIB_SUFFIX}
+ install: libHYPRE_IJ_mv${HYPRE_LIB_SUFFIX}
+ 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/_hypre_IJ_mv.h $(HYPRE_INC_INSTALL)
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o libHYPRE*
+Index: hypre-2.11.0/src/distributed_ls/Euclid/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/distributed_ls/Euclid/Makefile
++++ hypre-2.11.0/src/distributed_ls/Euclid/Makefile
+@@ -97,7 +97,7 @@ all: libHYPRE_Euclid${HYPRE_LIB_SUFFIX}
+ #	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 
+ install: libHYPRE_Euclid${HYPRE_LIB_SUFFIX}
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o libHYPRE*
+Index: hypre-2.11.0/src/distributed_ls/ParaSails/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/distributed_ls/ParaSails/Makefile
++++ hypre-2.11.0/src/distributed_ls/ParaSails/Makefile
+@@ -67,7 +67,7 @@ all: libHYPRE_ParaSails${HYPRE_LIB_SUFFI
+ #	cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib
+ 
+ install: libHYPRE_ParaSails${HYPRE_LIB_SUFFIX}
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o libHYPRE*
+Index: hypre-2.11.0/src/distributed_ls/pilut/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/distributed_ls/pilut/Makefile
++++ hypre-2.11.0/src/distributed_ls/pilut/Makefile
+@@ -61,7 +61,7 @@ all: libHYPRE_DistributedMatrixPilutSolv
+ 
+ install: libHYPRE_DistributedMatrixPilutSolver${HYPRE_LIB_SUFFIX}
+ 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o libHYPRE*
+Index: hypre-2.11.0/src/distributed_matrix/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/distributed_matrix/Makefile
++++ hypre-2.11.0/src/distributed_matrix/Makefile
+@@ -52,7 +52,7 @@ all: libHYPRE_DistributedMatrix${HYPRE_L
+ 
+ install: libHYPRE_DistributedMatrix${HYPRE_LIB_SUFFIX}
+ 	cp -fR $(srcdir)/distributed_matrix.h $(HYPRE_INC_INSTALL)
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o libHYPRE*
+Index: hypre-2.11.0/src/krylov/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/krylov/Makefile
++++ hypre-2.11.0/src/krylov/Makefile
+@@ -69,7 +69,7 @@ install: all
+ 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/krylov.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/lobpcg.h $(HYPRE_INC_INSTALL)
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o libHYPRE*
+Index: hypre-2.11.0/src/matrix_matrix/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/matrix_matrix/Makefile
++++ hypre-2.11.0/src/matrix_matrix/Makefile
+@@ -47,7 +47,7 @@ all: libHYPRE_MatrixMatrix${HYPRE_LIB_SU
+ 
+ install: libHYPRE_MatrixMatrix${HYPRE_LIB_SUFFIX}
+ 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o lib*
+Index: hypre-2.11.0/src/multivector/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/multivector/Makefile
++++ hypre-2.11.0/src/multivector/Makefile
+@@ -43,7 +43,7 @@ all: libHYPRE_multivector${HYPRE_LIB_SUF
+ 
+ install: libHYPRE_multivector${HYPRE_LIB_SUFFIX}
+ 	cp -fR *.h $(HYPRE_INC_INSTALL)
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o libHYPRE*
+Index: hypre-2.11.0/src/parcsr_block_mv/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/parcsr_block_mv/Makefile
++++ hypre-2.11.0/src/parcsr_block_mv/Makefile
+@@ -97,7 +97,7 @@ driver_boolaat: driver_boolaat.o libHYPR
+ install: libHYPRE_parcsr_block_mv${HYPRE_LIB_SUFFIX}
+ 	cp -fR $(srcdir)/par_csr_block_matrix.h $(HYPRE_INC_INSTALL)/.
+ 	cp -fR $(srcdir)/csr_block_matrix.h $(HYPRE_INC_INSTALL)/.
+-#	cp -fR libHYPRE_* $(HYPRE_LIB_INSTALL)/.
++	cp -fR libHYPRE_* $(HYPRE_LIB_INSTALL)/.
+ 
+ clean:
+ 	rm -rf *.o libHYPRE_*
+Index: hypre-2.11.0/src/parcsr_ls/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/parcsr_ls/Makefile
++++ hypre-2.11.0/src/parcsr_ls/Makefile
+@@ -140,7 +140,7 @@ all: libHYPRE_parcsr_ls${HYPRE_LIB_SUFFI
+ install: libHYPRE_parcsr_ls${HYPRE_LIB_SUFFIX}
+ 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/_hypre_parcsr_ls.h $(HYPRE_INC_INSTALL)
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o libHYPRE*
+Index: hypre-2.11.0/src/parcsr_mv/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/parcsr_mv/Makefile
++++ hypre-2.11.0/src/parcsr_mv/Makefile
+@@ -109,7 +109,7 @@ driver_boolaat: driver_boolaat.o libHYPR
+ install: libHYPRE_parcsr_mv${HYPRE_LIB_SUFFIX}
+ 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/_hypre_parcsr_mv.h $(HYPRE_INC_INSTALL)
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o libHYPRE*
+Index: hypre-2.11.0/src/seq_mv/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/seq_mv/Makefile
++++ hypre-2.11.0/src/seq_mv/Makefile
+@@ -59,7 +59,7 @@ all: libHYPRE_seq_mv${HYPRE_LIB_SUFFIX}
+ install: libHYPRE_seq_mv${HYPRE_LIB_SUFFIX}
+ 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/seq_mv.h $(HYPRE_INC_INSTALL)
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o libHYPRE*
+Index: hypre-2.11.0/src/sstruct_ls/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/sstruct_ls/Makefile
++++ hypre-2.11.0/src/sstruct_ls/Makefile
+@@ -123,7 +123,7 @@ all: libHYPRE_sstruct_ls${HYPRE_LIB_SUFF
+ install: libHYPRE_sstruct_ls${HYPRE_LIB_SUFFIX}
+ 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/_hypre_sstruct_ls.h $(HYPRE_INC_INSTALL)
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o libHYPRE*
+Index: hypre-2.11.0/src/sstruct_mv/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/sstruct_mv/Makefile
++++ hypre-2.11.0/src/sstruct_mv/Makefile
+@@ -73,7 +73,7 @@ all: libHYPRE_sstruct_mv${HYPRE_LIB_SUFF
+ install: libHYPRE_sstruct_mv${HYPRE_LIB_SUFFIX}
+ 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/_hypre_sstruct_mv.h $(HYPRE_INC_INSTALL)
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o libHYPRE*
+Index: hypre-2.11.0/src/struct_ls/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/struct_ls/Makefile
++++ hypre-2.11.0/src/struct_ls/Makefile
+@@ -116,7 +116,7 @@ all: libHYPRE_struct_ls${HYPRE_LIB_SUFFI
+ install: libHYPRE_struct_ls${HYPRE_LIB_SUFFIX}
+ 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/_hypre_struct_ls.h $(HYPRE_INC_INSTALL)
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o libHYPRE*
+Index: hypre-2.11.0/src/struct_mv/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/struct_mv/Makefile
++++ hypre-2.11.0/src/struct_mv/Makefile
+@@ -80,7 +80,7 @@ all: libHYPRE_struct_mv${HYPRE_LIB_SUFFI
+ install: libHYPRE_struct_mv${HYPRE_LIB_SUFFIX}
+ 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/_hypre_struct_mv.h $(HYPRE_INC_INSTALL)
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o libHYPRE*
+Index: hypre-2.11.0/src/utilities/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/utilities/Makefile
++++ hypre-2.11.0/src/utilities/Makefile
+@@ -81,7 +81,7 @@ install: libHYPRE_utilities${HYPRE_LIB_S
+ 	cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/_hypre_utilities.h $(HYPRE_INC_INSTALL)
+ 	cp -fR $(srcdir)/fortran*.h $(HYPRE_INC_INSTALL)
+-#	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
++	cp -fR libHYPRE* $(HYPRE_LIB_INSTALL)
+ 
+ clean:
+ 	rm -f *.o libHYPRE*
+Index: hypre-2.11.0/src/Makefile
+===================================================================
+--- hypre-2.11.0.orig/src/Makefile
++++ hypre-2.11.0/src/Makefile
+@@ -158,23 +158,16 @@ check:
+ install: all
+ 	@ \
+ 	echo "Installing hypre ..."; \
+-	${HYPRE_SRC_TOP_DIR}/config/mkinstalldirs ${HYPRE_LIB_INSTALL} ${HYPRE_INC_INSTALL}; \
+-	HYPRE_PWD=`pwd`; \
+-	cd ${HYPRE_BUILD_DIR}/lib; HYPRE_FROMDIR=`pwd`; \
+-	cd $$HYPRE_PWD; \
+-	cd ${HYPRE_LIB_INSTALL};   HYPRE_TODIR=`pwd`; \
+-	if [ "$$HYPRE_FROMDIR" != "$$HYPRE_TODIR" ]; \
+-	then \
+-	  cp -fR $$HYPRE_FROMDIR/* $$HYPRE_TODIR; \
+-	fi; \
+-	cd ${HYPRE_BUILD_DIR}/include; HYPRE_FROMDIR=`pwd`; \
+-	cd $$HYPRE_PWD; \
+-	cd ${HYPRE_INC_INSTALL};       HYPRE_TODIR=`pwd`; \
+-	if [ "$$HYPRE_FROMDIR" != "$$HYPRE_TODIR" ]; \
+-	then \
+-	  cp -fR $$HYPRE_FROMDIR/* $$HYPRE_TODIR; \
+-	fi; \
+-	cd $$HYPRE_PWD; \
++	mkdir -p ${HYPRE_INC_INSTALL} ${HYPRE_LIB_INSTALL}; \
++	cp -fR HYPRE_config.h ${HYPRE_INC_INSTALL}; \
++	cp -fR $(srcdir)/HYPRE.h ${HYPRE_INC_INSTALL}; \
++	cp -fR $(srcdir)/HYPREf.h ${HYPRE_INC_INSTALL}; \
++	for i in ${HYPRE_DIRS} ${HYPRE_BABEL_DIRS}; \
++	do \
++	  echo "Installing $$i ..."; \
++	  (cd $$i && $(MAKE) install); \
++	  echo ""; \
++	done
+ 	chmod -R a+rX,u+w,go-w ${HYPRE_LIB_INSTALL}; \
+ 	chmod -R a+rX,u+w,go-w ${HYPRE_INC_INSTALL}; \
+ 	echo
diff --git a/debian/patches/series b/debian/patches/series
index a7a399d..fdc2943 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,5 +1,10 @@
-flexgmres-to-parcsr_ls.patch
-fgmres-lib.patch
-shlibs-interlink.patch
-config-update-dir.patch
-install-libs.patch
+#shlibs-interlink.patch
+configure.patch
+superlu.patch
+install.patch
+#test.patch
+#examples.patch
+##cmake-install.patch
+#config-for-petsc.patch
+blas.patch
+complex.patch
diff --git a/debian/patches/shlibs-interlink.patch b/debian/patches/shlibs-interlink.patch
index 5af138c..29f1d2d 100644
--- a/debian/patches/shlibs-interlink.patch
+++ b/debian/patches/shlibs-interlink.patch
@@ -8,504 +8,41 @@ This patch has several purposes:
    hypre libs instead of duplicating all of the object files, cutting the
    installed size roughly in half.
 
-Index: hypre/src/FEI_mv/fei-hypre/Makefile
-===================================================================
---- hypre.orig/src/FEI_mv/fei-hypre/Makefile
-+++ hypre/src/FEI_mv/fei-hypre/Makefile
-@@ -63,6 +63,19 @@ CXX_COMPILE_FLAGS = \
-  ${SUPERLU_INCLUDE}\
-  ${CXXINCLUDES}
- 
-+
-+HYPRE_LIBS = \
-+  ../../utilities/libHYPRE_utilities.so \
-+  ../../seq_mv/libHYPRE_seq_mv.so \
-+  ../../parcsr_mv/libHYPRE_parcsr_mv.so \
-+  ../../IJ_mv/libHYPRE_IJ_mv.so \
-+  ../../parcsr_ls/libHYPRE_parcsr_ls.so \
-+  ../fgmres/libHYPRE_FEI_fgmres.so \
-+  ../femli/lib/libHYPRE_mli.so \
-+  ../../krylov/libHYPRE_krylov.so
-+
-+SYSTEM_LIBS = -lmpi -lm -lmpi++ -lsuperlu
-+
- HEADERS =\
-  cfei-hypre.h\
-  cfei_hypre.h\
-@@ -210,9 +223,9 @@ libHYPRE_FEI.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_FEI.so: ${OBJS}
-+libHYPRE_FEI.so: ${OBJS} ${HYPRE_LIBS}
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SYSTEM_LIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/IJ_mv/Makefile
-===================================================================
---- hypre.orig/src/IJ_mv/Makefile
-+++ hypre/src/IJ_mv/Makefile
-@@ -25,6 +25,13 @@ C_COMPILE_FLAGS =\
-  -I$(srcdir)/../parcsr_ls\
-  ${CINCLUDES}
- 
-+HYPRE_LIBS = \
-+  ../utilities/libHYPRE_utilities.so \
-+  ../seq_mv/libHYPRE_seq_mv.so \
-+  ../parcsr_mv/libHYPRE_parcsr_mv.so
-+
-+SYSTEM_LIBS = -lmpi
-+
- HEADERS =\
-  aux_parcsr_matrix.h\
-  aux_par_vector.h\
-@@ -84,9 +91,9 @@ libHYPRE_IJ_mv.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_IJ_mv.so: ${OBJS}
-+libHYPRE_IJ_mv.so: ${OBJS} ${HYPRE_LIBS}
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SYSTEM_LIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/distributed_ls/Euclid/Makefile
-===================================================================
---- hypre.orig/src/distributed_ls/Euclid/Makefile
-+++ hypre/src/distributed_ls/Euclid/Makefile
-@@ -25,6 +25,10 @@ C_COMPILE_FLAGS = \
-  -I$(srcdir)/../../hypre/include\
-  ${CINCLUDES}
- 
-+HYPRE_LIBS = ../../parcsr_mv/libHYPRE_parcsr_mv.so ../../utilities/libHYPRE_utilities.so
-+
-+SYSTEM_LIBS = -lmpi -lm
-+
- HEADERS =\
-  blas_dh.h\
-  euclid_common.h\
-@@ -114,9 +118,9 @@ libHYPRE_Euclid.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_Euclid.so: ${OBJS}
-+libHYPRE_Euclid.so: ${OBJS} ${HYPRE_LIBS}
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SYSTEM_LIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/distributed_ls/ParaSails/Makefile
-===================================================================
---- hypre.orig/src/distributed_ls/ParaSails/Makefile
-+++ hypre/src/distributed_ls/ParaSails/Makefile
-@@ -23,6 +23,13 @@ C_COMPILE_FLAGS = \
-  -I$(srcdir)/../../distributed_matrix\
-  ${CINCLUDES}
- 
-+HYPRE_LIBS = \
-+  ../../utilities/libHYPRE_utilities.so \
-+  ../../IJ_mv/libHYPRE_IJ_mv.so \
-+  ../../distributed_matrix/libHYPRE_DistributedMatrix.so
-+
-+SYSTEM_LIBS = -lmpi -lm ${BLASLIBDIRS} ${BLASLIBS} ${LAPACKLIBDIRS} ${LAPACKLIBS}
-+
- HEADERS =\
-  Common.h\
-  ConjGrad.h\
-@@ -84,9 +91,9 @@ libHYPRE_ParaSails.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_ParaSails.so: ${OBJS}
-+libHYPRE_ParaSails.so: ${OBJS} ${HYPRE_LIBS}
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SYSTEM_LIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/distributed_ls/pilut/Makefile
-===================================================================
---- hypre.orig/src/distributed_ls/pilut/Makefile
-+++ hypre/src/distributed_ls/pilut/Makefile
-@@ -23,6 +23,12 @@ C_COMPILE_FLAGS = \
-  -I$(srcdir)/../../distributed_matrix\
- ${CINCLUDES}
- 
-+HYPRE_LIBS = \
-+  ../../utilities/libHYPRE_utilities.so \
-+  ../../distributed_matrix/libHYPRE_DistributedMatrix.so
-+
-+SYSTEM_LIBS = -lmpi -lm ${BLASLIBDIRS} ${BLASLIBS}
-+
- HEADERS = \
-  HYPRE_DistributedMatrixPilutSolver_protos.h\
-  HYPRE_DistributedMatrixPilutSolver_types.h\
-@@ -78,9 +84,9 @@ libHYPRE_DistributedMatrixPilutSolver.a:
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_DistributedMatrixPilutSolver.so: ${OBJS}
-+libHYPRE_DistributedMatrixPilutSolver.so: ${OBJS} ${HYPRE_LIBS}
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SYSTEM_LIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/distributed_matrix/Makefile
-===================================================================
---- hypre.orig/src/distributed_matrix/Makefile
-+++ hypre/src/distributed_matrix/Makefile
-@@ -23,6 +23,8 @@ C_COMPILE_FLAGS = \
-  -I$(srcdir)/../seq_mv\
-  ${CINCLUDES}
- 
-+LIBS = ../utilities/libHYPRE_utilities.so ../parcsr_mv/libHYPRE_parcsr_mv.so
-+
- EXTRA_HEADERS = internal_protos.h
- 
- HEADERS =\
-@@ -69,9 +71,9 @@ libHYPRE_DistributedMatrix.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_DistributedMatrix.so: ${OBJS}
-+libHYPRE_DistributedMatrix.so: ${OBJS} ${LIBS}
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/krylov/Makefile
-===================================================================
---- hypre.orig/src/krylov/Makefile
-+++ hypre/src/krylov/Makefile
-@@ -22,6 +22,10 @@ C_COMPILE_FLAGS = \
-  -I$(srcdir)/../utilities\
-  ${CINCLUDES}
- 
-+HYPRE_LIBS = ../utilities/libHYPRE_utilities.so ../multivector/libHYPRE_multivector.so
-+
-+SYSTEM_LIBS = ${LAPACKLIBDIRS} ${LAPACKLIBS} -lm
-+
- HEADERS =\
-  HYPRE_krylov.h\
-  krylov.h\
-@@ -86,9 +90,9 @@ libHYPRE_krylov.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_krylov.so: ${OBJS}
-+libHYPRE_krylov.so: ${OBJS} ${HYPRE_LIBS}
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SYSTEM_LIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/matrix_matrix/Makefile
-===================================================================
---- hypre.orig/src/matrix_matrix/Makefile
-+++ hypre/src/matrix_matrix/Makefile
-@@ -24,6 +24,12 @@ C_COMPILE_FLAGS = \
-  -I$(srcdir)/../parcsr_mv\
-  ${CINCLUDES}
- 
-+LIBS =  \
-+  ../parcsr_mv/libHYPRE_parcsr_mv.so \
-+  ../distributed_matrix/libHYPRE_DistributedMatrix.so \
-+  ../utilities/libHYPRE_utilities.so
-+#  ../IJ_mv/libHYPRE_IJ_mv.so
-+
- EXTRA_FILES =\
-  internal_protos.h
- 
-@@ -64,9 +70,9 @@ libHYPRE_MatrixMatrix.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_MatrixMatrix.so: ${OBJS}
-+libHYPRE_MatrixMatrix.so: ${OBJS} ${LIBS}
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/multivector/Makefile
-===================================================================
---- hypre.orig/src/multivector/Makefile
-+++ hypre/src/multivector/Makefile
-@@ -60,9 +60,9 @@ libHYPRE_multivector.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_multivector.so: ${OBJS}
-+libHYPRE_multivector.so: ${OBJS} ../utilities/libHYPRE_utilities.so
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/parcsr_block_mv/Makefile
-===================================================================
---- hypre.orig/src/parcsr_block_mv/Makefile
-+++ hypre/src/parcsr_block_mv/Makefile
-@@ -28,8 +28,15 @@ C_COMPILE_FLAGS = \
-  -I$(srcdir)/../krylov\
-  ${CINCLUDES}
- 
-+HYPRE_LIBS = \
-+  ../utilities/libHYPRE_utilities.so \
-+  ../seq_mv/libHYPRE_seq_mv.so \
-+  ../parcsr_mv/libHYPRE_parcsr_mv.so
-+
-+SYSTEM_LIBS = -lmpi -lm
-+
- LFLAGS = \
--  -L. -lHYPRE_parcsr_block_mv -L../hypre/lib -lHYPRE_krylov \
-+  -L../hypre/lib -lHYPRE_parcsr_block_mv -L../hypre/lib -lHYPRE_krylov \
-       -lHYPRE_parcsr_ls -lHYPRE_ParaSails -lHYPRE_Euclid \
-       -lHYPRE_DistributedMatrixPilutSolver -lHYPRE_IJ_mv \
-       -lHYPRE_parcsr_mv -lHYPRE_seq_mv -lHYPRE_DistributedMatrix \
-@@ -114,9 +121,9 @@ libHYPRE_parcsr_block_mv.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_parcsr_block_mv.so: ${OBJS}
-+libHYPRE_parcsr_block_mv.so: ${OBJS} ${HYPRE_LIBS}
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SYSTEM_LIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/parcsr_ls/Makefile
-===================================================================
---- hypre.orig/src/parcsr_ls/Makefile
-+++ hypre/src/parcsr_ls/Makefile
-@@ -33,6 +33,22 @@ C_COMPILE_FLAGS =\
-  -I$(srcdir)/../parcsr_block_mv\
-  ${CINCLUDES}
- 
-+HYPRE_LIBS = \
-+  ../utilities/libHYPRE_utilities.so \
-+  ../multivector/libHYPRE_multivector.so \
-+  ../krylov/libHYPRE_krylov.so \
-+  ../seq_mv/libHYPRE_seq_mv.so \
-+  ../parcsr_mv/libHYPRE_parcsr_mv.so \
-+  ../parcsr_block_mv/libHYPRE_parcsr_block_mv.so \
-+  ../distributed_matrix/libHYPRE_DistributedMatrix.so \
-+  ../IJ_mv/libHYPRE_IJ_mv.so \
-+  ../matrix_matrix/libHYPRE_MatrixMatrix.so \
-+  ../distributed_ls/pilut/libHYPRE_DistributedMatrixPilutSolver.so \
-+  ../distributed_ls/ParaSails/libHYPRE_ParaSails.so \
-+  ../distributed_ls/Euclid/libHYPRE_Euclid.so
-+
-+SYSTEM_LIBS = -lmpi -lm $(LAPACKLIBDIRS) $(LAPACKLIBS)
-+
- HEADERS =\
-  HYPRE_parcsr_ls.h\
-  _hypre_parcsr_ls.h\
-@@ -160,9 +176,9 @@ libHYPRE_parcsr_ls.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_parcsr_ls.so: ${OBJS}
-+libHYPRE_parcsr_ls.so: ${OBJS} ${HYPRE_LIBS}
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SYSTEM_LIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/parcsr_mv/Makefile
-===================================================================
---- hypre.orig/src/parcsr_mv/Makefile
-+++ hypre/src/parcsr_mv/Makefile
-@@ -23,6 +23,10 @@ C_COMPILE_FLAGS = \
-  -I$(srcdir)/../seq_mv\
-  ${CINCLUDES}
- 
-+HYPRE_LIBS = ../seq_mv/libHYPRE_seq_mv.so ../utilities/libHYPRE_utilities.so
-+
-+SYSTEM_LIBS = -lmpi
-+
- HEADERS =\
-  HYPRE_parcsr_mv.h\
-  _hypre_parcsr_mv.h\
-@@ -127,9 +131,9 @@ libHYPRE_parcsr_mv.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_parcsr_mv.so: ${OBJS}
-+libHYPRE_parcsr_mv.so: ${OBJS} ${HYPRE_LIBS}
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SYSTEM_LIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/seq_mv/Makefile
-===================================================================
---- hypre.orig/src/seq_mv/Makefile
-+++ hypre/src/seq_mv/Makefile
-@@ -76,9 +76,9 @@ libHYPRE_seq_mv.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_seq_mv.so: ${OBJS}
-+libHYPRE_seq_mv.so: ${OBJS} ../utilities/libHYPRE_utilities.so
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/sstruct_ls/Makefile
-===================================================================
---- hypre.orig/src/sstruct_ls/Makefile
-+++ hypre/src/sstruct_ls/Makefile
-@@ -31,6 +31,20 @@ C_COMPILE_FLAGS = \
-  -I$(srcdir)/../parcsr_ls\
-  ${CINCLUDES}
- 
-+HYPRE_LIBS = \
-+  ../utilities/libHYPRE_utilities.so \
-+  ../multivector/libHYPRE_multivector.so \
-+  ../krylov/libHYPRE_krylov.so \
-+  ../struct_mv/libHYPRE_struct_mv.so \
-+  ../struct_ls/libHYPRE_struct_ls.so \
-+  ../seq_mv/libHYPRE_seq_mv.so \
-+  ../parcsr_mv/libHYPRE_parcsr_mv.so \
-+  ../IJ_mv/libHYPRE_IJ_mv.so \
-+  ../parcsr_ls/libHYPRE_parcsr_ls.so \
-+  ../sstruct_mv/libHYPRE_sstruct_mv.so
-+
-+SYSTEM_LIBS = -lmpi -lm
-+
- HEADERS =\
-  HYPRE_sstruct_ls.h\
-  _hypre_sstruct_ls.h\
-@@ -140,9 +154,9 @@ libHYPRE_sstruct_ls.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_sstruct_ls.so: ${OBJS}
-+libHYPRE_sstruct_ls.so: ${OBJS} ${HYPRE_LIBS}
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SYSTEM_LIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/sstruct_mv/Makefile
-===================================================================
---- hypre.orig/src/sstruct_mv/Makefile
-+++ hypre/src/sstruct_mv/Makefile
-@@ -26,6 +26,14 @@ C_COMPILE_FLAGS = \
-  -I$(srcdir)/../IJ_mv\
-  ${CINCLUDES}
- 
-+HYPRE_LIBS = \
-+  ../utilities/libHYPRE_utilities.so \
-+  ../struct_mv/libHYPRE_struct_mv.so \
-+  ../parcsr_mv/libHYPRE_parcsr_mv.so \
-+  ../IJ_mv/libHYPRE_IJ_mv.so
-+
-+SYSTEM_LIBS = -lmpi
-+
- HEADERS =\
-  HYPRE_sstruct_mv.h\
-  _hypre_sstruct_mv.h\
-@@ -90,9 +98,9 @@ libHYPRE_sstruct_mv.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_sstruct_mv.so: ${OBJS}
-+libHYPRE_sstruct_mv.so: ${OBJS} ${HYPRE_LIBS}
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SYSTEM_LIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/struct_ls/Makefile
-===================================================================
---- hypre.orig/src/struct_ls/Makefile
-+++ hypre/src/struct_ls/Makefile
-@@ -25,6 +25,15 @@ C_COMPILE_FLAGS = \
-  -I$(srcdir)/../struct_mv\
-  ${CINCLUDES}
- 
-+HYPRE_LIBS = \
-+  ../utilities/libHYPRE_utilities.so \
-+  ../multivector/libHYPRE_multivector.so \
-+  ../krylov/libHYPRE_krylov.so \
-+  ../parcsr_ls/libHYPRE_parcsr_ls.so \
-+  ../struct_mv/libHYPRE_struct_mv.so
-+
-+SYSTEM_LIBS = -lmpi -lm
-+
- HEADERS =\
-  HYPRE_struct_ls.h\
-  _hypre_struct_ls.h\
-@@ -135,9 +144,9 @@ libHYPRE_struct_ls.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_struct_ls.so: ${OBJS}
-+libHYPRE_struct_ls.so: ${OBJS} ${HYPRE_LIBS}
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ ${SYSTEM_LIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/struct_mv/Makefile
-===================================================================
---- hypre.orig/src/struct_mv/Makefile
-+++ hypre/src/struct_mv/Makefile
-@@ -97,9 +97,9 @@ libHYPRE_struct_mv.a: ${OBJS}
- 	${AR} $@ ${OBJS}
- 	${RANLIB} $@
- 
--libHYPRE_struct_mv.so: ${OBJS}
-+libHYPRE_struct_mv.so: ${OBJS} ../utilities/libHYPRE_utilities.so
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} $^ -lmpi -lm ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/utilities/Makefile
-===================================================================
---- hypre.orig/src/utilities/Makefile
-+++ hypre/src/utilities/Makefile
-@@ -100,7 +100,7 @@ libHYPRE_utilities.a: ${OBJS}
- 
- libHYPRE_utilities.so: ${OBJS}
- 	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME}
-+	${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} -lmpi -lm ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
- 	ln -s ${SONAME} $@
- 
- ${OBJS}: ${HEADERS}
-Index: hypre/src/lib/Makefile
-===================================================================
---- hypre.orig/src/lib/Makefile
-+++ hypre/src/lib/Makefile
-@@ -59,6 +59,28 @@ $(UTILITIESFILES)\
+Index: hypre-2.10.0b/src/lib/Makefile
+===================================================================
+--- hypre-2.10.0b.orig/src/lib/Makefile
++++ hypre-2.10.0b/src/lib/Makefile
+@@ -12,29 +12,6 @@
+ 
+ include ../config/Makefile.config
+ 
+-SUPERLUFILES = ${HYPRE_FEI_SUPERLU_FILES}
+-FEIHYPREFILES = ${HYPRE_FEI_HYPRE_FILES}
+-FEMLIFILES = ${HYPRE_FEI_FEMLI_FILES}
+-IJMVFILES = ${HYPRE_SRC_TOP_DIR}/IJ_mv/*.o
+-EUCLIDFILES = ${HYPRE_SRC_TOP_DIR}/distributed_ls/Euclid/*.o
+-PARASAILSFILES = ${HYPRE_SRC_TOP_DIR}/distributed_ls/ParaSails/*.o
+-PILUTFILES = ${HYPRE_SRC_TOP_DIR}/distributed_ls/pilut/*.o
+-DISTMATRIXFILES = ${HYPRE_SRC_TOP_DIR}/distributed_matrix/*.o
+-KRYLOVFILES = ${HYPRE_SRC_TOP_DIR}/krylov/*.o
+-MATMATFILES = ${HYPRE_SRC_TOP_DIR}/matrix_matrix/*.o
+-MULTIVECFILES = ${HYPRE_SRC_TOP_DIR}/multivector/*.o
+-PARCSRLSFILES = ${HYPRE_SRC_TOP_DIR}/parcsr_ls/*.o
+-PARCSRMVFILES = ${HYPRE_SRC_TOP_DIR}/parcsr_mv/*.o
+-PARCSRBLOCKMVFILES = ${HYPRE_SRC_TOP_DIR}/parcsr_block_mv/*.o
+-SEQMVFILES = ${HYPRE_SRC_TOP_DIR}/seq_mv/*.o
+-SSTRUCTLSFILES = ${HYPRE_SRC_TOP_DIR}/sstruct_ls/*.o
+-SSTRUCTMVFILES = ${HYPRE_SRC_TOP_DIR}/sstruct_mv/*.o
+-STRUCTLSFILES = ${HYPRE_SRC_TOP_DIR}/struct_ls/*.o
+-STRUCTMVFILES = ${HYPRE_SRC_TOP_DIR}/struct_mv/*.o
+-UTILITIESFILES = ${HYPRE_SRC_TOP_DIR}/utilities/*.o
+-BLASFILES = ${HYPRE_BLAS_FILES}
+-LAPACKFILES = ${HYPRE_LAPACK_FILES}
+-
+ FILES_HYPRE = \
+ $(SUPERLUFILES)\
+ $(FEIHYPREFILES)\
+@@ -59,6 +36,27 @@ $(UTILITIESFILES)\
  $(BLASFILES)\
  $(LAPACKFILES)
  
@@ -527,20 +64,28 @@ Index: hypre/src/lib/Makefile
 +  ../distributed_ls/ParaSails/libHYPRE_ParaSails.so \
 +  ../distributed_ls/pilut/libHYPRE_DistributedMatrixPilutSolver.so \
 +  ../parcsr_ls/libHYPRE_parcsr_ls.so \
-+  ../FEI_mv/fgmres/libHYPRE_FEI_fgmres.so \
-+  ../FEI_mv/femli/lib/libHYPRE_mli.so \
++  ../FEI_mv/femli/libHYPRE_mli.so \
 +  ../FEI_mv/fei-hypre/libHYPRE_FEI.so
 +
  SONAME = libHYPRE-${HYPRE_RELEASE_VERSION}.so
  SOLIBS = ${MPILIBDIRS} ${MPILIBS} ${LAPACKLIBDIRS} ${LAPACKLIBS}\
   ${BLASLIBDIRS} ${BLASLIBS} ${LIBS} ${FLIBS}
-@@ -105,7 +127,7 @@ libHYPRE.a: ${FILES_HYPRE}
+@@ -71,7 +69,7 @@ SOLIBS = ${MPILIBDIRS} ${MPILIBS} ${LAPA
+ all: libHYPRE${HYPRE_LIB_SUFFIX}
+ 	cp -fR libHYPRE* ${HYPRE_BUILD_DIR}/lib
+ 
+-install: all
++install: libHYPRE${HYPRE_LIB_SUFFIX}
+ 	cp -fR libHYPRE* ${HYPRE_LIB_INSTALL}
+ 
+ clean:
+@@ -105,7 +103,7 @@ libHYPRE.a: ${FILES_HYPRE}
  	${AR} $@ $(UTILITIESFILES) $(BLASFILES) $(LAPACKFILES)
  	${RANLIB} $@
  
 -libHYPRE.so: ${FILES_HYPRE}
 +libHYPRE.so: ${LIBS_HYPRE}
  	@echo  "Building $@ ... "
--	${BUILD_CC_SHARED} -o ${SONAME} ${FILES_HYPRE} ${SOLIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS} ${LDFLAGS}
-+	${BUILD_CC_SHARED} -o ${SONAME} ${LIBS_HYPRE} ${SOLIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS} ${LDFLAGS}
+-	${BUILD_CC_SHARED} -o ${SONAME} ${FILES_HYPRE} ${SOLIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
++	${BUILD_CC_SHARED} -o ${SONAME} ${LIBS_HYPRE} ${SOLIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
  	ln -s ${SONAME} $@
diff --git a/debian/patches/superlu.patch b/debian/patches/superlu.patch
new file mode 100644
index 0000000..58007ad
--- /dev/null
+++ b/debian/patches/superlu.patch
@@ -0,0 +1,23 @@
+Index: hypre-2.10.0b/src/FEI_mv/femli/test/make.csh
+===================================================================
+--- hypre-2.10.0b.orig/src/FEI_mv/femli/test/make.csh
++++ hypre-2.10.0b/src/FEI_mv/femli/test/make.csh
+@@ -1,4 +1,4 @@
+ #!/bin/csh
+ mpiCC -c -DHYPRE_TIMING -I../../../hypre/include -I.. -I../../.. driver.c
+-mpiCC -o driver driver.o -L../../../hypre/lib -L/usr/lib -lHYPRE -lHYPRE_superlu -lHYPRE_LSI -lg2c -lm
++mpiCC -o driver driver.o -L../../../hypre/lib -L/usr/lib -lHYPRE -lsuperlu -lHYPRE_LSI -lg2c -lm
+ 
+Index: hypre-2.10.0b/src/parcsr_block_mv/Makefile
+===================================================================
+--- hypre-2.10.0b.orig/src/parcsr_block_mv/Makefile
++++ hypre-2.10.0b/src/parcsr_block_mv/Makefile
+@@ -34,7 +34,7 @@ LFLAGS = \
+       -lHYPRE_DistributedMatrixPilutSolver -lHYPRE_IJ_mv \
+       -lHYPRE_parcsr_mv -lHYPRE_seq_mv -lHYPRE_DistributedMatrix \
+       -lHYPRE_MatrixMatrix -lHYPRE_utilities -lm
+-# -L. -lHYPRE_parcsr_block_mv -L../hypre/lib -lHYPRE_LSI -lHYPRE_superlu -lm
++# -L. -lHYPRE_parcsr_block_mv -L../hypre/lib -lHYPRE_LSI -lsuperlu -lm
+ 
+ HEADERS =\
+  csr_block_matrix.h\
diff --git a/debian/patches/test.patch b/debian/patches/test.patch
new file mode 100644
index 0000000..86dbfa9
--- /dev/null
+++ b/debian/patches/test.patch
@@ -0,0 +1,524 @@
+Index: hypre-2.10.0b/src/test/runtest.sh
+===================================================================
+--- hypre-2.10.0b.orig/src/test/runtest.sh
++++ hypre-2.10.0b/src/test/runtest.sh
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ # global variables
+ BatchMode=0
+@@ -9,10 +9,10 @@ RunString=""
+ RunEcho=""
+ ExecFileNames=""           #string of executable file names used
+ TestDirNames=""            #string of names of TEST_* directories used
+-HOST=`hostname`
++HOST=$(hostname)
+ NumThreads=0               #number of OpenMP threads to use if > 0
+ 
+-function usage
++usage()
+ {
+    printf "\n"
+    printf "$0 [options] {test_path}/{test_name}.sh\n"
+@@ -49,14 +49,14 @@ function usage
+ }
+ 
+ # generate default command based on the first 4 characters of the platform name
+-function MpirunString
++MpirunString()
+ {
+    case $HOST in
+       *bgl*) shift
+          BatchMode=1
+          MY_NUM_TASKS=$1  
+-         MY_EXECUTE_DIR=`pwd`
+-         MY_EXECUTE_JOB=`pwd`/$EXECFILE
++         MY_EXECUTE_DIR=$(pwd)
++         MY_EXECUTE_JOB=$MY_EXECUTE_DIR/$EXECFILE
+          shift
+          shift
+          MY_ARGS="$*"
+@@ -65,8 +65,8 @@ function MpirunString
+          ;;
+       up*) CPUS_PER_NODE=8
+          POE_NUM_PROCS=$2
+-         POE_NUM_NODES=`expr $POE_NUM_PROCS + $CPUS_PER_NODE - 1`
+-         POE_NUM_NODES=`expr $POE_NUM_NODES / $CPUS_PER_NODE`
++         POE_NUM_NODES=$(($POE_NUM_PROCS + $CPUS_PER_NODE - 1))
++         POE_NUM_NODES=$(($POE_NUM_NODES / $CPUS_PER_NODE))
+          shift
+          shift
+          MY_ARGS="$*"
+@@ -77,8 +77,8 @@ function MpirunString
+       *dawn*) shift
+          BatchMode=1
+          MY_NUM_TASKS=$1  
+-         MY_EXECUTE_DIR=`pwd`
+-         MY_EXECUTE_JOB=`pwd`/$EXECFILE
++         MY_EXECUTE_DIR=$(pwd)
++         MY_EXECUTE_JOB=$MY_EXECUTE_DIR/$EXECFILE
+          shift
+          shift
+          MY_ARGS="$*"
+@@ -101,10 +101,10 @@ function MpirunString
+          if [ ! -f $MACHINES_FILE ] ; then
+             hostname > $MACHINES_FILE
+          fi
+-         MPIRUN=`type mpirun|sed -e 's/^.* //'`
++         MPIRUN=$(type mpirun|sed -e 's/^.* //')
+          RunString="$MPIRUN -machinefile $MACHINES_FILE $*"
+          ;;
+-      *) MPIRUN=`type mpirun|sed -e 's/^.* //'`
++      *) MPIRUN=$(type mpirun|sed -e 's/^.* //')
+          RunString="$MPIRUN $*"
+          ;;
+    esac
+@@ -113,7 +113,7 @@ function MpirunString
+ # determine the "number of nodes" desired by dividing the "number of processes"
+ # by the "number of CPU's per node" which can't be determined dynamically (real
+ # ugly hack)
+-function CalcNodes
++CalcNodes()
+ {
+    NUM_PROCS=1
+    NUM_NODES=1
+@@ -145,8 +145,8 @@ function CalcNodes
+    do
+       case $1 in
+          -n*) NUM_PROCS=$2
+-            NUM_NODES=`expr $NUM_PROCS + $CPUS_PER_NODE - 1`
+-            NUM_NODES=`expr $NUM_NODES / $CPUS_PER_NODE`
++            NUM_NODES=$(($NUM_PROCS + $CPUS_PER_NODE - 1))
++            NUM_NODES=$(( $NUM_NODES / $CPUS_PER_NODE))
+             return $NUM_NODES
+             ;;
+          *) shift
+@@ -157,7 +157,7 @@ function CalcNodes
+ }
+ 
+ # extract the "number of processes/task"
+-function CalcProcs
++CalcProcs()
+ {
+    while [ "$1" ]
+    do
+@@ -173,7 +173,7 @@ function CalcProcs
+ 
+ # determine if HOST machine can process batch queues
+ #    set to run in debug pool unless batch MUST be used.
+-function CheckBatch
++CheckBatch()
+ {
+    case $HOST in
+       alc*) BATCH_MODE=0
+@@ -202,7 +202,7 @@ function CheckBatch
+ 
+ # check the path to the executable if the executable exists; save the name to
+ # ExecFileNames
+-function CheckPath
++CheckPath()
+ {
+    while [ "$1" ]
+    do
+@@ -230,7 +230,7 @@ function CheckPath
+ #
+ # on ubgl, as of 8/2006, only allowable number of nodes are 32, 128 and 
+ # multiples of 512
+-function PsubCmdStub
++PsubCmdStub()
+ {
+    CalcNodes "$@"
+    NumNodes=$?
+@@ -263,7 +263,7 @@ function PsubCmdStub
+ }
+ 
+ # read job file line by line saving arguments
+-function ExecuteJobs
++ExecuteJobs()
+ {
+    StartDir=$1
+    WorkingDir=$2
+@@ -272,7 +272,7 @@ function ExecuteJobs
+    BatchFlag=0               # #BATCH option detected flag 
+    BatchCount=0              # different numbering for #Batch option
+    PrevPid=0
+-   SavePWD=`pwd`
++   SavePWD=$(pwd)
+ ##
+ ##     move to specified directory
+    cd $WorkingDir
+@@ -287,12 +287,12 @@ function ExecuteJobs
+ 
+          "#END"*) BatchFlag=0
+             chmod +x $BatchFile
+-            PsubCmd="$PsubCmd -o $OutFile -e $ErrFile `pwd`/$BatchFile"
++            PsubCmd="$PsubCmd -o $OutFile -e $ErrFile $(pwd)/$BatchFile"
+             if [ "$NoRun" -eq 0 ] ; then
+-               CmdReply=`$PsubCmd`
++               CmdReply=$($PsubCmd)
+             fi
+-            PrevPid=`echo $CmdReply | cut -d \  -f 2`
+-            while [ "`pstat | grep $PrevPid`" ]
++            PrevPid=$(echo $CmdReply | cut -d \  -f 2)
++            while [ "$(pstat | grep $PrevPid)" ]
+             do
+                sleep $JobCheckInterval
+             done
+@@ -303,12 +303,12 @@ function ExecuteJobs
+             ;; 
+ 
+          *mpirun*)
+-            RunCmd=`echo $InputLine| sed -e 's/^[ \t]*mpirun[ \t]*//'` 
+-            RunCmd=`echo $RunCmd | sed -e 's/[ \t]*>.*$//'`
+-            OutFile=`echo $InputLine | sed -e 's/^.*>//'`
+-            OutFile=`echo $OutFile | sed -e 's/ //g'`
+-            ErrFile=`echo $OutFile | sed -e 's/\.out\./.err./'`
+-            RunName=`echo $OutFile | sed -e 's/\.out.*$//'`
++            RunCmd=$(echo $InputLine| sed -e 's/^[ \t]*mpirun[ \t]*//')
++            RunCmd=$(echo $RunCmd | sed -e 's/[ \t]*>.*$//')
++            OutFile=$(echo $InputLine | sed -e 's/^.*>//')
++            OutFile=$(echo $OutFile | sed -e 's/ //g')
++            ErrFile=$(echo $OutFile | sed -e 's/\.out\./.err./')
++            RunName=$(echo $OutFile | sed -e 's/\.out.*$//')
+             CheckPath $RunCmd               # check path to executable
+             if [ "$?" -gt 0 ] ; then
+                cat >> $RunName.err <<- EOF
+@@ -320,35 +320,35 @@ EOF
+             fi
+             MpirunString $RunCmd            # construct "RunString"
+             case $HOST in
+-               *bgl*) RunString="${RunString} > `pwd`/$OutFile 2>`pwd`/$ErrFile"
++               *bgl*) RunString="${RunString} > $(pwd)/$OutFile 2>$(pwd)/$ErrFile"
+                       ;;
+-               *dawn*) RunString="${RunString} > `pwd`/$OutFile 2>`pwd`/$ErrFile"
++               *dawn*) RunString="${RunString} > $(pwd)/$OutFile 2>$(pwd)/$ErrFile"
+                       ;;
+             esac
+             if [ "$BatchMode" -eq 0 ] ; then
+                ${RunEcho} ${RunString} > $OutFile 2> $ErrFile </dev/null
+             else
+                if [ "$BatchFlag" -eq 0 ] ; then
+-                  BatchFile=`echo $OutFile | sed -e 's/\.out\./.batch./'`
++                  BatchFile=$(echo $OutFile | sed -e 's/\.out\./.batch./')
+                   cat > $BatchFile <<- EOF 
+-cd `pwd`
++cd $(pwd)
+ ${RunString}
+ EOF
+                   chmod +x $BatchFile
+                   PsubCmdStub ${RunCmd}
+                   case $HOST in
+-                     *bgl*) PsubCmd="$PsubCmd `pwd`/$BatchFile"
++                     *bgl*) PsubCmd="$PsubCmd $(pwd)/$BatchFile"
+                             ;;
+-                     *dawn*) PsubCmd="$PsubCmd `pwd`/$BatchFile"
++                     *dawn*) PsubCmd="$PsubCmd $(pwd)/$BatchFile"
+                             ;;
+-                         *) PsubCmd="$PsubCmd -o $OutFile -e $ErrFile `pwd`/$BatchFile"
++                         *) PsubCmd="$PsubCmd -o $OutFile -e $ErrFile $(pwd)/$BatchFile"
+                             ;;
+                   esac
+                   if [ "$NoRun" -eq 0 ] ; then
+-                     CmdReply=`$PsubCmd`
++                     CmdReply=$($PsubCmd)
+                   fi
+-                  PrevPid=`echo $CmdReply | cut -d \  -f 2`
+-                  while [ "`pstat | grep $PrevPid`" ]
++                  PrevPid=$(echo $CmdReply | cut -d \  -f 2)
++                  while [ "$(pstat | grep $PrevPid)" ]
+                   do
+                      sleep $JobCheckInterval
+                   done
+@@ -357,7 +357,7 @@ EOF
+                      BatchFile=$InputFile.batch.$BatchCount
+                      BatchCount=BatchCount+1
+                      cat > $BatchFile <<- EOF
+-cd `pwd`
++cd $(pwd)
+ ${RunString}
+ EOF
+                   else
+@@ -371,7 +371,7 @@ EOF
+             ;;
+ 
+          *)
+-            NOTBLANK=`echo $InputLine | sed 's/[ \n\t]//g'`
++            NOTBLANK=$(echo $InputLine | sed 's/[ \n\t]//g')
+             if [ "$NOTBLANK" ] ; then
+                echo "Found something unexpected in $WorkingDir/$InputFile.jobs"
+                echo "--> $InputLine"
+@@ -385,12 +385,12 @@ EOF
+ }
+ 
+ #   compare output files as defined in *.sh files
+-function ExecuteTest
++ExecuteTest()
+ {
+    StartDir=$1
+    WorkingDir=$2
+    InputFile=$3
+-   SavePWD=`pwd`
++   SavePWD=$(pwd)
+    cd $WorkingDir
+    (cat $InputFile.err.* > $InputFile.err)
+    (./$InputFile.sh     >> $InputFile.err 2>> $InputFile.err)
+@@ -398,12 +398,12 @@ function ExecuteTest
+ }
+ 
+ #  report errors from PURIFY and/or INSURE if run 
+-function PostProcess
++PostProcess()
+ {
+    StartDir=$1
+    WorkingDir=$2
+    InputFile=$3
+-   SavePWD=`pwd`
++   SavePWD=$(pwd)
+    cd $WorkingDir
+    if [ "$BatchMode" -eq 0 ] ; then
+       if [ -f purify.log ] ; then
+@@ -423,7 +423,7 @@ function PostProcess
+ 
+                
+ # removes executable and hostname files from all TEST_* directories
+-function CleanUp
++CleanUp()
+ {
+    if [ "$BatchMode" -eq 0 ] ; then
+       for i in $TestDirNames
+@@ -448,8 +448,8 @@ function CleanUp
+    fi
+ }
+ 
+-# process files
+-function StartCrunch
++# process files()
++StartCrunch()
+ {
+    rm -f ~/insure.log*
+ 
+@@ -488,15 +488,15 @@ do
+          ;;
+       -D)
+          shift
+-         eval export `echo $1`=1
++         eval export $(echo $1)=1
+          shift
+          ;;
+       *) InputString=$1
+          if [ "$InputString" ] ; then
+             if [ -r $InputString ] ; then
+-               FilePart=`basename $InputString .sh`
+-               DirPart=`dirname $InputString`
+-               CurDir=`pwd`
++               FilePart=$(basename $InputString .sh)
++               DirPart=$(dirname $InputString)
++               CurDir=$(pwd)
+                TestDirNames="$TestDirNames $DirPart"
+                case $DirPart in
+                   TEST_examples)
+@@ -551,7 +551,7 @@ do
+   for errfile in $( find $dir -name "*.err" )
+   do
+     if (egrep -f runtest.filters $errfile > /dev/null) ; then
+-        original=`dirname $errfile`/`basename $errfile .err`.fil
++        original=$(dirname $errfile)/$(basename $errfile .err).fil
+ 	echo "This file contains the original copy of $errfile before filtering" > $original
+ 	cat $errfile >> $original
+ 	mv $errfile $errfile.tmp
+Index: hypre-2.10.0b/src/test/Makefile
+===================================================================
+--- hypre-2.10.0b.orig/src/test/Makefile
++++ hypre-2.10.0b/src/test/Makefile
+@@ -45,15 +45,32 @@ LIBFLAGS = ${LDFLAGS} ${LIBS}
+ # LIBFLAGS = ${LDFLAGS} ${LIBS} ${FLIBS}
+ 
+ LFLAGS =\
+- -L${HYPRE_BUILD_DIR}/lib\
+- -lHYPRE\
++ -L${HYPRE_LIB_INSTALL} \
++ -lHYPRE_utilities \
++ -lHYPRE_multivector \
++ -lHYPRE_krylov \
++ -lHYPRE_struct_mv \
++ -lHYPRE_struct_ls \
++ -lHYPRE_sstruct_mv \
++ -lHYPRE_sstruct_ls \
++ -lHYPRE_seq_mv \
++ -lHYPRE_parcsr_mv \
++ -lHYPRE_parcsr_ls \
++ -lHYPRE_parcsr_block_mv \
++ -lHYPRE_DistributedMatrix \
++ -lHYPRE_MatrixMatrix \
++ -lHYPRE_IJ_mv \
++ -lHYPRE_Euclid \
++ -lHYPRE_ParaSails \
++ -lHYPRE_DistributedMatrixPilutSolver \
++ -lHYPRE \
+  ${MPILIBFLAGS}\
+  ${LAPACKLIBFLAGS}\
+  ${BLASLIBFLAGS}\
+  ${LIBFLAGS}
+ 
+ BABELLIBFLAGS =\
+- -L${HYPRE_BUILD_DIR}/lib\
++ -L${HYPRE_LIB_INSTALL} \
+  -lbHYPRE\
+  -lbHYPREClient-C\
+  -lbHYPREClient-F\
+@@ -160,11 +177,11 @@ distclean: clean
+ 
+ zboxloop: zboxloop.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ $@.o ${LFLAGS}
++	${LINK_CC} -o $@ $@.o -Wl,--no-as-needed ${LFLAGS}
+ 
+ struct: struct.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ $@.o ${LFLAGS}
++	${LINK_CC} -o $@ $@.o -Wl,--no-as-needed ${LFLAGS}
+ 
+ fij_mv: fij_mv.f
+ 	@echo  "Building" $@ "... "
+@@ -196,105 +213,105 @@ fstruct_mv: fstruct_mv.f
+ 
+ struct_for: fstruct_mv.o fstruct_ls.o struct_for.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ fstruct_mv.o fstruct_ls.o $@.o ${FFLAGS} ${LFLAGS}
++	${LINK_CC} -o $@ fstruct_mv.o fstruct_ls.o $@.o ${FFLAGS} -Wl,--no-as-needed ${LFLAGS}
+ 
+ ex1_for: fstruct_mv.o fstruct_ls.o ex1_for.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ fstruct_mv.o fstruct_ls.o $@.o ${FFLAGS} ${LFLAGS}
++	${LINK_CC} -o $@ fstruct_mv.o fstruct_ls.o $@.o ${FFLAGS} -Wl,--no-as-needed ${LFLAGS}
+ 
+ ex3_for: fstruct_mv.o fstruct_ls.o ex3_for.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ fstruct_mv.o fstruct_ls.o $@.o ${FFLAGS} ${LFLAGS}
++	${LINK_CC} -o $@ fstruct_mv.o fstruct_ls.o $@.o ${FFLAGS} -Wl,--no-as-needed ${LFLAGS}
+ 
+ ex5_for: fij_mv.o fparcsr_mv.o fparcsr_ls.o ex5_for.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ fij_mv.o fparcsr_mv.o fparcsr_ls.o $@.o ${FFLAGS} ${LFLAGS}
++	${LINK_CC} -o $@ fij_mv.o fparcsr_mv.o fparcsr_ls.o $@.o ${FFLAGS} -Wl,--no-as-needed ${LFLAGS}
+ 
+ ex6_for: fstruct_mv.o fstruct_ls.o fsstruct_mv.o fsstruct_ls.o ex6_for.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ fstruct_mv.o fstruct_ls.o fsstruct_mv.o fsstruct_ls.o $@.o ${FFLAGS} ${LFLAGS}
++	${LINK_CC} -o $@ fstruct_mv.o fstruct_ls.o fsstruct_mv.o fsstruct_ls.o $@.o ${FFLAGS} -Wl,--no-as-needed ${LFLAGS}
+ 
+ ex7_for: fstruct_mv.o fstruct_ls.o fsstruct_mv.o fsstruct_ls.o ex7_for.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ fstruct_mv.o fstruct_ls.o fsstruct_mv.o fsstruct_ls.o $@.o ${FFLAGS} ${LFLAGS}
++	${LINK_CC} -o $@ fstruct_mv.o fstruct_ls.o fsstruct_mv.o fsstruct_ls.o $@.o ${FFLAGS} -Wl,--no-as-needed ${LFLAGS}
+ 
+ for_maxwell: fparcsr_mv.o fsstruct_mv.o fsstruct_ls.o for_maxwell.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ fparcsr_mv.o fsstruct_mv.o fsstruct_ls.o $@.o ${FFLAGS} ${LFLAGS}
++	${LINK_CC} -o $@ fparcsr_mv.o fsstruct_mv.o fsstruct_ls.o $@.o ${FFLAGS} -Wl,--no-as-needed ${LFLAGS}
+ 
+ sstruct: sstruct.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ $@.o ${LFLAGS}
++	${LINK_CC} -o $@ $@.o -Wl,--no-as-needed ${LFLAGS}
+ 
+ maxwell_unscaled: maxwell_unscaled.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ $@.o ${LFLAGS}
++	${LINK_CC} -o $@ $@.o -Wl,--no-as-needed ${LFLAGS}
+ 
+ sstruct_fac: sstruct_fac.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ $@.o ${LFLAGS}
++	${LINK_CC} -o $@ $@.o -Wl,--no-as-needed ${LFLAGS}
+ 
+ hypre_set_precond: hypre_set_precond.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ $@.o ${LFLAGS}
++	${LINK_CC} -o $@ $@.o -Wl,--no-as-needed ${LFLAGS}
+ 
+ test_ij: hypre_set_precond.o test_ij.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ hypre_set_precond.o $@.o ${LFLAGS}
++	${LINK_CC} -o $@ hypre_set_precond.o $@.o -Wl,--no-as-needed ${LFLAGS}
+ 
+ ij: ij.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ $@.o ${LFLAGS}
++	${LINK_CC} -o $@ $@.o  -Wl,--no-as-needed ${LFLAGS}
+ 
+ ij_mv: ij_mv.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ $@.o ${LFLAGS}
++	${LINK_CC} -o $@ $@.o -Wl,--no-as-needed ${LFLAGS}
+ 
+ new_ij: new_ij.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ $@.o ${LFLAGS}
++	${LINK_CC} -o $@ $@.o -Wl,--no-as-needed ${LFLAGS}
+ 
+ fei: fei.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CXX} -o $@ $@.o ${LFLAGS}
++	${LINK_CXX} -o $@ $@.o -Wl,--no-as-needed ${LFLAGS}
+ 
+ f77_struct: f77_struct.o
+ 	@echo  "Building" $@ "... "
+-	${F77} -o $@ $@.o ${FFLAGS} ${LFLAGS}
++	${F77} -o $@ $@.o ${FFLAGS} -Wl,--no-as-needed ${LFLAGS}
+ 
+ f77_ij: f77_ij.o
+ 	@echo  "Building" $@ "... "
+-	${F77} -o $@ $@.o ${FFLAGS} ${LFLAGS}
++	${F77} -o $@ $@.o ${FFLAGS} -Wl,--no-as-needed ${LFLAGS}
+ 
+ f77_ij_mv: f77_ij_mv.o
+ 	@echo  "Building" $@ "... "
+-	${F77} -o $@ $@.o ${FFLAGS} ${LFLAGS}
++	${F77} -o $@ $@.o ${FFLAGS} -Wl,--no-as-needed ${LFLAGS}
+ 
+ driver_commpkg: driver_commpkg.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ $@.o ${LFLAGS}
++	${LINK_CC} -o $@ $@.o -Wl,--no-as-needed ${LFLAGS}
+ 
+ ams_driver: ams_driver.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ $@.o ${LFLAGS}
++	${LINK_CC} -o $@ $@.o -Wl,--no-as-needed ${LFLAGS}
+ 
+ cxx_ij: cxx_ij.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CXX} -o $@ $@.o ${LFLAGS}
++	${LINK_CXX} -o $@ $@.o -Wl,--no-as-needed ${LFLAGS}
+ cxx_ij.o: cxx_ij.cxx
+ cxx_ij.cxx: ij.c
+ 	cp -fp ij.c cxx_ij.cxx
+ 
+ cxx_sstruct: cxx_sstruct.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CXX} -o $@ $@.o ${LFLAGS}
++	${LINK_CXX} -o $@ $@.o -Wl,--no-as-needed ${LFLAGS}
+ cxx_sstruct.o: cxx_sstruct.cxx
+ cxx_sstruct.cxx: sstruct.c
+ 	cp -fp sstruct.c cxx_sstruct.cxx
+ 
+ cxx_struct: cxx_struct.o
+ 	@echo  "Building" $@ "... "
+-	${LINK_CXX} -o $@ $@.o ${LFLAGS}
++	${LINK_CXX} -o $@ $@.o -Wl,--no-as-needed ${LFLAGS}
+ cxx_struct.o: cxx_struct.cxx
+ cxx_struct.cxx: struct.c
+ 	cp -fp struct.c cxx_struct.cxx
+@@ -304,8 +321,8 @@ cxx_struct.cxx: struct.c
+ ##################################################################
+ ${HYPRE_BABEL_DRIVER_EXECS}: ${HYPRE_BABEL_DRIVER_OBJS}
+ 	@echo  "Building" $@ "... "
+-	${LINK_CC} -o $@ $@.o ${BABELLIBFLAGS} ${LFLAGS}
++	${LINK_CC} -o $@ $@.o ${BABELLIBFLAGS} -Wl,--no-as-needed ${LFLAGS}
+ 
+ ${HYPRE_BABEL_DRIVER_F77_EXECS}: ${HYPRE_BABEL_DRIVER_F77_OBJS}
+ 	@echo  "Building" $@ "... "
+-	${F77} -o $@ $@.o ${BABELLIBFLAGS} ${FFLAGS} ${LFLAGS}
++	${F77} -o $@ $@.o ${BABELLIBFLAGS} ${FFLAGS} -Wl,--no-as-needed ${LFLAGS}
diff --git a/debian/rules b/debian/rules
old mode 100755
new mode 100644
index 9c137c2..113d6df
--- a/debian/rules
+++ b/debian/rules
@@ -1,109 +1,134 @@
 #!/usr/bin/make -f
+# Made with the aid of debmake, by Christoph Lameter,
+# based on the sample debian/rules file for GNU hello by Ian Jackson.
 
-# Files removed by the clean target
-KEEP_FILES= \
-  src/FEI_mv/DSuperLU/SRC/dmemory.c.orig \
-  src/FEI_mv/DSuperLU/SRC/memory.c.orig \
-  src/config/Makefile.config \
-  src/config/config.guess \
-  src/config/config.sub \
-  src/configure
-
-build: build-arch
-build-arch: stamp-build-arch
-stamp-build-arch: patch
-	dh_testdir
-	if [ ! -e src/parcsr_ls/flexgmres.c ]; then \
-	  ln -s ../krylov/HYPRE_flexgmres.c ../krylov/flexgmres.c src/parcsr_ls/; \
-	fi
-	if [ ! -e src/configure.keep ]; then \
-	  for keepfile in $(KEEP_FILES); do \
-	    mv $$keepfile $$keepfile.keep; \
-	  done; \
-	fi
-	rm -f src/configure
-	(cd src/config && aclocal -I .)
-	(cd src && autoconf -I config config/configure.in > configure)
-	chmod +x src/configure
-	cp -f /usr/share/automake*/config.* src/config/
-	(cd src && ./configure --enable-shared --without-superlu \
-	  --with-blas-libs="blas" --with-blas-lib-dirs="/usr/lib" \
-	  --with-lapack-libs="lapack" --with-lapack-lib-dirs="/usr/lib")
-	$(MAKE) -C src
-#	Remove PIC object files
-#	rm -f `find . -name \*.o -print`
-#	(cd src && ./configure --without-superlu \
-#	  --with-blas-libs="blas-3" --with-blas-lib-dirs="/usr/lib" \
-#	  --with-lapack-libs="lapack-3" --with-lapack-lib-dirs="/usr/lib")
-#	$(MAKE) -C src
-	touch $@
-
-build-indep: build-arch
-
-clean:
-	dh_testdir
-# Move these aside to avoid stomping on them during the clean process
-	if [ ! -e src/configure.keep ]; then \
-	  for keepfile in $(KEEP_FILES); do \
-	    mv $$keepfile $$keepfile.keep; \
-	  done; \
-	fi
-	if [ -e src/Makefile ]; then \
-	  touch src/config/Makefile.config; \
-	  $(MAKE) -C src clean; fi
-	rm -f stamp-configure stamp-build-arch stamp-install	
-	rm -f src/config/aclocal.m4 src/configure src/config/config.guess \
-	  src/config/config.sub src/config/Makefile.config
-	rm -f src/config.log src/config.status src/HYPRE_config.h
-	rm -f src/parcsr_ls/flexgmres.c src/parcsr_ls/HYPRE_flexgmres.c
-	dh_clean
-	if [ -e src/configure.keep ]; then \
-	  for keepfile in $(KEEP_FILES); do \
-	    mv -f $$keepfile.keep $$keepfile; \
-	  done; \
-	fi
-
-install: stamp-install
-stamp-install: stamp-build-arch
-	install -d `pwd`/debian/tmp/usr/include
-	install -d `pwd`/debian/tmp/usr/lib
-	$(MAKE) -C src install HYPRE_INSTALL_DIR=`pwd`/debian/tmp/usr \
-	  prefix=`pwd`/debian/tmp/usr exec_prefix=`pwd`/debian/tmp/usr
-	touch $@
-
-binary-indep: install
-	dh_testdir -i
-	dh_testroot -i
-	dh_installdirs -i
-# -a has to come before -i here because -i has ambiguous names
-	dh_movefiles -a
-	dh_movefiles -i
-	dh_installdocs -i
-	dh_installchangelogs -i
-	dh_compress -i
-	dh_fixperms -i
-	dh_installdeb -i
-	dh_gencontrol -i
-	dh_md5sums -i
-	dh_builddeb -i
-
-binary-arch: install
-	dh_testdir -a
-	dh_testroot -a
-	dh_installdirs -a
-	dh_movefiles -a
-	dh_installdocs -a
-	dh_installchangelogs -a
-	dh_strip -a
-	dh_makeshlibs -a
-	dh_compress -a
-	dh_fixperms -a
-	dh_installdeb -a
-	dh_shlibdeps -a
-	dh_gencontrol -a
-	dh_md5sums -a
-	dh_builddeb -a
-
-binary: binary-arch binary-indep
-
-.PHONY: patch unpatch binary binary-arch binary-indep install build clean
+export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic -O3 -march=native
+export DEB_CXXFLAGS_MAINT_APPEND  = -Wall -pedantic -O3 -march=native
+export DEB_LDFLAGS_MAINT_APPEND = -Wl,--no-as-needed
+export DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+export DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
+
+%:
+	dh $@ --sourcedirectory=src --with autoreconf
+
+# to avoid lintian warnings
+CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS)
+CFLAGS:=$(shell dpkg-buildflags --get CFLAGS)
+CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS)
+LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS)
+
+# extra flags set to be similar to what petsc requires
+extra_flags += \
+  --without-mli \
+  --without-fei \
+  --without-superlu \
+  --with-blas \
+  --with-lapack \
+  --prefix=$(CURDIR)/debian/tmp/usr
+
+# To get petsc support when indexTypes.integerSize == 64
+#ifeq ($(DEB_HOST_ARCH),amd64)
+#   extra_flags +=  --enable-bigint
+#endif
+
+# from pets:
+# # explicitly tell hypre BLAS/LAPACK mangling since it may not match Fortran mangling
+#    if self.blasLapack.mangling == 'underscore':
+#      mang = 'one-underscore'
+#    elif self.blasLapack.mangling == 'caps':
+#      mang = 'caps-no-underscores'
+#    else:
+#      mang = 'no-underscores'
+#    args.append('--with-fmangle-blas='+mang)
+#    args.append('--with-fmangle-lapack='+mang)
+
+
+# Other options from src/configure
+  # --enable-debug          Set compiler flags for debugging.
+  # --enable-shared         Build shared libraries (default is NO).
+  # --enable-bigint         Use long long int for HYPRE_Int (default is NO).
+  # --enable-complex        Use complex values (default is NO).
+  # --enable-maxdim=MAXDIM  Change max dimension size to MAXDIM (default is 3).
+  #                         Currently must be at least 3.
+  # --enable-persistent     Uses persistent communication (default is NO).
+  # --enable-hopscotch      Uses hopscotch hashing if configured with OpenMP and
+  #                         atomic capability available(default is NO).
+  # --enable-global-partition
+  #                         Use global partitioning (default is NO).
+  # --enable-fortran        Require a working Fortran compiler (default is YES).
+
+export LD_LIBRARY_PATH :=  $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH):$(LD_LIBRARY_PATH);
+export OMPI_MCA_orte_rsh_agent=/bin/false
+
+override_dh_auto_clean:
+	echo "Running clean"
+	rm -rf $(CURDIR)/debian/tmp
+	rm -f src/configure.in
+	rm -f src/config.log
+	rm -f src/config/config.guess
+	rm -f src/config/config.sub
+	-dh_auto_clean
+
+override_dh_autoreconf:
+	cp /usr/share/misc/config.* src/config/
+	cd src && ./config/bootstrap
+
+override_dh_auto_configure:
+	dh_auto_configure -- $(extra_flags) --enable-shared
+	#dh_auto_configure -p libhypre-complex -- $(extra_flags) --enable-shared --enable-complex
+
+override_dh_auto_build:
+# install shared libs
+	echo "Building shared libs"
+	dh_auto_build
+
+# force to install shared libraries to perform tests
+	echo "Installing shared libs"
+	$(MAKE) -C src install
+
+
+override_dh_auto_install:
+	echo "Installing shared libs (dh_auto_install)"
+	dh_auto_install
+
+override_dh_auto_test:
+	echo "Building test"
+	$(MAKE) -C src test	
+
+# run examples (add -W, -no-as-needed on Unbuntu for ex5f)
+#	echo "Building examples"
+#	$(MAKE) -C src/examples \
+#          HYPRE_LIB_INSTALL=$(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH) \
+#          HYPRE_INC_INSTALL=$(CURDIR)/debian/tmp/usr/include/hypre
+#	ALLPROGS="ex1 ex2 ex3 ex4 ex5 ex5f \
+#          ex6 ex7 ex8 ex9 ex11 ex12 ex12f" ; \
+#	for ex in $$ALLPROGS; do \
+#	   echo "Running $$ex"; \
+#	   ls -l src/examples/$$ex; \
+#	   mpirun -np 2 src/examples/$$ex ; \
+#	done
+#	ALLPROGS="ex13 ex14" ; \
+#	for ex in $$ALLPROGS; do \
+#	   echo "Running $$ex"; \
+#	   mpirun -np 3 src/examples//$$ex ; \
+#	done
+#	ALLPROGS="ex15" ; \
+#	for ex in $$ALLPROGS; do \
+#	   echo "Running $$ex"; \
+#	   mpirun -np 8 src/examples//$$ex ; \
+#	done
+#	ALLPROGS="ex16" ; \
+#	for ex in $$ALLPROGS; do \
+#	   echo "Running $$ex"; \
+#	   mpirun -np 4 src/examples//$$ex ; \
+#	done
+#
+
+# run testsuite
+
+#	cd src/test; \
+#	for file in `find . -name \*.sh | egrep "^./TEST" | egrep -v "fei|babel|timing"`; do \
+#	   echo "./runtest.sh $$file" \
+#	   ./runtest.sh $$file; \
+#	done; \
+#	cd ../..

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



More information about the debian-science-commits mailing list