############################################################################### # IPFire.org - An Open Source Firewall Solution # # Copyright (C) - IPFire Development Team # ############################################################################### name = gmp version = 6.0.0 release = 1 groups = System/Libraries url = http://gmplib.org/ license = LGPLv3+ summary = A GNU arbitrary precision library. 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. end source_dl += https://gmplib.org/download/gmp/ ftp://ftp.gnu.org/gnu/gmp/ sources = %{thisapp}.tar.xz build requires gcc-c++ m4 end # Build different versions of gmp to enhance the speed # of the OS. build_versions = base export ABI = standard if "%{DISTRO_ARCH}" == "x86_64" ABI = 64 end if "%{DISTRO_ARCH}" == "i686" # Build sse2 enabled version of gmp. build_versions += sse2 ABI = 32 end configure_options += \ --enable-cxx \ --enable-mpbsd \ --disable-static if "%{DISTRO_ARCH}" == "armv7hl" # GMP cannot be built with THUMB support. CFLAGS := %(echo "%{CFLAGS}" | sed -e "s/-mthumb//g") CXXFLAGS := %(echo "%{CXXFLAGS}" | sed -e "s/-mthumb//g") end prepare_cmds for version in %{build_versions}; do mkdir -p build-${version} cd build-${version} ln -svf ../configure . cd .. done end build_one ./configure \ %{configure_options} # Kill RPATHs. sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \ -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \ -e 's|-lstdc++ -lm|-lstdc++|' \ -i libtool export LD_LIBRARY_PATH=$(pwd)/.libs make %{PARALLELISMFLAGS} \ CFLAGS="${CFLAGS}" \ CXXFLAGS="${CXXFLAGS}" end build for version in %{build_versions}; do cd build-${version} CFLAGS="%{CFLAGS}" CXXFLAGS="%{CXXFLAGS}" if [ "${version}" = "sse2" ]; then # Enable sse2. CFLAGS="%{CFLAGS} -march=pentium4" CXXFLAGS="%{CXXFLAGS} -march=pentium4" fi %{build_one} cd .. done end test for version in %{build_versions}; do cd build-${version} export LD_LIBRARY_PATH=$(pwd)/.libs make check cd .. done end install for version in %{build_versions}; do cd build-${version} if [ "${version}" = "sse2" ]; then # Manually install sse2 libs. mkdir -pv %{BUILDROOT}/usr/lib/sse2 install -m 755 .libs/libgmp.so.*.* %{BUILDROOT}/usr/lib/sse2 cp -a .libs/libgmp.so.[^.]* %{BUILDROOT}/usr/lib/sse2 chmod 755 %{BUILDROOT}/usr/lib/sse2/libgmp.so.[^.]* install -m 755 .libs/libgmpxx.so.*.* %{BUILDROOT}/usr/lib/sse2 cp -a .libs/libgmpxx.so.? %{BUILDROOT}/usr/lib/sse2 chmod 755 %{BUILDROOT}/usr/lib/sse2/libgmpxx.so.? else make install DESTDIR="%{BUILDROOT}" fi cd .. done end end packages package %{name} package %{name}-devel template DEVEL end package %{name}-debuginfo template DEBUGINFO end end