| # Copyright 1999-2016 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| EAPI=5 |
| |
| inherit autotools eutils flag-o-matic multilib |
| |
| DESCRIPTION="Elliptic Curve Method for Integer Factorization" |
| HOMEPAGE="http://ecm.gforge.inria.fr/" |
| SRC_URI="https://gforge.inria.fr/frs/download.php/32159/${P}.tar.gz" |
| |
| LICENSE="GPL-3 LGPL-3" |
| SLOT="0" |
| KEYWORDS="~amd64 ~x86" |
| IUSE="+blas +custom-tune gwnum -openmp static-libs test" |
| |
| DEPEND=" |
| dev-libs/gmp:0= |
| blas? ( sci-libs/gsl ) |
| gwnum? ( sci-mathematics/gwnum ) |
| openmp? ( sys-devel/gcc:*[openmp] )" |
| RDEPEND="${DEPEND}" |
| |
| # can't be both enabled |
| REQUIRED_USE="gwnum? ( !openmp )" |
| |
| S=${WORKDIR}/ecm-${PV} |
| |
| MAKEOPTS+=" -j1" |
| |
| src_prepare() { |
| sed -e '/libecm_la_LIBADD/s:$: -lgmp:g' -i Makefile.am || die |
| eautoreconf |
| } |
| |
| src_configure() { |
| use gwnum && local myconf="--with-gwnum="${EPREFIX}"/usr/$(get_libdir)" |
| # --enable-shellcmd is broken |
| econf \ |
| --enable-shared \ |
| $(use_enable static-libs static) \ |
| $(use_enable openmp) \ |
| ${myconf} |
| } |
| |
| src_compile() { |
| append-ldflags "-Wl,-z,noexecstack" |
| if use custom-tune; then |
| use amd64 && cd x86_64 |
| use x86 && cd pentium4 |
| emake |
| cd .. && make bench_mulredc || die |
| sed -i -e 's:#define TUNE_MULREDC_TABLE://#define TUNE_MULREDC_TABLE:g' `readlink ecm-params.h` || die |
| sed -i -e 's:#define TUNE_SQRREDC_TABLE://#define TUNE_SQRREDC_TABLE:g' `readlink ecm-params.h` || die |
| ./bench_mulredc | tail -n 4 >> `readlink ecm-params.h` || die |
| fi |
| default |
| } |
| |
| src_install() { |
| default |
| mkdir -p "${ED}/usr/include/${PN}/" |
| cp "${S}"/*.h "${ED}/usr/include/${PN}" || die "Failed to copy headers" # needed by other apps like YAFU |
| } |