ports/53563: Update to Math/UMFPACK

Pedro F. Giffuni giffunip at yahoo.com
Fri Jun 20 19:50:14 UTC 2003


>Number:         53563
>Category:       ports
>Synopsis:       Update to Math/UMFPACK
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jun 20 12:50:12 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Pedro F. Giffuni
>Release:        FreeBSD 5.0-RELEASE i386
>Organization:
>Environment:
System: FreeBSD giffuni.org 5.0-RELEASE FreeBSD 5.0-RELEASE #3:
Wed Apr 16 22:20:49 COT 2003
pedro at giffuni.org:/usr/src/sys/i386/compile/CPQ i386


>Description:

New version is written in C, is redistributable and is included
in Matlab.

>How-To-Repeat:
	
>Fix:
This patch updates umfpack to latest version and uses CBLAS from
ATLAS instead of the unaccelarated BLAS.


______________________________________________________________________
Yahoo! Mail: 6MB di spazio gratuito, 30MB per i tuoi allegati, l'antivirus, il filtro Anti-spam
http://it.yahoo.com/mail_it/foot/?http://it.mail.yahoo.com/
--0-1688969307-1056138432=:54961
Content-Type: text/plain; name=patch-umfpack
Content-Description: patch-umfpack
Content-Disposition: inline; filename=patch-umfpack

diff -ruN umfpack.orig/Makefile umfpack/Makefile
--- umfpack.orig/Makefile	Thu Jun 12 23:03:47 2003
+++ umfpack/Makefile	Thu Jun 19 15:15:03 2003
@@ -6,25 +6,33 @@
 #
 
 PORTNAME=	umfpack
-PORTVERSION=	2.2.1
+PORTVERSION=	4.1
 CATEGORIES=	math
 MASTER_SITES=	ftp://ftp.cise.ufl.edu/pub/faculty/davis/umfpack/
-DISTNAME=	UMFPACK${PORTVERSION}
+DISTNAME=	UMFPACKv${PORTVERSION}
 
 MAINTAINER=	ports at FreeBSD.org
-COMMENT=	Unsymmetric-pattern Multifrontal Package
+COMMENT=	Unsymmetric-pattern MultiFrontal Package
 
-BUILD_DEPENDS=	${LOCALBASE}/lib/libblas.a:${PORTSDIR}/math/blas
+BUILD_DEPENDS=	${LOCALBASE}/lib/libcblas.a:${PORTSDIR}/math/atlas
 
-NO_CDROM=	'Must not be sold'
-ALL_TARGET=	libumfpack.a
+WRKSRC=		${WRKDIR}/${DISTNAME}/UMFPACK
+ALL_TARGET=	lib
+
+post-extract:
+	${CP} ${FILESDIR}/Make.freebsd ${WRKDIR}/${DISTNAME}/AMD/Make
 
 do-install:
-	${INSTALL_DATA} ${WRKSRC}/libumfpack.a ${PREFIX}/lib
+	${INSTALL_DATA} ${WRKDIR}/${DISTNAME}/AMD/Lib/libamd.a ${PREFIX}/lib
+	${INSTALL_DATA} ${WRKSRC}/Lib/libumfpack.a ${PREFIX}/lib
+
 .if !defined(NOPORTDOCS)
-	@${MKDIR} ${PREFIX}/share/doc/umfpack
-	${INSTALL_DATA} ${WRKSRC}/README ${PREFIX}/share/doc/umfpack
-	${GZIP_CMD} ${PREFIX}/share/doc/umfpack/README
+	@${MKDIR} ${DOCSDIR}
+	${INSTALL_DATA} ${WRKDIR}/${DISTNAME}/AMD/Doc/*.pdf ${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}
+	${GZIP_CMD} ${DOCSDIR}/README
+	${INSTALL_DATA} ${WRKSRC}/*.pdf  ${DOCSDIR}
+	${CP} -R ${WRKDIR}/${DISTNAME}/Papers ${DOCSDIR}
 .endif
 
 .include <bsd.port.mk>
diff -ruN umfpack.orig/distinfo umfpack/distinfo
--- umfpack.orig/distinfo	Thu Jun 12 23:03:47 2003
+++ umfpack/distinfo	Thu Jun 12 23:06:04 2003
@@ -1 +1 @@
-MD5 (UMFPACK2.2.1.tar.gz) = b8668f68715929be9c7e30400c1cd6f7
+MD5 (UMFPACKv4.1.tar.gz) = 871dd16ea2b699f6f181ee212170ec63
diff -ruN umfpack.orig/files/Make.freebsd umfpack/files/Make.freebsd
--- umfpack.orig/files/Make.freebsd	Wed Dec 31 19:00:00 1969
+++ umfpack/files/Make.freebsd	Thu Jun 19 13:53:50 2003
@@ -0,0 +1,45 @@
+#-------------------------------------------------------------------------------
+# FreeBSD configuration (for both AMD and UMFPACK)
+#-------------------------------------------------------------------------------
+
+# Using GNU gcc and f77 compilers:
+CC ?= gcc
+CFLAGS ?= -O3 -fPIC
+
+# Using Intel's icc and ifc compilers:
+# F77 = ifc
+# CC = icc
+# CFLAGS = -ansi -O3 -ip -tpp7 -xW -vec_report0
+# CFLAGS = -pg -g
+
+# Using gcc compiler with picky tests
+# CC = gcc
+# CFLAGS = -ansi -pedantic -W -Wall -Wno-parentheses -Wshadow -Wcast-align -Winline -Wstrict-prototypes -Wno-unknown-pragmas -O3 -fPIC
+
+# for gcc and gcov:
+# CC = gcc
+# CFLAGS = -pg -ftest-coverage -fprofile-arcs
+
+# Running splint
+# CC = - splint
+# CFLAGS = -weak -fixedformalarray -badflag -fileextensions +relaxtypes +posixlib -unrecog
+
+#-------------------------------------------------------------------------------
+# BLAS options (for UMFPACK only)
+#-------------------------------------------------------------------------------
+
+# 1: with no BLAS (this will be slow)
+# CONFIG = -DNBLAS
+# LIB = -lm
+
+# 2: with the ATLAS C-BLAS (http://www.netlib.org/atlas).
+CONFIG = -DCBLAS -I../ATLAS/include -I${LOCALBASE}/include
+LIB = -L${LOCALBASE}/lib -lcblas -latlas -lm
+
+# 3: with Fortran interface to the ATLAS BLAS
+# CONFIG = -I${LOCALBASE}/include
+# LIB = -L${LOCALBASE}/lib -lf77blas -latlas -lg2c -lm
+
+# 4: with Fortran interface to the BLAS, and Goto's BLAS (untested)
+# CONFIG =
+# LIB = -lgoto -lxerbla -lfrtbegin -lg2c -lm -lunwind -lcprts
diff -ruN umfpack.orig/files/patch-Make+Make.include umfpack/files/patch-Make+Make.include
--- umfpack.orig/files/patch-Make+Make.include	Wed Dec 31 19:00:00 1969
+++ umfpack/files/patch-Make+Make.include	Thu Jun 19 14:07:49 2003
@@ -0,0 +1,31 @@
+--- Make/Make.include.orig	Wed Apr 23 14:08:18 2003
++++ Make/Make.include	Thu Jun 19 14:01:42 2003
+@@ -10,15 +10,15 @@
+ # AMD, or both AMD and UMFPACK, you only need to edit this one file (and
+ # optionaly, one of the ../Make/Make.<arch> files below).
+ 
+-CFLAGS = -O
++CFLAGS ?= -O
+ RANLIB = ranlib
+ LIB = -lm
+ RM = rm -f
+ MV = mv -f
+-F77 = f77
+-F77FLAGS = -O
+-F77LIB =
+-AR = ar
++F77 ?= f77
++F77FLAGS = ${FFLAGS}
++#F77LIB =
++AR ?= ar
+ 
+ #-------------------------------------------------------------------------------
+ # for the AMD and UMFPACK mexFunctions (-DNBLAS and -DNUTIL for UMFPACK only)
+@@ -49,6 +49,7 @@
+ # CC = ... to redefine the name of your C compiler, for example.  Without
+ # any specific changes, this Makefile should work on nearly all systems.
+ 
++include ../Make/Make.freebsd
+ # include ../Make/Make.linux
+ # include ../Make/Make.sgi
+ # include ../Make/Make.solaris
diff -ruN umfpack.orig/files/patch-aa umfpack/files/patch-aa
--- umfpack.orig/files/patch-aa	Thu Jun 12 23:03:47 2003
+++ umfpack/files/patch-aa	Wed Dec 31 19:00:00 1969
@@ -1,19 +0,0 @@
-*** Makefile.orig	Mon Jul  7 12:03:46 1997
---- Makefile	Sun Dec 14 15:18:13 1997
-***************
-*** 19,25 ****
-  	  umz2er.o umz2p1.o umz2p2.o \
-  	  umz2rf.o umz2ra.o umz2r0.o umz2r2.o umz2rg.o umz21i.o
-  
-! HARWELL	= mc21b.o mc13e.o
-  
-  BLASLIB	= libblas.a
-  UMFPACKLIB = libumfpack.a
---- 19,25 ----
-  	  umz2er.o umz2p1.o umz2p2.o \
-  	  umz2rf.o umz2ra.o umz2r0.o umz2r2.o umz2rg.o umz21i.o
-  
-! #HARWELL	= mc21b.o mc13e.o
-  
-  BLASLIB	= libblas.a
-  UMFPACKLIB = libumfpack.a
diff -ruN umfpack.orig/files/patch-ba umfpack/files/patch-ba
--- umfpack.orig/files/patch-ba	Thu Jun 12 23:03:47 2003
+++ umfpack/files/patch-ba	Wed Dec 31 19:00:00 1969
@@ -1,84 +0,0 @@
-Note: Although the Harwell routines are available in Netlib, they are a
-commercial product. This patch disables their use.
-
-*** umc2fb.f.orig	Fri Nov  7 11:32:20 1997
---- umc2fb.f	Fri Nov  7 11:43:14 1997
-***************
-*** 168,173 ****
---- 168,177 ----
-  C       if (MC21B and MC13E not available during installation) return
-  C=======================================================================
-  
-+ 	RETURN
-+ C=======================================================================
-+ C	The rest will be ignored !!!!!!!! (We are not using Harwell)	
-+ C=======================================================================
-          NZDIA = NZ
-          NZOFF = 0
-  
-*** umd2fb.f.orig	Fri Nov  7 11:32:30 1997
---- umd2fb.f	Fri Nov  7 11:44:14 1997
-***************
-*** 167,173 ****
-  C  EXECUTABLE STATEMENTS:
-  C       if (MC21B and MC13E not available during installation) return
-  C=======================================================================
-! 
-          NZDIA = NZ
-          NZOFF = 0
-  
---- 167,176 ----
-  C  EXECUTABLE STATEMENTS:
-  C       if (MC21B and MC13E not available during installation) return
-  C=======================================================================
-! 	RETURN
-! C=======================================================================
-! C	The rest will be ignored !!!!!!!! (We are not using Harwell)	
-! C=======================================================================
-          NZDIA = NZ
-          NZOFF = 0
-  
-*** ums2fb.f.orig	Fri Nov  7 11:32:44 1997
---- ums2fb.f	Fri Nov  7 11:44:54 1997
-***************
-*** 167,173 ****
-  C  EXECUTABLE STATEMENTS:
-  C       if (MC21B and MC13E not available during installation) return
-  C=======================================================================
-! 
-          NZDIA = NZ
-          NZOFF = 0
-  
---- 167,176 ----
-  C  EXECUTABLE STATEMENTS:
-  C       if (MC21B and MC13E not available during installation) return
-  C=======================================================================
-! 	RETURN
-! C=======================================================================
-! C	The rest will be ignored !!!!!!!! (We are not using Harwell)	
-! C=======================================================================
-          NZDIA = NZ
-          NZOFF = 0
-  
-*** umz2fb.f.orig	Fri Nov  7 11:32:57 1997
---- umz2fb.f	Fri Nov  7 11:45:42 1997
-***************
-*** 167,173 ****
-  C  EXECUTABLE STATEMENTS:
-  C       if (MC21B and MC13E not available during installation) return
-  C=======================================================================
-! 
-          NZDIA = NZ
-          NZOFF = 0
-  
---- 167,176 ----
-  C  EXECUTABLE STATEMENTS:
-  C       if (MC21B and MC13E not available during installation) return
-  C=======================================================================
-! 	RETURN
-! C=======================================================================
-! C	The rest will be ignored !!!!!!!! (We are not using Harwell)	
-! C=======================================================================
-          NZDIA = NZ
-          NZOFF = 0
-  
diff -ruN umfpack.orig/pkg-descr umfpack/pkg-descr
--- umfpack.orig/pkg-descr	Thu Jun 12 23:03:47 2003
+++ umfpack/pkg-descr	Thu Jun 19 14:17:55 2003
@@ -1,12 +1,20 @@
-UMFPACK Version 2.2 is a package for solving systems of sparse linear systems,
-Ax=b, where A is sparse and can be unsymmetric.  It is written in ANSI Fortran
-77.  There are options for choosing a good pivot order, factorizing a
-subsequent matrix with the same pivot order and nonzero pattern as a
-previously factorized matrix, and solving systems of linear equations with
-the factors (with A, L, or U; or with their transposes in the single/double
-precision versions).  Iterative refinement, with sparse backward error
-estimates, can be performed.  Single and double precision, complex, and
-complex double precision (complex*16) routines are available.  (Note that
-complex*16 is not ANSI Fortran-77, but is a common extension to it).
+A package for solving systems of sparse linear systems Ax=b, where A is 
+sparse and can be unsymmetric.  There are options for choosing a good 
+pivot order, factorizing a subsequent matrix with the same pivot order and 
+nonzero pattern as a previously factorized matrix, and solving systems of 
+linear equations with the factors (with A, L, or U; or with their 
+transposes in the single/double precision versions).  Iterative 
+refinement, with sparse backward error estimates, can be performed.  
+Single and double precision, complex, and complex double precision 
+(complex*16) routines are available.  
 
-WWW: http://www.cise.ufl.edu/~davis/umfpack.html
+WWW:	http://www.cise.ufl.edu/research/sparse/umfpack/
+
+This package also includes AMD, a set of routines for pre-ordering sparse 
+matrices prior to Cholesky or LU factorization using the aproximate 
+minimum degree ordering algorithm:
+	http://www.cise.ufl.edu/research/sparse/amd/
+_________
+Note: By default this port builds the C-callable interface using the CBLAS 
+interface from ATLAS, but other versions of BLAS could be used and there 
+is also a FORTRAN interface available.
diff -ruN umfpack.orig/pkg-message umfpack/pkg-message
--- umfpack.orig/pkg-message	Thu Jun 12 23:03:47 2003
+++ umfpack/pkg-message	Thu Jun 12 23:13:21 2003
@@ -1,29 +1,16 @@
-**********************************************************************
-* NOTICE:  "The UMFPACK Package may be used SOLELY for educational,   *
-* research, and benchmarking purposes by non-profit organizations and *
-* the U.S. government.  Commercial and other organizations may make   *
-* use of UMFPACK SOLELY for benchmarking purposes only.  UMFPACK may  *
-* be modified by or on behalf of the User for such use but at no time *
-* shall UMFPACK or any such modified version of UMFPACK become the    *
-* property of the User.  UMFPACK is provided without warranty of any  *
-* kind, either expressed or implied.  Neither the Authors nor their   *
-* employers shall be liable for any direct or consequential loss or   *
-* damage whatsoever arising out of the use or misuse of UMFPACK by    *
-* the User.  UMFPACK must not be sold.  You may make copies of        *
-* UMFPACK, but this NOTICE and the Copyright notice must appear in    *
-* all copies.  Any other use of UMFPACK requires written permission.  *
-* Your use of UMFPACK is an implicit agreement to these conditions."  *
-*                                                                     *
-* The MA38 Package in Release 12 of the Harwell Subroutine Library    *
-* (HSL) has equivalent functionality (and identical calling interface)*
-* as UMFPACK (the HSL has single and double precision versions only,  *
-* however).  It is available for commercial use.   Technical reports, *
-* information on HSL, and matrices are available via the World Wide   *
-* Web at http://www.cis.rl.ac.uk/struct/ARCD/NUM.html, or by          *
-* anonymous ftp at seamus.cc.rl.ac.uk/pub.  Also contact Dr. Scott    *
-* Roberts, Harwell Subroutine Library, B 552, AEA Technology,         *
-* Harwell, Didcot, Oxon OX11 0RA, England.                            *
-* telephone (44) 1235 434988, fax (44) 1235 434136                    *
-* email Scott.Roberts at aeat.co.uk, who will provide details of price   *
-* and conditions of use.                                              *
-***********************************************************************
+    Your use or distribution of UMFPACK or any modified version of
+    UMFPACK implies that you agree to this License.
+
+    THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+    EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+
+    Permission is hereby granted to use or copy this program, provided
+    that the Copyright, this License, and the Availability of the original
+    version is retained on all copies.  User documentation of any code that
+    uses UMFPACK or any modified version of UMFPACK code must cite the
+    Copyright, this License, the Availability note, and "Used by permission."
+    Permission to modify the code and to distribute modified code is granted,
+    provided the Copyright, this License, and the Availability note are
+    retained, and a notice that the code was modified is included.  This
+    software was developed with support from the National Science Foundation,
+    and is provided to you free of charge.
diff -ruN umfpack.orig/pkg-plist umfpack/pkg-plist
--- umfpack.orig/pkg-plist	Thu Jun 12 23:03:47 2003
+++ umfpack/pkg-plist	Thu Jun 19 15:15:35 2003
@@ -1,3 +1,15 @@
+lib/libamd.a
 lib/libumfpack.a
-%%PORTDOCS%%share/doc/umfpack/README.gz
+%%PORTDOCS%%%%DOCSDIR%%/AMD_userguide.pdf
+%%PORTDOCS%%%%DOCSDIR%%/QuickStart.pdf
+%%PORTDOCS%%%%DOCSDIR%%/UserGuide.pdf
+%%PORTDOCS%%%%DOCSDIR%%/Papers/amadalgo.pdf
+%%PORTDOCS%%%%DOCSDIR%%/Papers/amadalgo.ps
+%%PORTDOCS%%%%DOCSDIR%%/Papers/amf4.pdf
+%%PORTDOCS%%%%DOCSDIR%%/Papers/amf4.ps
+%%PORTDOCS%%%%DOCSDIR%%/Papers/amf4algo.pdf
+%%PORTDOCS%%%%DOCSDIR%%/Papers/amf4algo.ps
+%%PORTDOCS%%%%DOCSDIR%%/README.gz
+%%PORTDOCS%%@dirrm share/doc/umfpack/Papers
 %%PORTDOCS%%@dirrm share/doc/umfpack
+

--0-1688969307-1056138432=:54961--
>Release-Note:
>Audit-Trail:
>Unformatted:
 --0-1688969307-1056138432=:54961
 Content-Type: text/plain; charset=iso-8859-1
 Content-Transfer-Encoding: 8bit
 Content-Id: 
 Content-Disposition: inline
 



More information about the freebsd-ports-bugs mailing list