pkgsrc/devel/gmp/Makefile
wiz 7ad5be5d76 Update gmp to 6.1.0:
Changes between GMP version 6.0.* and 6.1.0

  BUGS FIXED
  * The public function mpn_com is now correctly declared in gmp.h.

  * Healed possible failures of mpn_sec_sqr for non-cryptographic sizes for
    some obsolete CPUs.

  * The option --disable-assembly now disables all inlined asm.

  * Fixed bug affecting mini-gmp's bitwise functions mpz_setbit, mpz_clrbit,
    and mpz_combit.

  * Various problems related to precision for mpf have been fixed.

  * Fixed ABI incompatible stack alignment in calls from assembly code.

  * Fixed PIC bug in popcount affecting Intel processors using the 32-bit ABI.

  SPEEDUPS
  * Speedup for Intel Broadwell and Skylake though assembly code making use of
    new ADX instructions.

  * Square root is now faster when the remainder is not needed. Also the speed
    to compute the k-th root improved, for small sizes.

  * Improved arm64 support.

  FEATURES
  * New C++ functions gcd and lcm for mpz_class.

  * New public mpn functions mpn_divexact_1, mpn_zero_p, and mpn_cnd_swap.

  * New public mpq_cmp_z function, to efficiently compare rationals with
    integers.

  * Support for Darwin in all x86 code, thereby enabling fat builds on Darwin.

  * Support for more 32-bit arm processors.

  * Support for compilation with clang/llvm on more platforms.  Caution: GMP
    triggers mis-compilation bugs in clang for many platforms, such as arm, x86
    (32-bit and 64-bit), powerpc, mips.

  * Support for AVX-less modern x86 CPUs. (Such support might be missing either
    because the CPU vendor chose to disable AVX, or because the running kernel
    lacks AVX context switch support.)

  * Stack usage trimmed; we believe 512 KiB is now sufficient for any GMP
    call, irrespective of operand size.

  * Support for NetBSD under Xen; we switch off AVX unconditionally under
    NetBSD since a bug in NetBSD makes AVX fail under Xen.

  MISC
  * We now use manufacturers' code names for x86 CPUs, e.g., "haswell" instead
    of names derived from the commercial brands.

  * Small improvements and better coverage for the test suite.

  * The various FreeBSD problems listed for 6.0.0 affect this release too.

  * Tuned values for FFT multiplications are provided for larger number on
    many platforms.
2015-11-13 11:36:44 +00:00

80 lines
2.1 KiB
Makefile

# $NetBSD: Makefile,v 1.78 2015/11/13 11:36:44 wiz Exp $
DISTNAME= gmp-6.1.0
CATEGORIES= devel math
MASTER_SITES= https://gmplib.org/download/gmp/ \
${MASTER_SITE_GNU:=gmp/}
# Use .tar.bz2 distfile so that no extra dependency on archivers/xz
# is needed when building lang/gcc* with option gcc-inplace-math.
EXTRACT_SUFX= .tar.bz2
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://gmplib.org/
COMMENT= Library for arbitrary precision arithmetic
LICENSE= gnu-lgpl-v3 OR gnu-gpl-v2
INFO_FILES= yes
USE_LANGUAGES= c c++ c99
USE_LIBTOOL= yes
USE_TOOLS+= gm4 autoconf makeinfo
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --without-readline
WRKSRC= ${WRKDIR}/${DISTNAME:S/a$//}
TEST_TARGET= check
PLIST_VARS+= cxx
.include "../../mk/bsd.prefs.mk"
.if !empty(USE_CROSS_COMPILE:M[yY][eE][sS])
CONFIGURE_ENV+= CC_FOR_BUILD=${NATIVE_CC:Q}
.endif
.if empty(PKGSRC_COMPILER:Msunpro)
CONFIGURE_ARGS+= --enable-cxx
PLIST.cxx= yes
.endif
.if !empty(MACHINE_PLATFORM:MIRIX-5*) && !empty(ABI)
ABI= o32
.endif
.if ${MACHINE_ARCH} == "arm" || ${MACHINE_ARCH} == "arm32"
# The configure script thinks gcc 2.95 for ARM is too buggy to use.
GCC_REQD+= 3.0
.endif
.if ${MACHINE_ARCH} == "i386"
# XXX SunOS should work, but currently bombs in mpn/fat.c
. if ${OPSYS} == "Darwin" || ${OPSYS} == "SunOS" || !empty(PKGSRC_COMPILER:Msunpro)
# don't use x86 assembly (it doesn't build)
CONFIGURE_ENV+= MPN_PATH="generic"
. else
PKG_OPTIONS_VAR= PKG_OPTIONS.gmp
PKG_SUPPORTED_OPTIONS= gmp-fat mmx simd
PKG_SUGGESTED_OPTIONS= gmp-fat
. include "../../mk/bsd.options.mk"
###
### Support for a "fat" binary on i386, with CPU autodetection.
### XXX this option should be provided for amd64 too!
###
### XXX Currently, the 'mmx' and 'simd' options imply the same thing,
### as cpu detection is done at runtime. Is there a more elegant
### way to handle this?
###
. if empty(PKG_OPTIONS:Mgmp-fat) && \
(!empty(PKG_OPTIONS:Mmmx) || !empty(PKG_OPTIONS:Msimd))
PKG_OPTIONS+= gmp-fat
. endif
. if !empty(PKG_OPTIONS:Mgmp-fat)
CONFIGURE_ARGS+= --enable-fat
. endif
. endif
.endif
pre-configure:
cd ${WRKSRC} && type autoconf && autoconf
.include "../../mk/bsd.pkg.mk"