Blob Blame History Raw
Create a shared version of the MUMPS library.

Index: mumps/src/Makefile
===================================================================
--- mumps.orig/src/Makefile
+++ mumps/src/Makefile
@@ -23,8 +23,10 @@
 
 include $(topdir)/Makefile.inc
 
-mumps_lib:    $(libdir)/libmumps_common$(PLAT)$(LIBEXT) \
-              $(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT)
+mumps_lib:    $(libdir)/libmumpso_common$(PLAT).a \
+              $(libdir)/libmumpso_common$(PLAT).so \
+              $(libdir)/lib$(ARITH)mumpso$(PLAT).a \
+              $(libdir)/lib$(ARITH)mumpso$(PLAT).so
 
 OBJS_COMMON_MOD = \
         ana_omp_m.o\
@@ -154,14 +154,22 @@
         $(ARITH)type3_root.o\
         $(ARITH)mumps_restart.o
 
-$(libdir)/libmumps_common$(PLAT)$(LIBEXT):      $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER)
-	$(AR)$@ $?
+$(libdir)/libmumpso_common$(PLAT).a:      $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER)
+	$(AR) $@ $?
 	$(RANLIB) $@
 
-$(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT):    $(OBJS_MOD) $(OBJS_OTHER)
-	$(AR)$@ $?
+$(libdir)/libmumpso_common$(PLAT).so:	$(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER)
+	$(FC) -shared $^ -Wl,-soname,libmumpso_common$(PLAT)-5.0.2.so $(OPTL) -L$(libdir) $(LORDERINGS) -lpthread $(MUMPS_LIBF77) $(MPIFLIB) $(MPICLIB) $(METISLIB) -o $(libdir)/libmumpso_common$(PLAT)-5.0.2.so $(OPTL) -Wl,-z,defs
+	ln -s libmumpso_common$(PLAT)-5.0.2.so $@
+
+$(libdir)/lib$(ARITH)mumpso$(PLAT).a:    $(OBJS_MOD) $(OBJS_OTHER)
+	$(AR) $@ $?
 	$(RANLIB) $@
 
+$(libdir)/lib$(ARITH)mumpso$(PLAT).so:    $(OBJS_MOD) $(OBJS_OTHER)
+	$(FC) -shared $^ -Wl,-soname,lib$(ARITH)mumpso$(PLAT)-5.0.2.so $(OPTL) -L$(libdir) -lmumpso_common$(PLAT) $(MUMPS_LIBF77) $(LORDERINGS) $(MPIFLIB) $(METISLIB) $(SCALAP) -o $(libdir)/lib$(ARITH)mumpso$(PLAT)-5.0.2.so $(OPTL) -Wl,-z,defs
+	ln -s lib$(ARITH)mumpso$(PLAT)-5.0.2.so $@
+
 # Dependencies between modules:
 $(ARITH)mumps_load.o:		$(ARITH)mumps_comm_buffer.o \
 				$(ARITH)mumps_struc_def.o \
@@ -259,13 +267,13 @@
 
 .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: