#!/usr/bin/bash
###SHELLPACK preamble mumpsbuild 5.3.3
WEB_LOCATION="http://mumps.enseeiht.fr"
MIRROR_LOCATION="$WEBROOT/mumpsbuild/"

###SHELLPACK parseargBegin
###SHELLPACK parseargEnd

# Install openmpi requirements
###SHELLPACK mpi_setup_deps MUMPS_OPENMPI_VERSION
###SHELLPACK mpi_setup_env MUMPS_OPENMPI_VERSION MUMPS_MPI_PATH MUMPS_MPI_LIBPATH
###SHELLPACK mpi_setup_shmem

###SHELLPACK sources_fetch MUMPS_${VERSION}.tar.gz mumpsbuild-${VERSION}
###SHELLPACK build_start mumpsbuild-${VERSION}
cp Make.inc/Makefile.inc.generic Makefile.inc
###SHELLPACK self_extract MUMPS_5.3.3-Makefile.inc.generic.diff
cat $SHELLPACK_TEMP/MUMPS_5.3.3-Makefile.inc.generic.diff | patch -p1 || die "Failed to patch Makefile.inc"
build_callback
###SHELLPACK make

mkdir $SHELLPACK_SOURCES/mumpsbuild-${VERSION}-installed
mkdir $SHELLPACK_SOURCES/mumpsbuild-${VERSION}-installed/$MMTESTS_LIBDIR/
mkdir $SHELLPACK_SOURCES/mumpsbuild-${VERSION}-installed/include

cp lib/*.a $SHELLPACK_SOURCES/mumpsbuild-${VERSION}-installed/$MMTESTS_LIBDIR/
cp include/*.h $SHELLPACK_SOURCES/mumpsbuild-${VERSION}-installed/include

echo mumps installed successfully
exit $SHELLPACK_SUCCESS

==== BEGIN MUMPS_5.3.3-Makefile.inc.generic.diff ====
--- MUMPS_5.3.3/Make.inc/Makefile.inc.generic	2020-06-15 11:57:25.000000000 +0200
+++ MUMPS_5.3.3/Makefile.inc	2020-07-21 11:02:23.314380000 +0200
@@ -57,8 +57,8 @@
 IPORD    = -I$(topdir)/PORD/include/
 LPORD    = -L$(LPORDDIR) -lpord
 
-#LMETISDIR = /opt/metis-5.1.0/build/Linux-x86_64/libmetis
-#IMETIS    = /opt/metis-5.1.0/include
+LMETISDIR = $(SHELLPACK_SOURCES)/metisbuild-$(METIS_VERSION)-installed
+IMETIS    = -I$(LMETISDIR)/include
 
 # You have to choose one among the following two lines depending on
 # the type of analysis you want to perform. If you want to perform only
@@ -66,7 +66,7 @@
 # variable below); for both parallel and sequential analysis choose the second 
 # line (remember to add -Dparmetis in the ORDERINGSF variable below)
 
-#LMETIS    = -L$(LMETISDIR) -lmetis
+LMETIS    = -L$(LMETISDIR)/$(MMTESTS_LIBDIR) -lmetis
 #LMETIS    = -L$(LMETISDIR) -lparmetis -lmetis
 
 # The following variables will be used in the compilation process.
@@ -74,7 +74,7 @@
 # If you want to use Metis 4.X or an older version, you should use -Dmetis4 instead of -Dmetis
 # or in addition with -Dparmetis (if you are using parmetis 3.X or older).
 #ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis
-ORDERINGSF  = -Dpord
+ORDERINGSF  = -Dmetis -Dpord
 ORDERINGSC  = $(ORDERINGSF)
 
 LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH)
@@ -97,11 +97,11 @@
 # RM : remove files
 RM      = /bin/rm -f
 # CC : C compiler
-CC      = cc
+CC      = mpicc
 # FC : Fortran 90 compiler
-FC      = f90
+FC      = mpifort
 # FL : Fortran linker
-FL      = f90
+FL      = mpifort
 # AR : Archive object in a library
 #      keep a space at the end if options have to be separated from lib name
 AR      = ar vr 
@@ -112,10 +112,10 @@
 
 # DEFINE HERE YOUR LAPACK LIBRARY
 
-LAPACK = -llapack
+LAPACK = -L$(SHELLPACK_SOURCES)/blasbuild-$(BLAS_VERSION)-installed/$(MMTESTS_LIBDIR) -lopenblas
 
 # SCALAP should define the SCALAPACK and  BLACS libraries.
-SCALAP  = -lscalapack -lblacs
+SCALAP  = -L$(SHELLPACK_SOURCES)/scalapackbuild-$(SCALAPACK_VERSION)-installed/$(MMTESTS_LIBDIR) -lscalapack
 
 # INCLUDE DIRECTORY FOR MPI
 INCPAR  = -I/usr/include
@@ -131,7 +131,7 @@
 
 # DEFINE HERE YOUR BLAS LIBRARY
 
-LIBBLAS = -lblas
+LIBBLAS = -L$(SHELLPACK_SOURCES)/blasbuild-$(BLAS_VERSION)-installed/$(MMTESTS_LIBDIR) -lopenblas
 
 # DEFINE HERE YOUR PTHREAD LIBRARY
 LIBOTHERS = -lpthread
@@ -150,9 +150,9 @@
 CDEFS = -DAdd_
 
 #COMPILER OPTIONS
-OPTF    = -O
-OPTC    = -O -I.
-OPTL    = -O
+OPTF    = -O -DBLR_MT -fopenmp
+OPTC    = -O -I. -fopenmp
+OPTL    = -O -fopenmp
 
 # CHOOSE BETWEEN USING THE SEQUENTIAL OR THE PARALLEL VERSION.
 
==== END MUMPS_5.3.3-Makefile.inc.generic.diff ====
