From 66e94048d9f0443eff24555afa1d26a3dfbad07c Mon Sep 17 00:00:00 2001 From: dmcmahill Date: Wed, 17 Mar 2010 21:47:11 +0000 Subject: Detect if the fortran compiler/libs have etime as an intrinsic or not instead of hard coding it. This package builds with both f2c and gfortran now. --- math/lapack/Makefile | 17 +++++++++++++++-- math/lapack/distinfo | 4 ++-- math/lapack/files/etime_test.f | 27 +++++++++++++++++++++++++++ math/lapack/patches/patch-ac | 5 ++--- 4 files changed, 46 insertions(+), 7 deletions(-) create mode 100644 math/lapack/files/etime_test.f (limited to 'math') diff --git a/math/lapack/Makefile b/math/lapack/Makefile index d210764c723..e010fea4bc4 100644 --- a/math/lapack/Makefile +++ b/math/lapack/Makefile @@ -1,8 +1,8 @@ -# $NetBSD: Makefile,v 1.30 2010/01/30 16:28:00 heinz Exp $ +# $NetBSD: Makefile,v 1.31 2010/03/17 21:47:11 dmcmahill Exp $ DISTNAME= lapack-lite-3.1.1 PKGNAME= lapack-3.1.1 -PKGREVISION= 3 +PKGREVISION= 4 CATEGORIES= math MASTER_SITES= ${MASTER_SITE_NETLIB:=lapack/} EXTRACT_SUFX= .tgz @@ -21,6 +21,19 @@ BUILD_TARGET= lapacklib INSTALLATION_DIRS= lib +FFLAGS+= -ffloat-store + +# With f2c-20090411nb4, libf2c-20090201nb3, we need EXT_ETIME but gcc44-4.4.1nb3 +# needs INT_ETIME. Rather than trying to enumerate all possible fortran compilers, +# just do a test for it. +do-configure: + @${ECHO_N} "Checking if your fortran compiler has etime() as an intrinsic... " + @cd ${WRKDIR} && ${FC} -o etime_test ${FILESDIR}/etime_test.f >${WRKDIR}/etime_test.log 2>&1; \ + if test $$? -eq 0 ; then \ + ${ECHO} "TIMER=INT_ETIME" >> ${WRKSRC}/make.inc ; echo "YES" ; else \ + ${ECHO} "TIMER=EXT_ETIME" >> ${WRKSRC}/make.inc ; echo "NO" ; fi + @${ECHO} "See ${WRKDIR}/etime_test.log for details on the test" + do-install: ${LIBTOOL} --mode=install ${INSTALL_DATA} ${WRKSRC}/liblapack.la \ ${DESTDIR}${PREFIX}/lib diff --git a/math/lapack/distinfo b/math/lapack/distinfo index 1d104b6321d..438b7dcb91c 100644 --- a/math/lapack/distinfo +++ b/math/lapack/distinfo @@ -1,9 +1,9 @@ -$NetBSD: distinfo,v 1.12 2009/10/20 14:00:23 tnn Exp $ +$NetBSD: distinfo,v 1.13 2010/03/17 21:47:11 dmcmahill Exp $ SHA1 (lapack-lite-3.1.1.tgz) = 1ec4ef90b544cf82bc7b4f770cee6fb46da457c5 RMD160 (lapack-lite-3.1.1.tgz) = d81baafd1f0f9859d9f75ac9b658f743544b5f5b Size (lapack-lite-3.1.1.tgz) = 5332509 bytes SHA1 (patch-aa) = 75671f2cc3233241f03ecab5a5d79cb505eece15 SHA1 (patch-ab) = fd5989eaafc622f29284759f538ccc0f11dfe624 -SHA1 (patch-ac) = 649f7e40142936af49c8c9dbec376bdd1a11b05a +SHA1 (patch-ac) = 594736353b377c72bd41969e2ef62ef1871ae2ca SHA1 (patch-ad) = eb9cdf3d47cef03e2c679b0eda8d8120c572a2c0 diff --git a/math/lapack/files/etime_test.f b/math/lapack/files/etime_test.f new file mode 100644 index 00000000000..32c313467e9 --- /dev/null +++ b/math/lapack/files/etime_test.f @@ -0,0 +1,27 @@ + program main + +c +c $NetBSD: etime_test.f,v 1.1 2010/03/17 21:47:11 dmcmahill Exp $ +c +c Simple program to check if the etime function is available +c + implicit none + + real cpu + real etime + intrinsic etime + real t_array(2) + + cpu = etime ( t_array ) + + write ( *, '(a)' ) ' ' + write ( *, '(a)' ) ' ETIME reports:' + write ( *, '(a,g14.6)' ) + & ' The current CPU time is ', cpu + write ( *, '(a,g14.6)' ) + & ' TARRAY(1) = ', t_array(1) + write ( *, '(a,g14.6)' ) + & ' TARRAY(2) = ', t_array(2) + + stop + end diff --git a/math/lapack/patches/patch-ac b/math/lapack/patches/patch-ac index 1da198289aa..4fd4d00c1ed 100644 --- a/math/lapack/patches/patch-ac +++ b/math/lapack/patches/patch-ac @@ -1,8 +1,8 @@ -$NetBSD: patch-ac,v 1.1 2007/12/10 17:50:31 adam Exp $ +$NetBSD: patch-ac,v 1.2 2010/03/17 21:47:11 dmcmahill Exp $ --- /dev/null 2007-11-22 18:29:57.000000000 +0100 +++ make.inc -@@ -0,0 +1,10 @@ +@@ -0,0 +1,9 @@ +SHELL= /bin/sh +PLAT= _${MACHINE} +FORTRAN= ${FC} @@ -11,5 +11,4 @@ $NetBSD: patch-ac,v 1.1 2007/12/10 17:50:31 adam Exp $ +NOOPT= +LOADER= ${FC} +LOADOPTS= -+TIMER= EXT_ETIME +LAPACKLIB= liblapack.la -- cgit v1.2.3