1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
Create a shared version of the MUMPS library.
Index: mumps/src/Makefile
===================================================================
--- mumps.orig/src/Makefile 2020-10-01 23:59:29.359262672 +0800
+++ mumps/src/Makefile 2020-10-02 00:36:33.502904903 +0800
@@ -23,8 +23,10 @@
include $(topdir)/Makefile.inc
mumps_lib: $(incdir)/mumps_int_def.h \
- $(libdir)/libmumps_common$(PLAT)$(LIBEXT) \
- $(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT)
+ $(libdir)/libmumps_common$(PLAT).a \
+ $(libdir)/libmumps_common$(PLAT).so \
+ $(libdir)/lib$(ARITH)mumps$(PLAT).a \
+ $(libdir)/lib$(ARITH)mumps$(PLAT).so
# Build $(incdir)/mumps_int_def.h, needed by mumps_c_types.h
$(incdir)/mumps_int_def.h: build_mumps_int_def
@@ -188,14 +190,24 @@
$(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) $(OPTL) -shared $^ -Wl,-soname,libmumps_common$(PLAT)-$(SOVERSION).so -L$(libdir) $(LORDERINGS) -lpthread $(MPIFLIB) $(MPICLIB) -o $(libdir)/libmumps_common$(PLAT)-$(VERSION).so -Wl,-z,defs
+ ln -s libmumps_common$(PLAT)-$(VERSION).so $(libdir)/libmumps_common$(PLAT)-$(SOVERSION).so
+ ln -s libmumps_common$(PLAT)-$(VERSION).so $@
+
+$(libdir)/lib$(ARITH)mumps$(PLAT).a: $(OBJS_MOD) $(OBJS_OTHER)
+ $(AR) $@ $?
$(RANLIB) $@
+$(libdir)/lib$(ARITH)mumps$(PLAT).so: $(OBJS_MOD) $(OBJS_OTHER)
+ $(FC) $(OPTL) -shared $^ -Wl,-soname,lib$(ARITH)mumps$(PLAT)-$(SOVERSION).so -L$(libdir) -lmumps_common$(PLAT) $(LORDERINGS) $(MPIFLIB) -lblas $(SCALAP) $(LAPACK) -o $(libdir)/lib$(ARITH)mumps$(PLAT)-$(VERSION).so -Wl,-z,defs
+ ln -s lib$(ARITH)mumps$(PLAT)-$(VERSION).so $(libdir)/lib$(ARITH)mumps$(PLAT)-$(SOVERSION).so
+ ln -s lib$(ARITH)mumps$(PLAT)-$(VERSION).so $@
+
# Dependencies between modules:
# i) arithmetic-dependent modules:
$(ARITH)ana_aux.o: $(ARITH)mumps_struc_def.o \
@@ -405,13 +417,13 @@
.SUFFIXES: .c .F .o
.F.o:
- $(FC) $(OPTF) -I. -I../include $(INCS) $(IORDERINGSF) $(ORDERINGSF) -c $*.F $(OUTF)$*.o
+ $(FC) $(OPTF) -I. -I../include $(INCS) $(IORDERINGSF) $(ORDERINGSF) -fPIC -c $*.F $(OUTF)$*.o
.c.o:
- $(CC) $(OPTC) -I../include $(INCS) $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -c $*.c $(OUTC)$*.o
+ $(CC) $(OPTC) -I../include $(INCS) $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -fPIC -c $*.c $(OUTC)$*.o
$(ARITH)mumps_c.o: mumps_c.c
$(CC) $(OPTC) -I../include $(INCS) $(CDEFS) -DMUMPS_ARITH=MUMPS_ARITH_$(ARITH) \
- $(IORDERINGSC) $(ORDERINGSC) -c mumps_c.c $(OUTC)$@
+ $(IORDERINGSC) $(ORDERINGSC) -fPIC -c mumps_c.c $(OUTC)$@
clean:
$(RM) *.o *.mod $(incdir)/mumps_int_def.h
|