summaryrefslogtreecommitdiffstats
path: root/OpenBLAS/build/patches/shared-blas-lapack.patch
blob: fc77427362c1e84d46657d052fc929a5c3e71885 (plain)
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
diff --git a/sci-libs/openblas/files/Makefile b/sci-libs/openblas/files/Makefile
index 20ec74e..87e842f 100644
--- a/interface/Makefile
+++ b/interface/Makefile
@@ -2151,3 +2151,132 @@ cblas_zgeadd.$(SUFFIX) cblas_zgeadd.$(PSUFFIX) : zgeadd.c
 
 cblas_xerbla.$(SUFFIX) cblas_xerbla.$(PSUFFIX) : xerbla.c
 	$(CC) -c $(CFLAGS) -DCBLAS $< -o $(@F)
+
+#############################################################################
+# Customized shared objects
+
+FSBLAS1OBJS    = \
+		saxpy.$(SUFFIX) sswap.$(SUFFIX) \
+		scopy.$(SUFFIX) sscal.$(SUFFIX) \
+		sdot.$(SUFFIX) sdsdot.$(SUFFIX) dsdot.$(SUFFIX) \
+		sasum.$(SUFFIX) snrm2.$(SUFFIX) \
+		smax.$(SUFFIX) samax.$(SUFFIX) ismax.$(SUFFIX) isamax.$(SUFFIX) \
+		smin.$(SUFFIX) samin.$(SUFFIX) ismin.$(SUFFIX) isamin.$(SUFFIX) \
+		srot.$(SUFFIX) srotg.$(SUFFIX) srotm.$(SUFFIX) srotmg.$(SUFFIX) \
+		saxpby.$(SUFFIX)
+
+FSBLAS2OBJS    = \
+		sgemv.$(SUFFIX) sger.$(SUFFIX) \
+		strsv.$(SUFFIX) strmv.$(SUFFIX) ssymv.$(SUFFIX) \
+		ssyr.$(SUFFIX)  ssyr2.$(SUFFIX) sgbmv.$(SUFFIX) \
+		ssbmv.$(SUFFIX) sspmv.$(SUFFIX) \
+		sspr.$(SUFFIX)  sspr2.$(SUFFIX) \
+		stbsv.$(SUFFIX) stbmv.$(SUFFIX) \
+		stpsv.$(SUFFIX) stpmv.$(SUFFIX)
+
+FSBLAS3OBJS    = \
+		sgemm.$(SUFFIX) ssymm.$(SUFFIX) strmm.$(SUFFIX) \
+		strsm.$(SUFFIX) ssyrk.$(SUFFIX) ssyr2k.$(SUFFIX) \
+		somatcopy.$(SUFFIX) simatcopy.$(SUFFIX)\
+		sgeadd.$(SUFFIX)
+
+
+FDBLAS1OBJS    = \
+		daxpy.$(SUFFIX) dswap.$(SUFFIX) \
+		dcopy.$(SUFFIX) dscal.$(SUFFIX) \
+		ddot.$(SUFFIX) \
+		dasum.$(SUFFIX) dnrm2.$(SUFFIX) \
+		dmax.$(SUFFIX) damax.$(SUFFIX) idmax.$(SUFFIX) idamax.$(SUFFIX) \
+		dmin.$(SUFFIX) damin.$(SUFFIX) idmin.$(SUFFIX) idamin.$(SUFFIX) \
+		drot.$(SUFFIX) drotg.$(SUFFIX) drotm.$(SUFFIX) drotmg.$(SUFFIX) \
+		daxpby.$(SUFFIX)
+
+FDBLAS2OBJS    = \
+		dgemv.$(SUFFIX) dger.$(SUFFIX) \
+		dtrsv.$(SUFFIX) dtrmv.$(SUFFIX) dsymv.$(SUFFIX) \
+		dsyr.$(SUFFIX)  dsyr2.$(SUFFIX) dgbmv.$(SUFFIX) \
+		dsbmv.$(SUFFIX) dspmv.$(SUFFIX) \
+		dspr.$(SUFFIX)  dspr2.$(SUFFIX) \
+		dtbsv.$(SUFFIX) dtbmv.$(SUFFIX) \
+		dtpsv.$(SUFFIX) dtpmv.$(SUFFIX)
+
+FDBLAS3OBJS    = \
+		dgemm.$(SUFFIX) dsymm.$(SUFFIX) dtrmm.$(SUFFIX) \
+		dtrsm.$(SUFFIX) dsyrk.$(SUFFIX) dsyr2k.$(SUFFIX) \
+		domatcopy.$(SUFFIX) dimatcopy.$(SUFFIX)\
+		dgeadd.$(SUFFIX) 
+
+FCBLAS1OBJS    = \
+		caxpy.$(SUFFIX) caxpyc.$(SUFFIX) cswap.$(SUFFIX) \
+		ccopy.$(SUFFIX) cscal.$(SUFFIX) csscal.$(SUFFIX) \
+		cdotc.$(SUFFIX)  cdotu.$(SUFFIX) \
+		scasum.$(SUFFIX) scnrm2.$(SUFFIX) \
+		scamax.$(SUFFIX) icamax.$(SUFFIX) \
+		scamin.$(SUFFIX) icamin.$(SUFFIX) \
+		csrot.$(SUFFIX) crotg.$(SUFFIX) \
+		caxpby.$(SUFFIX)
+
+FCBLAS2OBJS    = \
+		cgemv.$(SUFFIX) cgeru.$(SUFFIX) cgerc.$(SUFFIX) \
+		ctrsv.$(SUFFIX) ctrmv.$(SUFFIX) \
+		csyr2.$(SUFFIX) cgbmv.$(SUFFIX) \
+		csbmv.$(SUFFIX) \
+		cspr2.$(SUFFIX) \
+		ctbsv.$(SUFFIX) ctbmv.$(SUFFIX) \
+		ctpsv.$(SUFFIX) ctpmv.$(SUFFIX) \
+		chemv.$(SUFFIX) chbmv.$(SUFFIX) \
+		cher.$(SUFFIX)  cher2.$(SUFFIX) \
+		chpmv.$(SUFFIX) chpr.$(SUFFIX)  chpr2.$(SUFFIX)
+
+FCBLAS3OBJS    = \
+		cgemm.$(SUFFIX) csymm.$(SUFFIX) ctrmm.$(SUFFIX) \
+		ctrsm.$(SUFFIX) csyrk.$(SUFFIX) csyr2k.$(SUFFIX) \
+	       	chemm.$(SUFFIX) cherk.$(SUFFIX) cher2k.$(SUFFIX) \
+		comatcopy.$(SUFFIX) cimatcopy.$(SUFFIX)\
+		cgeadd.$(SUFFIX) 
+
+FZBLAS1OBJS    = \
+		zaxpy.$(SUFFIX) zaxpyc.$(SUFFIX) zswap.$(SUFFIX) \
+		zcopy.$(SUFFIX) zscal.$(SUFFIX) zdscal.$(SUFFIX) \
+		zdotc.$(SUFFIX)  zdotu.$(SUFFIX) \
+		dzasum.$(SUFFIX)  dznrm2.$(SUFFIX) \
+		dzamax.$(SUFFIX) izamax.$(SUFFIX) \
+		dzamin.$(SUFFIX) izamin.$(SUFFIX) \
+		zdrot.$(SUFFIX) zrotg.$(SUFFIX) \
+		zaxpby.$(SUFFIX)
+
+FZBLAS2OBJS    = \
+		zgemv.$(SUFFIX) zgeru.$(SUFFIX) zgerc.$(SUFFIX) \
+		ztrsv.$(SUFFIX) ztrmv.$(SUFFIX) \
+		zsyr2.$(SUFFIX) zgbmv.$(SUFFIX) \
+		zsbmv.$(SUFFIX) \
+		zspr2.$(SUFFIX) \
+		ztbsv.$(SUFFIX) ztbmv.$(SUFFIX) \
+		ztpsv.$(SUFFIX) ztpmv.$(SUFFIX) \
+		zhemv.$(SUFFIX) zhbmv.$(SUFFIX) \
+		zher.$(SUFFIX)  zher2.$(SUFFIX) \
+		zhpmv.$(SUFFIX) zhpr.$(SUFFIX)  zhpr2.$(SUFFIX)
+
+FZBLAS3OBJS    = \
+		zgemm.$(SUFFIX) zsymm.$(SUFFIX) ztrmm.$(SUFFIX) \
+		ztrsm.$(SUFFIX) zsyrk.$(SUFFIX) zsyr2k.$(SUFFIX) \
+	       	zhemm.$(SUFFIX) zherk.$(SUFFIX) zher2k.$(SUFFIX) \
+		zomatcopy.$(SUFFIX) zimatcopy.$(SUFFIX)\
+		zgeadd.$(SUFFIX) 
+
+shared-blas-lapack: libblas.so.3 libcblas.so.3 liblapack.so.3
+
+# The list of prerequisite is created by comparing with NETLIB BLAS public API.
+# The symbol cblas_xerbla is missing here, but it does not seem to be provided
+# by libopenblas.so.0 either.
+libblas.so.3: $(FSBLAS1OBJS) $(FSBLAS2OBJS) $(FSBLAS3OBJS) $(FDBLAS1OBJS) $(FDBLAS2OBJS) $(FDBLAS3OBJS) $(FCBLAS1OBJS) $(FCBLAS2OBJS) $(FCBLAS3OBJS) $(FZBLAS1OBJS) $(FZBLAS2OBJS) $(FZBLAS3OBJS) ../kernel/lsame.o ../kernel/scabs1.o ../kernel/dcabs1.o ../driver/others/xerbla.o
+	$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -Wl,-soname,libblas.so.3 -L.. -lopenblas $(EXTRALIB)
+
+libcblas.so.3: $(CSBLAS1OBJS) $(CSBLAS2OBJS) $(CSBLAS3OBJS) $(CDBLAS1OBJS) $(CDBLAS2OBJS) $(CDBLAS3OBJS) $(CCBLAS1OBJS) $(CCBLAS2OBJS) $(CCBLAS3OBJS) $(CZBLAS1OBJS) $(CZBLAS2OBJS) $(CZBLAS3OBJS) ../kernel/lsame.o ../kernel/scabs1.o ../kernel/dcabs1.o ../driver/others/xerbla.o
+	$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -Wl,-soname,libcblas.so.3 -L.. -lopenblas $(EXTRALIB)
+
+liblapack.so.3: $(SLAPACKOBJS) $(DLAPACKOBJS) $(CLAPACKOBJS) $(ZLAPACKOBJS) ../kernel/lsame.o ../driver/others/xerbla.o
+	$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ ../lapack-netlib/SRC/*.o -Wl,-soname,liblapack.so.3 -L.. -lopenblas $(EXTRALIB)
+
+clean::
+	rm -f libblas.so.3 libcblas.so.3 liblapack.so.3