From nobody@FreeBSD.org  Wed Feb  8 00:49:46 2006
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id B9E8D16A420
	for <freebsd-gnats-submit@FreeBSD.org>; Wed,  8 Feb 2006 00:49:46 +0000 (GMT)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [216.136.204.117])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 7C28C43D45
	for <freebsd-gnats-submit@FreeBSD.org>; Wed,  8 Feb 2006 00:49:46 +0000 (GMT)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.13.1/8.13.1) with ESMTP id k180nkR1041188
	for <freebsd-gnats-submit@FreeBSD.org>; Wed, 8 Feb 2006 00:49:46 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.13.1/8.13.1/Submit) id k180nkXq041187;
	Wed, 8 Feb 2006 00:49:46 GMT
	(envelope-from nobody)
Message-Id: <200602080049.k180nkXq041187@www.freebsd.org>
Date: Wed, 8 Feb 2006 00:49:46 GMT
From: "Pedro F. Giffuni" <giffunip@asme.org>
To: freebsd-gnats-submit@FreeBSD.org
Subject: Minor port enhancement to math/umfpack port
X-Send-Pr-Version: www-2.3

>Number:         93005
>Category:       ports
>Synopsis:       Minor port enhancement to math/umfpack port
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Feb 08 00:50:02 GMT 2006
>Closed-Date:    Mon Feb 20 08:59:33 GMT 2006
>Last-Modified:  Mon Feb 20 12:50:03 GMT 2006
>Originator:     Pedro F. Giffuni
>Release:        6.0R amd64
>Organization:
>Environment:
FreeBSD etoile.cable.net.co 6.0-RELEASE FreeBSD 6.0-RELEASE #11: Thu Feb  2 23:55:44 COT 2006     root@etoile.cable.net.co:/usr/src/sys/amd64/compile/DIMENSION  amd64
>Description:
              Let the cblas library get overriden from the ports makefile, also implement maintainers mode. 
FWIW, I wanted to activate LP64 for amd64 and ia64 but the author recommended not doing this as unfortunately the current BLAS libraries don't implement 64 bit extensions and this would hit performance very badly. 
>How-To-Repeat:
              
>Fix:
    Patch follows:
diff -ruN umfpack.orig/Makefile umfpack/Makefile
--- umfpack.orig/Makefile	Sun Dec 18 16:03:54 2005
+++ umfpack/Makefile	Tue Feb  7 19:40:17 2006
@@ -19,10 +19,20 @@
 WRKSRC=		${WRKDIR}/${DISTNAME}/UMFPACK
 ALL_TARGET=	lib
 
+USE_REINPLACE=	yes
+CBLAS_LIBS?=	-lcblas -latlas
+
 post-extract:
 	${CP}	${WRKDIR}/${DISTNAME}/AMD/Make/Make.linux	\
 		${WRKDIR}/${DISTNAME}/AMD/Make/Make.freebsd
 
+pre-build:
+	@${REINPLACE_CMD} -e 's+%%CC%%+${CC}+g ;	\
+	s+%%CFLAGS%%+${CFLAGS}+ ;		\
+	s+%%BLASBASE%%+${LOCALBASE}+ ;		\
+	s+%%CBLAS_LIBS%%+${CBLAS_LIBS}+ ;'	\
+	 ${WRKDIR}/${DISTNAME}/AMD/Make/Make.freebsd
+
 do-install:
 	${INSTALL_DATA} ${WRKDIR}/${DISTNAME}/AMD/Lib/libamd.a ${PREFIX}/lib
 	${INSTALL_DATA} ${WRKSRC}/Lib/libumfpack.a ${PREFIX}/lib
@@ -46,5 +56,11 @@
 	@${FIND} ${EXAMPLESDIR} | ${XARGS} ${CHOWN} ${SHAREOWN}:${SHAREGRP}
 	@${FIND} ${EXAMPLESDIR} -type f | ${XARGS} ${CHMOD} ${SHAREMODE}
 .endif
+
+.if defined(MAINTAINER_MODE)
+test:	build
+	@(cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} $(MAKE) hb )
+.endif
+
 
 .include <bsd.port.mk>
diff -ruN umfpack.orig/files/patch-Make+Make.freebsd umfpack/files/patch-Make+Make.freebsd
--- umfpack.orig/files/patch-Make+Make.freebsd	Sun Dec 18 16:03:54 2005
+++ umfpack/files/patch-Make+Make.freebsd	Tue Feb  7 19:39:19 2006
@@ -1,13 +1,13 @@
---- Make/Make.freebsd.orig	Fri Mar 18 22:29:13 2005
-+++ Make/Make.freebsd	Fri Mar 18 22:30:13 2005
+--- Make/Make.freebsd.orig	Sat Jan 14 17:09:34 2006
++++ Make/Make.freebsd	Sat Jan 14 17:13:14 2006
 @@ -6,8 +6,8 @@
  # if you use the Intel compiler and the Fortran BLAS.
  
  # Using GNU gcc and f77 compilers:
 -  CC = gcc
 -  CFLAGS = -O3 -fPIC
-+  CC ?= cc
-+  CFLAGS ?= -O3 -fPIC
++  CC = %%CC%%
++  CFLAGS = %%CFLAGS%% -fPIC
  
  # Using Intel's icc and ifc compilers:
  # F77 = ifc
@@ -17,14 +17,14 @@
  # 2: with the ATLAS C-BLAS (http://www.netlib.org/atlas).
 -# CONFIG = -DCBLAS -I../ATLAS/include
 -# LIB = -lcblas -latlas -lm
-+CONFIG = -DCBLAS -I../ATLAS/include -I${LOCALBASE}/include
-+LIB = -L${LOCALBASE}/lib -lcblas -latlas -lm
++CONFIG = -DGETRUSAGE -DCBLAS -I../ATLAS/include -I%%BLASBASE%%/include
++LIB = -L%%BLASBASE%%/lib %%CBLAS_LIBS%% -lm
  
  # 3: with Fortran interface to the ATLAS BLAS
 -# CONFIG =
 -# LIB = -lf77blas -latlas -lfrtbegin -lg2c -lm
-+# CONFIG = -I${LOCALBASE}/include
-+# LIB = -L${LOCALBASE}/lib -lf77blas -latlas -lfrtbegin -lg2c -lm
++# CONFIG = -I%%BLASBASE%%/include
++# LIB = -L%%BLASBASE%%/lib -lf77blas -latlas -lfrtbegin -lg2c -lm
  
  # 4: with Fortran interface to the BLAS, and Goto's BLAS
 -  CONFIG =

>Release-Note:
>Audit-Trail:

From: <pfgshield-freebsd@yahoo.com>
To: FreeBSD-gnats-submit@FreeBSD.org
Cc:  
Subject: Re: ports/93005: Minor port enhancement to math/umfpack port
Date: Mon, 20 Feb 2006 02:08:14 +0100 (CET)

 The following diff is cleaner, and adds the -fPIC flag for amd64 case to make
 it possible to build shared libs with umfpack and libamd.
 
 diff -ruN umfpack.orig/Makefile umfpack/Makefile
 --- umfpack.orig/Makefile	Sun Dec 18 16:03:54 2005
 +++ umfpack/Makefile	Sun Feb 19 15:33:30 2006
 @@ -19,10 +19,19 @@
  WRKSRC=		${WRKDIR}/${DISTNAME}/UMFPACK
  ALL_TARGET=	lib
  
 +CBLAS_LIBS?=	-L${LOCALBASE}/lib -lcblas -latlas
 +
  post-extract:
  	${CP}	${WRKDIR}/${DISTNAME}/AMD/Make/Make.linux	\
  		${WRKDIR}/${DISTNAME}/AMD/Make/Make.freebsd
  
 +pre-build:
 +	@${REINPLACE_CMD} -e 's+%%CC%%+${CC}+g ;	\
 +	s+%%CFLAGS%%+${CFLAGS}+ ;		\
 +	s+%%LOCALBASE%%+${LOCALBASE}+ ;		\
 +	s+%%CBLAS_LIBS%%+${CBLAS_LIBS}+ ;'	\
 +	 ${WRKDIR}/${DISTNAME}/AMD/Make/Make.freebsd
 +
  do-install:
  	${INSTALL_DATA} ${WRKDIR}/${DISTNAME}/AMD/Lib/libamd.a ${PREFIX}/lib
  	${INSTALL_DATA} ${WRKSRC}/Lib/libumfpack.a ${PREFIX}/lib
 @@ -47,4 +56,15 @@
  	@${FIND} ${EXAMPLESDIR} -type f | ${XARGS} ${CHMOD} ${SHAREMODE}
  .endif
  
 -.include <bsd.port.mk>
 +.if defined(MAINTAINER_MODE)
 +test:	build
 +	@(cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} $(MAKE) hb )
 +.endif
 +
 +.include <bsd.port.pre.mk>
 +
 +.if ${ARCH} == "amd64"
 +CFLAGS+=	-fPIC
 +.endif
 +
 +.include <bsd.port.post.mk>
 diff -ruN umfpack.orig/files/patch-Make+Make.freebsd
 umfpack/files/patch-Make+Make.freebsd
 --- umfpack.orig/files/patch-Make+Make.freebsd	Sun Dec 18 16:03:54 2005
 +++ umfpack/files/patch-Make+Make.freebsd	Sun Feb 19 15:30:17 2006
 @@ -1,13 +1,13 @@
 ---- Make/Make.freebsd.orig	Fri Mar 18 22:29:13 2005
 -+++ Make/Make.freebsd	Fri Mar 18 22:30:13 2005
 +--- Make/Make.freebsd.orig	Sun Feb 19 15:26:42 2006
 ++++ Make/Make.freebsd	Sun Feb 19 15:29:05 2006
  @@ -6,8 +6,8 @@
   # if you use the Intel compiler and the Fortran BLAS.
   
   # Using GNU gcc and f77 compilers:
  -  CC = gcc
  -  CFLAGS = -O3 -fPIC
 -+  CC ?= cc
 -+  CFLAGS ?= -O3 -fPIC
 ++  CC = %%CC%%
 ++  CFLAGS = %%CFLAGS%% -fPIC
   
   # Using Intel's icc and ifc compilers:
   # F77 = ifc
 @@ -17,14 +17,14 @@
   # 2: with the ATLAS C-BLAS (http://www.netlib.org/atlas).
  -# CONFIG = -DCBLAS -I../ATLAS/include
  -# LIB = -lcblas -latlas -lm
 -+CONFIG = -DCBLAS -I../ATLAS/include -I${LOCALBASE}/include
 -+LIB = -L${LOCALBASE}/lib -lcblas -latlas -lm
 ++CONFIG = -DGETRUSAGE -DCBLAS -I../ATLAS/include -I%%LOCALBASE%%/include
 ++LIB = %%CBLAS_LIBS%% -lm
   
   # 3: with Fortran interface to the ATLAS BLAS
  -# CONFIG =
  -# LIB = -lf77blas -latlas -lfrtbegin -lg2c -lm
 -+# CONFIG = -I${LOCALBASE}/include
 -+# LIB = -L${LOCALBASE}/lib -lf77blas -latlas -lfrtbegin -lg2c -lm
 ++# CONFIG = -I%%LOCALBASE%%/include
 ++# LIB = -L%%LOCALBASE%%/lib -lf77blas -latlas -lfrtbegin -lg2c -lm
   
   # 4: with Fortran interface to the BLAS, and Goto's BLAS
  -  CONFIG =
 
 
 ---
      Pedro F. Giffuni
      M. Sc. Industrial Eng. University of Pittsburgh
      Mech. Eng.      Universidad Nacional de Colombia
 ---
 Yahoo is powered by FreeBSD    http://www.FreeBSD.org/
 
 
 	
 
 	
 		
 ___________________________________ 
 Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB 
 http://mail.yahoo.it

From: <pfgshield-freebsd@yahoo.com>
To: FreeBSD-gnats-submit@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org
Cc:  
Subject: Re: ports/93005: Minor port enhancement to math/umfpack port
Date: Mon, 20 Feb 2006 02:18:35 +0100 (CET)

 ugh..sorry ofr submitting yet another patch, the original port actaully had
 -fPIC for everycase. IMHO, this makes sense on amd64 but we shouldn't be adding
 it for other architectures. Here is the revised patch:
 
 diff -ruN umfpack.orig/Makefile umfpack/Makefile
 --- umfpack.orig/Makefile	Sun Dec 18 16:03:54 2005
 +++ umfpack/Makefile	Sun Feb 19 20:11:31 2006
 @@ -19,10 +19,19 @@
  WRKSRC=		${WRKDIR}/${DISTNAME}/UMFPACK
  ALL_TARGET=	lib
  
 +CBLAS_LIBS?=	-L${LOCALBASE}/lib -lcblas -latlas
 +
  post-extract:
  	${CP}	${WRKDIR}/${DISTNAME}/AMD/Make/Make.linux	\
  		${WRKDIR}/${DISTNAME}/AMD/Make/Make.freebsd
  
 +pre-build:
 +	@${REINPLACE_CMD} -e 's+%%CC%%+${CC}+g ;	\
 +	s+%%CFLAGS%%+${CFLAGS}+ ;		\
 +	s+%%LOCALBASE%%+${LOCALBASE}+ ;		\
 +	s+%%CBLAS_LIBS%%+${CBLAS_LIBS}+ ;'	\
 +	 ${WRKDIR}/${DISTNAME}/AMD/Make/Make.freebsd
 +
  do-install:
  	${INSTALL_DATA} ${WRKDIR}/${DISTNAME}/AMD/Lib/libamd.a ${PREFIX}/lib
  	${INSTALL_DATA} ${WRKSRC}/Lib/libumfpack.a ${PREFIX}/lib
 @@ -47,4 +56,15 @@
  	@${FIND} ${EXAMPLESDIR} -type f | ${XARGS} ${CHMOD} ${SHAREMODE}
  .endif
  
 -.include <bsd.port.mk>
 +.if defined(MAINTAINER_MODE)
 +test:	build
 +	@(cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} $(MAKE) hb )
 +.endif
 +
 +.include <bsd.port.pre.mk>
 +
 +.if ${ARCH} == "amd64"
 +CFLAGS+=	-fPIC
 +.endif
 +
 +.include <bsd.port.post.mk>
 diff -ruN umfpack.orig/files/patch-Make+Make.freebsd
 umfpack/files/patch-Make+Make.freebsd
 --- umfpack.orig/files/patch-Make+Make.freebsd	Sun Dec 18 16:03:54 2005
 +++ umfpack/files/patch-Make+Make.freebsd	Sun Feb 19 20:12:34 2006
 @@ -1,13 +1,13 @@
 ---- Make/Make.freebsd.orig	Fri Mar 18 22:29:13 2005
 -+++ Make/Make.freebsd	Fri Mar 18 22:30:13 2005
 +--- Make/Make.freebsd.orig	Sun Feb 19 15:26:42 2006
 ++++ Make/Make.freebsd	Sun Feb 19 15:29:05 2006
  @@ -6,8 +6,8 @@
   # if you use the Intel compiler and the Fortran BLAS.
   
   # Using GNU gcc and f77 compilers:
  -  CC = gcc
  -  CFLAGS = -O3 -fPIC
 -+  CC ?= cc
 -+  CFLAGS ?= -O3 -fPIC
 ++  CC = %%CC%%
 ++  CFLAGS = %%CFLAGS%%
   
   # Using Intel's icc and ifc compilers:
   # F77 = ifc
 @@ -17,14 +17,14 @@
   # 2: with the ATLAS C-BLAS (http://www.netlib.org/atlas).
  -# CONFIG = -DCBLAS -I../ATLAS/include
  -# LIB = -lcblas -latlas -lm
 -+CONFIG = -DCBLAS -I../ATLAS/include -I${LOCALBASE}/include
 -+LIB = -L${LOCALBASE}/lib -lcblas -latlas -lm
 ++CONFIG = -DGETRUSAGE -DCBLAS -I../ATLAS/include -I%%LOCALBASE%%/include
 ++LIB = %%CBLAS_LIBS%% -lm
   
   # 3: with Fortran interface to the ATLAS BLAS
  -# CONFIG =
  -# LIB = -lf77blas -latlas -lfrtbegin -lg2c -lm
 -+# CONFIG = -I${LOCALBASE}/include
 -+# LIB = -L${LOCALBASE}/lib -lf77blas -latlas -lfrtbegin -lg2c -lm
 ++# CONFIG = -I%%LOCALBASE%%/include
 ++# LIB = -L%%LOCALBASE%%/lib -lf77blas -latlas -lfrtbegin -lg2c -lm
   
   # 4: with Fortran interface to the BLAS, and Goto's BLAS
  -  CONFIG =
 
 
 
 
 		
 ___________________________________ 
 Yahoo! Messenger with Voice: chiama da PC a telefono a tariffe esclusive 
 http://it.messenger.yahoo.com
State-Changed-From-To: open->closed 
State-Changed-By: thierry 
State-Changed-When: Mon Feb 20 08:58:07 UTC 2006 
State-Changed-Why:  

Committed, thanks! 

And please consider building shared libs to solve the problem on amd64... 


http://www.freebsd.org/cgi/query-pr.cgi?pr=93005 

From: Thierry Thomas <thierry@FreeBSD.org>
To: giffunip@asme.org
Cc: FreeBSD-gnats-submit@FreeBSD.org
Subject: Re: ports/93005: Minor port enhancement to math/umfpack port
Date: Mon, 20 Feb 2006 13:45:41 +0100

 --jy6Sn24JjFx/iggw
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 On Mon 20 feb 06 at 9:59:32 +0100, Thierry Thomas <thierry@FreeBSD.org>
  wrote:
 > And please consider building shared libs to solve the problem on amd64...
 
 Well, I did it. Could you please try the attached patch on your amd64
 box?
 
 Regards,
 -- 
 Th. Thomas.
 
 --jy6Sn24JjFx/iggw
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: attachment; filename="umfpack.diff"
 
 diff -urN math/umfpack.orig/Makefile math/umfpack/Makefile
 --- math/umfpack.orig/Makefile	Mon Feb 20 09:22:12 2006
 +++ math/umfpack/Makefile	Mon Feb 20 12:30:27 2006
 @@ -7,6 +7,7 @@
  
  PORTNAME=	umfpack
  PORTVERSION=	4.4
 +PORTREVISION=	1
  CATEGORIES=	math
  MASTER_SITES=	http://www.cise.ufl.edu/research/sparse/umfpack/v${PORTVERSION}/
  DISTNAME=	UMFPACKv${PORTVERSION}
 @@ -16,11 +17,17 @@
  
  BUILD_DEPENDS=	${LOCALBASE}/lib/libcblas.a:${PORTSDIR}/math/atlas
  
 +INSTALLS_SHLIB=	yes
 +
  WRKSRC=		${WRKDIR}/${DISTNAME}/UMFPACK
  ALL_TARGET=	lib
  
  CBLAS_LIBS?=	-L${LOCALBASE}/lib -lcblas -latlas
  
 +LIBAMD=		libamd.a libamd.so libamd.so.0	\
 +		libamdf77.a libamdf77.so libamdf77.so.0
 +LIBUMFPACK=	libumfpack.a libumfpack.so libumfpack.so.0
 +
  post-extract:
  	${CP}	${WRKDIR}/${DISTNAME}/AMD/Make/Make.linux	\
  		${WRKDIR}/${DISTNAME}/AMD/Make/Make.freebsd
 @@ -33,8 +40,8 @@
  	 ${WRKDIR}/${DISTNAME}/AMD/Make/Make.freebsd
  
  do-install:
 -	${INSTALL_DATA} ${WRKDIR}/${DISTNAME}/AMD/Lib/libamd.a ${PREFIX}/lib
 -	${INSTALL_DATA} ${WRKSRC}/Lib/libumfpack.a ${PREFIX}/lib
 +	${INSTALL_DATA} ${LIBAMD:S|^|${WRKDIR}/${DISTNAME}/AMD/Lib/|} ${PREFIX}/lib
 +	${INSTALL_DATA} ${LIBUMFPACK:S|^|${WRKSRC}/Lib/|} ${PREFIX}/lib
  .for mod in AMD UMFPACK
  	@${MKDIR} ${PREFIX}/include/${mod}
  	@for inc in `${LS} ${WRKSRC}/../${mod}/Include` ; do \
 diff -urN math/umfpack.orig/files/patch-AMD+Source+Makefile math/umfpack/files/patch-AMD+Source+Makefile
 --- math/umfpack.orig/files/patch-AMD+Source+Makefile	Thu Jan  1 01:00:00 1970
 +++ math/umfpack/files/patch-AMD+Source+Makefile	Mon Feb 20 12:20:56 2006
 @@ -0,0 +1,69 @@
 +--- ../AMD/Source/Makefile.orig	Thu Jan 29 20:40:47 2004
 ++++ ../AMD/Source/Makefile	Mon Feb 20 11:21:39 2006
 +@@ -8,12 +8,24 @@
 + # automatically, via make -n using the GNUmakefile.  That way, I don't have
 + # maintain two Makefiles.
 + 
 +-all: everything
 ++all: everything fortran shlib
 + 
 + include ../Make/Make.include
 + 
 + C = $(CC) $(CFLAGS) $(CONFIG) -I../Include
 + 
 ++LIBOBJS=amd_i_aat.o amd_i_1.o amd_i_2.o amd_i_dump.o \
 ++	amd_i_postorder.o amd_i_post_tree.o amd_i_defaults.o amd_i_order.o \
 ++	amd_i_control.o amd_i_info.o amd_i_valid.o amd_l_aat.o amd_l_1.o \
 ++	amd_l_2.o amd_l_dump.o amd_l_postorder.o amd_l_post_tree.o \
 ++	amd_l_defaults.o amd_l_order.o amd_l_control.o amd_l_info.o \
 ++	amd_l_valid.o amd_i_preprocess.o amd_l_preprocess.o
 ++LIBFOBJS=amd.o amdbar.o
 ++
 ++SHLIBLDFLAGS=-shared
 ++LIBAMD_SO=libamd.so
 ++LIBAMDF77_SO=libamdf77.so
 ++
 + everything:
 + 	$(C) -DDINT -c amd_aat.c -o amd_i_aat.o
 + 	$(C) -DDINT -c amd_1.c -o amd_i_1.o
 +@@ -39,12 +51,7 @@
 + 	$(C) -DDLONG -c amd_info.c -o amd_l_info.o
 + 	$(C) -DDLONG -c amd_valid.c -o amd_l_valid.o
 + 	$(C) -DDLONG -c amd_preprocess.c -o amd_l_preprocess.o
 +-	$(AR) cr ../Lib/libamd.a amd_i_aat.o amd_i_1.o amd_i_2.o amd_i_dump.o \
 +-	    amd_i_postorder.o amd_i_post_tree.o amd_i_defaults.o amd_i_order.o \
 +-	    amd_i_control.o amd_i_info.o amd_i_valid.o amd_l_aat.o amd_l_1.o \
 +-	    amd_l_2.o amd_l_dump.o amd_l_postorder.o amd_l_post_tree.o \
 +-	    amd_l_defaults.o amd_l_order.o amd_l_control.o amd_l_info.o \
 +-	    amd_l_valid.o amd_i_preprocess.o amd_l_preprocess.o
 ++	$(AR) cr ../Lib/libamd.a $(LIBOBJS)
 + 	- $(RANLIB) ../Lib/libamd.a
 + 
 + #-------------------------------------------------------------------------------
 +@@ -54,12 +61,24 @@
 + fortran:
 + 	$(F77) $(F77FLAGS) -c amd.f -o amd.o
 + 	$(F77) $(F77FLAGS) -c amdbar.f -o amdbar.o
 +-	$(AR) cr ../Lib/libamdf77.a amd.o amdbar.o
 ++	$(AR) cr ../Lib/libamdf77.a $(LIBFOBJS)
 + 	- $(RANLIB) ../Lib/libamdf77.a
 + 
 + #-------------------------------------------------------------------------------
 ++# $FreeBSD$
 ++# build shared libs
 ++#-------------------------------------------------------------------------------
 ++shlib:
 ++	$(C) $(SHLIBLDFLAGS) -o ../Lib/$(LIBAMD_SO).0 $(LIBOBJS)
 ++	$(F77) $(SHLIBLDFLAGS) -o ../Lib/$(LIBAMDF77_SO).0 $(LIBFOBJS)
 ++	(cd ../Lib ; \
 ++	ln -sf $(LIBAMD_SO).0 $(LIBAMD_SO) ; \
 ++	ln -sf $(LIBAMDF77_SO).0 $(LIBAMDF77_SO) )
 ++
 ++#-------------------------------------------------------------------------------
 + # Remove all but the files in the original distribution
 + #-------------------------------------------------------------------------------
 + 
 + purge: clean
 +-	- $(RM) ../Lib/libamd.a ../Lib/libamdf77.a
 ++	- $(RM) ../Lib/libamd.a ../Lib/libamdf77.a \
 ++		../Lib/$(LIBAMD_SO) ../Lib/$(LIBAMDF77_SO)
 diff -urN math/umfpack.orig/files/patch-Source+Makefile math/umfpack/files/patch-Source+Makefile
 --- math/umfpack.orig/files/patch-Source+Makefile	Thu Jan  1 01:00:00 1970
 +++ math/umfpack/files/patch-Source+Makefile	Mon Feb 20 12:22:06 2006
 @@ -0,0 +1,309 @@
 +--- Source/Makefile.orig	Thu Jan 13 20:46:25 2005
 ++++ Source/Makefile	Mon Feb 20 12:02:58 2006
 +@@ -8,12 +8,152 @@
 + # automatically, via make -n using the GNUmakefile.  That way, I don't have
 + # maintain two Makefiles.
 + 
 +-all: everything
 ++all: everything shlib
 + 
 + include ../Make/Make.include
 + 
 + C = $(CC) $(CFLAGS) $(CONFIG) -I../Include -I../../AMD/Include -I../../AMD/Source
 + 
 ++LIBOBJS=	\
 ++	    umf_i_analyze.o umf_i_apply_order.o umf_i_colamd.o umf_i_free.o \
 ++	    umf_i_fsize.o umf_i_is_permutation.o umf_i_malloc.o umf_i_realloc.o \
 ++	    umf_i_report_perm.o umf_i_singletons.o \
 ++	    umf_l_analyze.o umf_l_apply_order.o umf_l_colamd.o umf_l_free.o \
 ++	    umf_l_fsize.o umf_l_is_permutation.o umf_l_malloc.o umf_l_realloc.o \
 ++	    umf_l_report_perm.o umf_l_singletons.o \
 ++	    umfpack_gn_timer.o umfpack_gn_tictoc.o \
 ++	    umf_di_lhsolve.o \
 ++	    umf_di_uhsolve.o umf_di_triplet_map_nox.o umf_di_triplet_nomap_x.o \
 ++	    umf_di_triplet_nomap_nox.o umf_di_triplet_map_x.o \
 ++	    umf_di_assemble_fixq.o umf_di_store_lu_drop.o umf_di_assemble.o \
 ++	    umf_di_blas3_update.o umf_di_build_tuples.o \
 ++	    umf_di_create_element.o umf_di_dump.o umf_di_extend_front.o \
 ++	    umf_di_garbage_collection.o umf_di_get_memory.o \
 ++	    umf_di_init_front.o umf_di_kernel.o umf_di_kernel_init.o \
 ++	    umf_di_kernel_wrapup.o umf_di_local_search.o umf_di_lsolve.o \
 ++	    umf_di_ltsolve.o umf_di_mem_alloc_element.o \
 ++	    umf_di_mem_alloc_head_block.o umf_di_mem_alloc_tail_block.o \
 ++	    umf_di_mem_free_tail_block.o umf_di_mem_init_memoryspace.o \
 ++	    umf_di_report_vector.o umf_di_row_search.o umf_di_scale_column.o \
 ++	    umf_di_set_stats.o umf_di_solve.o umf_di_symbolic_usage.o \
 ++	    umf_di_transpose.o umf_di_tuple_lengths.o umf_di_usolve.o \
 ++	    umf_di_utsolve.o umf_di_valid_numeric.o umf_di_valid_symbolic.o \
 ++	    umf_di_grow_front.o umf_di_start_front.o umf_di_2by2.o \
 ++	    umf_di_store_lu.o umf_di_scale.o umfpack_di_wsolve.o \
 ++	    umfpack_di_col_to_triplet.o umfpack_di_defaults.o \
 ++	    umfpack_di_free_numeric.o umfpack_di_free_symbolic.o \
 ++	    umfpack_di_get_numeric.o umfpack_di_get_lunz.o \
 ++	    umfpack_di_get_symbolic.o umfpack_di_get_determinant.o \
 ++	    umfpack_di_numeric.o \
 ++	    umfpack_di_qsymbolic.o umfpack_di_report_control.o \
 ++	    umfpack_di_report_info.o umfpack_di_report_matrix.o \
 ++	    umfpack_di_report_numeric.o umfpack_di_report_perm.o \
 ++	    umfpack_di_report_status.o umfpack_di_report_symbolic.o \
 ++	    umfpack_di_report_triplet.o umfpack_di_report_vector.o \
 ++	    umfpack_di_solve.o umfpack_di_symbolic.o umfpack_di_transpose.o \
 ++	    umfpack_di_triplet_to_col.o umfpack_di_scale.o \
 ++	    umfpack_di_load_numeric.o umfpack_di_save_numeric.o \
 ++	    umfpack_di_load_symbolic.o umfpack_di_save_symbolic.o \
 ++	    umf_dl_lhsolve.o \
 ++	    umf_dl_uhsolve.o umf_dl_triplet_map_nox.o umf_dl_triplet_nomap_x.o \
 ++	    umf_dl_triplet_nomap_nox.o umf_dl_triplet_map_x.o \
 ++	    umf_dl_assemble_fixq.o umf_dl_store_lu_drop.o umf_dl_assemble.o \
 ++	    umf_dl_blas3_update.o umf_dl_build_tuples.o \
 ++	    umf_dl_create_element.o umf_dl_dump.o umf_dl_extend_front.o \
 ++	    umf_dl_garbage_collection.o umf_dl_get_memory.o \
 ++	    umf_dl_init_front.o umf_dl_kernel.o umf_dl_kernel_init.o \
 ++	    umf_dl_kernel_wrapup.o umf_dl_local_search.o umf_dl_lsolve.o \
 ++	    umf_dl_ltsolve.o umf_dl_mem_alloc_element.o \
 ++	    umf_dl_mem_alloc_head_block.o umf_dl_mem_alloc_tail_block.o \
 ++	    umf_dl_mem_free_tail_block.o umf_dl_mem_init_memoryspace.o \
 ++	    umf_dl_report_vector.o umf_dl_row_search.o umf_dl_scale_column.o \
 ++	    umf_dl_set_stats.o umf_dl_solve.o umf_dl_symbolic_usage.o \
 ++	    umf_dl_transpose.o umf_dl_tuple_lengths.o umf_dl_usolve.o \
 ++	    umf_dl_utsolve.o umf_dl_valid_numeric.o umf_dl_valid_symbolic.o \
 ++	    umf_dl_grow_front.o umf_dl_start_front.o umf_dl_2by2.o \
 ++	    umf_dl_store_lu.o umf_dl_scale.o umfpack_dl_wsolve.o \
 ++	    umfpack_dl_col_to_triplet.o umfpack_dl_defaults.o \
 ++	    umfpack_dl_free_numeric.o umfpack_dl_free_symbolic.o \
 ++	    umfpack_dl_get_numeric.o umfpack_dl_get_lunz.o \
 ++	    umfpack_dl_get_symbolic.o umfpack_dl_get_determinant.o \
 ++	    umfpack_dl_numeric.o \
 ++	    umfpack_dl_qsymbolic.o umfpack_dl_report_control.o \
 ++	    umfpack_dl_report_info.o umfpack_dl_report_matrix.o \
 ++	    umfpack_dl_report_numeric.o umfpack_dl_report_perm.o \
 ++	    umfpack_dl_report_status.o umfpack_dl_report_symbolic.o \
 ++	    umfpack_dl_report_triplet.o umfpack_dl_report_vector.o \
 ++	    umfpack_dl_solve.o umfpack_dl_symbolic.o umfpack_dl_transpose.o \
 ++	    umfpack_dl_triplet_to_col.o umfpack_dl_scale.o \
 ++	    umfpack_dl_load_numeric.o umfpack_dl_save_numeric.o \
 ++	    umfpack_dl_load_symbolic.o umfpack_dl_save_symbolic.o \
 ++	    umf_zi_lhsolve.o \
 ++	    umf_zi_uhsolve.o umf_zi_triplet_map_nox.o umf_zi_triplet_nomap_x.o \
 ++	    umf_zi_triplet_nomap_nox.o umf_zi_triplet_map_x.o \
 ++	    umf_zi_assemble_fixq.o umf_zi_store_lu_drop.o umf_zi_assemble.o \
 ++	    umf_zi_blas3_update.o umf_zi_build_tuples.o \
 ++	    umf_zi_create_element.o umf_zi_dump.o umf_zi_extend_front.o \
 ++	    umf_zi_garbage_collection.o umf_zi_get_memory.o \
 ++	    umf_zi_init_front.o umf_zi_kernel.o umf_zi_kernel_init.o \
 ++	    umf_zi_kernel_wrapup.o umf_zi_local_search.o umf_zi_lsolve.o \
 ++	    umf_zi_ltsolve.o umf_zi_mem_alloc_element.o \
 ++	    umf_zi_mem_alloc_head_block.o umf_zi_mem_alloc_tail_block.o \
 ++	    umf_zi_mem_free_tail_block.o umf_zi_mem_init_memoryspace.o \
 ++	    umf_zi_report_vector.o umf_zi_row_search.o umf_zi_scale_column.o \
 ++	    umf_zi_set_stats.o umf_zi_solve.o umf_zi_symbolic_usage.o \
 ++	    umf_zi_transpose.o umf_zi_tuple_lengths.o umf_zi_usolve.o \
 ++	    umf_zi_utsolve.o umf_zi_valid_numeric.o umf_zi_valid_symbolic.o \
 ++	    umf_zi_grow_front.o umf_zi_start_front.o umf_zi_2by2.o \
 ++	    umf_zi_store_lu.o umf_zi_scale.o umfpack_zi_wsolve.o \
 ++	    umfpack_zi_col_to_triplet.o umfpack_zi_defaults.o \
 ++	    umfpack_zi_free_numeric.o umfpack_zi_free_symbolic.o \
 ++	    umfpack_zi_get_numeric.o umfpack_zi_get_lunz.o \
 ++	    umfpack_zi_get_symbolic.o umfpack_zi_get_determinant.o \
 ++	    umfpack_zi_numeric.o \
 ++	    umfpack_zi_qsymbolic.o umfpack_zi_report_control.o \
 ++	    umfpack_zi_report_info.o umfpack_zi_report_matrix.o \
 ++	    umfpack_zi_report_numeric.o umfpack_zi_report_perm.o \
 ++	    umfpack_zi_report_status.o umfpack_zi_report_symbolic.o \
 ++	    umfpack_zi_report_triplet.o umfpack_zi_report_vector.o \
 ++	    umfpack_zi_solve.o umfpack_zi_symbolic.o umfpack_zi_transpose.o \
 ++	    umfpack_zi_triplet_to_col.o umfpack_zi_scale.o \
 ++	    umfpack_zi_load_numeric.o umfpack_zi_save_numeric.o \
 ++	    umfpack_zi_load_symbolic.o umfpack_zi_save_symbolic.o \
 ++	    umf_zl_lhsolve.o \
 ++	    umf_zl_uhsolve.o umf_zl_triplet_map_nox.o umf_zl_triplet_nomap_x.o \
 ++	    umf_zl_triplet_nomap_nox.o umf_zl_triplet_map_x.o \
 ++	    umf_zl_assemble_fixq.o umf_zl_store_lu_drop.o umf_zl_assemble.o \
 ++	    umf_zl_blas3_update.o umf_zl_build_tuples.o \
 ++	    umf_zl_create_element.o umf_zl_dump.o umf_zl_extend_front.o \
 ++	    umf_zl_garbage_collection.o umf_zl_get_memory.o \
 ++	    umf_zl_init_front.o umf_zl_kernel.o umf_zl_kernel_init.o \
 ++	    umf_zl_kernel_wrapup.o umf_zl_local_search.o umf_zl_lsolve.o \
 ++	    umf_zl_ltsolve.o umf_zl_mem_alloc_element.o \
 ++	    umf_zl_mem_alloc_head_block.o umf_zl_mem_alloc_tail_block.o \
 ++	    umf_zl_mem_free_tail_block.o umf_zl_mem_init_memoryspace.o \
 ++	    umf_zl_report_vector.o umf_zl_row_search.o umf_zl_scale_column.o \
 ++	    umf_zl_set_stats.o umf_zl_solve.o umf_zl_symbolic_usage.o \
 ++	    umf_zl_transpose.o umf_zl_tuple_lengths.o umf_zl_usolve.o \
 ++	    umf_zl_utsolve.o umf_zl_valid_numeric.o umf_zl_valid_symbolic.o \
 ++	    umf_zl_grow_front.o umf_zl_start_front.o umf_zl_2by2.o \
 ++	    umf_zl_store_lu.o umf_zl_scale.o umfpack_zl_wsolve.o \
 ++	    umfpack_zl_col_to_triplet.o umfpack_zl_defaults.o \
 ++	    umfpack_zl_free_numeric.o umfpack_zl_free_symbolic.o \
 ++	    umfpack_zl_get_numeric.o umfpack_zl_get_lunz.o \
 ++	    umfpack_zl_get_symbolic.o umfpack_zl_get_determinant.o \
 ++	    umfpack_zl_numeric.o \
 ++	    umfpack_zl_qsymbolic.o umfpack_zl_report_control.o \
 ++	    umfpack_zl_report_info.o umfpack_zl_report_matrix.o \
 ++	    umfpack_zl_report_numeric.o umfpack_zl_report_perm.o \
 ++	    umfpack_zl_report_status.o umfpack_zl_report_symbolic.o \
 ++	    umfpack_zl_report_triplet.o umfpack_zl_report_vector.o \
 ++	    umfpack_zl_solve.o umfpack_zl_symbolic.o umfpack_zl_transpose.o \
 ++	    umfpack_zl_triplet_to_col.o umfpack_zl_scale.o \
 ++	    umfpack_zl_load_numeric.o umfpack_zl_save_numeric.o \
 ++	    umfpack_zl_load_symbolic.o umfpack_zl_save_symbolic.o
 ++
 ++SHLIBLDFLAGS=-shared
 ++LIBUMFPACK_SO=libumfpack.so
 ++
 + everything:
 + 	$(C) -DDINT -c umf_analyze.c -o umf_i_analyze.o
 + 	$(C) -DDINT -c umf_apply_order.c -o umf_i_apply_order.o
 +@@ -334,142 +474,17 @@
 + 	$(C) -DZLONG -c umfpack_load_symbolic.c -o umfpack_zl_load_symbolic.o
 + 	$(C) -DZLONG -c umfpack_save_symbolic.c -o umfpack_zl_save_symbolic.o
 + 	$(AR) cr ../Lib/libumfpack.a \
 +-	    umf_i_analyze.o umf_i_apply_order.o umf_i_colamd.o umf_i_free.o \
 +-	    umf_i_fsize.o umf_i_is_permutation.o umf_i_malloc.o umf_i_realloc.o \
 +-	    umf_i_report_perm.o umf_i_singletons.o \
 +-	    umf_l_analyze.o umf_l_apply_order.o umf_l_colamd.o umf_l_free.o \
 +-	    umf_l_fsize.o umf_l_is_permutation.o umf_l_malloc.o umf_l_realloc.o \
 +-	    umf_l_report_perm.o umf_l_singletons.o \
 +-	    umfpack_gn_timer.o umfpack_gn_tictoc.o \
 +-	    umf_di_lhsolve.o \
 +-	    umf_di_uhsolve.o umf_di_triplet_map_nox.o umf_di_triplet_nomap_x.o \
 +-	    umf_di_triplet_nomap_nox.o umf_di_triplet_map_x.o \
 +-	    umf_di_assemble_fixq.o umf_di_store_lu_drop.o umf_di_assemble.o \
 +-	    umf_di_blas3_update.o umf_di_build_tuples.o \
 +-	    umf_di_create_element.o umf_di_dump.o umf_di_extend_front.o \
 +-	    umf_di_garbage_collection.o umf_di_get_memory.o \
 +-	    umf_di_init_front.o umf_di_kernel.o umf_di_kernel_init.o \
 +-	    umf_di_kernel_wrapup.o umf_di_local_search.o umf_di_lsolve.o \
 +-	    umf_di_ltsolve.o umf_di_mem_alloc_element.o \
 +-	    umf_di_mem_alloc_head_block.o umf_di_mem_alloc_tail_block.o \
 +-	    umf_di_mem_free_tail_block.o umf_di_mem_init_memoryspace.o \
 +-	    umf_di_report_vector.o umf_di_row_search.o umf_di_scale_column.o \
 +-	    umf_di_set_stats.o umf_di_solve.o umf_di_symbolic_usage.o \
 +-	    umf_di_transpose.o umf_di_tuple_lengths.o umf_di_usolve.o \
 +-	    umf_di_utsolve.o umf_di_valid_numeric.o umf_di_valid_symbolic.o \
 +-	    umf_di_grow_front.o umf_di_start_front.o umf_di_2by2.o \
 +-	    umf_di_store_lu.o umf_di_scale.o umfpack_di_wsolve.o \
 +-	    umfpack_di_col_to_triplet.o umfpack_di_defaults.o \
 +-	    umfpack_di_free_numeric.o umfpack_di_free_symbolic.o \
 +-	    umfpack_di_get_numeric.o umfpack_di_get_lunz.o \
 +-	    umfpack_di_get_symbolic.o umfpack_di_get_determinant.o \
 +-	    umfpack_di_numeric.o \
 +-	    umfpack_di_qsymbolic.o umfpack_di_report_control.o \
 +-	    umfpack_di_report_info.o umfpack_di_report_matrix.o \
 +-	    umfpack_di_report_numeric.o umfpack_di_report_perm.o \
 +-	    umfpack_di_report_status.o umfpack_di_report_symbolic.o \
 +-	    umfpack_di_report_triplet.o umfpack_di_report_vector.o \
 +-	    umfpack_di_solve.o umfpack_di_symbolic.o umfpack_di_transpose.o \
 +-	    umfpack_di_triplet_to_col.o umfpack_di_scale.o \
 +-	    umfpack_di_load_numeric.o umfpack_di_save_numeric.o \
 +-	    umfpack_di_load_symbolic.o umfpack_di_save_symbolic.o \
 +-	    umf_dl_lhsolve.o \
 +-	    umf_dl_uhsolve.o umf_dl_triplet_map_nox.o umf_dl_triplet_nomap_x.o \
 +-	    umf_dl_triplet_nomap_nox.o umf_dl_triplet_map_x.o \
 +-	    umf_dl_assemble_fixq.o umf_dl_store_lu_drop.o umf_dl_assemble.o \
 +-	    umf_dl_blas3_update.o umf_dl_build_tuples.o \
 +-	    umf_dl_create_element.o umf_dl_dump.o umf_dl_extend_front.o \
 +-	    umf_dl_garbage_collection.o umf_dl_get_memory.o \
 +-	    umf_dl_init_front.o umf_dl_kernel.o umf_dl_kernel_init.o \
 +-	    umf_dl_kernel_wrapup.o umf_dl_local_search.o umf_dl_lsolve.o \
 +-	    umf_dl_ltsolve.o umf_dl_mem_alloc_element.o \
 +-	    umf_dl_mem_alloc_head_block.o umf_dl_mem_alloc_tail_block.o \
 +-	    umf_dl_mem_free_tail_block.o umf_dl_mem_init_memoryspace.o \
 +-	    umf_dl_report_vector.o umf_dl_row_search.o umf_dl_scale_column.o \
 +-	    umf_dl_set_stats.o umf_dl_solve.o umf_dl_symbolic_usage.o \
 +-	    umf_dl_transpose.o umf_dl_tuple_lengths.o umf_dl_usolve.o \
 +-	    umf_dl_utsolve.o umf_dl_valid_numeric.o umf_dl_valid_symbolic.o \
 +-	    umf_dl_grow_front.o umf_dl_start_front.o umf_dl_2by2.o \
 +-	    umf_dl_store_lu.o umf_dl_scale.o umfpack_dl_wsolve.o \
 +-	    umfpack_dl_col_to_triplet.o umfpack_dl_defaults.o \
 +-	    umfpack_dl_free_numeric.o umfpack_dl_free_symbolic.o \
 +-	    umfpack_dl_get_numeric.o umfpack_dl_get_lunz.o \
 +-	    umfpack_dl_get_symbolic.o umfpack_dl_get_determinant.o \
 +-	    umfpack_dl_numeric.o \
 +-	    umfpack_dl_qsymbolic.o umfpack_dl_report_control.o \
 +-	    umfpack_dl_report_info.o umfpack_dl_report_matrix.o \
 +-	    umfpack_dl_report_numeric.o umfpack_dl_report_perm.o \
 +-	    umfpack_dl_report_status.o umfpack_dl_report_symbolic.o \
 +-	    umfpack_dl_report_triplet.o umfpack_dl_report_vector.o \
 +-	    umfpack_dl_solve.o umfpack_dl_symbolic.o umfpack_dl_transpose.o \
 +-	    umfpack_dl_triplet_to_col.o umfpack_dl_scale.o \
 +-	    umfpack_dl_load_numeric.o umfpack_dl_save_numeric.o \
 +-	    umfpack_dl_load_symbolic.o umfpack_dl_save_symbolic.o \
 +-	    umf_zi_lhsolve.o \
 +-	    umf_zi_uhsolve.o umf_zi_triplet_map_nox.o umf_zi_triplet_nomap_x.o \
 +-	    umf_zi_triplet_nomap_nox.o umf_zi_triplet_map_x.o \
 +-	    umf_zi_assemble_fixq.o umf_zi_store_lu_drop.o umf_zi_assemble.o \
 +-	    umf_zi_blas3_update.o umf_zi_build_tuples.o \
 +-	    umf_zi_create_element.o umf_zi_dump.o umf_zi_extend_front.o \
 +-	    umf_zi_garbage_collection.o umf_zi_get_memory.o \
 +-	    umf_zi_init_front.o umf_zi_kernel.o umf_zi_kernel_init.o \
 +-	    umf_zi_kernel_wrapup.o umf_zi_local_search.o umf_zi_lsolve.o \
 +-	    umf_zi_ltsolve.o umf_zi_mem_alloc_element.o \
 +-	    umf_zi_mem_alloc_head_block.o umf_zi_mem_alloc_tail_block.o \
 +-	    umf_zi_mem_free_tail_block.o umf_zi_mem_init_memoryspace.o \
 +-	    umf_zi_report_vector.o umf_zi_row_search.o umf_zi_scale_column.o \
 +-	    umf_zi_set_stats.o umf_zi_solve.o umf_zi_symbolic_usage.o \
 +-	    umf_zi_transpose.o umf_zi_tuple_lengths.o umf_zi_usolve.o \
 +-	    umf_zi_utsolve.o umf_zi_valid_numeric.o umf_zi_valid_symbolic.o \
 +-	    umf_zi_grow_front.o umf_zi_start_front.o umf_zi_2by2.o \
 +-	    umf_zi_store_lu.o umf_zi_scale.o umfpack_zi_wsolve.o \
 +-	    umfpack_zi_col_to_triplet.o umfpack_zi_defaults.o \
 +-	    umfpack_zi_free_numeric.o umfpack_zi_free_symbolic.o \
 +-	    umfpack_zi_get_numeric.o umfpack_zi_get_lunz.o \
 +-	    umfpack_zi_get_symbolic.o umfpack_zi_get_determinant.o \
 +-	    umfpack_zi_numeric.o \
 +-	    umfpack_zi_qsymbolic.o umfpack_zi_report_control.o \
 +-	    umfpack_zi_report_info.o umfpack_zi_report_matrix.o \
 +-	    umfpack_zi_report_numeric.o umfpack_zi_report_perm.o \
 +-	    umfpack_zi_report_status.o umfpack_zi_report_symbolic.o \
 +-	    umfpack_zi_report_triplet.o umfpack_zi_report_vector.o \
 +-	    umfpack_zi_solve.o umfpack_zi_symbolic.o umfpack_zi_transpose.o \
 +-	    umfpack_zi_triplet_to_col.o umfpack_zi_scale.o \
 +-	    umfpack_zi_load_numeric.o umfpack_zi_save_numeric.o \
 +-	    umfpack_zi_load_symbolic.o umfpack_zi_save_symbolic.o \
 +-	    umf_zl_lhsolve.o \
 +-	    umf_zl_uhsolve.o umf_zl_triplet_map_nox.o umf_zl_triplet_nomap_x.o \
 +-	    umf_zl_triplet_nomap_nox.o umf_zl_triplet_map_x.o \
 +-	    umf_zl_assemble_fixq.o umf_zl_store_lu_drop.o umf_zl_assemble.o \
 +-	    umf_zl_blas3_update.o umf_zl_build_tuples.o \
 +-	    umf_zl_create_element.o umf_zl_dump.o umf_zl_extend_front.o \
 +-	    umf_zl_garbage_collection.o umf_zl_get_memory.o \
 +-	    umf_zl_init_front.o umf_zl_kernel.o umf_zl_kernel_init.o \
 +-	    umf_zl_kernel_wrapup.o umf_zl_local_search.o umf_zl_lsolve.o \
 +-	    umf_zl_ltsolve.o umf_zl_mem_alloc_element.o \
 +-	    umf_zl_mem_alloc_head_block.o umf_zl_mem_alloc_tail_block.o \
 +-	    umf_zl_mem_free_tail_block.o umf_zl_mem_init_memoryspace.o \
 +-	    umf_zl_report_vector.o umf_zl_row_search.o umf_zl_scale_column.o \
 +-	    umf_zl_set_stats.o umf_zl_solve.o umf_zl_symbolic_usage.o \
 +-	    umf_zl_transpose.o umf_zl_tuple_lengths.o umf_zl_usolve.o \
 +-	    umf_zl_utsolve.o umf_zl_valid_numeric.o umf_zl_valid_symbolic.o \
 +-	    umf_zl_grow_front.o umf_zl_start_front.o umf_zl_2by2.o \
 +-	    umf_zl_store_lu.o umf_zl_scale.o umfpack_zl_wsolve.o \
 +-	    umfpack_zl_col_to_triplet.o umfpack_zl_defaults.o \
 +-	    umfpack_zl_free_numeric.o umfpack_zl_free_symbolic.o \
 +-	    umfpack_zl_get_numeric.o umfpack_zl_get_lunz.o \
 +-	    umfpack_zl_get_symbolic.o umfpack_zl_get_determinant.o \
 +-	    umfpack_zl_numeric.o \
 +-	    umfpack_zl_qsymbolic.o umfpack_zl_report_control.o \
 +-	    umfpack_zl_report_info.o umfpack_zl_report_matrix.o \
 +-	    umfpack_zl_report_numeric.o umfpack_zl_report_perm.o \
 +-	    umfpack_zl_report_status.o umfpack_zl_report_symbolic.o \
 +-	    umfpack_zl_report_triplet.o umfpack_zl_report_vector.o \
 +-	    umfpack_zl_solve.o umfpack_zl_symbolic.o umfpack_zl_transpose.o \
 +-	    umfpack_zl_triplet_to_col.o umfpack_zl_scale.o \
 +-	    umfpack_zl_load_numeric.o umfpack_zl_save_numeric.o \
 +-	    umfpack_zl_load_symbolic.o umfpack_zl_save_symbolic.o
 ++		$(LIBOBJS)
 + 	- $(RANLIB) ../Lib/libumfpack.a
 ++
 ++#-------------------------------------------------------------------------------
 ++# $FreeBSD$
 ++# build shared libs
 ++#-------------------------------------------------------------------------------
 ++shlib:
 ++	$(C) $(SHLIBLDFLAGS) -o ../Lib/$(LIBUMFPACK_SO).0 $(LIBOBJS)
 ++	(cd ../Lib ; \
 ++	ln -sf $(LIBUMFPACK_SO).0 $(LIBUMFPACK_SO) )
 + 
 + #-------------------------------------------------------------------------------
 + # Remove all but the files in the original distribution
 diff -urN math/umfpack.orig/pkg-plist math/umfpack/pkg-plist
 --- math/umfpack.orig/pkg-plist	Sat Mar 19 09:33:56 2005
 +++ math/umfpack/pkg-plist	Mon Feb 20 12:29:18 2006
 @@ -32,7 +32,14 @@
  include/UMFPACK/umfpack_triplet_to_col.h
  include/UMFPACK/umfpack_wsolve.h
  lib/libamd.a
 +lib/libamd.so
 +lib/libamd.so.0
 +lib/libamdf77.a
 +lib/libamdf77.so
 +lib/libamdf77.so.0
  lib/libumfpack.a
 +lib/libumfpack.so
 +lib/libumfpack.so.0
  %%PORTDOCS%%%%DOCSDIR%%/AMD_UserGuide.pdf
  %%PORTDOCS%%%%DOCSDIR%%/QuickStart.pdf
  %%PORTDOCS%%%%DOCSDIR%%/README.txt.gz
 
 --jy6Sn24JjFx/iggw--
>Unformatted:
