# # Important for %{ix86}: # This rpm has to be build on a CPU with sse2 support like Pentium 4 ! # %ifarch %{ix86} %define SSE2 1 %else %define SSE2 0 %endif # Don't you want to build a libraries using SSE2? %{?_without_sse2%define SSE2 0} %define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0} %global __provides_exclude_from ^%{_libdir}/pkgconfig/.*$ Summary: A GNU arbitrary precision library. Summary(ja): GNU 多倍長演算ライブラリ Name: gmp Version: 6.2.1 Release: 1%{?_dist_release} Group: system Vendor: Project Vine Distribution: Vine Linux Packager: inagaki, kenta License: LGPLv3+ or GPL2+ URL: https://gmplib.org/ Source: https://gmplib.org/download/gmp/gmp-%{version}.tar.xz Source2: gmp.h Source3: gmp-mparam.h Patch2: gmp-6.0.0-debuginfo.patch BuildRoot: %{_tmppath}/%{name}-%{version}-root BuildRequires: autoconf libtool Obsoletes: gmp4 %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 because 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. %package devel Summary: Development tools for the GNU MP arbitrary precision library. Group: programming Requires: %{name} = %{version}-%{release} Requires(post): /sbin/install-info Requires(preun): /sbin/install-info Provides: pkgconfig(gmp) = %{version} Provides: pkgconfig(gmpxx) = %{version} #Obsoletes: gmp4-devel %description devel The 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. You'll also need to install the gmp package. %package static Summary: Development tools for the GNU MP arbitrary precision library Group: programming Requires: %{name}-devel = %{version}-%{release} %description static The static libraries for using the GNU MP arbitrary precision library in applications. %package -n compat32-%{name} Summary: A GNU arbitrary precision library. Group: system Requires: %{name} = %{version}-%{release} %description -n compat32-%{name} 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 because 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. %package -n compat32-%{name}-devel Summary: Development tools for the GNU MP arbitrary precision library. Group: programming Requires: compat32-%{name} = %{version}-%{release} Requires: %{name}-devel = %{version}-%{release} Provides: pkgconfig(gmp) = %{version} Provides: pkgconfig(gmpxx) = %{version} %description -n compat32-%{name}-devel The 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. You'll also need to install the gmp package. %package -n compat32-%{name}-static Summary: Development tools for the GNU MP arbitrary precision library Group: programming Requires: compat32-%{name}-devel = %{version}-%{release} %description -n compat32-%{name}-static The static libraries for using the GNU MP arbitrary precision library in applications. %debug_package %prep %setup -q %patch2 -p1 -b .debuginfo %build autoreconf -if if as --help | grep -q execstack; then # the object files do not require an executable stack export CCAS="gcc -c -Wa,--noexecstack" fi mkdir base cd base ln -s ../configure . #%configure --enable-mpbsd --enable-cxx %configure --enable-cxx perl -pi -e 's|hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=\"-L\\\$libdir\"|g;' libtool export LD_LIBRARY_PATH=`pwd`/.libs make CFLAGS="$RPM_OPT_FLAGS" %{?_smp_mflags} cd .. %if %{SSE2} %define _host pentium4-vine-linux mkdir build-sse2 cd build-sse2 ln -s ../configure . CFLAGS="%{optflags} -march=pentium4" #%configure --enable-mpbsd --enable-cxx %configure --enable-cxx perl -pi -e 's|hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=\"-L\\\$libdir\"|g;' libtool export LD_LIBRARY_PATH=`pwd`/.libs make %{?_smp_mflags} unset CFLAGS cd .. %endif %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT cd base export LD_LIBRARY_PATH=`pwd`/.libs make install DESTDIR=$RPM_BUILD_ROOT install -m 644 gmp-mparam.h ${RPM_BUILD_ROOT}%{_includedir} rm -f $RPM_BUILD_ROOT%{_libdir}/lib{gmp,mp,gmpxx}.la rm -f $RPM_BUILD_ROOT%{_infodir}/dir /sbin/ldconfig -n $RPM_BUILD_ROOT%{_libdir} ln -sf libgmpxx.so.4 $RPM_BUILD_ROOT%{_libdir}/libgmpxx.so cd .. %if %{SSE2} cd build-sse2 export LD_LIBRARY_PATH=`pwd`/.libs mkdir $RPM_BUILD_ROOT%{_libdir}/sse2 install -m 755 .libs/libgmp.so.*.* $RPM_BUILD_ROOT%{_libdir}/sse2 cp -a .libs/libgmp.so.[^.]* $RPM_BUILD_ROOT%{_libdir}/sse2 chmod 755 $RPM_BUILD_ROOT%{_libdir}/sse2/libgmp.so.[^.]* install -m 755 .libs/libgmpxx.so.*.* $RPM_BUILD_ROOT%{_libdir}/sse2 cp -a .libs/libgmpxx.so.? $RPM_BUILD_ROOT%{_libdir}/sse2 chmod 755 $RPM_BUILD_ROOT%{_libdir}/sse2/libgmpxx.so.? cd .. %endif # Rename gmp.h to gmp-.h and gmp-mparam.h to gmp-mparam-.h to # avoid file conflicts on multilib systems and install wrapper include files # gmp.h and gmp-mparam-.h basearch=%{_arch} # always use i386 for iX86 %ifarch %{ix86} basearch=i386 %endif # always use arm for arm* %ifarch %{arm} basearch=arm %endif # Rename files and install wrappers mv %{buildroot}/%{_includedir}/gmp.h %{buildroot}/%{_includedir}/gmp-${basearch}.h install -m644 %{SOURCE2} %{buildroot}/%{_includedir}/gmp.h mv %{buildroot}/%{_includedir}/gmp-mparam.h %{buildroot}/%{_includedir}/gmp-mparam-${basearch}.h install -m644 %{SOURCE3} %{buildroot}/%{_includedir}/gmp-mparam.h %check %ifnarch ppc cd base export LD_LIBRARY_PATH=`pwd`/.libs make %{?_smp_mflags} check cd .. %endif %if %{SSE2} cd build-sse2 export LD_LIBRARY_PATH=`pwd`/.libs make %{?_smp_mflags} check cd .. %endif %clean [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %post devel /sbin/install-info %{_infodir}/gmp.info.gz %{_infodir}/dir %preun devel if [ "$1" = 0 ]; then /sbin/install-info --delete %{_infodir}/gmp.info.gz %{_infodir}/dir fi %post -n compat32-%{name} -p /sbin/ldconfig %postun -n compat32-%{name} -p /sbin/ldconfig %files %defattr(-,root,root,-) %license COPYING COPYING.LIB %doc NEWS README %{_libdir}/libgmp.so.* %{_libdir}/libgmpxx.so.* %if %{SSE2} %{_libdir}/sse2/* %endif %files devel %defattr(-,root,root,-) %{_libdir}/libgmp.so %{_libdir}/libgmpxx.so #{_libdir}/libmpfr.a %{_includedir}/*.h %{_infodir}/gmp.info* #{_infodir}/mpfr.info* %{_libdir}/pkgconfig/*.pc %files static %defattr(-,root,root,-) %doc README %{_libdir}/libgmp.a %{_libdir}/libgmpxx.a # compat32 %if %{build_compat32} %files -n compat32-%{name} %defattr(-,root,root,-) %{_libdir}/libgmp.so.* %{_libdir}/libgmpxx.so.* %if %{SSE2} %{_libdir}/sse2/* %endif %files -n compat32-%{name}-devel %defattr(-,root,root,-) %{_libdir}/libgmp.so %{_libdir}/libgmpxx.so #{_libdir}/libmpfr.a %{_libdir}/pkgconfig/*.pc %files -n compat32-%{name}-static %defattr(-,root,root,-) %doc README %{_libdir}/libgmp.a %{_libdir}/libgmpxx.a %endif %changelog * Tue Feb 02 2021 Tomohiro "Tomo-p" KATO 6.2.1-1 - new upstream release. * Sun Mar 15 2020 Tomohiro "Tomo-p" KATO 6.2.0-1 - new upstream release. * Sun May 05 2019 Tomohiro "Tomo-p" KATO 6.1.2-1 - new upstream release. - updated Source2 and Source3. * Sat Jul 2 2016 Tomohiro "Tomo-p" KATO 6.1.1-1 - new upstream release. - dropped Patch0. - imported Patch2 from rawhide. - updated Source2 and Source3. * Sat May 07 2016 Yoji TOYODA 6.1.0-1 - new upstream release * Tue Jan 14 2014 NAKAMURA Kenta 5.1.3-2 - rebuilt with the current environment * Sun Nov 03 2013 Toshiharu Kudoh 5.1.3-1 - new upstream release - changed file archive type to xz - replaced Patch0 to Fedora rawhide's Patch - deleted unrecognized option: --enable-mpbsd * Tue Apr 19 2011 NAKAMURA Kenta 4.3.2-1 - new upstream release * Sun Apr 17 2011 Shu KONNO 4.3.1-2 - rebuilt with rpm-4.8.1-3 * Sat Nov 28 2009 Ryoichi INAGAKI 4.3.1-1 - new upstream release - split static libraries to subpackage * Sun Jun 28 2009 NAKAMURA Kenta 4.2.2-5 - added compat32 package for x86_64 arch support - run autoreconf to get autotools right * Mon May 19 2008 Ryoichi INAGAKI 4.2.2-4 - applied new versioning policy - added Patch3 from upstream * Wed Oct 24 2007 Ryoichi INAGAKI 4.2.2-3vl2 - remove --enable-mpfr (mpfr has been splitted since gmp 4.2) * Wed Oct 24 2007 Ryoichi INAGAKI 4.2.2-3vl1 - new upstream release * Mon Sep 24 2007 Ivana Varekova 4.2.2-3 - fix libgmpxx.so link * Thu Sep 20 2007 Ivana Varekova 4.2.2-2 - fix check tag * Thu Nov 2 2006 Thomas Woerner 4.1.4-10 - fixed arch order in gmp.h and gmp-mparam.h wrapper for all architectures - re-include libraries using SSE2 on x86 arch - updated URL * Wed May 09 2007 MATSUBAYASHI Kohji 4.1.4-6vl2 - rebuilt with new toolchain * Sat Feb 11 2006 Ryoichi INAGAKI 4.1.4-6vl1 - new upstream release * Mon Apr 18 2005 Thomas Woerner 4.1.4-6 - fixed __setfpucw call in mpfr-test.h * Sun Sep 26 2004 Florian La Roche - disable ppc64 patch, now fixed upstream * Wed Mar 31 2004 Thomas Woerner 4.1.2-14 - dropped RPATH (#118506) - exclude libraries using SSE2 in default settings. * Fri Mar 12 2004 KOBAYASHI R. Taizo 4.1.2-13vl1 - modified for Vine * Mon Jan 20 2003 MATSUBAYASHI Kohji 4.1-1vl3 - added Obsoletes: gmp4(-devel) * Wed Jan 15 2003 MATSUBAYASHI Kohji 4.1-1vl2 - rebuilt against new toolchain * Fri May 31 2002 KOBAYASHI R. Taizo - modified for Vine * Sat May 25 2002 Florian La Roche - update to version 4.1 - patch s390 gmp-mparam.h to match other archs. * Thu May 23 2002 Tim Powers - automated rebuild * Mon Mar 11 2002 Trond Eivind Glomsrød 4.0.1-3 - Use standard %%configure macro and edit %%{_tmppath} * Tue Feb 26 2002 Trond Eivind Glomsrød 4.0.1-2 - Rebuild * Tue Jan 22 2002 Florian La Roche - update to 4.0.1 - bzip2 src * Wed Jan 09 2002 Tim Powers - automated rebuild * Sun Jun 24 2001 Elliot Lee - Bump release + rebuild. * Mon Feb 05 2001 Philipp Knirsch - Fixed bugzilla bug #25515 where GMP wouldn't work on IA64 as IA64 is not correctly identified as a 64 bit platform. * Mon Dec 18 2000 Preston Brown - include bsd mp library * Tue Oct 17 2000 Florian La Roche - update to 3.1.1 * Sun Sep 3 2000 Florian La Roche - update to 3.1 * Sat Aug 19 2000 Preston Brown - devel subpackage depends on main package so that .so symlink is OK. * Thu Jul 13 2000 Prospector - automatic rebuild * Sat Jun 3 2000 Nalin Dahyabhai - switch to the configure and makeinstall macros - FHS-compliance fixing - move docs to non-devel package * Fri Apr 28 2000 Bill Nottingham - libtoolize for ia64 * Fri Apr 28 2000 Florian La Roche - update to 3.0.1 * Thu Apr 27 2000 Jakub Jelinek - sparc64 fixes for 3.0 * Wed Apr 26 2000 Florian La Roche - update to 3.0 * Mon Feb 14 2000 Matt Wilson - #include in files that use string functions * Wed Feb 02 2000 Cristian Gafton - fix description and summary * Mon Dec 06 1999 Michael K. Johnson - s/GPL/LGPL/ - build as non-root (#7604) * Mon Sep 06 1999 Jakub Jelinek - merge in some debian gmp fixes - Ulrich Drepper's __gmp_scale2 fix - my mpf_set_q fix - sparc64 fixes * Wed Apr 28 1999 Cristian Gafton - add sparc patch for PIC handling * Sun Mar 21 1999 Cristian Gafton - auto rebuild in the new build environment (release 8) * Thu Feb 11 1999 Michael Johnson - include the private header file gmp-mparam.h because several apps seem to assume that they are building against the gmp source tree and require it. Sigh. * Tue Jan 12 1999 Michael K. Johnson - libtoolize to work on arm * Thu Sep 10 1998 Cristian Gafton - yet another touch of the spec file * Wed Sep 2 1998 Michael Fulbright - looked over before inclusion in RH 5.2 * Sun May 24 1998 Dick Porter - Patch Makefile.in, not Makefile - Don't specify i586, let configure decide the arch * Sat Jan 24 1998 Marc Ewing - started with package from Toshio Kuratomi - cleaned up file list - fixed up install-info support