summaryrefslogtreecommitdiff
path: root/symmlq.spec
blob: e68c7f6ede65f0658e69bddc31c592f3c779e971 (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
#
# Conditional build:
%bcond_with	acml    # With ACML version of BLAS instead of NETLIB implementation
%bcond_with	atlas	# With ATLAS version of BLAS instead of NETLIB implementation
			# (mutually exclusive with acml)
#
Summary:	Iterative linear equations solver
Summary(pl.UTF-8):	Rozwiązywanie równań liniowych metodą iteracyjną
Name:		symmlq
Version:	19991020
Release:	2%{?with_acml:ACML}%{?with_atlas:ATLAS}
License:	CPL
Group:		Libraries
Source0:	http://www.stanford.edu/group/SOL/software/symmlq/f77/symmlq.f
# Source0-md5:	8ecce1c4dfc28755229b4a34fa4b80ec
Source1:	http://www.stanford.edu/group/SOL/software/symmlq/f77/symmlq_f77.README
# Source1-md5:	83b1bfa5653f9a01758e999a1e047c79
Patch0:		%{name}-automake_support.patch
URL:		http://www.stanford.edu/group/SOL/software/symmlq.html
BuildRequires:	autoconf
BuildRequires:	automake
%{!?with_acml:%{!?with_atlas:BuildRequires:	blas-devel}}
BuildRequires:	gcc-g77
BuildRequires:	libtool >= 2:1.5
%{?with_acml:ExclusiveArch:	%{x8664}}
BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)

%description
Implementation of a conjugate-gradient type method for solving sparse
linear equations: solve Ax = b or (A - sI)x = b. The matrix A - sI must
be symmetric and nonsingular, but it may be definite or indefinite. The
scalar s is a shifting parameter -- it may be any number. The method is
based on Lanczos tridiagonalization. You may provide a preconditioner,
but it must be positive definite. 

%description -l pl.UTF-8
Implementacja gradientowej metody rozwiązywania rzadkich układów równań
liniowych, postaci Ax = b albo (A - sI)x = b. Macierz A - sI musi być
symetryczna i nieosobliwa, ale nie musi być określona. Skalar s może być
dowolną liczbą. Metoda jest oparta na trójdiagonalizacji Lanczosa. Można
jej dostarczyć dodatnio określony preconditioner.

%package devel
Summary:	SYMMLQ development files
Summary(pl.UTF-8):	Pliki programistyczne SYMMLQ
Group:		Development/Libraries
Requires:	%{name} = %{version}-%{release}

%description devel
SYMMLQ development files.

%description devel -l pl.UTF-8
Pliki programistyczne SYMMLQ.

%package static
Summary:	Static SYMMLQ library
Summary(pl.UTF-8):	Statyczna biblioteka SYMMLQ
Group:		Development/Libraries
Requires:	%{name}-devel = %{version}-%{release}

%description static
Static SYMMLQ library.

%description static -l pl.UTF-8
Statyczna biblioteka SYMMLQ.

%prep
%setup -q -c -T
%patch0 -p1

cp %{SOURCE0} .
cp %{SOURCE1} README

%build
%{__libtoolize}
%{__aclocal}
%{__autoconf}
%{__autoheader}
%{__automake}
%configure \
	CFLAGS=-O3 \
	LDFLAGS=%{?with_acml:"-lm -lg2c -lacml"}%{?with_atlas:"-lf77blas -latlas"}%{!?with_acml:%{!?with_atlas:-lblas}}
%{__make}

%install
rm -rf $RPM_BUILD_ROOT

%{__make} install \
	DESTDIR=$RPM_BUILD_ROOT

%clean
rm -rf $RPM_BUILD_ROOT

%post	-p /sbin/ldconfig
%postun	-p /sbin/ldconfig

%files
%defattr(644,root,root,755)
%doc README
%attr(755,root,root) %{_libdir}/libsymmlq.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libsymmlq.so.1

%files devel
%defattr(644,root,root,755)
%doc symmlq.f
%attr(755,root,root) %{_libdir}/libsymmlq.so
%{_libdir}/libsymmlq.la

%files static
%defattr(644,root,root,755)
%{_libdir}/libsymmlq.a