Commit | Line | Data |
---|---|---|
06e12395 MB |
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) | |
8cd2a395 MB |
33 | + $(FC) -shared $^ -Wl,-soname,libmumps_common$(PLAT)-5.2.1.so -L$(libdir) $(LORDERINGS) -lpthread $(MPIFLIB) $(MPICLIB) $(LEXTRAS) -o $(libdir)/libmumps_common$(PLAT)-5.2.1.so -Wl,-z,defs |
34 | + ln -s libmumps_common$(PLAT)-5.2.1.so $@ | |
06e12395 MB |
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) | |
8cd2a395 MB |
41 | + $(FC) -shared $^ -Wl,-soname,lib$(ARITH)mumps$(PLAT)-5.2.1.so -L$(libdir) -lmumps_common$(PLAT) $(LORDERINGS) $(MPIFLIB) $(LEXTRAS) $(LIBBLAS) $(SCALAP) $(LAPACK) -o $(libdir)/lib$(ARITH)mumps$(PLAT)-5.2.1.so -Wl,-z,defs |
42 | + ln -s lib$(ARITH)mumps$(PLAT)-5.2.1.so $@ | |
06e12395 MB |
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: |