+#
+# Conditional build (only one option at time makes sense; if more specified
+# - only "highest" is used):
+# _with_mmx - with MMX instructions (i586, i686 targets)
+# _with_p3mmx - with Pentium /// MMX instructions (i686 target)
+# _with_k6 - with AMD K6 instructions (i586 target)
+# _with_k62 - with AMD K6-2/K6-3 instructions (i586 target)
+# _with_k7 - with AMD Athlon/Duron instructions (i686 target)
+#
Summary: GNU arbitrary precision library
Summary(de): Beliebige Genauigkeits-Library
+Summary(es): Biblioteca de precisión arbitraria de la GNU
Summary(fr): Bibliothèque de calcul de précision
Summary(pl): Biblioteka arytmetyczna GNU
+Summary(pt_BR): Biblioteca de precisão arbitrária da GNU
+Summary(uk): â¦Â̦ÏÔÅËÁ GNU ÄÏצÌØÎϧ ÔÏÞÎÏÓÔ¦
+Summary(ru): âÉÂÌÉÏÔÅËÁ GNU ÐÒÏÉÚ×ÏÌØÎÏÊ ÔÏÞÎÏÓÔÉ
Name: gmp
-Version: 2.0.2
-Release: 14
-Copyright: LGPL
+Version: 4.1.2
+Release: 1
+License: LGPL
Group: Libraries
-Group(pl): Biblioteki
-Source: ftp://ftp.gnu.org/pub/gnu/%{name}-%{version}.tar.gz
-Patch0: gmp-shared.patch
-Patch1: http://www.swox.com/gmp/mpf-conversions.diff.gz
-Patch2: http://www.swox.com/gmp/gmp2.0.2p2.txt
-Patch3: http://www.swox.com/gmp/gmp2.0.2p3.txt
-Patch4: http://www.swox.com/gmp/gmp2.0.2p4.txt
-Patch5: http://www.swox.com/gmp/gmp2.0.2p5.txt
-Patch6: http://www.swox.com/gmp/gmp2.0.2p6.txt
-Patch7: http://www.swox.com/gmp/gmp2.0.2p7.txt
-Patch8: http://www.swox.com/gmp/gmp2.0.2p8.txt
-Patch9: http://www.swox.com/gmp/gmp2.0.2p9.txt
-Patch10: gmp-powerpc.patch
-Patch11: gmp-info.patch
-Patch12: gmp-DESTDIR.patch
-Patch13: gmp-sparc.patch
+Source0: ftp://ftp.gnu.org/pub/gnu/gmp/%{name}-%{version}.tar.gz
+Patch0: %{name}-info.patch
+Patch1: %{name}-am_fix.patch
+Patch2: %{name}-asmcpu.patch
URL: http://www.swox.com/gmp/
+BuildRequires: autoconf >= 2.52
+BuildRequires: automake
+BuildRequires: libtool
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+Obsoletes: libgmp3
+
+%ifarch i586
+%define _cpu %{?_with_k62:k62}%{!?_with_k62:%{?_with_k6:k6}%{!?_with_k6:%{?_with_mmx:pentiummmx}%{!?_with_mmx:i586}}}
+%else
+%ifarch i686
+%define _cpu %{?_with_p3mmx:pentium3}%{!?_with_p3mmx:%{?_with_k7:athlon}%{!?_with_k7:%{?_with_mmx:pentium2}%{!?_with_mmx:i686}}}
+%else
+%define _cpu %{_arch}
+%endif
+%endif
%description
The gmp package contains GNU MP, a library for arbitrary precision
-arithmetic, signed integers operations, rational numbers and floating point
-numbers. GNU MP is designed for speed, for both small and very large
-operands. GNU MP is fast for several reasons: It uses fullwords as the basic
-arithmetic type, it uses fast algorithms, it carefully optimizes assembly
-code for many CPUs' most common inner loops and it generally emphasizes
-speed over simplicity/elegance in its operations.
+arithmetic, signed integers operations, rational numbers and floating
+point numbers. GNU MP is designed for speed, for both small and very
+large operands. GNU MP is fast for several reasons: It uses fullwords
+as the basic arithmetic type, it uses fast algorithms, it carefully
+optimizes assembly code for many CPUs' most common inner loops and it
+generally emphasizes speed over simplicity/elegance in its operations.
-Install the gmp package if you need a fast arbitrary precision library.
+Install the gmp package if you need a fast arbitrary precision
+library.
%description -l de
-Das gmp-paket enthält GNU MP, eine Library für Arithmetik bei beliebiger
-Genauigkeit, Operationen mit Intergern mit Vorzeichen, Rationale Zahlen, und
-Floating Point-Zahlen. GNU MP wurde für Geschwindigkeit sowohl für kleine
-als auch für sehr große Operanden optimiert. GNU MP ist aus mehreren Gründen
-schnell: Es benutzt fullwords als grundlegenden Arithmetik-Typ, benutzt
-schnelle Algorithmen, und benutzt Assembler-Code für verschiedene CPUs, und
+Das gmp-paket enthält GNU MP, eine Library für Arithmetik bei
+beliebiger Genauigkeit, Operationen mit Intergern mit Vorzeichen,
+Rationale Zahlen, und Floating Point-Zahlen. GNU MP wurde für
+Geschwindigkeit sowohl für kleine als auch für sehr große Operanden
+optimiert. GNU MP ist aus mehreren Gründen schnell: Es benutzt
+fullwords als grundlegenden Arithmetik-Typ, benutzt schnelle
+Algorithmen, und benutzt Assembler-Code für verschiedene CPUs, und
legt mehr Wert auf Geschwindigkeit als auf Einfachheit der Funktionen.
-Installieren Sie das gmp-Paket, wenn Sie eine schnelle Library für beliebige
-Genauigket brauchen.
+Installieren Sie das gmp-Paket, wenn Sie eine schnelle Library für
+beliebige Genauigket brauchen.
+
+%description -l es
+Esta es la biblioteca GNU de precisión arbitraria. Da acceso a
+funciones para manipular arbitrariamente grandes números con
+interfaces de alto o bajo nivel.
%description -l fr
Ce package contient la bibliothèque GNU MP. Cette dernière permet de
-calculer avec une grande précision sur des nombres entiers, rationnels ou
-même des fractions, signés ou non. GNU MP a été conçue pour être rapide
-pour les petits nombres ainsi que les très grands grâce à plusieurs
-techniques (calcul sur plusieurs chiffres hexa simultanés, algorithmes
-optimisés, utilisation de l'assembleur pour les routines critiques) parfois
-au détriment de la simplicité ou l'élégance.
+calculer avec une grande précision sur des nombres entiers, rationnels
+ou même des fractions, signés ou non. GNU MP a été conçue pour être
+rapide pour les petits nombres ainsi que les très grands grâce à
+plusieurs techniques (calcul sur plusieurs chiffres hexa simultanés,
+algorithmes optimisés, utilisation de l'assembleur pour les routines
+critiques) parfois au détriment de la simplicité ou l'élégance.
-Installez ce package si vous avez besoin d'une bibliothèque de calcul de
-précision rapide
+Installez ce package si vous avez besoin d'une bibliothèque de calcul
+de précision rapide
%description -l pl
-Pakiet zawiera bibliotekê arytmetyczn± wysokiej precyzji. Daje ona dostêp do
-szerokiego grona szybkich funkcji arytmetycznych dzia³aj±cych na liczbach
-ca³kowitych, rzeczywistych i zmiennoprzecinkowych.
+Pakiet zawiera bibliotekê arytmetyczn± wysokiej precyzji. Daje ona
+dostêp do szerokiego grona szybkich funkcji arytmetycznych
+dzia³aj±cych na liczbach ca³kowitych, rzeczywistych i
+zmiennoprzecinkowych.
+
+%description -l pt_BR
+Esta é a biblioteca GNU de precisão arbitrária. Ela dá acesso a
+funções para manipular arbitrariamente grandes números com interfaces
+de alto ou baixo nível.
+
+%description -l uk
+㊦Â̦ÏÔÅËÁ GNU ÄÏצÌØÎϧ ÔÏÞÎÏÓÔ¦. ú¦ÒËÁ ÐÒÏÇÒÁÍ Ú ÎÅÀ ÎÁÄÁ¤ ÃÉÍ
+ÐÒÏÇÒÁÍÁÍ ÄÏÓÔÕÐ ÄÏ ÆÕÎËÃ¦Ê ÄÌÑ ÒÏÂÏÔÉ Ú ÑË ÚÁ×ÇÏÄÎÏ ×ÅÌÉËÉÍÉ ÞÉÓÌÁÍÉ
+ÞÅÒÅÚ ¦ÎÔÅÒÆÅÊÓÉ ÑË ÎÉÚØËÏÇÏ ÔÁË ¦ ×ÉÓÏËÏÇÏ Ò¦×ÎÑ.
+
+%description -l ru
+üÔÏ ÂÉÂÌÉÏÔÅËÁ GNU ÐÒÏÉÚ×ÏÌØÎÏÊ ÔÏÞÎÏÓÔÉ. óÂÏÒËÁ Ó ÎÅÊ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ
+ÄÏÓÔÕÐ Ë ÆÕÎËÃÉÑÍ ÄÌÑ ÒÁÂÏÔÙ ÓÏ ÓËÏÌØ ÕÇÏÄÎÏ ÂÏÌØÛÉÍÉ ÞÉÓÌÁÍÉ ËÁË
+ÞÅÒÅÚ ÎÉÚËÏ-, ÔÁË É ÞÅÒÅÚ ×ÙÓÏËÏÕÒÏ×ÎÅ×ÙÊ ÉÎÔÅÒÆÅÊÓ.
%package devel
-Summary: GNU Arbitrary Precision header files, static libraries, and documentation.
+Summary: GNU Arbitrary Precision header files, static libraries, and documentation
Summary(de): Entwicklungstools für GNU MP
+Summary(es): Archivos de inclusión, bibliotecas y documentación de la biblioteca gmp
Summary(fr): Outils de développement pour la bibliothèque de calcul GMP
-Summary(pl): Pliki nag³ówkowe i dokumentacja.
+Summary(pl): Pliki nag³ówkowe i dokumentacja do biblioteki gmp
+Summary(pt_BR): Arquivos de inclusão, bibliotecas e documentação da biblioteca gmp
+Summary(uk): ¶ÎÓÔÒÕÍÅÎÔÉ ÒÏÚÒÏÂËÉ ÄÌÑ Â¦Â̦ÏÔÅËÉ GNU ÄÏצÌØÎϧ ÔÏÞÎÏÓÔ¦
+Summary(ru): éÎÓÔÒÕÍÅÎÔÙ ÒÁÚÒÁÂÏÔËÉ ÄÌÑ ÂÉÂÌÉÏÔÅËÉ GNU ÐÒÏÉÚ×ÏÌØÎÏÊ ÔÏÞÎÏÓÔÉ
Group: Development/Libraries
-Group(pl): Programowanie/Biblioteki
+Requires: %{name} = %{version}
+Obsoletes: libgmp3-devel
%description devel
-The static libraries, header files and documentation for using the GNU MP
-arbitrary precision library in applications.
+The static libraries, header files and documentation for using the GNU
+MP arbitrary precision library in applications.
If you want to develop applications which will use the GNU MP library,
you'll need to install the gmp-devel package.
-%description -l de devel
-Statische Libraries, Header Files und Dokumentation zum Benutzen der GNU MP
-Library.
+%description devel -l de
+Statische Libraries, Header Files und Dokumentation zum Benutzen der
+GNU MP Library.
-%description -l fr devel
-Ce package comprend les bibliothèques statiques, les fichiers d'en-tête et
-la documentation nécessaires pour utiliser la bibliothèque de calcul de
-précision dans les applications.
+%description devel -l es
+Estas son las bibliotecas, archivos de inclusión y documentación para
+usar la biblioteca GNU de precisión arbitraria en tus programas.
+
+%description devel -l fr
+Ce package comprend les bibliothèques statiques, les fichiers
+d'en-tête et la documentation nécessaires pour utiliser la
+bibliothèque de calcul de précision dans les applications.
Vous n'avez besoin de ce package que si vous comptez programmer des
applications utilisant la bibliothèque GNU MP.
-%description -l pl devel
-Pliko nag³ówkowe i dokumentacji do gmp. Dziêki temu pakietowi bêdziesz
-móg³ tworzyæ w³asne programy z wykorzystaniem bblioteki arbitralnej z GNU.
+%description devel -l pl
+Pliki nag³ówkowe i dokumentacja do gmp. Dziêki temu pakietowi bêdziesz
+móg³ tworzyæ w³asne programy z wykorzystaniem tej biblioteki.
+
+%description devel -l pt_BR
+Estas são as bibliotecas, arquivos de inclusão e documentação para
+usar a biblioteca GNU de precisão arbitrária em seus programas.
+
+%description devel -l uk
+㊦Â̦ÏÔÅËÁ ÐÒÏÇÒÁͦÓÔÁ, ÈÅÄÅÒÉ ÔÁ ÄÏËÕÍÅÎÔÁÃ¦Ñ ÄÌÑ ×ÉËÏÒÉÓÔÁÎÎÑ
+¦Â̦ÏÔÅËÉ GNU ÄÏצÌØÎϧ ÔÏÞÎÏÓÔ¦ Õ ×ÁÛÉÈ ×ÌÁÓÎÉÈ ÐÒÏÇÒÁÍÁÈ.
+
+%description devel -l ru
+üÔÏ ÂÉÂÌÉÏÔÅËÁ ÒÁÚÒÁÂÏÔÞÉËÁ, ÈÅÄÅÒÙ É ÄÏËÕÍÅÎÔÁÃÉÑ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ
+ÂÉÂÌÉÏÔÅËÉ GNU ÐÒÏÉÚ×ÏÌØÎÏÊ ÔÏÞÎÏÓÔÉ × ×ÁÛÉÈ ÓÏÂÓÔ×ÅÎÎÙÈ ÐÒÏÇÒÁÍÍÁÈ.
%package static
-Summary: GNU Arbitrary Precision static library.
-Summary(pl): Biblioteka statyczna.
-Group: Libraries
-Requires: %{name} = %{version}
+Summary: GNU Arbitrary Precision static library
+Summary(pl): Biblioteka statyczna gmp
+Summary(pt_BR): Bibliotecas estáticas para desenvolvimento com gmp
+Summary(uk): â¦Â̦ÏÔÅËÁ GNU ÄÏצÌØÎϧ ÔÏÞÎÏÓÔ¦ - ÓÔÁÔÉÞÎÁ ¦Â̦ÏÔÅËÁ
+Summary(ru): âÉÂÌÉÏÔÅËÁ GNU ÐÒÏÉÚ×ÏÌØÎÏÊ ÔÏÞÎÏÓÔÉ - ÓÔÁÔÉÞÅÓËÁÑ ÂÉÂÌÉÏÔÅËÁ
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}
%description static
-Static library
+Static gmp library.
+
+%description static -l pl
+Biblioteka statyczna gmp.
+
+%description static -l pt_BR
+Bibliotecas estáticas para desenvolvimento com gmp.
+
+%description static -l uk
+ãÅ ÓÔÁÔÉÞÎÁ ¦Â̦ÏÔÅËÁ GNU ÄÏצÌØÎϧ ÔÏÞÎÏÓÔ¦.
+
+%description static -l ru
+üÔÏ ÓÔÁÔÉÞÅÓËÁÑ ÂÉÂÌÉÏÔÅËÁ GNU ÐÒÏÉÚ×ÏÌØÎÏÊ ÔÏÞÎÏÓÔÉ.
+
+%package c++
+Summary: GNU arbitrary precision library - C++ interface
+Summary(pl): Biblioteka arytmetyczna GNU - interfejs C++
+Group: Libraries
+Requires: %{name} = %{version}
+
+%description c++
+C++ class interface to GNU arbitrary precision library.
+
+%description c++ -l pl
+Interfejs w postaci klas C++ do biblioteki arytmetycznej GNU.
+
+%package c++-devel
+Summary: GNU arbitrary precition library - C++ interface headers
+Summary(pl): Biblioteka arytmetyczna GNU - pliki nag³ówkowe interfejsu C++
+Group: Development/Libraries
+Requires: %{name}-c++ = %{version}
+Requires: %{name}-devel = %{version}
+
+%description c++-devel
+Header files for C++ class interface to GNU arbitrary precision
+library.
+
+%description c++-devel -l pl
+Pliki nag³ówkowe interfejsu w postaci klas C++ do biblioteki
+arytmetycznej GNU.
+
+%package c++-static
+Summary: GNU arbitrary precition library - C++ static library
+Summary(pl): Biblioteka arytmetyczna GNU - statyczna biblioteka C++
+Group: Development/Libraries
+Requires: %{name}-c++-devel = %{version}
-%description -l pl static
-Biblioteka statyczna.
+%description c++-static
+Static version of C++ class interface to GNU arbitrary precision
+library.
+
+%description c++-static -l pl
+Statycza wersja interfejsu w postaci klas C++ do biblioteki
+arytmetycznej GNU.
%prep
%setup -q
%patch0 -p1
+%if %(grep -q -e '--tag' `which libtool`; echo $?)
%patch1 -p1
-cd mpq
-%patch2 -p0
-cd ../mpn
-%patch3 -p0
-cd ../mpz/tests
-%patch4 -p0
-cd ../..
-%patch5 -p1
-cd mpq
-%patch6 -p0
-cd ../mpz
-%patch7 -p0
-cd ../mpf
-%patch8 -p0
-cd ../mpn/generic
-%patch9 -p0
-cd ../..
-%patch10 -p1
-%patch11 -p1
-%patch12 -p1
-%patch13 -p1
+%endif
+%patch2 -p1
%build
-libtoolize --copy --force
-%configure
-make CC="gcc" CFLAGS="$RPM_OPT_FLAGS" LDFLAGS="-s"
+rm -f missing
+%{__libtoolize}
+%{__aclocal} -I mpfr
+%{__autoconf}
+%{__automake}
+%configure \
+ --with-cpu=%{_cpu} \
+ --enable-cxx \
+ --enable-fft
+
+%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-make install \
- DESTDIR=$RPM_BUILD_ROOT \
- infodir=%{_infodir} \
- libdir=%{_libdir} \
- includedir=%{_includedir}
-
-install mpn/gmp-mparam.h ${RPM_BUILD_ROOT}%{_includedir}/
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
-strip --strip-unneeded $RPM_BUILD_ROOT%{_libdir}/lib*.so.*.*
-
-gzip -9nf $RPM_BUILD_ROOT%{_infodir}/gmp.info* \
- SPEED NEWS README
+%clean
+rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
+%post c++ -p /sbin/ldconfig
+%postun c++ -p /sbin/ldconfig
%post devel
-[ -x /usr/sbin/fix-info-dir ] && /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
%postun devel
-[ -x /usr/sbin/fix-info-dir ] && /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
-
-%clean
-rm -rf $RPM_BUILD_ROOT
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
%files
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*.so.*.*
+%doc AUTHORS ChangeLog NEWS README
+%attr(755,root,root) %{_libdir}/libgmp.so.*.*
%files devel
%defattr(644,root,root,755)
-%doc *.gz
-%attr(755,root,root) %{_libdir}/lib*.so
-%{_includedir}/*
+%attr(755,root,root) %{_libdir}/libgmp.so
+%{_libdir}/libgmp.la
+%{_includedir}/gmp.h
%{_infodir}/gmp.info*
%files static
%defattr(644,root,root,755)
-%{_libdir}/lib*.a
+%{_libdir}/libgmp.a
+
+%files c++
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgmpxx.so.*.*
+
+%files c++-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgmpxx.so
+%{_libdir}/libgmpxx.la
+%{_includedir}/gmpxx.h
+
+%files c++-static
+%defattr(644,root,root,755)
+%{_libdir}/libgmpxx.a