diff options
author | Maurice Brémond <Maurice.Bremond@inria.fr> | 2019-10-14 17:44:54 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-10-14 18:25:31 +0200 |
commit | 06e1239502e7cc91f62161f8bab35bbe0119f2e5 (patch) | |
tree | 0f41a73cbd777b822e989b5f7bbb553ffeade417 /gnu/packages/patches/mumps-shared-mumps.patch | |
parent | 5dbc79eb60f4d72953e11f3a7558ef3037b8bdb6 (diff) | |
download | guix-06e1239502e7cc91f62161f8bab35bbe0119f2e5.tar guix-06e1239502e7cc91f62161f8bab35bbe0119f2e5.tar.gz |
gnu: mumps: Build and install shared libraries.
* gnu/packages/patches/mumps-shared-libseq.patch,
gnu/packages/patches/mumps-shared-mumps.patch,
gnu/packages/patches/mumps-shared-pord.patch: New files.
* gnu/local.mk (dist_patch_DATA): Add them.
* gnu/packages/maths.scm (mumps)[source](patches): Add them.
[arguments]: In 'configure' phase, adjust "Makefile.inc" for shared
library support. In 'install' phase, install libmpiseq.so when it
exists.
Co-authored-by: Ludovic Courtès <ludovic.courtes@inria.fr>
Diffstat (limited to 'gnu/packages/patches/mumps-shared-mumps.patch')
-rw-r--r-- | gnu/packages/patches/mumps-shared-mumps.patch | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/gnu/packages/patches/mumps-shared-mumps.patch b/gnu/packages/patches/mumps-shared-mumps.patch new file mode 100644 index 0000000000..9e2491f300 --- /dev/null +++ b/gnu/packages/patches/mumps-shared-mumps.patch @@ -0,0 +1,63 @@ +Create a shared version of the MUMPS library. + +Index: mumps/src/Makefile +=================================================================== +--- mumps.orig/src/Makefile ++++ mumps/src/Makefile +@@ -23,8 +23,10 @@ z: + + include $(topdir)/Makefile.inc + +-mumps_lib: $(libdir)/libmumps_common$(PLAT)$(LIBEXT) \ +- $(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT) ++mumps_lib: $(libdir)/libmumps_common$(PLAT).a \ ++ $(libdir)/libmumps_common$(PLAT).so \ ++ $(libdir)/lib$(ARITH)mumps$(PLAT).a \ ++ $(libdir)/lib$(ARITH)mumps$(PLAT).so + + OBJS_COMMON_MOD = \ + lr_common.o \ +@@ -167,14 +169,22 @@ OBJS_OTHER = \ + $(ARITH)tools.o\ + $(ARITH)type3_root.o + +-$(libdir)/libmumps_common$(PLAT)$(LIBEXT): $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER) +- $(AR)$@ $? ++$(libdir)/libmumps_common$(PLAT).a: $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER) ++ $(AR) $@ $? + $(RANLIB) $@ + +-$(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT): $(OBJS_MOD) $(OBJS_OTHER) +- $(AR)$@ $? ++$(libdir)/libmumps_common$(PLAT).so: $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER) ++ $(FC) -shared $^ -Wl,-soname,libmumps_common$(PLAT)-5.1.2.so -L$(libdir) $(LORDERINGS) -lpthread $(MPIFLIB) $(MPICLIB) $(LEXTRAS) -o $(libdir)/libmumps_common$(PLAT)-5.1.2.so -Wl,-z,defs ++ ln -s libmumps_common$(PLAT)-5.1.2.so $@ ++ ++$(libdir)/lib$(ARITH)mumps$(PLAT).a: $(OBJS_MOD) $(OBJS_OTHER) ++ $(AR) $@ $? + $(RANLIB) $@ + ++$(libdir)/lib$(ARITH)mumps$(PLAT).so: $(OBJS_MOD) $(OBJS_OTHER) ++ $(FC) -shared $^ -Wl,-soname,lib$(ARITH)mumps$(PLAT)-5.1.2.so -L$(libdir) -lmumps_common$(PLAT) $(LORDERINGS) $(MPIFLIB) $(LEXTRAS) $(LIBBLAS) $(SCALAP) $(LAPACK) -o $(libdir)/lib$(ARITH)mumps$(PLAT)-5.1.2.so -Wl,-z,defs ++ ln -s lib$(ARITH)mumps$(PLAT)-5.1.2.so $@ ++ + # Dependencies between modules: + $(ARITH)mumps_load.o: $(ARITH)mumps_comm_buffer.o \ + $(ARITH)mumps_struc_def.o \ +@@ -290,13 +300,13 @@ $(OBJS_OTHER):$(OBJS_COMMON_MOD) $(OBJS_ + + .SUFFIXES: .c .F .o + .F.o: +- $(FC) $(OPTF) $(INCS) $(IORDERINGSF) $(ORDERINGSF) -I. -I../include -c $*.F $(OUTF)$*.o ++ $(FC) $(OPTF) $(INCS) $(IORDERINGSF) $(ORDERINGSF) -I. -I../include -fPIC -c $*.F $(OUTF)$*.o + .c.o: +- $(CC) $(OPTC) $(INCS) -I../include $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -c $*.c $(OUTC)$*.o ++ $(CC) $(OPTC) $(INCS) -I../include $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -fPIC -c $*.c $(OUTC)$*.o + + $(ARITH)mumps_c.o: mumps_c.c + $(CC) $(OPTC) $(INCS) $(CDEFS) -DMUMPS_ARITH=MUMPS_ARITH_$(ARITH) \ +- $(IORDERINGSC) $(ORDERINGSC) -I../include -c mumps_c.c $(OUTC)$@ ++ $(IORDERINGSC) $(ORDERINGSC) -I../include -fPIC -c mumps_c.c $(OUTC)$@ + + + clean: |