diff options
author | Winston Wu | 2017-08-30 19:43:58 +0000 |
---|---|---|
committer | Winston Wu | 2017-08-30 19:43:58 +0000 |
commit | f64483fd40cf3c3424c9244b95a017a0759cc8e7 (patch) | |
tree | 25ad5595127cf27346352c0170c307cec4b84815 | |
download | aur-f64483fd40cf3c3424c9244b95a017a0759cc8e7.tar.gz |
Initial
-rw-r--r-- | .SRCINFO | 28 | ||||
-rw-r--r-- | Makefile.inc | 141 | ||||
-rwxr-xr-x | PKGBUILD | 69 |
3 files changed, 238 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..90a1100ab7da --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,28 @@ +# Generated by mksrcinfo v8 +# Wed Aug 30 19:43:12 UTC 2017 +pkgbase = mumps-par + pkgdesc = Sparse solver library using Gaussian elimination, with parmetis implementation + pkgver = 5.1.1 + pkgrel = 1 + url = http://mumps.enseeiht.fr + arch = i686 + arch = x86_64 + license = custom + depends = lapack + depends = openmpi + depends = scotch>=6.0.3-3 + depends = scalapack + depends = parmetis + depends = metis + depends = zlib + depends = bzip2 + provides = mumps + conflicts = mumps + replaces = mumps + source = http://mumps.enseeiht.fr/MUMPS_5.1.1.tar.gz + source = Makefile.inc + sha256sums = a2a1f89c470f2b66e9982953cbd047d429a002fab9975400cef7190d01084a06 + sha256sums = b7e998660aa349d098d382e84d8d82a811f42c89e9409c2f381565ce7a90d961 + +pkgname = mumps-par + diff --git a/Makefile.inc b/Makefile.inc new file mode 100644 index 000000000000..08145f6399d7 --- /dev/null +++ b/Makefile.inc @@ -0,0 +1,141 @@ +######################################################################## +#Begin orderings +# +# NOTE that PORD is distributed within MUMPS by default. If you would like to +# use other orderings, you need to obtain the corresponding package and modify +# the variables below accordingly. +# For example, to have Metis available within MUMPS: +# 1/ download Metis and compile it +# 2/ uncomment (suppress # in first column) lines +# starting with LMETISDIR, LMETIS +# 3/ add -Dmetis in line ORDERINGSF +# ORDERINGSF = -Dpord -Dmetis +# 4/ Compile and install MUMPS +# make clean; make (to clean up previous installation) +# +# Metis/ParMetis and SCOTCH/PT-SCOTCH (ver 6.0 and later) orderings are now available for MUMPS. +# + +SCOTCHDIR = /usr +ISCOTCH = -I$(SCOTCHDIR)/include/scotch +# 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 +# sequential analysis choose the first (remember to add -Dscotch in the ORDERINGSF +# variable below); for both parallel and sequential analysis choose the second +# line (remember to add -Dptscotch in the ORDERINGSF variable below) + +#LSCOTCH = -L$(SCOTCHDIR)/lib -lesmumps -lbz2 -lz -lscotch -lscotcherr +LSCOTCH = -L$(SCOTCHDIR)/lib -lptesmumps -lptscotch -lptscotcherr -lscotch + + +LPORDDIR = $(topdir)/PORD/lib/ +IPORD = -I$(topdir)/PORD/include/ +LPORD = -L$(LPORDDIR) -lpord + +LMETISDIR = /usr/lib +IMETIS = -I/usr/include/metis + +# 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 +# sequential analysis choose the first (remember to add -Dmetis in the ORDERINGSF +# 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) -lparmetis -lmetis + +# The following variables will be used in the compilation process. +# Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively. +# 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 = -Dscotch -Dmetis -Dpord +ORDERINGSC = $(ORDERINGSF) + +LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH) +IORDERINGSF = $(ISCOTCH) +IORDERINGSC = $(IMETIS) $(IPORD) $(ISCOTCH) + +#End orderings +######################################################################## + +######################################################################## +# DEFINE HERE SOME COMMON COMMANDS, THE COMPILER NAMES, ETC... + +# PLAT : use it to add a default suffix to the generated libraries +PLAT = +# Library extension, + C and Fortran "-o" option +# may be different under Windows +LIBEXT = .a +OUTC = -o +OUTF = -o +# RM : remove files +RM = /bin/rm -f +# CC : C compiler +CC = mpicc +# FC : Fortran 90 compiler +FC = mpif90 +# FL : Fortran linker +FL = mpif90 +# AR : Archive object in a library +# keep a space at the end if options have to be separated from lib name +AR = ar vr +# RANLIB : generate index of an archive file +# (optionnal use "RANLIB = echo" in case of problem) +RANLIB = ranlib +#RANLIB = echo + +# SCALAP should define the SCALAPACK and BLACS libraries. +SCALAP = -lscalapack -llapack + +# INCLUDE DIRECTORY FOR MPI +INCPAR = -I/usr/include/openmpi + +# LIBRARIES USED BY THE PARALLEL VERSION OF MUMPS: $(SCALAP) and MPI +LIBPAR = $(SCALAP) -L/usr/lib/openmpi -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi + +# The parallel version is not concerned by the next two lines. +# They are related to the sequential library provided by MUMPS, +# to use instead of ScaLAPACK and MPI. +INCSEQ = -I$(topdir)/libseq +LIBSEQ = -L$(topdir)/libseq -lmpiseq + +# DEFINE HERE YOUR BLAS LIBRARY + +LIBBLAS = -lblas + +# DEFINE YOUR PTHREAD LIBRARY +LIBOTHERS = -lpthread + +# FORTRAN/C COMPATIBILITY: +# Use: +# -DAdd_ if your Fortran compiler adds an underscore at the end +# of symbols, +# -DAdd__ if your Fortran compiler adds 2 underscores, +# +# -DUPPER if your Fortran compiler uses uppercase symbols +# +# leave empty if your Fortran compiler does not change the symbols. +# + +CDEFS = -DAdd_ + +#COMPILER OPTIONS + +OPTF = -DALLOW_NON_INIT ${CFLAGS} -fPIC +OPTL = ${CFLAGS} -fPIC +OPTC = ${CFLAGS} -fPIC + +# CHOOSE BETWEEN USING THE SEQUENTIAL OR THE PARALLEL VERSION. + +#Sequential: +#INCS = $(INCSEQ) +#LIBS = $(LIBSEQ) +LIBSEQNEEDED = libseqneeded + +#Parallel: +INCS = $(INCPAR) +LIBS = $(LIBPAR) +#LIBSEQNEEDED = + diff --git a/PKGBUILD b/PKGBUILD new file mode 100755 index 000000000000..6d983f9f7dd5 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,69 @@ +# Maintainer: Michele Mocciola <mickele> +# Contributor: Guillaume Dollé < dolle dot guillaume at gmail dot com > +# Contributor: Lucas H. Gabrielli +pkgname=mumps-par +pkgver=5.1.1 +pkgrel=1 +pkgdesc="Sparse solver library using Gaussian elimination, with parmetis implementation" +url="http://mumps.enseeiht.fr" +license=("custom") +depends=('lapack' 'openmpi' 'scotch>=6.0.3-3' 'scalapack' 'parmetis' 'metis' 'zlib' 'bzip2') +makedepends=() +provides=('mumps') +conflicts=('mumps') +replaces=('mumps') +backup=() +arch=('i686' 'x86_64') +source=(http://mumps.enseeiht.fr/MUMPS_${pkgver}.tar.gz + Makefile.inc) +sha256sums=('a2a1f89c470f2b66e9982953cbd047d429a002fab9975400cef7190d01084a06' + 'b7e998660aa349d098d382e84d8d82a811f42c89e9409c2f381565ce7a90d961') + +build() { + cd "${srcdir}/MUMPS_${pkgver}" + cp "${srcdir}/Makefile.inc" . + + make -j1 all || return 1 +} + +package(){ + # Install all headers + cd "${srcdir}/MUMPS_${pkgver}/include" + install -m 755 -d "${pkgdir}/usr/include" + install -D -m644 *.h "${pkgdir}/usr/include" + + # Install all libraries + cd "${srcdir}/MUMPS_${pkgver}/lib" || return 1 + install -m 755 -d "${pkgdir}/usr/lib" || return 1 + install -D -m644 lib*.a ${pkgdir}/usr/lib || return 1 + for _FILE in `ls *.a | sed "s|\.a||"`; do + ld -Bshareable -o ${_FILE}.so.${pkgver} -x -soname ${_FILE}.so --whole-archive ${_FILE}.a + install -m 644 -D ${_FILE}.a ${pkgdir}/usr/lib/${_FILE}.a + install -m 755 ${_FILE}.so.${pkgver} ${pkgdir}/usr/lib + ln -sf ${_FILE}.so.${pkgver} ${pkgdir}/usr/lib/${_FILE}.so.${pkgver:0:1} + done + + # Install libraries mpiseq + cd "${srcdir}/MUMPS_${pkgver}/libseq" + install -m 755 -d "${pkgdir}/usr/include/mpiseq" + install -D -m644 *.h "${pkgdir}/usr/include/mpiseq" + cd "${srcdir}/MUMPS_${pkgver}/libseq" + install -D -m644 lib*.a ${pkgdir}/usr/lib + for _FILE in `ls *.a | sed "s|\.a||"`; do + ld -Bshareable -o ${_FILE}.so.${pkgver} -x -soname ${_FILE}.so --whole-archive ${_FILE}.a + install -m 644 -D ${_FILE}.a ${pkgdir}/usr/lib/${_FILE}.a + install -m 755 ${_FILE}.so.${pkgver} ${pkgdir}/usr/lib + ln -sf ${_FILE}.so.${pkgver} ${pkgdir}/usr/lib/${_FILE}.so.${pkgver:0:1} + done + + # Install examples + install -m 755 -d "${pkgdir}/usr/share/doc/${pkgname}/examples" + cd "${srcdir}/MUMPS_${pkgver}/examples" + install -m 644 * "${pkgdir}/usr/share/doc/${pkgname}/examples" + for _FILE in ssimpletest dsimpletest csimpletest zsimpletest c_example; do + chmod 0755 "${pkgdir}/usr/share/doc/${pkgname}/examples/${_FILE}" + done + + # Install license + install -D -m644 "${srcdir}/MUMPS_${pkgver}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} |