diff --git a/math/octave-forge-mboct-fem-pkg/Makefile b/math/octave-forge-mboct-fem-pkg/Makefile index 309423be5436..21e6c1c5844d 100644 --- a/math/octave-forge-mboct-fem-pkg/Makefile +++ b/math/octave-forge-mboct-fem-pkg/Makefile @@ -1,6 +1,6 @@ PORTNAME= octave-forge-mboct-fem-pkg DISTVERSION= 0.2.2 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= math MAINTAINER= stephen@FreeBSD.org @@ -10,7 +10,7 @@ WWW= https://packages.octave.org/ LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/../COPYING -USES= octave autoreconf compiler:gcc-c++11-lib +USES= octave autoreconf perl5 LIB_DEPENDS+= libgtest.so:devel/googletest \ libmetis.so:math/metis \ @@ -24,9 +24,18 @@ RUN_DEPENDS+= ${OCTAVE_TARBALLS_DIR}/mboct-octave-pkg.tar.gz:math/octave-forge-m USE_GITHUB= yes GH_ACCOUNT= octave-user GH_PROJECT= mboct-fem-pkg +USE_PERL5= build OCTAVE_SRC= ${GH_PROJECT}-${DISTVERSION} GNU_CONFIGURE= yes +pre-build: + # Hack that uses perl to pre-evaluate constexpr in C++ code that doesn't comply with C++ standard. + ${CP} ${PATCHDIR}/print_epsilon.cpp ${WRKSRC}/. + ${CXX} ${WRKSRC}/print_epsilon.cpp -o ${WRKSRC}/print_epsilon + ${PERL} -i.bak -pe "s/std\:\:pow\(std\:\:numeric_limits\\:\:epsilon\(\)\,\ (0\.\d)\)/(`${WRKSRC}/print_epsilon`)**(\$$1)/e" ${WRKSRC}/__mboct_fem_pkg__.cc + ${PERL} -i.bak -pe 's/sqrt\((\d+\.)\)/sqrt($$1)/e' ${WRKSRC}/__mboct_fem_pkg__.cc + ${PERL} -i.bak -pe 's|sqrt\((\d+\.\/\d+\.)\)|sqrt(eval($$1))|e' ${WRKSRC}/__mboct_fem_pkg__.cc + .include diff --git a/math/octave-forge-mboct-fem-pkg/files/print_epsilon.cpp b/math/octave-forge-mboct-fem-pkg/files/print_epsilon.cpp new file mode 100644 index 000000000000..077f993b17a8 --- /dev/null +++ b/math/octave-forge-mboct-fem-pkg/files/print_epsilon.cpp @@ -0,0 +1,7 @@ +#include +#include +#include + +int main(){ + std::cout << std::setprecision(20) << std::numeric_limits::epsilon() << std::endl; +}