* Fixed compilation on ARM platforms. * Add support for LoongArch. OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/cln?expand=0&rev=14
136 lines
4.6 KiB
RPMSpec
136 lines
4.6 KiB
RPMSpec
#
|
|
# spec file for package cln
|
|
#
|
|
# Copyright (c) 2024 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
Name: cln
|
|
Version: 1.3.7
|
|
Release: 0
|
|
Summary: Class Library for Numbers (C++)
|
|
License: GPL-2.0-or-later
|
|
Group: Productivity/Scientific/Math
|
|
URL: https://www.ginac.de/CLN/
|
|
Source0: https://www.ginac.de/CLN/cln-%{version}.tar.bz2
|
|
Source1: pi.tar.gz
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: gmp-devel
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: texinfo
|
|
Requires(pre): %{install_info_prereq}
|
|
Provides: libcln
|
|
Provides: pi
|
|
|
|
%description
|
|
CLN features a rich set of number classes: integer (unlimited
|
|
precision), rational, short float, single float, double float, long
|
|
float (unlimited precision), complex, modular integer, and univariate
|
|
polynomial. It implements elementary, logical, and transcendental
|
|
functions. C++ as the implementation language brings efficiency, type
|
|
safety, and algebraic syntax. Memory efficiency: small integers and
|
|
short floats are immediate, not heap allocated. Automatic,
|
|
noninterruptive garbage collection. Speed efficiency: assembly
|
|
language kernel for some CPUs, Karatsuba and Schoenhage-Strassen
|
|
multiplication. Interoperability: garbage collection with no burden on
|
|
the main application, hooks for memory allocation and exceptions.
|
|
|
|
The following C++ features are used: classes, member functions,
|
|
overloading of functions and operators, constructors and destructors,
|
|
inline, const, multiple inheritance, templates, and namespaces. The
|
|
following C++ features are not used: new, delete, virtual inheritance,
|
|
and exceptions.
|
|
|
|
%package devel
|
|
Summary: Class Library for Numbers (C++)
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{name} = %{version}
|
|
Requires(pre): %{install_info_prereq}
|
|
|
|
%description devel
|
|
CLN features a rich set of number classes: integer (unlimited
|
|
precision), rational, short float, single float, double float, long
|
|
float (unlimited precision), complex, modular integer, and univariate
|
|
polynomial. It implements elementary, logical, and transcendental
|
|
functions. C++ as the implementation language brings efficiency, type
|
|
safety, and algebraic syntax. Memory efficiency: small integers and
|
|
short floats are immediate, not heap allocated. Automatic,
|
|
noninterruptive garbage collection. Speed efficiency: assembly
|
|
language kernel for some CPUs, Karatsuba and Schoenhage-Strassen
|
|
multiplication. Interoperability: garbage collection with no burden on
|
|
the main application, hooks for memory allocation and exceptions.
|
|
|
|
The following C++ features are used: classes, member functions,
|
|
overloading of functions and operators, constructors and destructors,
|
|
inline, const, multiple inheritance, templates, and namespaces. The
|
|
following C++ features are not used: new, delete, virtual inheritance,
|
|
and exceptions.
|
|
|
|
%prep
|
|
%setup -q -a 1
|
|
|
|
%build
|
|
%ifarch %{arm}
|
|
%global XFLAGS %{optflags} -DNO_ASM
|
|
%else
|
|
%global XFLAGS %{optflags}
|
|
%endif
|
|
CFLAGS="%{XFLAGS} -fno-unit-at-a-time" \
|
|
CXXFLAGS="%{XFLAGS} -fno-strict-aliasing -fno-unit-at-a-time -fno-reorder-blocks" \
|
|
%configure --disable-static
|
|
make %{?_smp_mflags}
|
|
make %{?_smp_mflags} check
|
|
#cd benchmarks
|
|
#for i in a ap b ; do
|
|
# ./timebench2$i -r 10
|
|
#done
|
|
#cd ..
|
|
g++ %{optflags} -I./include pi.cc -o pi -L./src/.libs/ -lcln -lgmp
|
|
make %{?_smp_mflags} html
|
|
|
|
%install
|
|
mkdir -p %{buildroot}%{_docdir}/cln
|
|
make DESTDIR=%{buildroot} MANDIR=%{_mandir} htmldir=%{_docdir}/cln install
|
|
install -m 755 pi %{buildroot}%{_bindir}
|
|
rm -f %{buildroot}%{_libdir}/libcln.la
|
|
|
|
%check
|
|
make %{?_smp_mflags} check
|
|
|
|
%post -p /sbin/ldconfig
|
|
%postun -p /sbin/ldconfig
|
|
|
|
%post devel
|
|
%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
|
|
|
|
%postun devel
|
|
%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
|
|
|
|
%files
|
|
%doc ChangeLog README NEWS
|
|
%license COPYING
|
|
%{_bindir}/pi
|
|
%{_libdir}/libcln.so.*
|
|
|
|
%files devel
|
|
%doc ChangeLog README NEWS
|
|
%license COPYING
|
|
%{_includedir}/cln
|
|
%{_infodir}/cln.info%{?ext_info}
|
|
%{_mandir}/man1/pi.1%{?ext_man}
|
|
%{_libdir}/libcln.so
|
|
%{_libdir}/pkgconfig/cln.pc
|
|
|
|
%changelog
|