aboutsummaryrefslogtreecommitdiff
path: root/math/mumps
diff options
context:
space:
mode:
authorThierry Thomas <thierry@FreeBSD.org>2017-06-14 17:04:45 +0000
committerThierry Thomas <thierry@FreeBSD.org>2017-06-14 17:04:45 +0000
commitb7d639773470a01a6efd47cf65a494f0fb8cc042 (patch)
tree3ece528b9b3cd497d4bbd66fe36c13f717e298f5 /math/mumps
parent60fae59f77bb8685dcd8a72ad981f3c4d57b07ed (diff)
downloadports-b7d639773470a01a6efd47cf65a494f0fb8cc042.tar.gz
ports-b7d639773470a01a6efd47cf65a494f0fb8cc042.zip
Build and install the shared libraries.
They are needed by pfg@ to port trilinos.
Notes
Notes: svn path=/head/; revision=443591
Diffstat (limited to 'math/mumps')
-rw-r--r--math/mumps/Makefile19
-rw-r--r--math/mumps/files/patch-Make.inc_Makefile.inc.generic (renamed from math/mumps/files/patch-Make.inc+Makefile.inc.generic)16
-rw-r--r--math/mumps/files/patch-Make.inc_Makefile.inc.generic.SEQ (renamed from math/mumps/files/patch-Make.inc+Makefile.inc.generic.SEQ)14
-rw-r--r--math/mumps/files/patch-Makefile20
-rw-r--r--math/mumps/files/patch-PORD_lib_Makefile18
-rw-r--r--math/mumps/files/patch-libseq_Makefile21
-rw-r--r--math/mumps/files/patch-src_Makefile27
-rw-r--r--math/mumps/pkg-plist16
8 files changed, 118 insertions, 33 deletions
diff --git a/math/mumps/Makefile b/math/mumps/Makefile
index 616ebc86f9aa..1c46ead5769e 100644
--- a/math/mumps/Makefile
+++ b/math/mumps/Makefile
@@ -2,8 +2,8 @@
# $FreeBSD$
PORTNAME= mumps
-PORTVERSION= 4.10.0
-PORTREVISION= 6
+PORTVERSION= 4.10.0 # Please do not upgrade to 5+: if needed repocopy to math/mumps5
+PORTREVISION= 7
CATEGORIES= math
MASTER_SITES= http://mumps.enseeiht.fr/ \
http://graal.ens-lyon.fr/MUMPS/ \
@@ -38,6 +38,7 @@ MAKE_JOBS_UNSAFE=yes
FORTRANLIBS= -lgfortran
GCCLIBDIR= ${LDFLAGS}
+USE_LDCONFIG= yes
.if defined(WITH_OPTIMIZED_FLAGS)
FFLAGS+= -O3 -ffast-math
@@ -95,18 +96,22 @@ pre-configure:
.else
${INSTALL_DATA} ${WRKSRC}/Make.inc/Makefile.inc.generic.SEQ \
${WRKSRC}/Makefile.inc
+ ${REINPLACE_CMD} -e 's+LIBPAR+LIBSEQ+' ${WRKSRC}/src/Makefile
.endif
pre-build:
${DIRNAME} `${FC} -print-libgcc-file-name` > ${WRKSRC}/LIBDIR
+.for MF in Makefile.inc PORD/lib/Makefile libseq/Makefile src/Makefile
${REINPLACE_CMD} -e 's+@CC@+${CC}+g ; s+@FC@+${FC}+g ; \
- s+@CFLAGS@+${CFLAGS}+g; \
- s+@FCFLAGS@+${FCFLAGS}+g; \
+ s+@CFLAGS@+${CFLAGS} -fPIC+g; \
+ s+@FCFLAGS@+${FCFLAGS} -fPIC+g; \
+ s+@SOVER@+${PORTVERSION}+g; \
s+@GCCLIBDIR@+${GCCLIBDIR}+g; \
s+@FORTRANLIBS@+${FORTRANLIBS}+g; \
s+@BLAS_LIBS@+${BLAS_LIBS}+ ; \
s+@LOCALBASE@+${LOCALBASE}+g;' \
- ${WRKSRC}/Makefile.inc
+ ${WRKSRC}/${MF}
+.endfor
.ifdef WITH_MPI
${REINPLACE_CMD} -e 's+@LAPACK_LIBS@+${LAPACK_LIBS}+g;' ${WRKSRC}/Makefile.inc
.endif
@@ -117,8 +122,10 @@ pre-build:
do-install:
${INSTALL_DATA} ${WRKSRC}/include/*.h ${STAGEDIR}${PREFIX}/include
${INSTALL_DATA} ${WRKSRC}/lib/lib*.a ${STAGEDIR}${PREFIX}/lib
+ ${INSTALL_LIB} ${WRKSRC}/lib/lib*.so ${STAGEDIR}${PREFIX}/lib
.ifndef WITH_MPI
${INSTALL_DATA} ${WRKSRC}/libseq/libmpiseq.a ${STAGEDIR}${PREFIX}/lib
+ ${INSTALL_LIB} ${WRKSRC}/libseq/libmpiseq*.so ${STAGEDIR}${PREFIX}/lib
.endif
${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/doc/userguide_${PORTVERSION}.pdf ${STAGEDIR}${DOCSDIR}
@@ -132,7 +139,7 @@ do-install:
${INSTALL_PROGRAM} ${WRKSRC}/examples/${ex} ${STAGEDIR}${EXAMPLESDIR}
. endfor
-regression-test:
+regression-test: install
.if defined (WITH_MPI) && defined(MAINTAINER_MODE)
. if !exists(${HOME}/.mpd.conf)
@${ECHO_CMD} "MPD_SECRETWORD=change_on_install" > ${HOME}/.mpd.conf
diff --git a/math/mumps/files/patch-Make.inc+Makefile.inc.generic b/math/mumps/files/patch-Make.inc_Makefile.inc.generic
index c46cc3a1b0a7..c6202a95efed 100644
--- a/math/mumps/files/patch-Make.inc+Makefile.inc.generic
+++ b/math/mumps/files/patch-Make.inc_Makefile.inc.generic
@@ -1,5 +1,5 @@
---- Make.inc/Makefile.inc.generic.orig 2011-05-10 14:56:32.000000000 +0200
-+++ Make.inc/Makefile.inc.generic 2013-08-11 17:41:51.000000000 +0200
+--- Make.inc/Makefile.inc.generic.orig 2011-05-10 12:56:32 UTC
++++ Make.inc/Makefile.inc.generic
@@ -39,7 +39,7 @@
# Metis/ParMetis and SCOTCH/PT-SCOTCH (ver 5.1 and later) orderings are now available for MUMPS.
#
@@ -9,7 +9,7 @@
#ISCOTCH = -I$(SCOTCHDIR)/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
-@@ -55,7 +55,7 @@
+@@ -55,7 +55,7 @@ LPORDDIR = $(topdir)/PORD/lib/
IPORD = -I$(topdir)/PORD/include/
LPORD = -L$(LPORDDIR) -lpord
@@ -18,7 +18,7 @@
#IMETIS = # Should be provided if you use parmetis
# You have to choose one among the following two lines depending on
-@@ -70,7 +70,7 @@
+@@ -70,7 +70,7 @@ LPORD = -L$(LPORDDIR) -lpord
# The following variables will be used in the compilation process.
# Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively.
#ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis
@@ -27,7 +27,7 @@
ORDERINGSC = $(ORDERINGSF)
LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH)
-@@ -91,11 +91,11 @@
+@@ -91,11 +91,11 @@ OUTF = -o
# RM : remove files
RM = /bin/rm -f
# CC : C compiler
@@ -42,7 +42,7 @@
# AR : Archive object in a library
# keep a space at the end if options have to be separated from lib name
AR = ar vr
-@@ -105,13 +105,13 @@
+@@ -105,13 +105,13 @@ RANLIB = ranlib
#RANLIB = echo
# SCALAP should define the SCALAPACK and BLACS libraries.
@@ -59,7 +59,7 @@
# The parallel version is not concerned by the next two lines.
# They are related to the sequential library provided by MUMPS,
-@@ -121,10 +121,10 @@
+@@ -121,10 +121,10 @@ LIBSEQ = -Llibseq -lmpiseq
# DEFINE HERE YOUR BLAS LIBRARY
@@ -72,7 +72,7 @@
# FORTRAN/C COMPATIBILITY:
# Use:
-@@ -137,11 +137,11 @@
+@@ -137,11 +137,11 @@ LIBOTHERS = -lpthread
# leave empty if your Fortran compiler does not change the symbols.
#
diff --git a/math/mumps/files/patch-Make.inc+Makefile.inc.generic.SEQ b/math/mumps/files/patch-Make.inc_Makefile.inc.generic.SEQ
index 0d2b5c84ff0c..dfbe12362ca7 100644
--- a/math/mumps/files/patch-Make.inc+Makefile.inc.generic.SEQ
+++ b/math/mumps/files/patch-Make.inc_Makefile.inc.generic.SEQ
@@ -1,5 +1,5 @@
---- Make.inc/Makefile.inc.generic.SEQ.orig 2011-05-10 14:56:32.000000000 +0200
-+++ Make.inc/Makefile.inc.generic.SEQ 2013-08-11 18:13:02.000000000 +0200
+--- Make.inc/Makefile.inc.generic.SEQ.orig 2011-05-10 12:56:32 UTC
++++ Make.inc/Makefile.inc.generic.SEQ
@@ -41,7 +41,7 @@
# Metis/ParMetis and SCOTCH/PT-SCOTCH (ver 5.1 and later) orderings are now available for MUMPS.
#
@@ -9,7 +9,7 @@
#ISCOTCH = -I$(SCOTCHDIR)/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
-@@ -57,7 +57,7 @@
+@@ -57,7 +57,7 @@ LPORDDIR = $(topdir)/PORD/lib/
IPORD = -I$(topdir)/PORD/include/
LPORD = -L$(LPORDDIR) -lpord
@@ -18,7 +18,7 @@
#IMETIS = # Should be provided if you use parmetis
# You have to choose one among the following two lines depending on
-@@ -72,7 +72,7 @@
+@@ -72,7 +72,7 @@ LPORD = -L$(LPORDDIR) -lpord
# The following variables will be used in the compilation process.
# Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively.
#ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis
@@ -27,7 +27,7 @@
ORDERINGSC = $(ORDERINGSF)
LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH)
-@@ -95,11 +95,11 @@
+@@ -95,11 +95,11 @@ OUTF = -o
# RM : remove files
RM = /bin/rm -f
# CC : C compiler
@@ -42,7 +42,7 @@
# 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,14 +112,14 @@
+@@ -112,14 +112,14 @@ RANLIB = ranlib
# the sequential library provided by MUMPS, to use instead
# of ScaLAPACK and MPI.
INCSEQ = -I$(topdir)/libseq
@@ -60,7 +60,7 @@
# FORTRAN/C COMPATIBILITY:
# Use:
-@@ -132,12 +132,12 @@
+@@ -132,12 +132,12 @@ LIBOTHERS = -lpthread
# leave empty if your Fortran compiler does not change the symbols.
#
diff --git a/math/mumps/files/patch-Makefile b/math/mumps/files/patch-Makefile
new file mode 100644
index 000000000000..ade5e437da94
--- /dev/null
+++ b/math/mumps/files/patch-Makefile
@@ -0,0 +1,20 @@
+--- Makefile.orig 2011-05-10 12:56:32 UTC
++++ Makefile
+@@ -51,7 +51,7 @@ zexamples: z
+ (cd examples ; $(MAKE) z)
+
+
+-requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord$(PLAT)$(LIBEXT)
++requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord$(PLAT)$(LIBEXT) $(libdir)/libpord$(PLAT).so
+
+ # dummy MPI library (sequential version)
+
+@@ -65,7 +65,7 @@ $(libdir)/libpord$(PLAT)$(LIBEXT):
+ $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" RANLIB="$(RANLIB)" OUTC=$(OUTC) LIBEXT=$(LIBEXT); \
+ fi;
+ if [ "$(LPORDDIR)" != "" ] ; then \
+- cp $(LPORDDIR)/libpord$(LIBEXT) $@; \
++ cp $(LPORDDIR)/libpord* $(libdir)/; \
+ fi;
+
+ clean:
diff --git a/math/mumps/files/patch-PORD_lib_Makefile b/math/mumps/files/patch-PORD_lib_Makefile
index 81650eefd782..b99561151625 100644
--- a/math/mumps/files/patch-PORD_lib_Makefile
+++ b/math/mumps/files/patch-PORD_lib_Makefile
@@ -1,11 +1,21 @@
---- PORD/lib/Makefile.orig 2011-05-10 14:56:32.000000000 +0200
-+++ PORD/lib/Makefile 2013-08-11 18:31:47.000000000 +0200
-@@ -22,7 +22,7 @@
+--- PORD/lib/Makefile.orig 2011-05-10 12:56:32 UTC
++++ PORD/lib/Makefile
+@@ -21,10 +21,16 @@ OBJS = graph.o gbipart.o gbisect.o ddcre
+ .c.o:
$(CC) $(COPTIONS) -c $*.c $(OUTC)$*.o
- libpord$(LIBEXT):$(OBJS)
+-libpord$(LIBEXT):$(OBJS)
- $(AR)$@ $(OBJS)
++all: libpord$(LIBEXT) libpord.so
++
++libpord$(LIBEXT): $(OBJS)
+ $(AR) $@ $(OBJS)
$(RANLIB) $@
++libpord.so: $(OBJS)
++ $(CC) -shared $(OBJS) -Wl,-soname,libpord$(PLAT)-@SOVER@.so -o libpord$(PLAT)-@SOVER@.so -Wl,-z,defs
++ ln -s libpord$(PLAT)-@SOVER@.so $@
++
clean:
+ rm -f *.o
+
diff --git a/math/mumps/files/patch-libseq_Makefile b/math/mumps/files/patch-libseq_Makefile
index 49139f081522..7397dd3f27c7 100644
--- a/math/mumps/files/patch-libseq_Makefile
+++ b/math/mumps/files/patch-libseq_Makefile
@@ -1,11 +1,24 @@
---- libseq/Makefile.orig 2011-05-10 14:56:39.000000000 +0200
-+++ libseq/Makefile 2013-08-11 18:05:34.000000000 +0200
-@@ -10,7 +10,7 @@
- libmpiseq: libmpiseq$(PLAT)$(LIBEXT)
+--- libseq/Makefile.orig 2011-05-10 12:56:39 UTC
++++ libseq/Makefile
+@@ -7,13 +7,19 @@ all: libmpiseq
+
+ include ../Makefile.inc
+
+-libmpiseq: libmpiseq$(PLAT)$(LIBEXT)
++libmpiseq: libmpiseq$(PLAT)$(LIBEXT) libmpiseq$(PLAT).so
libmpiseq$(PLAT)$(LIBEXT): mpi.o mpic.o elapse.o
- $(AR)$@ mpi.o mpic.o elapse.o
+ $(AR) $@ mpi.o mpic.o elapse.o
$(RANLIB) $@
++
++libmpiseq$(PLAT).so: mpi.o mpic.o elapse.o
++ $(FC) -shared ${.ALLSRC} -Wl,-soname,libmpiseq$(PLAT)-@SOVER@.so -o libmpiseq$(PLAT)-@SOVER@.so -Wl,-z,defs
++ ln -s libmpiseq$(PLAT)-@SOVER@.so $@
++
.f.o:
$(FC) $(OPTF) -c $*.f $(OUTF)$*.o
++
+ .c.o:
+ $(CC) $(OPTC) $(CDEFS) -I. -c $*.c $(OUTC)$*.o
+
diff --git a/math/mumps/files/patch-src_Makefile b/math/mumps/files/patch-src_Makefile
index a8fc29b955c7..84d868e2b788 100644
--- a/math/mumps/files/patch-src_Makefile
+++ b/math/mumps/files/patch-src_Makefile
@@ -1,6 +1,17 @@
---- src/Makefile.orig 2011-05-10 14:56:32.000000000 +0200
-+++ src/Makefile 2013-08-11 18:08:25.000000000 +0200
-@@ -53,11 +53,11 @@
+--- src/Makefile.orig 2011-05-10 12:56:32 UTC
++++ src/Makefile
+@@ -20,7 +20,9 @@ z:
+ include $(topdir)/Makefile.inc
+
+ mumps_lib: $(libdir)/libmumps_common$(PLAT)$(LIBEXT) \
+- $(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT)
++ $(libdir)/libmumps_common$(PLAT).so \
++ $(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT) \
++ $(libdir)/lib$(ARITH)mumps$(PLAT).so
+
+ OBJS_COMMON = \
+ mumps_part9.o\
+@@ -53,13 +55,21 @@ OBJS = $(ARITH)mumps_part1.o\
$(libdir)/libmumps_common$(PLAT)$(LIBEXT): $(OBJS_COMMON)
@@ -8,9 +19,19 @@
+ $(AR) $@ $?
$(RANLIB) $@
++$(libdir)/libmumps_common$(PLAT).so: $(OBJS_COMMON)
++ $(FC) -shared ${.ALLSRC} -Wl,-soname,libmumps_common$(PLAT)-@SOVER@.so -L$(libdir) $(LORDERINGS) $(LIBPAR) $(LIBOTHERS) -o $(libdir)/libmumps_common$(PLAT)-@SOVER@.so -Wl,-z,defs
++ ln -s libmumps_common$(PLAT)-@SOVER@.so $@
++
$(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT): $(OBJS)
- $(AR)$@ $?
+ $(AR) $@ $?
$(RANLIB) $@
++$(libdir)/lib$(ARITH)mumps$(PLAT).so: $(OBJS)
++ $(FC) -shared ${.ALLSRC} -Wl,-soname,lib$(ARITH)mumps$(PLAT)-@SOVER@.so -L$(libdir) -lmumps_common$(PLAT) $(LORDERINGS) $(LIBPAR) -lblas $(SCALAP) $(LIBOTHERS) -o $(libdir)/lib$(ARITH)mumps$(PLAT)-@SOVER@.so -Wl,-z,defs
++ ln -s lib$(ARITH)mumps$(PLAT)-@SOVER@.so $@
++
$(ARITH)mumps_load.o: $(ARITH)mumps_comm_buffer.o \
+ $(ARITH)mumps_struc_def.o
+
diff --git a/math/mumps/pkg-plist b/math/mumps/pkg-plist
index 6d9abf822459..cbda83091df7 100644
--- a/math/mumps/pkg-plist
+++ b/math/mumps/pkg-plist
@@ -12,13 +12,27 @@ include/smumps_struc.h
include/zmumps_c.h
include/zmumps_root.h
include/zmumps_struc.h
+lib/libcmumps-%%MUMPSVERSION%%.so
lib/libcmumps.a
+lib/libcmumps.so
+lib/libdmumps-%%MUMPSVERSION%%.so
lib/libdmumps.a
+lib/libdmumps.so
+%%WITH_LIBSEQ%%lib/libmpiseq-%%MUMPSVERSION%%.so
+%%WITH_LIBSEQ%%lib/libmpiseq.a
+%%WITH_LIBSEQ%%lib/libmpiseq.so
+lib/libmumps_common-%%MUMPSVERSION%%.so
lib/libmumps_common.a
+lib/libmumps_common.so
+lib/libpord-%%MUMPSVERSION%%.so
lib/libpord.a
+lib/libpord.so
+lib/libsmumps-%%MUMPSVERSION%%.so
lib/libsmumps.a
+lib/libsmumps.so
+lib/libzmumps-%%MUMPSVERSION%%.so
lib/libzmumps.a
-%%WITH_LIBSEQ%%lib/libmpiseq.a
+lib/libzmumps.so
%%PORTDOCS%%%%DOCSDIR%%/userguide_%%MUMPSVERSION%%.pdf
%%PORTDOCS%%%%DOCSDIR%%/userguide_%%MUMPSVERSION%%.ps.gz
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/Makefile