1#
2#  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
3#
4topdir = ..
5libdir = $(topdir)/lib
6
7default:	d
8
9.PHONY: default s d c z mumps_lib clean
10
11s:
12	$(MAKE) ARITH=s mumps_lib
13d:
14	$(MAKE) ARITH=d mumps_lib
15c:
16	$(MAKE) ARITH=c mumps_lib
17z:
18	$(MAKE) ARITH=z mumps_lib
19
20include $(topdir)/Makefile.inc
21
22mumps_lib:    $(libdir)/libmumps_common$(PLAT)$(LIBEXT) \
23              $(libdir)/libmumps_common$(PLAT).so.@SOVER@ \
24              $(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT) \
25              $(libdir)/lib$(ARITH)mumps$(PLAT).so.@SOVER@
26
27OBJS_COMMON = \
28        mumps_part9.o\
29        mumps_common.o\
30        mumps_ooc_common.o\
31        mumps_orderings.o\
32        mumps_size.o\
33        mumps_io.o\
34        mumps_io_basic.o\
35        mumps_io_thread.o\
36        mumps_io_err.o\
37        mumps_static_mapping.o\
38        mumps_sol_es.o\
39	tools_common_mod.o
40
41OBJS = 	$(ARITH)mumps_part1.o\
42        $(ARITH)mumps_part2.o\
43        $(ARITH)mumps_part3.o\
44        $(ARITH)mumps_part4.o\
45        $(ARITH)mumps_part5.o\
46        $(ARITH)mumps_part6.o\
47        $(ARITH)mumps_part7.o\
48        $(ARITH)mumps_part8.o\
49        $(ARITH)mumps_comm_buffer.o\
50        $(ARITH)mumps_load.o\
51        $(ARITH)mumps_c.o\
52        $(ARITH)mumps_ooc_buffer.o\
53        $(ARITH)mumps_ooc.o\
54        $(ARITH)mumps_struc_def.o
55
56
57$(libdir)/libmumps_common$(PLAT)$(LIBEXT):	$(OBJS_COMMON)
58	$(AR) $@ $?
59	$(RANLIB) $@
60
61$(libdir)/libmumps_common$(PLAT).so.@SOVER@:	$(OBJS_COMMON)
62	$(FC) -shared ${.ALLSRC} -Wl,-soname,libmumps_common$(PLAT).so.@SOVER@ -L$(libdir) $(LORDERINGS) $(LIBPAR) $(LIBOTHERS) -o $(libdir)/libmumps_common$(PLAT).so.@SOVER@ -Wl,-z,defs
63
64$(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT):    $(OBJS)
65	$(AR) $@ $?
66	$(RANLIB) $@
67
68$(libdir)/lib$(ARITH)mumps$(PLAT).so.@SOVER@:    $(OBJS)
69	$(FC) -shared ${.ALLSRC} -Wl,-soname,lib$(ARITH)mumps$(PLAT).so.@SOVER@ -L$(libdir) -lmumps_common$(PLAT) $(LORDERINGS) $(LIBPAR) -lblas $(SCALAP) $(LIBOTHERS) -o $(libdir)/lib$(ARITH)mumps$(PLAT).so.@SOVER@ -Wl,-z,defs
70
71$(ARITH)mumps_load.o:		$(ARITH)mumps_comm_buffer.o \
72				$(ARITH)mumps_struc_def.o
73
74$(ARITH)mumps_ooc.o: 		$(ARITH)mumps_struc_def.o \
75				$(ARITH)mumps_ooc_buffer.o \
76				mumps_ooc_common.o
77
78$(ARITH)mumps_ooc_buffer.o: 	mumps_ooc_common.o
79
80
81$(ARITH)mumps_part1.o \
82$(ARITH)mumps_part2.o \
83$(ARITH)mumps_part3.o \
84$(ARITH)mumps_part4.o \
85$(ARITH)mumps_part5.o \
86$(ARITH)mumps_part6.o \
87$(ARITH)mumps_part7.o \
88$(ARITH)mumps_part8.o:	$(ARITH)mumps_comm_buffer.o \
89			$(ARITH)mumps_load.o \
90			$(ARITH)mumps_ooc.o
91
92$(ARITH)mumps_part5.o:	mumps_static_mapping.o
93$(ARITH)mumps_part5.o:	$(ARITH)mumps_part2.o
94
95$(ARITH)mumps_part2.o : tools_common_mod.o
96$(ARITH)mumps_part8.o : mumps_sol_es.o
97
98.SUFFIXES: .c .F .o
99.F.o:
100	$(FC) $(OPTF) $(INCS) $(IORDERINGSF) $(ORDERINGSF) -I. -I../include -c $*.F $(OUTF)$*.o
101.c.o:
102	$(CC) $(OPTC) $(INCS) -I../include $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -c $*.c $(OUTC)$*.o
103
104$(ARITH)mumps_c.o:	mumps_c.c
105	$(CC) $(OPTC) $(INCS) $(CDEFS) -DMUMPS_ARITH=MUMPS_ARITH_$(ARITH) \
106	      $(IORDERINGSC) $(ORDERINGSC) -I../include -c $? $(OUTC)$@
107
108
109clean:
110	$(RM) *.o *.mod
111