aboutsummaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authorThierry Thomas <thierry@FreeBSD.org>2004-11-21 20:56:57 +0000
committerThierry Thomas <thierry@FreeBSD.org>2004-11-21 20:56:57 +0000
commit3c83758fd227515c5d49daa1ece66c0951946595 (patch)
tree1b3205f53c4de3fc490089504c573c8b6c6bfc80 /math
parentd8da94329434cb29f71e7a3489f3bf024e17e354 (diff)
downloadports-3c83758fd227515c5d49daa1ece66c0951946595.tar.gz
ports-3c83758fd227515c5d49daa1ece66c0951946595.zip
Notes
Diffstat (limited to 'math')
-rw-r--r--math/Makefile1
-rw-r--r--math/petsc/Makefile230
-rw-r--r--math/petsc/distinfo2
-rw-r--r--math/petsc/files/patch-bmake::common::variables20
-rw-r--r--math/petsc/files/patch-makefile58
-rw-r--r--math/petsc/files/patch-python::PETSc::packages::Spooles.py12
-rw-r--r--math/petsc/files/patch-python::PETSc::packages::X11.py27
-rw-r--r--math/petsc/files/patch-src::mat::impls::rowbs::mpi::mpirowbs.h13
-rw-r--r--math/petsc/files/pkg-message.in5
-rw-r--r--math/petsc/pkg-descr9
-rw-r--r--math/petsc/pkg-plist272
11 files changed, 649 insertions, 0 deletions
diff --git a/math/Makefile b/math/Makefile
index 91a3b6d41112..99fd446e3b84 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -171,6 +171,7 @@
SUBDIR += pari
SUBDIR += pari-devel
SUBDIR += parmetis
+ SUBDIR += petsc
SUBDIR += php4-bcmath
SUBDIR += php4-gmp
SUBDIR += php5-bcmath
diff --git a/math/petsc/Makefile b/math/petsc/Makefile
new file mode 100644
index 000000000000..abdad8819c91
--- /dev/null
+++ b/math/petsc/Makefile
@@ -0,0 +1,230 @@
+# New ports collection makefile for: petsc
+# Date created: 25 September 2004
+# Whom: Thierry Thomas <thierry@pompo.net>
+#
+# $FreeBSD$
+#
+
+PORTNAME= petsc
+PORTVERSION= 2.2.1
+CATEGORIES= math parallel
+MASTER_SITES= ftp://info.mcs.anl.gov/pub/petsc/%SUBDIR%/
+MASTER_SITE_SUBDIR= . software_old
+DISTNAME= v${PORTVERSION}-${PATCH_LEVEL}.${PORTNAME}
+
+MAINTAINER= ports@FreeBSD.org
+COMMENT= Portable, Extensible Toolkit for Scientific computation
+
+PATCH_LEVEL= 23
+
+HAS_CONFIGURE= yes
+USE_PYTHON= yes
+USE_REINPLACE= yes
+CONFIGURE_SCRIPT= config/configure.py
+CONFIGURE_LOG= configure.log
+CONFIGURE_ENV= PETSC_ARCH=${TARGET} \
+ PETSC_DIR=${WRKSRC}
+CONFIGURE_ARGS= --prefix=${PREFIX} --CFLAGS="${CFLAGS}" \
+ --CXX_CXXFLAGS="${CXXFLAGS}" --FFLAGS="${FFLAGS}"
+MAKEFILE= makefile
+MAKE_ENV= PETSC_DIR=${WRKSRC} BOPT=O
+
+PKGMESSAGE= ${WRKDIR}/pkg-message
+
+.if !defined(WITHOUT_X11)
+USE_XLIB= yes
+CONFIGURE_ARGS+= --with-x-include=${X11BASE}/include \
+ --with-x-library=${X11BASE}/lib/libX11.so
+.endif
+
+FFLAGS?= -O2
+PFX= ${PORTNAME}-${PORTVERSION}
+WRKSRC= ${WRKDIR}/${PFX}
+TARGET= ${OPSYS:L}
+PLIST_SUB= PFX=${PFX} TARGET=${TARGET}
+
+.if !defined(WITHOUT_BLASLAPACK)
+LIB_DEPENDS+= f77blas.1:${PORTSDIR}/math/atlas
+LIBBLASLAPACK= "-L${LOCALBASE}/lib -lalapack -lf77blas -lcblas -latlas -lg2c -lm"
+CONFIGURE_ARGS+= --with-blas-lapack-lib=${LIBBLASLAPACK}
+.endif
+
+.if !defined(WITHOUT_SUPERLU)
+BUILD_DEPENDS+= ${LOCALBASE}/lib/libsuperlu.a:${PORTSDIR}/math/superlu
+CONFIGURE_ARGS+= --with-superlu-include=${LOCALBASE}/include/superlu \
+ --with-superlu-lib="-L${LOCALBASE}/lib -lsuperlu"
+.endif
+
+.if !defined(WITHOUT_UMFPACK)
+BUILD_DEPENDS+= ${LOCALBASE}/lib/libumfpack.a:${PORTSDIR}/math/umfpack
+CONFIGURE_ARGS+= --with-umfpack-include="${LOCALBASE}/include/UMFPACK" \
+ --with-umfpack-lib="-L${LOCALBASE}/lib -lumfpack -lamd"
+.endif
+
+.if !defined(NOPORTDOCS)
+PORTDOCS= *
+#BUILD_DEPENDS+= c2html:${PORTSDIR}/textproc/c2html \
+# pdflatex:${PORTSDIR}/print/teTeX-base \
+# doc2lt:${PORTSDIR}/textproc/sowing
+.endif
+
+LIBSCALAPACK= ${LOCALBASE}/lib/libscalapack.a
+LIBBLACS= ${LOCALBASE}/lib/libblacs.a
+MPIDIR= ${LOCALBASE}/mpich
+
+.include <bsd.port.pre.mk>
+
+.if exists(${MPIDIR}/bin/mpiCC)
+WITH_MPI= yes
+.endif
+.if defined(WITH_MPI)
+PKGNAMESUFFIX+= -mpich
+BUILD_DEPENDS+= ${MPIDIR}/bin/mpiCC:${PORTSDIR}/net/mpich
+RUN_DEPENDS+= ${MPIDIR}/bin/mpirun:${PORTSDIR}/net/mpich
+CONFIGURE_ARGS+= --with-mpi-dir=${LOCALBASE}/mpich
+CONFLICTS= petsc-2*
+PLIST_SUB+= MPI=""
+.else
+CONFIGURE_ARGS+= --with-mpi=0
+CONFLICTS= petsc-mpich-2*
+WITHOUT_BS95= yes
+WITHOUT_PARMETIS= yes
+WITHOUT_SPOOLES= yes
+PLIST_SUB+= MPI="@comment "
+.endif
+
+.if defined(WITHOUT_BS95)
+CONFIGURE_ARGS+= --with-blocksolve95=0
+.else
+BUILD_DEPENDS+= ${LOCALBASE}/lib/libBS95.a:${PORTSDIR}/math/blocksolve95
+CONFIGURE_ARGS+= --with-blocksolve95-include=${LOCALBASE}/include \
+ --with-blocksolve95-lib="-L${LOCALBASE}/lib -lBS95"
+.endif
+
+.if defined(WITHOUT_PARMETIS)
+CONFIGURE_ARGS+= --with-parmetis=0
+.else
+BUILD_DEPENDS+= ${LOCALBASE}/lib/parmetis/libparmetis.a:${PORTSDIR}/math/parmetis
+LIBPARMETIS= -L${LOCALBASE}/lib/parmetis -lparmetis -lmetis -lm
+CONFIGURE_ARGS+= --with-parmetis=1 \
+ --with-parmetis-include=${LOCALBASE}/include/parmetis \
+ --with-parmetis-lib="${LIBPARMETIS}"
+.endif
+
+#.if exists(${LIBBLACS})
+#WITH_BLACS= yes
+#.endif
+#.if defined(WITH_BLACS)
+#BUILD_DEPENDS+= ${LIBBLACS}:${PORTSDIR}/math/blacs
+#CONFIGURE_ARGS+= --with_mumps=1 \
+# --with-blacs-lib=1
+#. if exists(${LIBSCALAPACK})
+#WITH_SCALAPACK= yes
+#. endif
+#. if defined(WITH_SCALAPACK)
+#BUILD_DEPENDS+= ${LIBSCALAPACK}:${PORTSDIR}/math/scalapack
+#CONFIGURE_ARGS+= --with-scalapack-lib=1
+#. endif
+#.endif
+
+#.if exists(${LOCALBASE}/bin/lgrind)
+#WITH_LGRIND= yes
+#.endif
+#.if defined(WITH_LGRIND)
+#BUILD_DEPENDS+= lgrind:${PORTSDIR}/print/lgrind
+#RUN_DEPENDS+= lgrind:${PORTSDIR}/print/lgrind
+#.endif
+
+#.if exists(${LOCALBASE}/lib/libnetcdf.so)
+#WITH_NETCDF= yes
+#.endif
+#.if defined(WITH_NETCDF)
+#LIB_DEPENDS+= netcdf.1:${PORTSDIR}/math/netcdf
+#CONFIGURE_ENV+= NETCDF_INCLUDE=${LOCALBASE}/include \
+# NETCDF_LIB=${LOCALBASE}/lib
+#.endif
+
+.if exists(${LOCALBASE}/bin/svn)
+WITH_SVN= yes
+.endif
+.if defined(WITH_SVN)
+BUILD_DEPENDS+= svn:${PORTSDIR}/devel/subversion
+RUN_DEPENDS+= svn:${PORTSDIR}/devel/subversion
+.endif
+
+#.if exists(${LOCALBASE}/bin/valgrind)
+#WITH_VALGRIND= yes
+#.endif
+#.if defined(WITH_VALGRIND)
+#BUILD_DEPENDS+= valgrind:${PORTSDIR}/devel/valgrind
+#RUN_DEPENDS+= valgrind:${PORTSDIR}/devel/valgrind
+#.endif
+
+.if !defined(WITHOUT_SPOOLES)
+. if exists(${LOCALBASE}/lib/libspooles.a) \
+ && !exists(${LOCALBASE}/include/spooles/MPI/spoolesMPI.h)
+BROKEN= Please deinstall spooles and reinstall spooles-mpich
+. else
+BUILD_DEPENDS+= ${LOCALBASE}/lib/libspooles.a:${PORTSDIR}/math/spooles-mpich
+. endif
+CONFIGURE_ARGS+= --with-spooles-include=${LOCALBASE}/include/spooles \
+ --with-spooles-lib="-L${LOCALBASE}/lib -lspooles -lm"
+.endif
+
+pre-everything::
+ @${ECHO_MSG}
+.if !defined (WITH_MPI)
+ @${ECHO_MSG} "Define WITH_MPI to use mpich."
+.endif
+.if !defined (WITH_SVN)
+ @${ECHO_MSG} "Define WITH_SVN to use subversion."
+.endif
+.if !defined (WITHOUT_X11)
+ @${ECHO_MSG} "Define WITHOUT_X11 to remove X11 support."
+.endif
+.if !defined (WITHOUT_BLASLAPACK)
+ @${ECHO_MSG} "Define WITHOUT_BLASLAPACK to remove Blas / Lapack support."
+.endif
+.if !defined (WITHOUT_BS95)
+ @${ECHO_MSG} "Define WITHOUT_BS95 to remove BlockSolve95 support."
+.endif
+.if !defined (WITHOUT_PARMETIS)
+ @${ECHO_MSG} "Define WITHOUT_PARMETIS to remove ParMETIS support."
+.endif
+.if !defined (WITHOUT_SPOOLES)
+ @${ECHO_MSG} "Define WITHOUT_SPOOLES to remove SPOOLES support."
+.endif
+.if !defined (WITHOUT_SUPERLU)
+ @${ECHO_MSG} "Define WITHOUT_SUPERLU to remove SuperLU support."
+.endif
+.if !defined (WITHOUT_UMFPACK)
+ @${ECHO_MSG} "Define WITHOUT_UMFPACK to remove UMFPACK support."
+.endif
+ @${ECHO_MSG}
+
+pre-configure:
+ @${REINPLACE_CMD} -e "s|AMD/Include|include/AMD|" \
+ -e "s|AMD/Lib|${LOCALBASE}/lib|" \
+ ${WRKSRC}/python/PETSc/packages/Umfpack.py
+
+post-install:
+ @${RM} ${PREFIX}/${PFX}/bmake/common/variables.orig
+ ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py ${PREFIX}/${PFX}/bin
+ ${PYTHON_CMD} -O ${PYTHON_LIBDIR}/compileall.py ${PREFIX}/${PFX}/bin
+ ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py ${PREFIX}/${PFX}/bmake
+ ${PYTHON_CMD} -O ${PYTHON_LIBDIR}/compileall.py ${PREFIX}/${PFX}/bmake
+.if !defined(NOPORTDOCS)
+ @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} \
+ ${MAKEFILE} ${MAKE_ARGS} install_docs)
+.endif
+ @${SED} -e 's|%%PETSC_DIR%%|${PREFIX}/${PFX}|;s|%%PETSC_ARCH%%|${TARGET}|' \
+ ${FILESDIR}/pkg-message.in > ${PKGMESSAGE}
+ @${CAT} ${PKGMESSAGE}
+
+.if defined(MAINTAINER_MODE)
+test: build
+ @(cd ${BUILD_WRKSRC}; \
+ ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} test)
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/math/petsc/distinfo b/math/petsc/distinfo
new file mode 100644
index 000000000000..8c4d84695200
--- /dev/null
+++ b/math/petsc/distinfo
@@ -0,0 +1,2 @@
+MD5 (v2.2.1-23.petsc.tar.gz) = 627f67283826279e8001e999643ff43e
+SIZE (v2.2.1-23.petsc.tar.gz) = 9103324
diff --git a/math/petsc/files/patch-bmake::common::variables b/math/petsc/files/patch-bmake::common::variables
new file mode 100644
index 000000000000..ce3c2697254e
--- /dev/null
+++ b/math/petsc/files/patch-bmake::common::variables
@@ -0,0 +1,20 @@
+--- ./bmake/common/variables.orig Sat Oct 2 09:13:28 2004
++++ ./bmake/common/variables Thu Oct 7 22:58:14 2004
+@@ -32,7 +32,7 @@
+ #
+ # The following variables define PETSc compile procedures
+ #
+-PETSC_COMPILE = ${CC} -c ${COPTFLAGS} ${CFLAGS} ${CCPPFLAGS} ${SOURCEC} ${SSOURCE}
++PETSC_COMPILE = ${CC} -c ${COPTFLAGS} ${CFLAGS} ${CCPPFLAGS} ${CPPFLAGS} ${SOURCEC} ${SSOURCE}
+ PETSC_COMPILE_SINGLE = ${CC} -c ${COPTFLAGS} ${CFLAGS} ${CCPPFLAGS}
+ PETSC_COMPILE_LIBTOOL = files="${SOURCEC} ${SSOURCE}"; \
+ for filename in $$files; do \
+@@ -122,7 +122,7 @@
+ ${PETSC_HAVE_PNETCDF} ${PETSC_HAVE_HDF4} ${PETSC_HAVE_ML}\
+ ${PETSC_HAVE_CHACO} ${PETSC_HAVE_JOSTLE} ${PETSC_HAVE_PARTY} ${PETSC_HAVE_SCOTCH}
+
+-EXTERNAL_LIB = ${MPE_LIB} ${BLOCKSOLVE_LIB} ${PVODE_LIB} ${PARMETIS_LIB} \
++EXTERNAL_LIB = ${MPE_LIB} ${PARMETIS_LIB} ${PVODE_LIB} ${BLOCKSOLVE_LIB} \
+ ${AMS_LIB} ${SPAI_LIB} ${X11_LIB} ${MATLAB_LIB} \
+ ${LUSOL_LIB} ${DSCPACK_LIB} \
+ ${RAMG_LIB} ${TAU_LIB} ${ADIFOR_LIB} \
diff --git a/math/petsc/files/patch-makefile b/math/petsc/files/patch-makefile
new file mode 100644
index 000000000000..29cc50265d3e
--- /dev/null
+++ b/math/petsc/files/patch-makefile
@@ -0,0 +1,58 @@
+--- makefile.orig Wed Sep 22 02:57:28 2004
++++ makefile Sun Oct 3 00:26:00 2004
+@@ -6,6 +6,7 @@
+ ALL: all
+ LOCDIR = .
+ DIRS = src include
++DOCS_DIR = ${INSTALL_DIR}/../share/doc/petsc
+
+ include ${PETSC_DIR}/bmake/common/base
+ include ${PETSC_DIR}/bmake/common/test
+@@ -224,7 +225,7 @@
+ echo "BOPT=$$BOPT" > ${PETSC_DIR}/bmake/common/bopt_ ;\
+ fi
+ install:
+- -@if [ "${INSTALL_DIR}" == "${PETSC_DIR}" ]; then \
++ -@if [ "${INSTALL_DIR}" = "${PETSC_DIR}" ]; then \
+ echo "Install directory is current directory; nothing needs to be done";\
+ else \
+ echo Installing PETSc at ${INSTALL_DIR};\
+@@ -258,11 +259,11 @@
+ done;\
+ echo "sh/bash: PETSC_DIR="${INSTALL_DIR}"; export PETSC_DIR";\
+ echo "csh/tcsh: setenv PETSC_DIR "${INSTALL_DIR} ;\
+- echo "The do make test to verify correct install";\
++ echo "Then do make test to verify correct install";\
+ fi;
+
+ install_src:
+- -@if [ "${INSTALL_DIR}" == "${PETSC_DIR}" ]; then \
++ -@if [ "${INSTALL_DIR}" = "${PETSC_DIR}" ]; then \
+ echo "You did not set a directory to install to";\
+ else \
+ echo Installing PETSc source at ${INSTALL_DIR};\
+@@ -276,17 +277,17 @@
+ fi;
+
+ install_docs:
+- -@if [ "${INSTALL_DIR}" == "${PETSC_DIR}" ]; then \
++ -@if [ "${INSTALL_DIR}" = "${PETSC_DIR}" ]; then \
+ echo "You did not set a directory to install to";\
+ else \
+- echo Installing PETSc documentation at ${INSTALL_DIR};\
+- if [ ! -d `dirname ${INSTALL_DIR}` ]; then \
+- ${MKDIR} `dirname ${INSTALL_DIR}` ; \
++ echo Installing PETSc documentation at ${DOCS_DIR};\
++ if [ ! -d `dirname ${DOCS_DIR}` ]; then \
++ ${MKDIR} `dirname ${DOCS_DIR}` ; \
+ fi;\
+- if [ ! -d ${INSTALL_DIR} ]; then \
+- ${MKDIR} ${INSTALL_DIR} ; \
++ if [ ! -d ${DOCS_DIR} ]; then \
++ ${MKDIR} ${DOCS_DIR} ; \
+ fi;\
+- cp -fr docs ${INSTALL_DIR};\
++ cp -fr docs/* ${DOCS_DIR};\
+ ${RM} -fr docs/tex;\
+ fi;
+ # ------------------------------------------------------------------
diff --git a/math/petsc/files/patch-python::PETSc::packages::Spooles.py b/math/petsc/files/patch-python::PETSc::packages::Spooles.py
new file mode 100644
index 000000000000..2b4d626472c8
--- /dev/null
+++ b/math/petsc/files/patch-python::PETSc::packages::Spooles.py
@@ -0,0 +1,12 @@
+--- ./python/PETSc/packages/Spooles.py.orig Wed Sep 22 02:45:51 2004
++++ ./python/PETSc/packages/Spooles.py Tue Sep 28 23:09:00 2004
+@@ -71,7 +71,8 @@
+ if 'with-'+self.package+'-lib' in self.framework.argDB: #~spooles-2.2/MPI/src/spoolesMPI.a ~spooles-2.2/spooles.a
+ lib = self.framework.argDB['with-'+self.package+'-lib']
+ (lib_mpi,dummy) = os.path.split(lib)
+- lib_mpi = os.path.join(lib_mpi,'MPI/src/spoolesMPI.a')
++ # FreeBSD: MPI is included in our spooles.a
++ #lib_mpi = os.path.join(lib_mpi,'MPI/src/spoolesMPI.a')
+ yield ('User specified '+self.PACKAGE+' library',lib_mpi,lib)
+ elif 'with-'+self.package+'-include' in self.framework.argDB:
+ dir = self.framework.argDB['with-'+self.package+'-include'] #~spooles-2.2
diff --git a/math/petsc/files/patch-python::PETSc::packages::X11.py b/math/petsc/files/patch-python::PETSc::packages::X11.py
new file mode 100644
index 000000000000..3ecac3113c25
--- /dev/null
+++ b/math/petsc/files/patch-python::PETSc::packages::X11.py
@@ -0,0 +1,27 @@
+--- python/PETSc/packages/X11.py.orig Wed Sep 22 02:45:51 2004
++++ python/PETSc/packages/X11.py Sat Oct 2 00:27:14 2004
+@@ -26,7 +26,7 @@
+ import nargs
+ help.addArgument('X11', '-with-x=<bool>', nargs.ArgBool(None, 1, 'Activate X11'))
+ help.addArgument('X11', '-with-x-include=<include dir>', nargs.ArgDir(None, None, 'Specify an include directory for X11'))
+- help.addArgument('X11', '-with-x-lib=<X11 lib>', nargs.Arg(None, None, 'Specify X11 library file'))
++ help.addArgument('X11', '-with-x-library=<X11 lib>', nargs.Arg(None, None, 'Specify X11 library file'))
+ return
+
+ def generateGuesses(self):
+@@ -123,6 +123,7 @@
+ if not os.path.isdir(self.framework.argDB['with-x-include']):
+ raise RuntimeError('Invalid X include directory specified by --with-x-include='+os.path.abspath(self.framework.argDB['with-x-include']))
+ includeDir = self.framework.argDB['with-x-include']
++ foundInclude = 1
+ else:
+ testInclude = 'X11/Intrinsic.h'
+
+@@ -144,6 +145,7 @@
+ if not os.path.isfile(self.framework.argDB['with-x-library']):
+ raise RuntimeError('Invalid X library specified by --with-x-library='+os.path.abspath(self.framework.argDB['with-x-library']))
+ libraryDir = os.path.dirname(self.framework.argDB['with-x-library'])
++ foundLibrary = 1
+ else:
+ testLibrary = 'Xt'
+ testFunction = 'XtMalloc'
diff --git a/math/petsc/files/patch-src::mat::impls::rowbs::mpi::mpirowbs.h b/math/petsc/files/patch-src::mat::impls::rowbs::mpi::mpirowbs.h
new file mode 100644
index 000000000000..4deb3db1d37b
--- /dev/null
+++ b/math/petsc/files/patch-src::mat::impls::rowbs::mpi::mpirowbs.h
@@ -0,0 +1,13 @@
+--- src/mat/impls/rowbs/mpi/mpirowbs.h.orig Sat Oct 2 09:13:29 2004
++++ src/mat/impls/rowbs/mpi/mpirowbs.h Tue Oct 5 21:58:07 2004
+@@ -5,8 +5,8 @@
+ #include "src/mat/matimpl.h"
+
+ EXTERN_C_BEGIN
+-#include "BSsparse.h"
+-#include "BSprivate.h"
++#include <BSsparse.h>
++#include <BSprivate.h>
+ EXTERN_C_END
+
+ /*
diff --git a/math/petsc/files/pkg-message.in b/math/petsc/files/pkg-message.in
new file mode 100644
index 000000000000..9e26616e140e
--- /dev/null
+++ b/math/petsc/files/pkg-message.in
@@ -0,0 +1,5 @@
+===================================================
+Before using PETSc, you'll have to set PETSC_DIR to
+%%PETSC_DIR%%
+and eventually PETSC_ARCH to %%PETSC_ARCH%%.
+===================================================
diff --git a/math/petsc/pkg-descr b/math/petsc/pkg-descr
new file mode 100644
index 000000000000..898c2c506a30
--- /dev/null
+++ b/math/petsc/pkg-descr
@@ -0,0 +1,9 @@
+PETSc, the Portable, Extensible Toolkit for Scientific computation, provides
+sets of tools for the parallel (as well as serial), numerical solution of PDEs
+that require solving large-scale, sparse nonlinear systems of equations. PETSc
+includes nonlinear and linear equation solvers that employ a variety of Newton
+techniques and Krylov subspace methods. PETSc provides several parallel sparse
+matrix formats, including compressed row, block compressed row, and block
+diagonal storage.
+
+WWW: http://acts.nersc.gov/petsc/index.html
diff --git a/math/petsc/pkg-plist b/math/petsc/pkg-plist
new file mode 100644
index 000000000000..318a83a917f4
--- /dev/null
+++ b/math/petsc/pkg-plist
@@ -0,0 +1,272 @@
+%%PFX%%/bin/adiforfix.py
+%%PFX%%/bin/adiforfix.pyc
+%%PFX%%/bin/adiforfix.pyo
+%%PFX%%/bin/adprocess.py
+%%PFX%%/bin/adprocess.pyc
+%%PFX%%/bin/adprocess.pyo
+%%PFX%%/bin/chibaoutput
+%%PFX%%/bin/config/acconfig.h
+%%PFX%%/bin/config/aclocal.m4
+%%PFX%%/bin/config/config.guess
+%%PFX%%/bin/config/config.sub
+%%PFX%%/bin/config/findftnlibs
+%%PFX%%/bin/config/install-sh
+%%PFX%%/bin/configarch
+%%PFX%%/bin/fixtags.py
+%%PFX%%/bin/fixtags.pyc
+%%PFX%%/bin/fixtags.pyo
+%%PFX%%/bin/hostnames.chiba
+%%PFX%%/bin/matlab/PetscBinaryRead.m
+%%PFX%%/bin/matlab/PetscBinaryWrite.m
+%%PFX%%/bin/mpiexec.valgrind
+%%PFX%%/bin/mpirun.chiba
+%%PFX%%/bin/mpirun.gmalloc
+%%PFX%%/bin/mpirun.lam
+%%PFX%%/bin/mpirun.poe
+%%PFX%%/bin/mpirun.prun
+%%PFX%%/bin/mpirun.uni
+%%PFX%%/bin/parseargs.py
+%%PFX%%/bin/parseargs.pyc
+%%PFX%%/bin/parseargs.pyo
+%%PFX%%/bin/petsc_libtool
+%%PFX%%/bin/petscarch
+%%PFX%%/bin/petscmpirun
+%%PFX%%/bin/popup
+%%PFX%%/bin/taucc.py
+%%PFX%%/bin/taucc.pyc
+%%PFX%%/bin/taucc.pyo
+%%PFX%%/bin/update.py
+%%PFX%%/bin/update.pyc
+%%PFX%%/bin/update.pyo
+%%PFX%%/bin/urlget
+%%PFX%%/bin/urlget.py
+%%PFX%%/bin/urlget.pyc
+%%PFX%%/bin/urlget.pyo
+%%PFX%%/bin/win32fe/win32fe.exe
+%%PFX%%/bin/win32fe/win32feutils.dll
+%%PFX%%/bmake/adic.init
+%%PFX%%/bmake/adicmf.init
+%%PFX%%/bmake/common/base
+%%PFX%%/bmake/common/bopt_
+%%PFX%%/bmake/common/bopt_0
+%%PFX%%/bmake/common/bopt_0_c++
+%%PFX%%/bmake/common/bopt_O
+%%PFX%%/bmake/common/bopt_O_c++
+%%PFX%%/bmake/common/bopt_O_c++_single
+%%PFX%%/bmake/common/bopt_O_complex
+%%PFX%%/bmake/common/bopt_O_matsingle
+%%PFX%%/bmake/common/bopt_O_single
+%%PFX%%/bmake/common/bopt_g
+%%PFX%%/bmake/common/bopt_g_c++
+%%PFX%%/bmake/common/bopt_g_c++_single
+%%PFX%%/bmake/common/bopt_g_complex
+%%PFX%%/bmake/common/bopt_g_matsingle
+%%PFX%%/bmake/common/bopt_g_single
+%%PFX%%/bmake/common/rules
+%%PFX%%/bmake/common/rules.fortran.cpp
+%%PFX%%/bmake/common/rules.fortran.nocpp
+%%PFX%%/bmake/common/rules.fortran.none
+%%PFX%%/bmake/common/rules.shared.basic
+%%PFX%%/bmake/common/rules.shared.darwin7
+%%PFX%%/bmake/common/sedcmdforfortranstubs
+%%PFX%%/bmake/common/test
+%%PFX%%/bmake/common/variables
+%%PFX%%/bmake/%%TARGET%%/configure.py
+%%PFX%%/bmake/%%TARGET%%/configure.pyc
+%%PFX%%/bmake/%%TARGET%%/configure.pyo
+%%PFX%%/bmake/%%TARGET%%/ejobs
+%%PFX%%/bmake/%%TARGET%%/jobs
+%%PFX%%/bmake/%%TARGET%%/packages
+%%PFX%%/bmake/%%TARGET%%/petscconf.h
+%%PFX%%/bmake/%%TARGET%%/petscfix.h
+%%PFX%%/bmake/%%TARGET%%/petscmachineinfo.h
+%%PFX%%/bmake/%%TARGET%%/rjobs
+%%PFX%%/bmake/%%TARGET%%/rules
+%%PFX%%/bmake/%%TARGET%%/variables
+%%PFX%%/bmake/variables
+%%PFX%%/include/adic/ad_deriv.h
+%%PFX%%/include/adic/ad_deriv.h.html
+%%PFX%%/include/adic/ad_grad.h
+%%PFX%%/include/adic/ad_grad.h.html
+%%PFX%%/include/adic/ad_grad_daxpy.h
+%%PFX%%/include/adic/ad_grad_daxpy.h.html
+%%PFX%%/include/adic/ad_grad_macro_axpys.h
+%%PFX%%/include/adic/ad_grad_macro_axpys.h.html
+%%PFX%%/include/adic/ad_utils.h
+%%PFX%%/include/adic/ad_utils.h.html
+%%PFX%%/include/adic/adintr_proto.h
+%%PFX%%/include/adic/adintr_proto.h.html
+%%PFX%%/include/adic/adintrinsics.h
+%%PFX%%/include/adic/adintrinsics.h.html
+%%PFX%%/include/adic/initcommon.h
+%%PFX%%/include/adic/initcommon.h.html
+%%PFX%%/include/adic/initenum.h
+%%PFX%%/include/adic/initenum.h.html
+%%PFX%%/include/adic/knr-compat.h
+%%PFX%%/include/adic/knr-compat.h.html
+%%PFX%%/include/adic/run-alloc.h
+%%PFX%%/include/adic/run-alloc.h.html
+%%PFX%%/include/adic/run-map.h
+%%PFX%%/include/adic/run-map.h.html
+%%PFX%%/include/f90impl/f90_IRIX.h
+%%PFX%%/include/f90impl/f90_IRIX.h.html
+%%PFX%%/include/f90impl/f90_absoft.h
+%%PFX%%/include/f90impl/f90_absoft.h.html
+%%PFX%%/include/f90impl/f90_alpha.h
+%%PFX%%/include/f90impl/f90_alpha.h.html
+%%PFX%%/include/f90impl/f90_cray_x1.h
+%%PFX%%/include/f90impl/f90_hpux.h
+%%PFX%%/include/f90impl/f90_hpux.h.html
+%%PFX%%/include/f90impl/f90_intel.h
+%%PFX%%/include/f90impl/f90_intel8.h
+%%PFX%%/include/f90impl/f90_nag.h
+%%PFX%%/include/f90impl/f90_nag.h.html
+%%PFX%%/include/f90impl/f90_pgi.h
+%%PFX%%/include/f90impl/f90_rs6000.h
+%%PFX%%/include/f90impl/f90_rs6000.h.html
+%%PFX%%/include/f90impl/f90_solaris.h
+%%PFX%%/include/f90impl/f90_solaris.h.html
+%%PFX%%/include/f90impl/f90_solaris_old.h
+%%PFX%%/include/f90impl/f90_solaris_old.h.html
+%%PFX%%/include/f90impl/f90_t3e.h
+%%PFX%%/include/f90impl/f90_t3e.h.html
+%%PFX%%/include/f90impl/f90_win32.h
+%%PFX%%/include/f90impl/f90_win32.h.html
+%%PFX%%/include/f90impl/index.html
+%%PFX%%/include/f90impl/makefile
+%%PFX%%/include/f90impl/makefile.html
+%%PFX%%/include/finclude/index.html
+%%PFX%%/include/finclude/makefile
+%%PFX%%/include/finclude/makefile.html
+%%PFX%%/include/finclude/petsc.h
+%%PFX%%/include/finclude/petsc.h.html
+%%PFX%%/include/finclude/petscao.h
+%%PFX%%/include/finclude/petscao.h.html
+%%PFX%%/include/finclude/petscda.h
+%%PFX%%/include/finclude/petscda.h.html
+%%PFX%%/include/finclude/petscda.h90
+%%PFX%%/include/finclude/petscda.h90.html
+%%PFX%%/include/finclude/petscdef.h
+%%PFX%%/include/finclude/petscdef.h.html
+%%PFX%%/include/finclude/petscdraw.h
+%%PFX%%/include/finclude/petscdraw.h.html
+%%PFX%%/include/finclude/petscis.h
+%%PFX%%/include/finclude/petscis.h.html
+%%PFX%%/include/finclude/petscis.h90
+%%PFX%%/include/finclude/petscis.h90.html
+%%PFX%%/include/finclude/petscksp.h
+%%PFX%%/include/finclude/petscksp.h.html
+%%PFX%%/include/finclude/petsclog.h
+%%PFX%%/include/finclude/petsclog.h.html
+%%PFX%%/include/finclude/petscmat.h
+%%PFX%%/include/finclude/petscmat.h.html
+%%PFX%%/include/finclude/petscmat.h90
+%%PFX%%/include/finclude/petscmat.h90.html
+%%PFX%%/include/finclude/petscmg.h
+%%PFX%%/include/finclude/petscmg.h.html
+%%PFX%%/include/finclude/petscpc.h
+%%PFX%%/include/finclude/petscpc.h.html
+%%PFX%%/include/finclude/petscsnes.h
+%%PFX%%/include/finclude/petscsnes.h.html
+%%PFX%%/include/finclude/petscsys.h
+%%PFX%%/include/finclude/petscsys.h.html
+%%PFX%%/include/finclude/petscts.h
+%%PFX%%/include/finclude/petscts.h.html
+%%PFX%%/include/finclude/petscvec.h
+%%PFX%%/include/finclude/petscvec.h.html
+%%PFX%%/include/finclude/petscvec.h90
+%%PFX%%/include/finclude/petscvec.h90.html
+%%PFX%%/include/finclude/petscviewer.h
+%%PFX%%/include/finclude/petscviewer.h.html
+%%PFX%%/include/index.html
+%%PFX%%/include/makefile
+%%PFX%%/include/makefile.html
+%%PFX%%/include/mpiuni/mpi.h
+%%PFX%%/include/mpiuni/mpi.h.html
+%%PFX%%/include/mpiuni/mpif.h
+%%PFX%%/include/mpiuni/mpif.h.html
+%%PFX%%/include/petsc.h
+%%PFX%%/include/petsc.h.html
+%%PFX%%/include/petscadic.h
+%%PFX%%/include/petscao.h
+%%PFX%%/include/petscao.h.html
+%%PFX%%/include/petscblaslapack.h
+%%PFX%%/include/petscblaslapack.h.html
+%%PFX%%/include/petscbt.h
+%%PFX%%/include/petscbt.h.html
+%%PFX%%/include/petscda.h
+%%PFX%%/include/petscda.h.html
+%%PFX%%/include/petscdraw.h
+%%PFX%%/include/petscdraw.h.html
+%%PFX%%/include/petscerror.h
+%%PFX%%/include/petscerror.h.html
+%%PFX%%/include/petscf90.h
+%%PFX%%/include/petscf90.h.html
+%%PFX%%/include/petschead.h
+%%PFX%%/include/petschead.h.html
+%%PFX%%/include/petscis.h
+%%PFX%%/include/petscis.h.html
+%%PFX%%/include/petscksp.h
+%%PFX%%/include/petscksp.h.html
+%%PFX%%/include/petsclog.h
+%%PFX%%/include/petsclog.h.html
+%%PFX%%/include/petscmat.h
+%%PFX%%/include/petscmat.h.html
+%%PFX%%/include/petscmath.h
+%%PFX%%/include/petscmath.h.html
+%%PFX%%/include/petscmatlab.h
+%%PFX%%/include/petscmatlab.h.html
+%%PFX%%/include/petscmg.h
+%%PFX%%/include/petscmg.h.html
+%%PFX%%/include/petscoptions.h
+%%PFX%%/include/petscoptions.h.html
+%%PFX%%/include/petscpc.h
+%%PFX%%/include/petscpc.h.html
+%%PFX%%/include/petscpf.h
+%%PFX%%/include/petscpf.h.html
+%%PFX%%/include/petscsnes.h
+%%PFX%%/include/petscsnes.h.html
+%%PFX%%/include/petscsys.h
+%%PFX%%/include/petscsys.h.html
+%%PFX%%/include/petscts.h
+%%PFX%%/include/petscts.h.html
+%%PFX%%/include/petscvec.h
+%%PFX%%/include/petscvec.h.html
+%%PFX%%/include/petscversion.h
+%%PFX%%/include/petscversion.h.html
+%%PFX%%/include/petscviewer.h
+%%PFX%%/include/petscviewer.h.html
+%%PFX%%/include/vecimpl.h
+%%PFX%%/include/vecimpl.h.html
+%%PFX%%/lib/libO/%%TARGET%%/libmpiuni.a
+%%PFX%%/lib/libO/%%TARGET%%/libpetsc.a
+%%PFX%%/lib/libO/%%TARGET%%/libpetsc.so
+%%PFX%%/lib/libO/%%TARGET%%/libpetscdm.a
+%%PFX%%/lib/libO/%%TARGET%%/libpetscdm.so
+%%MPI%%%%PFX%%/lib/libO/%%TARGET%%/libpetscfortran.a
+%%PFX%%/lib/libO/%%TARGET%%/libpetscksp.a
+%%PFX%%/lib/libO/%%TARGET%%/libpetscksp.so
+%%PFX%%/lib/libO/%%TARGET%%/libpetscmat.a
+%%PFX%%/lib/libO/%%TARGET%%/libpetscmat.so
+%%PFX%%/lib/libO/%%TARGET%%/libpetscsnes.a
+%%PFX%%/lib/libO/%%TARGET%%/libpetscsnes.so
+%%PFX%%/lib/libO/%%TARGET%%/libpetscts.a
+%%PFX%%/lib/libO/%%TARGET%%/libpetscts.so
+%%PFX%%/lib/libO/%%TARGET%%/libpetscvec.a
+%%PFX%%/lib/libO/%%TARGET%%/libpetscvec.so
+@dirrm %%PFX%%/lib/libO/%%TARGET%%
+@dirrm %%PFX%%/lib/libO
+@dirrm %%PFX%%/lib
+@dirrm %%PFX%%/include/mpiuni
+@dirrm %%PFX%%/include/finclude
+@dirrm %%PFX%%/include/f90impl
+@dirrm %%PFX%%/include/adic
+@dirrm %%PFX%%/include
+@dirrm %%PFX%%/bmake/%%TARGET%%
+@dirrm %%PFX%%/bmake/common
+@dirrm %%PFX%%/bmake
+@dirrm %%PFX%%/bin/win32fe
+@dirrm %%PFX%%/bin/matlab
+@dirrm %%PFX%%/bin/config
+@dirrm %%PFX%%/bin
+@dirrm %%PFX%%