gnu: http-server: Fix build on i686-linux.
[jackhill/guix/guix.git] / gnu / packages / patches / mumps-shared-pord.patch
CommitLineData
06e12395
MB
1Create static and shared versions of the PORD library.
2
3Index: 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
36Index: 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; \