| 1 | Create a shared version of the MUMPS library. |
| 2 | |
| 3 | Index: mumps/src/Makefile |
| 4 | =================================================================== |
| 5 | --- mumps.orig/src/Makefile |
| 6 | +++ mumps/src/Makefile |
| 7 | @@ -23,8 +23,10 @@ z: |
| 8 | |
| 9 | include $(topdir)/Makefile.inc |
| 10 | |
| 11 | -mumps_lib: $(libdir)/libmumps_common$(PLAT)$(LIBEXT) \ |
| 12 | - $(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT) |
| 13 | +mumps_lib: $(libdir)/libmumps_common$(PLAT).a \ |
| 14 | + $(libdir)/libmumps_common$(PLAT).so \ |
| 15 | + $(libdir)/lib$(ARITH)mumps$(PLAT).a \ |
| 16 | + $(libdir)/lib$(ARITH)mumps$(PLAT).so |
| 17 | |
| 18 | OBJS_COMMON_MOD = \ |
| 19 | lr_common.o \ |
| 20 | @@ -167,14 +169,22 @@ OBJS_OTHER = \ |
| 21 | $(ARITH)tools.o\ |
| 22 | $(ARITH)type3_root.o |
| 23 | |
| 24 | -$(libdir)/libmumps_common$(PLAT)$(LIBEXT): $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER) |
| 25 | - $(AR)$@ $? |
| 26 | +$(libdir)/libmumps_common$(PLAT).a: $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER) |
| 27 | + $(AR) $@ $? |
| 28 | $(RANLIB) $@ |
| 29 | |
| 30 | -$(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT): $(OBJS_MOD) $(OBJS_OTHER) |
| 31 | - $(AR)$@ $? |
| 32 | +$(libdir)/libmumps_common$(PLAT).so: $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER) |
| 33 | + $(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 |
| 34 | + ln -s libmumps_common$(PLAT)-5.1.2.so $@ |
| 35 | + |
| 36 | +$(libdir)/lib$(ARITH)mumps$(PLAT).a: $(OBJS_MOD) $(OBJS_OTHER) |
| 37 | + $(AR) $@ $? |
| 38 | $(RANLIB) $@ |
| 39 | |
| 40 | +$(libdir)/lib$(ARITH)mumps$(PLAT).so: $(OBJS_MOD) $(OBJS_OTHER) |
| 41 | + $(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 |
| 42 | + ln -s lib$(ARITH)mumps$(PLAT)-5.1.2.so $@ |
| 43 | + |
| 44 | # Dependencies between modules: |
| 45 | $(ARITH)mumps_load.o: $(ARITH)mumps_comm_buffer.o \ |
| 46 | $(ARITH)mumps_struc_def.o \ |
| 47 | @@ -290,13 +300,13 @@ $(OBJS_OTHER):$(OBJS_COMMON_MOD) $(OBJS_ |
| 48 | |
| 49 | .SUFFIXES: .c .F .o |
| 50 | .F.o: |
| 51 | - $(FC) $(OPTF) $(INCS) $(IORDERINGSF) $(ORDERINGSF) -I. -I../include -c $*.F $(OUTF)$*.o |
| 52 | + $(FC) $(OPTF) $(INCS) $(IORDERINGSF) $(ORDERINGSF) -I. -I../include -fPIC -c $*.F $(OUTF)$*.o |
| 53 | .c.o: |
| 54 | - $(CC) $(OPTC) $(INCS) -I../include $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -c $*.c $(OUTC)$*.o |
| 55 | + $(CC) $(OPTC) $(INCS) -I../include $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -fPIC -c $*.c $(OUTC)$*.o |
| 56 | |
| 57 | $(ARITH)mumps_c.o: mumps_c.c |
| 58 | $(CC) $(OPTC) $(INCS) $(CDEFS) -DMUMPS_ARITH=MUMPS_ARITH_$(ARITH) \ |
| 59 | - $(IORDERINGSC) $(ORDERINGSC) -I../include -c mumps_c.c $(OUTC)$@ |
| 60 | + $(IORDERINGSC) $(ORDERINGSC) -I../include -fPIC -c mumps_c.c $(OUTC)$@ |
| 61 | |
| 62 | |
| 63 | clean: |