source: projects/specs/trunk/o/openblas/openblas-vl.spec @ 12274

Revision 12274, 26.9 KB checked in by ara_t, 4 years ago (diff)

openblas: update to 3.7.0

Line 
1%define pkg_name    openblas
2%define pkg_version 0.3.7
3%define pkg_release 1%{?_dist_release}
4
5# Version of bundled lapack
6%global lapackver 3.8.0
7%global lapacke 1
8
9# Build 64-bit interface binaries?
10%ifarch %{ix86}
11%global build64 0
12%global libblas    libblas.so.3 libcblas.so.3
13%global liblapack  liblapack.so.3 liblapacke.so.3
14%endif
15%ifarch x86_64
16%global build64 1
17%global libblas    libblas.so.3()(64bit) libcblas.so.3()(64bit)
18%global liblapack  liblapack.so.3()(64bit) liblapacke.so.3()(64bit)
19%endif
20
21
22Summary: An optimized BLAS library based on GotoBLAS2
23Name:    %{pkg_name}
24Version: %{pkg_version}
25Release: %{pkg_release}
26
27Group:   Development/Libraries
28License: BSD
29URL:     https://github.com/xianyi/OpenBLAS/
30
31# Source0: https://github.com/xianyi/OpenBLAS/archive/v%{version}.tar.gz
32Source0: https://github.com/xianyi/OpenBLAS/archive/v%{version}.tar.gz#/OpenBLAS-%{version}.tar.gz
33
34# pkg-config file (modoified)
35Source11: blas.pc.in
36Source12: cblas.pc.in
37Source13: lapack.pc.in
38Source14: lapacke.pc.in
39
40# Drop extra p from threaded library name
41Patch1: openblas-0.2.5-libname.patch
42# # Supply the proper flags to the test makefile
43# Patch2: openblas-0.2.19-tests.patch
44# # Disable CPU affinity, from upstream
45# Patch3: https://patch-diff.githubusercontent.com/raw/xianyi/OpenBLAS/pull/1495.patch
46
47BuildRoot: %{_tmppath}/%{name}-%{version}-root
48BuildRequires: gcc-gfortran
49
50Provides: blas lapack = %{lapackver} %{libblas} %{liblapack}
51
52ExclusiveArch: x86_64 %{ix86}
53
54
55%global base_description \
56OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD \
57version. The project is supported by the Lab of Parallel Software and \
58Computational Science, ISCAS. http://www.rdcps.ac.cn
59
60%description
61%{base_description}
62
63%package Rblas
64Summary: A version of OpenBLAS for R to use as libRblas
65Group:   Development/Libraries
66
67%description Rblas
68%{base_description}
69
70%package openmp
71Summary: An optimized BLAS library based on GotoBLAS2, OpenMP version
72Group:   Development/Libraries
73Provides: blas lapack = %{lapackver} %{libblas} %{liblapack}
74
75%description openmp
76%{base_description}
77
78This package contains the library compiled with OpenMP support.
79
80%package threads
81Summary: An optimized BLAS library based on GotoBLAS2, pthreads version
82Group:   Development/Libraries
83Provides: blas lapack = %{lapackver} %{libblas} %{liblapack}
84
85%description threads
86%{base_description}
87
88This package contains the library compiled with threading support.
89
90%if %build64
91%package serial64
92Summary: An optimized BLAS library based on GotoBLAS2, serial version
93Group:   Development/Libraries
94Provides: blas64 lapack64 = %{lapackver}
95
96%description serial64
97%{base_description}
98
99This package contains the sequential library compiled with a 64-bit
100interface.
101
102%package serial64_
103Summary: An optimized BLAS library based on GotoBLAS2, serial version
104Group:   Development/Libraries
105Provides: blas64 lapack64 = %{lapackver}
106
107%description serial64_
108%{base_description}
109
110This package contains the sequential library compiled with a 64-bit
111interface and a symbol name suffix.
112
113
114%package openmp64
115Summary: An optimized BLAS library based on GotoBLAS2, OpenMP version
116Group:   Development/Libraries
117Provides: blas64 lapack64 = %{lapackver}
118
119%description openmp64
120%{base_description}
121
122This package contains the library compiled with OpenMP support and
12364-bit interface.
124
125%package openmp64_
126Summary: An optimized BLAS library based on GotoBLAS2, OpenMP version
127Group:   Development/Libraries
128Provides: blas64 lapack64 = %{lapackver}
129
130%description openmp64_
131%{base_description}
132
133This package contains the library compiled with OpenMP support and
13464-bit interface and a symbol name suffix.
135
136
137%package threads64
138Summary: An optimized BLAS library based on GotoBLAS2, pthreads version
139Group:   Development/Libraries
140Provides: blas64 lapack64 = %{lapackver}
141
142%description threads64
143%{base_description}
144
145This package contains the library compiled with threading support and
14664-bit interface.
147
148%package threads64_
149Summary: An optimized BLAS library based on GotoBLAS2, pthreads version
150Group:   Development/Libraries
151Provides: blas64 lapack64 = %{lapackver}
152
153%description threads64_
154%{base_description}
155
156This package contains the library compiled with threading support and
15764-bit interface and a symbol name suffix.
158%endif
159
160
161%package devel
162Summary:  Development headers and libraries for OpenBLAS
163Group:    Development/Libraries
164Requires: %{name} = %{version}-%{release}
165Requires: %{name}-openmp = %{version}-%{release}
166Requires: %{name}-threads = %{version}-%{release}
167
168%description devel
169%{base_description}
170
171This package contains the development headers and libraries.
172
173
174%package static
175Summary:  Static version of OpenBLAS
176Group:    Development/Libraries
177Requires: %{name}-devel = %{version}-%{release}
178
179%description static
180%{base_description}
181
182This package contains the static libraries.
183
184
185%if %build64
186%package -n %{name}64-devel
187Summary:  Development headers and libraries for OpenBLAS (64bit)
188Group:    Development/Libraries
189Requires: %{name}-openmp64 = %{version}-%{release}
190Requires: %{name}-threads64 = %{version}-%{release}
191Requires: %{name}-serial64 = %{version}-%{release}
192Requires: %{name}-openmp64_ = %{version}-%{release}
193Requires: %{name}-threads64_ = %{version}-%{release}
194Requires: %{name}-serial64_ = %{version}-%{release}
195Requires: %{name}-devel = %{version}-%{release}
196
197%description  -n %{name}64-devel
198%{base_description}
199
200This package contains the development headers and libraries
201 compiled with a 64-bit interface.
202
203
204%package -n %{name}64-static
205Summary:  Static version of OpenBLAS (64bit)
206Group:    Development/Libraries
207Requires: %{name}64-devel = %{version}-%{release}
208
209%description -n %{name}64-static
210%{base_description}
211
212This package contains the static libraries
213 compiled with a 64-bit interface.
214%endif
215
216
217%prep
218%setup -q -c -T
219
220# Untar source
221tar zxf %{SOURCE0}
222cd OpenBLAS-%{version}
223%patch1 -p1 -b .libname
224# %patch2 -p1 -b .tests
225# %patch3 -p1 -b .affinity
226
227# Fix source permissions
228find -name \*.f -exec chmod 644 {} \;
229
230# Make serial, threaded and OpenMP versions; as well as 64-bit versions
231# Also make an libRblas.so
232cd ..
233cp -ar OpenBLAS-%{version} openmp
234cp -ar OpenBLAS-%{version} threaded
235
236%if %build64
237for d in {serial,threaded,openmp}64{,_}; do
238    cp -ar OpenBLAS-%{version} $d
239done
240%endif
241cp -ar OpenBLAS-%{version} Rblas
242mv OpenBLAS-%{version} serial
243
244# Hackup Rblas Makefiles
245sed -i 's|.so.$(MAJOR_VERSION)|.so|g' Rblas/Makefile
246sed -i 's|.so.$(MAJOR_VERSION)|.so|g' Rblas/exports/Makefile
247sed -i 's|@ln -fs $(LIBSONAME) $(LIBPREFIX).so|#@ln -fs $(LIBSONAME) $(LIBPREFIX).so|g' Rblas/Makefile
248
249%build
250# Maximum possible amount of processors
251NMAX="NUM_THREADS=128"
252TARGET="TARGET=CORE2 DYNAMIC_ARCH=1"
253export AVX="NO_AVX2=1"
254
255FCOMMON="%{optflags} -fPIC -frecursive"
256
257make -C Rblas      $TARGET USE_THREAD=0 USEOPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libRblas" LIBSONAME="libRblas.so" $AVX $LAPACKE INTERFACE64=0
258
259# Declare some necessary build flags
260COMMON="%{optflags} -fPIC"
261FCOMMON="$COMMON -frecursive"
262make -C serial     $TARGET USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblas"      $AVX $LAPACKE INTERFACE64=0
263make -C threaded   $TARGET USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblasp"     $AVX $LAPACKE INTERFACE64=0
264
265# USE_THREAD determines use of SMP, not of pthreads
266COMMON="%{optflags} -fPIC -fopenmp -pthread"
267FCOMMON="$COMMON -frecursive"
268make -C openmp     $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblaso"     $AVX $LAPACKE INTERFACE64=0
269
270%if %build64
271COMMON="%{optflags} -fPIC"
272FCOMMON="$COMMON -frecursive -fdefault-integer-8"
273make -C serial64   $TARGET USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblas64"    $AVX $LAPACKE INTERFACE64=1
274make -C threaded64 $TARGET USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblasp64"   $AVX $LAPACKE INTERFACE64=1
275
276COMMON="%{optflags} -fPIC -fopenmp -pthread"
277FCOMMON="$COMMON -frecursive -fdefault-integer-8"
278make -C openmp64   $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblaso64"   $AVX $LAPACKE INTERFACE64=1
279
280COMMON="%{optflags} -fPIC"
281FCOMMON="$COMMON -frecursive  -fdefault-integer-8"
282make -C serial64_   $TARGET USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblas64_"  $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_
283make -C threaded64_ $TARGET USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblasp64_" $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_
284
285COMMON="%{optflags} -fPIC -fopenmp -pthread"
286FCOMMON="$COMMON -frecursive -fdefault-integer-8"
287make -C openmp64_   $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblaso64_" $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_
288%endif
289
290%install
291rm -rf %{buildroot}
292# Install serial library and headers
293make -C serial USE_THREAD=0 PREFIX=%{buildroot} OPENBLAS_LIBRARY_DIR=%{buildroot}%{_libdir}/ OPENBLAS_INCLUDE_DIR=%{buildroot}%{_includedir}/%{name} OPENBLAS_BINARY_DIR=%{buildroot}%{_bindir} OPENBLAS_CMAKE_DIR=%{buildroot}%{_libdir}/cmake install
294
295slibname=`basename %{buildroot}%{_libdir}/libopenblas${suffix}-*.so .so`
296mv %{buildroot}%{_libdir}/${slibname}.a \
297   %{buildroot}%{_libdir}/lib%{name}.a
298if [[ "$suffix" != "" ]]; then
299   sname=$(echo $slibname | sed "s|$suffix||g")
300   mv %{buildroot}%{_libdir}/${slibname}.so \
301      %{buildroot}%{_libdir}/${sname}.so
302else
303   sname=${slibname}
304fi
305
306# Install the Rblas library
307mkdir -p %{buildroot}%{_libdir}/R/lib/
308install -p -m 755 Rblas/libRblas.so %{buildroot}%{_libdir}/R/lib/
309
310# Install the OpenMP library
311olibname=`echo ${slibname} | sed "s|lib%{name}|lib%{name}o|g"`
312install -D -p -m 644 openmp/${olibname}.a \
313        %{buildroot}%{_libdir}/lib%{name}o.a
314if [[ "$suffix" != "" ]]; then
315   oname=$(echo $olibname | sed "s|$suffix||g")
316else
317   oname=${olibname}
318fi
319install -D -p -m 755 openmp/${olibname}.so \
320        %{buildroot}%{_libdir}/${oname}.so
321
322# Install the threaded library
323plibname=`echo ${slibname} | sed "s|lib%{name}|lib%{name}p|g"`
324install -D -p -m 644 threaded/${plibname}.a \
325        %{buildroot}%{_libdir}/lib%{name}p.a
326if [[ "$suffix" != "" ]]; then
327   pname=$(echo $plibname | sed "s|$suffix||g")
328else
329   pname=${plibname}
330fi
331install -D -p -m 755 threaded/${plibname}.so \
332        %{buildroot}%{_libdir}/${pname}.so
333
334# Install the 64-bit interface libraries
335%if %build64
336slibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}64|g"`
337install -D -p -m 644 serial64/${slibname64}.a \
338        %{buildroot}%{_libdir}/lib%{name}64.a
339slibname64_=`echo ${slibname} | sed "s|lib%{name}|lib%{name}64_|g"`
340install -D -p -m 644 serial64_/${slibname64_}.a \
341        %{buildroot}%{_libdir}/lib%{name}64_.a
342
343if [[ "$suffix" != "" ]]; then
344   sname64=$(echo ${slibname64} | sed "s|$suffix||g")
345   sname64_=$(echo ${slibname64_} | sed "s|$suffix||g")
346else
347   sname64=${slibname64}
348   sname64_=${slibname64_}
349fi
350install -D -p -m 755 serial64/${slibname64}.so \
351        %{buildroot}%{_libdir}/${sname64}.so
352install -D -p -m 755 serial64_/${slibname64_}.so \
353        %{buildroot}%{_libdir}/${sname64_}.so
354
355olibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}o64|g"`
356install -D -p -m 644 openmp64/${olibname64}.a \
357        %{buildroot}%{_libdir}/lib%{name}o64.a
358olibname64_=`echo ${slibname} | sed "s|lib%{name}|lib%{name}o64_|g"`
359install -D -p -m 644 openmp64_/${olibname64_}.a \
360        %{buildroot}%{_libdir}/lib%{name}o64_.a
361
362if [[ "$suffix" != "" ]]; then
363   oname64=$(echo ${olibname64} | sed "s|$suffix||g")
364   oname64_=$(echo ${olibname64_} | sed "s|$suffix||g")
365else
366   oname64=${olibname64}
367   oname64_=${olibname64_}
368fi
369install -D -p -m 755 openmp64/${olibname64}.so \
370        %{buildroot}%{_libdir}/${oname64}.so
371install -D -p -m 755 openmp64_/${olibname64_}.so \
372        %{buildroot}%{_libdir}/${oname64_}.so
373
374plibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}p64|g"`
375install -D -p -m 644 threaded64/${plibname64}.a \
376        %{buildroot}%{_libdir}/lib%{name}p64.a
377plibname64_=`echo ${slibname} | sed "s|lib%{name}|lib%{name}p64_|g"`
378install -D -p -m 644 threaded64_/${plibname64_}.a \
379        %{buildroot}%{_libdir}/lib%{name}p64_.a
380
381if [[ "$suffix" != "" ]]; then
382   pname64=$(echo $plibname64 | sed "s|$suffix||g")
383   pname64_=$(echo $plibname64_ | sed "s|$suffix||g")
384else
385   pname64=${plibname64}
386   pname64_=${plibname64_}
387fi
388install -D -p -m 755 threaded64/${plibname64}.so \
389        %{buildroot}%{_libdir}/${pname64}.so
390install -D -p -m 755 threaded64_/${plibname64_}.so \
391        %{buildroot}%{_libdir}/${pname64_}.so
392%endif
393
394# Fix symlinks
395pushd %{buildroot}%{_libdir}
396# Serial libraries
397ln -sf ${sname}.so lib%{name}.so
398ln -sf ${sname}.so lib%{name}.so.0
399# OpenMP libraries
400ln -sf ${oname}.so lib%{name}o.so
401ln -sf ${oname}.so lib%{name}o.so.0
402# Threaded libraries
403ln -sf ${pname}.so lib%{name}p.so
404ln -sf ${pname}.so lib%{name}p.so.0
405
406%if %build64
407# Serial libraries
408ln -sf ${sname64}.so lib%{name}64.so
409ln -sf ${sname64}.so lib%{name}64.so.0
410ln -sf ${sname64_}.so lib%{name}64_.so
411ln -sf ${sname64_}.so lib%{name}64_.so.0
412# OpenMP libraries
413ln -sf ${oname64}.so lib%{name}o64.so
414ln -sf ${oname64}.so lib%{name}o64.so.0
415ln -sf ${oname64_}.so lib%{name}o64_.so
416ln -sf ${oname64_}.so lib%{name}o64_.so.0
417# Threaded libraries
418ln -sf ${pname64}.so lib%{name}p64.so
419ln -sf ${pname64}.so lib%{name}p64.so.0
420ln -sf ${pname64_}.so lib%{name}p64_.so
421ln -sf ${pname64_}.so lib%{name}p64_.so.0
422%endif
423popd
424
425# Get rid of generated CMake config
426rm -rf %{buildroot}%{_libdir}/cmake
427
428# pkg-config
429# fix libdir/includedir in openblas.pc
430pushd %{buildroot}%{_libdir}/pkgconfig
431mv openblas.pc tmp
432echo "libdir=%{_libdir}" > openblas.pc
433echo "includedir=%{_includedir}/%{name}" >> openblas.pc
434sed -e "1,2d" tmp >> openblas.pc
435rm -f tmp
436
437sed "s/-lopenblas/-lopenblaso/" openblas.pc >> openblaso.pc
438sed "s/-lopenblas/-lopenblasp/" openblas.pc >> openblasp.pc
439
440%if %build64
441sed "s/-lopenblas/-lopenblas64/" openblas.pc >> openblas64.pc
442sed "s/-lopenblas/-lopenblaso64/" openblas.pc >> openblaso64.pc
443sed "s/-lopenblas/-lopenblasp64/" openblas.pc >> openblasp64.pc
444sed "s/-lopenblas/-lopenblas64_/" openblas.pc >> openblas64_.pc
445sed "s/-lopenblas/-lopenblaso64_/" openblas.pc >> openblaso64_.pc
446sed "s/-lopenblas/-lopenblasp64_/" openblas.pc >> openblasp64_.pc
447%endif
448popd
449
450# blas/lapack
451mkdir -p %{buildroot}%{_libdir}/%{name}
452
453pushd %{buildroot}%{_libdir}/%{name}
454cp %{SOURCE11} blas.pc
455cp %{SOURCE12} cblas.pc
456cp %{SOURCE13} lapack.pc
457cp %{SOURCE14} lapacke.pc
458
459# blas
460sed -i 's|@libdir@|%{_libdir}|g' blas.pc
461sed -i 's|@LAPACK_VERSION@|%{version}|g' blas.pc
462
463# cblas
464sed -i 's|@libdir@|%{_libdir}|g' cblas.pc
465sed -i 's|@includedir@|%{_includedir}/%{name}|g' cblas.pc
466sed -i 's|@LAPACK_VERSION@|%{version}|g' cblas.pc
467
468# lapack
469sed -i 's|@libdir@|%{_libdir}|g' lapack.pc
470sed -i 's|@LAPACK_VERSION@|%{version}|g' lapack.pc
471
472# lapacke
473sed -i 's|@libdir@|%{_libdir}|g' lapacke.pc
474sed -i 's|@includedir@|%{_includedir}/%{name}|g' lapacke.pc
475sed -i 's|@LAPACK_VERSION@|%{version}|g' lapacke.pc
476
477%if %build64
478sed 's/-lblas/-blas64_/g' blas.pc > blas64.pc
479sed 's/-lcblas/-cblas64_/g' cblas.pc > cblas64.pc
480sed 's/-llapack/-llapack64_/g' lapack.pc > lapack64.pc
481sed 's/-llapacke/-llapacke64_/g' lapacke.pc > lapacke64.pc
482%endif
483popd
484
485
486%post
487update-alternatives \
488    --install %{_libdir}/libblas.so.3 libblas.so.3 \
489              %{_libdir}/libopenblas.so.0 40 \
490    --slave   %{_libdir}/libcblas.so.3 libcblas.so.3 \
491              %{_libdir}/libopenblas.so.0
492update-alternatives \
493    --install %{_libdir}/liblapack.so.3 liblapack.so.3 \
494              %{_libdir}/libopenblas.so.0 40 \
495    --slave   %{_libdir}/liblapacke.so.3 liblapacke.so.3 \
496              %{_libdir}/libopenblas.so.0
497/sbin/ldconfig
498
499%preun
500if [ "$1" = "0" ]
501then
502    update-alternatives \
503        --remove libblas.so.3 %{_libdir}/libopenblas.so.0
504    update-alternatives \
505        --remove liblapack.so.3 %{_libdir}/libopenblas.so.0
506fi
507
508%postun -p /sbin/ldconfig
509
510
511%post openmp
512update-alternatives \
513    --install %{_libdir}/libblas.so.3 libblas.so.3 \
514              %{_libdir}/libopenblaso.so.0 42 \
515    --slave   %{_libdir}/libcblas.so.3 libcblas.so.3 \
516              %{_libdir}/libopenblaso.so.0
517update-alternatives \
518    --install %{_libdir}/liblapack.so.3 liblapack.so.3 \
519              %{_libdir}/libopenblaso.so.0 42 \
520    --slave   %{_libdir}/liblapacke.so.3 liblapacke.so.3 \
521              %{_libdir}/libopenblaso.so.0
522/sbin/ldconfig
523
524%preun openmp
525if [ "$1" = "0" ]
526then
527    update-alternatives \
528        --remove libblas.so.3 %{_libdir}/libopenblaso.so.0
529    update-alternatives \
530        --remove liblapack.so.3 %{_libdir}/libopenblaso.so.0
531fi
532
533%postun openmp -p /sbin/ldconfig
534
535
536%post threads
537update-alternatives \
538    --install %{_libdir}/libblas.so.3 libblas.so.3 \
539              %{_libdir}/libopenblasp.so.0 45 \
540    --slave   %{_libdir}/libcblas.so.3 libcblas.so.3 \
541              %{_libdir}/libopenblasp.so.0
542update-alternatives \
543    --install %{_libdir}/liblapack.so.3 liblapack.so.3 \
544              %{_libdir}/libopenblasp.so.0 45 \
545    --slave   %{_libdir}/liblapacke.so.3 liblapacke.so.3 \
546              %{_libdir}/libopenblasp.so.0
547/sbin/ldconfig
548
549%preun threads
550if [ "$1" = "0" ]
551then
552    update-alternatives \
553        --remove libblas.so.3 %{_libdir}/libopenblasp.so.0
554    update-alternatives \
555        --remove liblapack.so.3 %{_libdir}/libopenblasp.so.0
556fi
557
558%postun threads -p /sbin/ldconfig
559
560
561%if %build64
562%post serial64 -p /sbin/ldconfig
563%postun serial64 -p /sbin/ldconfig
564
565%post openmp64 -p /sbin/ldconfig
566%postun openmp64 -p /sbin/ldconfig
567
568%post threads64 -p /sbin/ldconfig
569%postun threads64 -p /sbin/ldconfig
570
571
572%post serial64_
573update-alternatives \
574    --install %{_libdir}/libblas64_.so.3 libblas64_.so.3 \
575              %{_libdir}/libopenblas64_.so.0 40 \
576    --slave   %{_libdir}/libcblas64_.so.3 libcblas64_.so.3 \
577              %{_libdir}/libopenblas64_.so.0
578update-alternatives \
579    --install %{_libdir}/liblapack64_.so.3 liblapack64_.so.3 \
580              %{_libdir}/libopenblas64_.so.0 40
581update-alternatives \
582    --install %{_libdir}/liblapacke64_.so.3 liblapacke64_.so.3 \
583              %{_libdir}/libopenblas64_.so.0 40
584/sbin/ldconfig
585
586%preun serial64_
587if [ "$1" = "0" ]
588then
589    update-alternatives \
590        --remove libblas64_.so.3 %{_libdir}/libopenblas64_.so.0
591    update-alternatives \
592        --remove liblapack64_.so.3 %{_libdir}/libopenblas64_.so.0
593    update-alternatives \
594        --remove liblapacke64_.so.3 %{_libdir}/libopenblas64_.so.0
595fi
596
597%postun serial64_ -p /sbin/ldconfig
598
599
600%post openmp64_
601update-alternatives \
602    --install %{_libdir}/libblas64_.so.3 libblas64_.so.3 \
603              %{_libdir}/libopenblaso64_.so.0 42 \
604    --slave   %{_libdir}/libcblas64_.so.3 libcblas64_.so.3 \
605              %{_libdir}/libopenblaso64_.so.0
606update-alternatives \
607    --install %{_libdir}/liblapack64_.so.3 liblapack64_.so.3 \
608              %{_libdir}/libopenblaso64_.so.0 42
609update-alternatives \
610    --install %{_libdir}/liblapacke64_.so.3 liblapacke64_.so.3 \
611              %{_libdir}/libopenblaso64_.so.0 42
612/sbin/ldconfig
613
614%preun openmp64_
615if [ "$1" = "0" ]
616then
617    update-alternatives \
618        --remove libblas64_.so.3 %{_libdir}/libopenblaso64_.so.0
619    update-alternatives \
620        --remove liblapack64_.so.3 %{_libdir}/libopenblaso64_.so.0
621    update-alternatives \
622        --remove liblapacke64_.so.3 %{_libdir}/libopenblaso64_.so.0
623fi
624
625%postun openmp64_ -p /sbin/ldconfig
626
627
628%post threads64_
629update-alternatives \
630    --install %{_libdir}/libblas64_.so.3 libblas64_.so.3 \
631              %{_libdir}/libopenblasp64_.so.0 45 \
632    --slave   %{_libdir}/libcblas64_.so.3 libcblas64_.so.3 \
633              %{_libdir}/libopenblasp64_.so.0
634update-alternatives \
635    --install %{_libdir}/liblapack64_.so.3 liblapack64_.so.3 \
636              %{_libdir}/libopenblasp64_.so.0 45
637update-alternatives \
638    --install %{_libdir}/liblapacke64_.so.3 liblapacke64_.so.3 \
639              %{_libdir}/libopenblasp64_.so.0 45
640/sbin/ldconfig
641
642%preun threads64_
643if [ "$1" = "0" ]
644then
645    update-alternatives \
646        --remove libblas64_.so.3 %{_libdir}/libopenblasp64_.so.0
647    update-alternatives \
648        --remove liblapack64_.so.3 %{_libdir}/libopenblasp64_.so.0
649    update-alternatives \
650        --remove liblapacke64_.so.3 %{_libdir}/libopenblasp64_.so.0
651fi
652
653%postun threads64_ -p /sbin/ldconfig
654%endif
655
656
657%post devel
658update-alternatives \
659    --install %{_libdir}/libblas.so libblas.so \
660              %{_libdir}/libopenblas.so 40 \
661    --slave   %{_libdir}/libcblas.so libcblas.so \
662              %{_libdir}/libopenblas.so \
663    --slave   %{_libdir}/pkgconfig/blas.pc blas.pc \
664              %{_libdir}/%{name}/blas.pc \
665    --slave   %{_libdir}/pkgconfig/cblas.pc cblas.pc \
666              %{_libdir}/%{name}/cblas.pc
667update-alternatives \
668    --install %{_libdir}/liblapack.so liblapack.so \
669              %{_libdir}/libopenblas.so 40 \
670    --slave   %{_libdir}/liblapacke.so liblapacke.so \
671              %{_libdir}/libopenblas.so \
672    --slave   %{_libdir}/pkgconfig/lapack.pc lapack.pc \
673              %{_libdir}/%{name}/lapack.pc \
674    --slave   %{_libdir}/pkgconfig/lapacke.pc lapacke.pc \
675              %{_libdir}/%{name}/lapacke.pc
676/sbin/ldconfig
677
678%preun devel
679if [ "$1" = "0" ]
680then
681    update-alternatives \
682        --remove libblas.so %{_libdir}/libopenblas.so
683    update-alternatives \
684        --remove liblapack.so %{_libdir}/libopenblas.so
685fi
686
687%postun devel -p /sbin/ldconfig
688
689
690%if %build64
691%post -n %{name}64-devel
692update-alternatives \
693    --install %{_libdir}/libblas64_.so libblas64_.so \
694              %{_libdir}/libopenblas64_.so 40 \
695    --slave   %{_libdir}/libcblas64_.so libcblas64_.so \
696              %{_libdir}/libopenblas64_.so \
697    --slave   %{_libdir}/pkgconfig/blas64.pc blas64.pc \
698              %{_libdir}/%{name}/blas64.pc \
699    --slave   %{_libdir}/pkgconfig/cblas64.pc cblas64.pc \
700              %{_libdir}/%{name}/cblas64.pc
701update-alternatives \
702    --install %{_libdir}/liblapack64_.so liblapack64_.so \
703              %{_libdir}/libopenblas64_.so 40 \
704    --slave   %{_libdir}/pkgconfig/lapack64.pc lapack64.pc \
705              %{_libdir}/%{name}/lapack64.pc
706update-alternatives \
707    --install %{_libdir}/liblapacke64_.so liblapacke64_.so \
708              %{_libdir}/libopenblas64_.so 40 \
709    --slave   %{_libdir}/pkgconfig/lapacke64.pc lapacke64.pc \
710              %{_libdir}/%{name}/lapacke64.pc
711/sbin/ldconfig
712
713%preun -n %{name}64-devel
714if [ "$1" = "0" ]
715then
716    update-alternatives \
717        --remove libblas64_.so %{_libdir}/libopenblas64_.so
718    update-alternatives \
719        --remove liblapack64_.so %{_libdir}/libopenblas64_.so
720    update-alternatives \
721        --remove liblapacke64_.so %{_libdir}/libopenblas64_.so
722fi
723
724%postun -n %{name}64-devel -p /sbin/ldconfig
725%endif
726
727
728%post static
729update-alternatives \
730    --install %{_libdir}/libblas.a libblas.a \
731              %{_libdir}/libopenblas.a 40 \
732    --slave   %{_libdir}/libcblas.a libcblas.a \
733              %{_libdir}/libopenblas.a
734update-alternatives \
735    --install %{_libdir}/liblapack.a liblapack.a \
736              %{_libdir}/libopenblas.a 40 \
737    --slave   %{_libdir}/liblapacke.a liblapacke.a \
738              %{_libdir}/libopenblas.a
739
740%preun static
741if [ "$1" = "0" ]
742then
743    update-alternatives \
744        --remove libblas.a %{_libdir}/libopenblas.a
745    update-alternatives \
746        --remove liblapack.a %{_libdir}/libopenblas.a
747fi
748
749
750%if %build64
751%post -n %{name}64-static
752update-alternatives \
753    --install %{_libdir}/libblas64_.a libblas64_.a \
754              %{_libdir}/libopenblas64_.a 40 \
755    --slave   %{_libdir}/libcblas64_.a libcblas64_.a \
756              %{_libdir}/libopenblas64_.a
757update-alternatives \
758    --install %{_libdir}/liblapack64_.a liblapack64_.a \
759              %{_libdir}/libopenblas64_.a 40
760update-alternatives \
761    --install %{_libdir}/liblapacke64_.a liblapacke64_.a \
762              %{_libdir}/libopenblas64_.a 40
763
764%preun -n %{name}64-static
765if [ "$1" = "0" ]
766then
767    update-alternatives \
768        --remove libblas64_.a %{_libdir}/libopenblas64_.a
769    update-alternatives \
770        --remove liblapack64_.a %{_libdir}/libopenblas64_.a
771    update-alternatives \
772        --remove liblapacke64_.a %{_libdir}/libopenblas64_.a
773fi
774%endif
775
776
777%post Rblas -p /sbin/ldconfig
778%postun Rblas -p /sbin/ldconfig
779
780
781%clean
782rm -rf %{buildroot}
783
784
785%files
786%doc serial/Changelog.txt serial/GotoBLAS* serial/LICENSE
787%{_libdir}/lib%{name}-*.so
788%{_libdir}/lib%{name}.so.*
789
790%files openmp
791%doc openmp/Changelog.txt openmp/GotoBLAS* openmp/LICENSE
792%{_libdir}/lib%{name}o-*.so
793%{_libdir}/lib%{name}o.so.*
794
795%files threads
796%doc threaded/Changelog.txt threaded/GotoBLAS* threaded/LICENSE
797%{_libdir}/lib%{name}p-*.so
798%{_libdir}/lib%{name}p.so.*
799
800%if %build64
801%files serial64
802%doc serial64/Changelog.txt serial64/GotoBLAS* serial64/LICENSE
803%{_libdir}/lib%{name}64-*.so
804%{_libdir}/lib%{name}64.so.*
805
806%files serial64_
807%doc serial64_/Changelog.txt serial64_/GotoBLAS* serial64_/LICENSE
808%{_libdir}/lib%{name}64_-*.so
809%{_libdir}/lib%{name}64_.so.*
810
811%files openmp64
812%doc openmp64/Changelog.txt openmp64/GotoBLAS* openmp64/LICENSE
813%{_libdir}/lib%{name}o64-*.so
814%{_libdir}/lib%{name}o64.so.*
815
816%files openmp64_
817%doc openmp64_/Changelog.txt openmp64_/GotoBLAS* openmp64_/LICENSE
818%{_libdir}/lib%{name}o64_-*.so
819%{_libdir}/lib%{name}o64_.so.*
820
821%files threads64
822%doc threaded64/Changelog.txt threaded64/GotoBLAS* threaded64/LICENSE
823%{_libdir}/lib%{name}p64-*.so
824%{_libdir}/lib%{name}p64.so.*
825
826%files threads64_
827%doc threaded64_/Changelog.txt threaded64_/GotoBLAS* threaded64_/LICENSE
828%{_libdir}/lib%{name}p64_-*.so
829%{_libdir}/lib%{name}p64_.so.*
830%endif
831
832%files Rblas
833%dir %{_libdir}/R/lib
834%{_libdir}/R/lib/libRblas.so
835
836%files devel
837%{_includedir}/%{name}/
838%{_libdir}/lib%{name}.so
839%{_libdir}/lib%{name}o.so
840%{_libdir}/lib%{name}p.so
841%{_libdir}/pkgconfig/openblas.pc
842%{_libdir}/pkgconfig/openblaso.pc
843%{_libdir}/pkgconfig/openblasp.pc
844%dir %{_libdir}/%{name}
845%{_libdir}/%{name}/blas.pc
846%{_libdir}/%{name}/cblas.pc
847%{_libdir}/%{name}/lapack.pc
848%{_libdir}/%{name}/lapacke.pc
849
850%files static
851%{_libdir}/lib%{name}.a
852%{_libdir}/lib%{name}o.a
853%{_libdir}/lib%{name}p.a
854
855%if %build64
856%files -n %{name}64-devel
857%{_libdir}/lib%{name}64.so
858%{_libdir}/lib%{name}o64.so
859%{_libdir}/lib%{name}p64.so
860%{_libdir}/lib%{name}64_.so
861%{_libdir}/lib%{name}o64_.so
862%{_libdir}/lib%{name}p64_.so
863%{_libdir}/pkgconfig/*64.pc
864%{_libdir}/pkgconfig/*64_.pc
865%dir %{_libdir}/%{name}
866%{_libdir}/%{name}/*64*.pc
867
868%files -n %{name}64-static
869%{_libdir}/lib%{name}64.a
870%{_libdir}/lib%{name}o64.a
871%{_libdir}/lib%{name}p64.a
872%{_libdir}/lib%{name}64_.a
873%{_libdir}/lib%{name}o64_.a
874%{_libdir}/lib%{name}p64_.a
875%endif
876
877
878%changelog
879* Mon Oct 14 2019 Toshiaki Ara <ara_t@384.jp> 0.3.7-1
880- update to 0.3.7
881
882* Fri Jan 25 2019 Toshiaki Ara <ara_t@384.jp> 0.3.3-2
883- rebuild with gfortran-8.2.0
884
885* Sat Oct 06 2018 Toshiaki Ara <ara_t@384.jp> 0.3.3-1
886- update to 0.3.3
887- drop Patch2 and 3
888
889* Mon Jul 02 2018 Toshiaki Ara <ara_t@384.jp> 0.2.20-2
890- divide subpackages: openblas64-devel openblas64-static
891- fix wrong Provides
892
893* Wed Jun 27 2018 Toshiaki Ara <ara_t@384.jp> 0.2.20-1
894- initial build for Vine Linux (only x86_64 and %%{ix86})
895
Note: See TracBrowser for help on using the repository browser.