152 lines
3.4 KiB
Plaintext
152 lines
3.4 KiB
Plaintext
###############################################################################
|
|
# IPFire.org - An Open Source Firewall Solution #
|
|
# Copyright (C) - IPFire Development Team <info@ipfire.org> #
|
|
###############################################################################
|
|
|
|
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
|