From owner-svn-ports-all@freebsd.org Sat Jun 25 19:10:21 2016 Return-Path: Delivered-To: svn-ports-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 01DCCB80491; Sat, 25 Jun 2016 19:10:20 +0000 (UTC) (envelope-from pi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B41741BBF; Sat, 25 Jun 2016 19:10:20 +0000 (UTC) (envelope-from pi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u5PJAJEU073172; Sat, 25 Jun 2016 19:10:19 GMT (envelope-from pi@FreeBSD.org) Received: (from pi@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u5PJAJ1Y073170; Sat, 25 Jun 2016 19:10:19 GMT (envelope-from pi@FreeBSD.org) Message-Id: <201606251910.u5PJAJ1Y073170@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pi set sender to pi@FreeBSD.org using -f From: Kurt Jaeger Date: Sat, 25 Jun 2016 19:10:19 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r417477 - head/math/R X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Jun 2016 19:10:21 -0000 Author: pi Date: Sat Jun 25 19:10:19 2016 New Revision: 417477 URL: https://svnweb.freebsd.org/changeset/ports/417477 Log: math/R: Add optimization related options to Makefile There are a couple of enhancements that can be made to math/R regarding optimization: one would be to enable LTO and OpenMP whenever the compiler supports it, another one would be to allow linking to OpenBLAS besides ATLAS or R's internal BLAS implementation. The patch was inspired by math/octave's handling of BLAS. PR: 207425 Submitted by: elferdo@gmail.com Approved by: bf (maintainer timeout) Modified: head/math/R/Makefile head/math/R/pkg-plist Modified: head/math/R/Makefile ============================================================================== --- head/math/R/Makefile Sat Jun 25 18:12:21 2016 (r417476) +++ head/math/R/Makefile Sat Jun 25 19:10:19 2016 (r417477) @@ -3,6 +3,7 @@ PORTNAME?= R PORTVERSION= 3.3.0 +PORTREVISION= 1 CATEGORIES= math lang MASTER_SITES= http://cran.r-project.org/%SUBDIR%/ \ ftp://cran.r-project.org/pub/R/%SUBDIR%/ \ @@ -19,7 +20,6 @@ MASTER_SITES= http://cran.r-project.org/ http://cran.stat.ucla.edu/%SUBDIR%/ \ http://probability.ca/cran/%SUBDIR%/ MASTER_SITE_SUBDIR= src/base/R-${PORTVERSION:C|\..*||} -DISTNAME= R-${PORTVERSION} MAINTAINER= bf@FreeBSD.org COMMENT?= Language for statistical computing and graphics @@ -34,9 +34,29 @@ CONFIGURE_ENV= LIBR_LDFLAGS="${LDFLAGS} SED="${LOCALBASE}/bin/gsed" \ ac_cv_have_decl_powl=yes ac_cv_have_decl_log1pl=yes -OPTIONS_DEFINE= MISSING DOCS +OPTIONS_DEFINE= MISSING DOCS LTO OPENMP LONGDOUBLE MISSING_DESC= use libmissing rather than libquadmath +LTO_DESC= Try to produce faster code through LTO +LONGDOUBLE_DESC= Enable use of long double data type +LTO_CONFIGURE_ENABLE= lto +OPENMP_CONFIGURE_ENABLE= openmp +LONGDOUBLE_CONFIGURE_ENABLE= long-double + +OPTIONS_SINGLE= BLAS +OPTIONS_SINGLE_BLAS= RBLAS ATLAS OPENBLAS NETLIB +OPTIONS_DEFAULT= OPENBLAS + +RBLAS_DESC= Use internal blas implementation + +OPENBLAS_USES= blaslapack:openblas +NETLIB_USES= blaslapack:netlib +ATLAS_USES= blaslapack:atlas +RBLAS_CONFIGURE_ON= --without-blas --without-lapack +RBLAS_CONFIGURE_OFF= --with-blas="-L${LOCALBASE}/lib ${BLASLIB}" \ + --with-lapack="${LAPACKLIB}" + +OPTIONS_SUB= RBLAS .if defined(LIBRMATH_SLAVEPORT) BUILD_WRKSRC= ${WRKSRC}/src/nmath/standalone @@ -57,9 +77,8 @@ CONFIGURE_ENV+= FCFLAGS="${FFLAGS}" \ CPPFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib -OPTIONS_DEFINE+= ATLAS ICU PCRE_PORT THREADS +OPTIONS_DEFINE+= ICU PCRE_PORT THREADS -ATLAS_DESC= Use ATLAS instead of BLAS/LAPACK ICU_DESC= Use ICU for collation in multibyte locales PCRE_PORT_DESC= Use devel/pcre instead of the bundled PCRE @@ -85,8 +104,8 @@ PNG_DESC= png() graphics device TCLTK_DESC= tcltk package X11_DESC= X11() graphics device -OPTIONS_DEFAULT+= GHOSTSCRIPT INFO_MANUALS JPEG LIBR PANGOCAIRO PNG \ - TCLTK TIFF X11 +OPTIONS_DEFAULT+= GHOSTSCRIPT INFO_MANUALS JPEG LTO OPENMP \ + PANGOCAIRO PNG TCLTK TIFF X11 OPTIONS_DEFAULT_armv6+= MISSING OPTIONS_DEFAULT_powerpc+= MISSING @@ -144,20 +163,6 @@ LIBMH= .endif .if !defined(LIBRMATH_SLAVEPORT) -.if ${PORT_OPTIONS:MATLAS} -LIB_DEPENDS+= libatlas.so:math/atlas -BLAS?= ${LIBM} -lf77blas -LAPACK?= ${LIBM} -lalapack -lcblas -.else -BLAS?= no -LAPACK?= no -.endif -CONFIGURE_ARGS+= --with-blas="${BLAS}" --with-lapack="${LAPACK}" -.if ${BLAS} == "no" || ${LAPACK} == "no" -PLIST_SUB+= LAPACK="" -.else -PLIST_SUB+= LAPACK="@comment " -.endif .if ${PORT_OPTIONS:MICU} LIB_DEPENDS+= libicui18n.so:devel/icu @@ -218,7 +223,7 @@ PLIST_SUB+= LIBR="@comment " .if ${PORT_OPTIONS:MPANGOCAIRO} USES+= pkgconfig -USE_GNOME+= pango +USE_GNOME+= pango cairo PLIST_SUB+= PANGOCAIRO="" .else CONFIGURE_ARGS+= --without-cairo @@ -252,7 +257,7 @@ CONFIGURE_ARGS+= --without-libtiff .if ${PORT_OPTIONS:MX11} CONFIGURE_ARGS+= --with-x -USE_XORG= x11 xmu xt +USE_XORG= ice sm x11 xext xmu xscrnsaver xt PLIST_SUB+= X11="" .else CONFIGURE_ARGS+= --without-x @@ -290,7 +295,12 @@ post-patch: .if !${PORT_OPTIONS:MMISSING} .if ${OSVERSION} < 1000016 @${REINPLACE_CMD} -e 's/# define EXP expl/# define EXP(x) (long double)expq((__float128)(x))/' \ - ${WRKSRC}/src/nmath/pnchisq.c + ${WRKSRC}/src/nmath/pnchisq.c\ + ${WRKSRC}/src/nmath/pgamma.c + @${REINPLACE_CMD} -e 's/# define LOG logl/# define LOG(x) (long double)logq((__float128)(x))/' \ + ${WRKSRC}/src/nmath/pnchisq.c\ + ${WRKSRC}/src/nmath/pgamma.c + .endif .if ${OSVERSION} < 1000034 @${REINPLACE_CMD} -Ee 's/(log)(1p)?l\(/(long double)\1\2q((__float128)/' \ @@ -369,8 +379,9 @@ check-all: build post-install: .for L in R Rblas Rlapack - @(cd ${STAGEDIR}${PREFIX}/lib/R/lib; if [ -f lib${L}.so ] ; then \ - ${LN} -sf lib${L}.so lib${L}.so.${${L:tu}_SOVERSION} ; fi) + @if [ -d ${STAGEDIR}${PREFIX}/lib/R/lib ] ; then \ + cd ${STAGEDIR}${PREFIX}/lib/R/lib; if [ -f lib${L}.so ] ; then \ + ${LN} -sf lib${L}.so lib${L}.so.${${L:tu}_SOVERSION} ; fi; fi .endfor .if ${PORT_OPTIONS:MINFO_MANUALS} && ${PORT_OPTIONS:MDOCS} @(cd ${WRKSRC}/doc/manual; \ Modified: head/math/R/pkg-plist ============================================================================== --- head/math/R/pkg-plist Sat Jun 25 18:12:21 2016 (r417476) +++ head/math/R/pkg-plist Sat Jun 25 19:10:19 2016 (r417477) @@ -99,10 +99,10 @@ lib/R/include/Rinternals.h lib/R/include/Rmath.h lib/R/include/Rversion.h lib/R/include/S.h -%%LAPACK%%lib/R/lib/libRblas.so -%%LAPACK%%lib/R/lib/libRblas.so.%%RBLAS_SOVERSION%% -%%LAPACK%%lib/R/lib/libRlapack.so -%%LAPACK%%lib/R/lib/libRlapack.so.%%RLAPACK_SOVERSION%% +%%RBLAS%%lib/R/lib/libRblas.so +%%RBLAS%%lib/R/lib/libRblas.so.%%RBLAS_SOVERSION%% +%%RBLAS%%lib/R/lib/libRlapack.so +%%RBLAS%%lib/R/lib/libRlapack.so.%%RLAPACK_SOVERSION%% %%LIBR%%lib/R/lib/libR.so %%LIBR%%lib/R/lib/libR.so.%%R_SOVERSION%% lib/R/library/KernSmooth/DESCRIPTION