diff options
Diffstat (limited to 'math/petsc/Makefile')
-rw-r--r-- | math/petsc/Makefile | 230 |
1 files changed, 230 insertions, 0 deletions
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> |