Commit | Line | Data |
---|---|---|
06e12395 MB |
1 | Create static and shared versions of the PORD library. |
2 | ||
3 | Index: mumps/PORD/lib/Makefile | |
4 | =================================================================== | |
5 | --- mumps.orig/PORD/lib/Makefile | |
6 | +++ mumps/PORD/lib/Makefile | |
7 | @@ -9,7 +9,7 @@ | |
8 | ||
9 | INCLUDES = -I../include | |
10 | ||
11 | -COPTIONS = $(INCLUDES) $(CFLAGS) $(OPTFLAGS) | |
12 | +COPTIONS = $(INCLUDES) $(CFLAGS) $(OPTFLAGS) -fPIC | |
13 | ||
14 | OBJS = graph.o gbipart.o gbisect.o ddcreate.o ddbisect.o nestdiss.o \ | |
15 | multisector.o gelim.o bucket.o tree.o \ | |
16 | @@ -24,12 +24,16 @@ OBJS = graph.o gbipart.o gbisect.o ddcre | |
17 | .c.o: | |
18 | $(CC) $(COPTIONS) -c $*.c $(OUTC)$*.o | |
19 | ||
20 | -libpord$(LIBEXT):$(OBJS) | |
21 | - $(AR)$@ $(OBJS) | |
22 | +libpord$(PLAT).a:$(OBJS) | |
23 | + $(AR) $@ $(OBJS) | |
24 | $(RANLIB) $@ | |
25 | ||
26 | +libpord$(PLAT).so: $(OBJS) | |
8cd2a395 MB |
27 | + $(CC) -shared $(OBJS) -Wl,-soname,libpord$(PLAT)-5.2.1.so -o libpord$(PLAT)-5.2.1.so -Wl,-z,defs |
28 | + ln -s libpord$(PLAT)-5.2.1.so $@ | |
06e12395 MB |
29 | + |
30 | clean: | |
31 | rm -f *.o | |
32 | ||
33 | realclean: | |
34 | - rm -f *.o libpord.a | |
35 | + rm -f *.o libpord*.a *.so | |
36 | Index: mumps/Makefile | |
37 | =================================================================== | |
38 | --- mumps.orig/Makefile | |
39 | +++ mumps/Makefile | |
40 | @@ -54,7 +54,7 @@ dexamples: d | |
41 | multi_example: s d c z | |
42 | (cd examples ; $(MAKE) multi) | |
43 | ||
44 | -requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord$(PLAT)$(LIBEXT) | |
45 | +requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord$(PLAT).a $(libdir)/libpord$(PLAT).so | |
46 | ||
47 | # dummy MPI library (sequential version) | |
48 | ||
49 | @@ -62,19 +62,25 @@ libseqneeded: | |
50 | (cd libseq; $(MAKE)) | |
51 | ||
52 | # Build the libpord.a library and copy it into $(topdir)/lib | |
53 | -$(libdir)/libpord$(PLAT)$(LIBEXT): | |
54 | +$(libdir)/libpord$(PLAT).a: | |
55 | if [ "$(LPORDDIR)" != "" ] ; then \ | |
56 | cd $(LPORDDIR); \ | |
57 | $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" RANLIB="$(RANLIB)" OUTC="$(OUTC)" LIBEXT=$(LIBEXT); \ | |
58 | fi; | |
59 | if [ "$(LPORDDIR)" != "" ] ; then \ | |
60 | - cp $(LPORDDIR)/libpord$(LIBEXT) $@; \ | |
61 | + cp $(LPORDDIR)/libpord$(PLAT).a $@; \ | |
62 | fi; | |
63 | ||
64 | +$(libdir)/libpord$(PLAT).so: | |
65 | + if [ "$(LPORDDIR)" != "" ] ; then \ | |
66 | + cd $(LPORDDIR); make CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" ARFUNCT= RANLIB="$(RANLIB)" libpord$(PLAT).so; fi; | |
67 | + if [ "$(LPORDDIR)" != "" ] ; then \ | |
68 | + cp -a $(LPORDDIR)/libpord*.so lib/; fi; | |
69 | + | |
70 | clean: | |
71 | (cd src; $(MAKE) clean) | |
72 | (cd examples; $(MAKE) clean) | |
73 | - (cd $(libdir); $(RM) *$(PLAT)$(LIBEXT)) | |
74 | + (cd $(libdir); $(RM) *$(PLAT).a *$(PLAT).so) | |
75 | (cd libseq; $(MAKE) clean) | |
76 | if [ "$(LPORDDIR)" != "" ] ; then \ | |
77 | cd $(LPORDDIR); $(MAKE) realclean; \ |