You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/sci-libs/openblas/files/shared-blas-lapack.patch

138 lines
5.4 KiB

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