From 3db9f7c36ab0a1166872dac301a749b8b3be1c51 Mon Sep 17 00:00:00 2001 From: Thierry Thomas Date: Mon, 11 Oct 2004 22:30:39 +0000 Subject: [PATCH] - Upgrade to 1.42; - Add support for MPI. --- math/freefem++/Makefile | 42 +++++- math/freefem++/distinfo | 4 +- math/freefem++/files/patch-configure | 127 ++---------------- .../patch-src::femlib::MatriceCreuse_tpl.hpp | 13 ++ math/freefem++/pkg-plist | 5 +- 5 files changed, 64 insertions(+), 127 deletions(-) create mode 100644 math/freefem++/files/patch-src::femlib::MatriceCreuse_tpl.hpp diff --git a/math/freefem++/Makefile b/math/freefem++/Makefile index e665537dae6b..fb564a9a34fd 100644 --- a/math/freefem++/Makefile +++ b/math/freefem++/Makefile @@ -6,7 +6,7 @@ # PORTNAME= freefem++ -PORTVERSION= 1.41 +PORTVERSION= 1.42 CATEGORIES= math science MASTER_SITES= ftp://ftp.inria.fr/INRIA/Projects/Gamma/freefem/ \ http://mule.ann.jussieu.fr/~hecht/ftp/freefem/ @@ -16,8 +16,13 @@ COMMENT= An implementation of a language dedicated to the finite element method LIB_DEPENDS= atlas.1:${PORTSDIR}/math/atlas \ f2c.2:${PORTSDIR}/lang/f2c \ - gsl.6:${PORTSDIR}/math/gsl -BUILD_DEPENDS= ${LOCALBASE}/include/ARPACK++:${PORTSDIR}/math/arpack++ + gsl.6:${PORTSDIR}/math/gsl \ + lapack.3:${PORTSDIR}/math/lapack +BUILD_DEPENDS= ${LOCALBASE}/lib/libumfpack.a:${PORTSDIR}/math/umfpack \ + dvips:${PORTSDIR}/print/dvipsk-tetex \ + pdflatex:${PORTSDIR}/print/teTeX-base +RUN_DEPENDS= dvips:${PORTSDIR}/print/dvipsk-tetex \ + pdflatex:${PORTSDIR}/print/teTeX-base RESTRICTED= No resale or commercial use @@ -27,17 +32,40 @@ USE_GMAKE= yes USE_REINPLACE= yes GNU_CONFIGURE= yes CONFIGURE_TARGET= --build=${MACHINE_ARCH}-portbld-freebsd${OSREL} -CONFIGURE_ARGS= --disable-download +CONFIGURE_ARGS= --disable-download \ + --with-blas="${LIBBLAS}" \ + --with-amd="-lamd" \ + --with-umfpack="-lumfpack" \ + --with-arpack="${LIBARPACK}" CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include ${PTHREAD_CFLAGS}" \ LDFLAGS="-L${LOCALBASE}/lib ${PTHREAD_LIBS}" +LIBBLAS= -lf2c -lf77blas -latlas -lgslcblas +LIBARPACK= -larpack -lalapack ${LIBBLAS} + DOCS= AUTHORS BUGS COPYING HISTORY README TODO DOC/manual.pdf BADSAMPLES= load/load.link.orig load/myfunction.o tutorial/Makefile.in.orig +.include + +.if exists(${LOCALBASE}/mpich/bin/mpiCC) +WITH_MPI= yes +.endif +.if defined(WITH_MPI) +BUILD_DEPENDS+= ${LOCALBASE}/mpich/bin/mpiCC:${PORTSDIR}/net/mpich +RUN_DEPENDS+= ${LOCALBASE}/mpich/bin/mpiCC:${PORTSDIR}/net/mpich +PLIST_SUB+= MPI="" +.else +PLIST_SUB+= MPI="@comment " +.endif + pre-configure: - @${REINPLACE_CMD} -e "s|-lpthread|${PTHREAD_LIBS}|g" \ - -e "s|/usr/local|${LOCALBASE}|g;s|/usr/X11R6|${X11BASE}|g" \ + @${REINPLACE_CMD} -e "s|-lpthread|${PTHREAD_LIBS}|g" \ + -e "s|mpiCC|${LOCALBASE}/mpich/bin/mpiCC|" \ + -e "s|/usr/X11R6|${X11BASE}|g" \ ${WRKSRC}/${CONFIGURE_SCRIPT} + @${REINPLACE_CMD} -e "s|mpiCC|${LOCALBASE}/mpich/bin/mpiCC|" \ + ${WRKSRC}/src/mpi/Makefile.in post-install: @${STRIP_CMD} ${PREFIX}/bin/FreeFem++ ${PREFIX}/bin/FreeFem++-nw @@ -71,4 +99,4 @@ test: install .endfor .endif -.include +.include diff --git a/math/freefem++/distinfo b/math/freefem++/distinfo index dfbaaa2b8faa..3cb2a2189dd7 100644 --- a/math/freefem++/distinfo +++ b/math/freefem++/distinfo @@ -1,2 +1,2 @@ -MD5 (freefem++-1.41.tar.gz) = 139af27cd4eb09e516c707e17c530c7a -SIZE (freefem++-1.41.tar.gz) = 4522368 +MD5 (freefem++-1.42.tar.gz) = 659bcd4e143fa091c02451b0aab6c281 +SIZE (freefem++-1.42.tar.gz) = 4535380 diff --git a/math/freefem++/files/patch-configure b/math/freefem++/files/patch-configure index fb74ed782116..27be8f4203cc 100644 --- a/math/freefem++/files/patch-configure +++ b/math/freefem++/files/patch-configure @@ -1,102 +1,15 @@ ---- configure.orig Wed Jul 7 14:03:35 2004 -+++ configure Sun Jul 11 14:06:53 2004 -@@ -6947,82 +6947,15 @@ - ff_wget=no - fi +--- configure.orig Mon Sep 6 16:00:20 2004 ++++ configure Thu Sep 9 00:14:54 2004 +@@ -7852,7 +7852,7 @@ + if test "${with_umfpack+set}" = set; then + withval="$with_umfpack" + ff_umfpack_ok=yes +- ff_umfpack_lib="$ff_umfpack_lib ${withval}" ++ ff_umfpack_lib="${withval} $ff_umfpack_lib" --# Looking for the BLAS --# -------------------- -- --# Trying default locations - ff_blas_ok=no --ff_save_libs="$LIBS" --echo "$as_me:$LINENO: checking for daxpy_ in -lblas" >&5 --echo $ECHO_N "checking for daxpy_ in -lblas... $ECHO_C" >&6 --if test "${ac_cv_lib_blas_daxpy_+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lblas $LIBS" --cat >conftest.$ac_ext <<_ACEOF --#line $LINENO "configure" --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --/* Override any gcc2 internal prototype to avoid an error. */ --#ifdef __cplusplus --extern "C" --#endif --/* We use char because int might match the return type of a gcc2 -- builtin and then its argument prototype would still apply. */ --char daxpy_ (); --int --main () --{ --daxpy_ (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -- (eval $ac_link) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -s conftest$ac_exeext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- ac_cv_lib_blas_daxpy_=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --ac_cv_lib_blas_daxpy_=no --fi --rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --LIBS=$ac_check_lib_save_LIBS --fi --echo "$as_me:$LINENO: result: $ac_cv_lib_blas_daxpy_" >&5 --echo "${ECHO_T}$ac_cv_lib_blas_daxpy_" >&6 --if test $ac_cv_lib_blas_daxpy_ = yes; then -- LIBS="$LIBS -lblas" -- ff_blas_ok=yes -- ff_blas_lib="-lblas" --else -- LIBS="$ff_save_libs" --fi -- - --# Trying Atlas (location corresponding to Debian package) -+# Trying Atlas (location corresponding to FreeBSD package) - if test "$ff_blas_ok" = no; - then -- echo "$as_me:$LINENO: checking for daxpy_ in /usr/lib/atlas/libblas.a" >&5 --echo $ECHO_N "checking for daxpy_ in /usr/lib/atlas/libblas.a... $ECHO_C" >&6 -+ echo "$as_me:$LINENO: checking for daxpy_ in /usr/local/lib/libatlas" >&5 -+echo $ECHO_N "checking for daxpy_ in /usr/local/libatlas... $ECHO_C" >&6 - ff_save_libs="$LIBS" -- LIBS="$LIBS -L/usr/lib/atlas -lblas" -+ LIBS="$LIBS -lf2c -lf77blas -latlas -lgslcblas" - cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" - /* confdefs.h. */ -@@ -7059,7 +6992,7 @@ - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ff_blas_ok=yes -- ff_blas_lib="-L/usr/lib/atlas -lblas" -+ ff_blas_lib="-lf2c -lf77blas -latlas -lgslcblas" - else - echo "$as_me: failed program was:" >&5 - sed 's/^/| /' conftest.$ac_ext >&5 -@@ -7477,7 +7410,7 @@ + cat >>confdefs.h <<\_ACEOF + #define HAVE_LIBUMFPACK 1 +@@ -7864,7 +7864,7 @@ @@ -105,21 +18,3 @@ do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then -@@ -7690,7 +7623,7 @@ - echo $ECHO_N "(cached) $ECHO_C" >&6 - else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lumfpack $ff_umfpack_lib $LIBS" -+LIBS="$ff_umfpack_lib -lumfpack $LIBS" - cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" - /* confdefs.h. */ -@@ -7744,7 +7677,7 @@ - #define HAVE_LIBUMFPACK 1 - _ACEOF - -- ff_umfpack_lib="$ff_umfpack_lib -lumfpack" -+ ff_umfpack_lib="-lumfpack $ff_umfpack_lib" - ff_umfpack_ok=yes - fi - diff --git a/math/freefem++/files/patch-src::femlib::MatriceCreuse_tpl.hpp b/math/freefem++/files/patch-src::femlib::MatriceCreuse_tpl.hpp new file mode 100644 index 000000000000..768a9902ed06 --- /dev/null +++ b/math/freefem++/files/patch-src::femlib::MatriceCreuse_tpl.hpp @@ -0,0 +1,13 @@ +--- ./src/femlib/MatriceCreuse_tpl.hpp.orig Mon Aug 30 17:06:00 2004 ++++ ./src/femlib/MatriceCreuse_tpl.hpp Wed Sep 8 22:18:17 2004 +@@ -11,7 +11,9 @@ + // on MacOS9 under MWERKS + // cblas_ddot macos-9 is not + #ifdef HAVE_CBLAS_H +-#include ++extern "C" { ++#include ++} + #define WITHBLAS 1 + #elif HAVE_VECLIB_CBLAS_H + #include diff --git a/math/freefem++/pkg-plist b/math/freefem++/pkg-plist index 87838d778b5a..2acdd8f0ed76 100644 --- a/math/freefem++/pkg-plist +++ b/math/freefem++/pkg-plist @@ -1,5 +1,6 @@ bin/FreeFem++ bin/FreeFem++-glx +%%MPI%%bin/FreeFem++-mpi bin/FreeFem++-nw %%PORTDOCS%%%%DOCSDIR%%/AUTHORS %%PORTDOCS%%%%DOCSDIR%%/BUGS @@ -101,10 +102,10 @@ bin/FreeFem++-nw %%PORTDOCS%%%%EXAMPLESDIR%%/tutorial/periodic4.edp %%PORTDOCS%%%%EXAMPLESDIR%%/tutorial/plot.edp %%PORTDOCS%%%%EXAMPLESDIR%%/tutorial/readmesh.edp -%%PORTDOCS%%%%EXAMPLESDIR%%/tutorial/refnoumf.edp -%%PORTDOCS%%%%EXAMPLESDIR%%/tutorial/refumf.edp +%%PORTDOCS%%%%EXAMPLESDIR%%/tutorial/ref.edp %%PORTDOCS%%%%EXAMPLESDIR%%/tutorial/region.edp %%PORTDOCS%%%%EXAMPLESDIR%%/tutorial/regtests.edp +%%PORTDOCS%%%%EXAMPLESDIR%%/tutorial/regtests.m4 %%PORTDOCS%%%%EXAMPLESDIR%%/tutorial/saverestore.edp %%PORTDOCS%%%%EXAMPLESDIR%%/tutorial/schwarz-gc.edp %%PORTDOCS%%%%EXAMPLESDIR%%/tutorial/schwarz-no-overlap.edp