mirror of
https://git.freebsd.org/ports.git
synced 2025-04-28 09:36:41 -04:00
93 lines
3.4 KiB
Makefile
93 lines
3.4 KiB
Makefile
PORTNAME= libmesh
|
|
DISTVERSION= 1.7.0
|
|
PORTREVISION= 5
|
|
CATEGORIES= math
|
|
MASTER_SITES= https://github.com/libMesh/${PORTNAME}/releases/download/v${DISTVERSION}/
|
|
|
|
MAINTAINER= yuri@FreeBSD.org
|
|
COMMENT= Numerical simulation of partial differential equations
|
|
WWW= https://libmesh.github.io
|
|
|
|
LICENSE= LGPL21
|
|
LICENSE_FILE= ${WRKSRC}/COPYING
|
|
|
|
LIB_DEPENDS= libboost_system.so:devel/boost-libs \
|
|
libnlopt.so:math/nlopt
|
|
|
|
USES= compiler:c++17-lang eigen:3 gmake libtool localbase perl5 pkgconfig tar:xz
|
|
GNU_CONFIGURE= yes
|
|
CONFIGURE_ARGS= --disable-static \
|
|
--with-methods=opt \
|
|
--with-thread-model=pthread \
|
|
--datarootdir=${DATADIR} \
|
|
--enable-amr \
|
|
--enable-nlopt \
|
|
--disable-strict-lgpl \
|
|
--enable-tetgen \
|
|
--enable-triagle \
|
|
--with-boost=${LOCALBASE} \
|
|
--with-eigen-include=${LOCALBASE}/include/eigen3 \
|
|
--disable-netcdf --disable-netcdf-4 # https://github.com/libMesh/libmesh/issues/1542
|
|
CONFIGURE_ARGS+= --disable-metaphysicl # enabling this causes libmesh to install a bundled metaphysicl that would conflict with the metaphysicl package
|
|
CONFIGURE_ARGS+= --with-nlopt-include=${LOCALBASE}/include --with-nlopt-lib=${LOCALBASE}/lib # workaround for https://github.com/libMesh/libmesh/issues/3314
|
|
MAKE_ARGS= LDFLAGS="-pthread -lexecinfo -L${LOCALBASE}/lib"
|
|
USE_LDCONFIG= yes
|
|
|
|
CXXFLAGS+= -I${WRKSRC}/contrib/parmetis/include # because parmetis.h isn't found for ./include/libmesh/parmetis_helper.h
|
|
|
|
INSTALL_TARGET= install-strip
|
|
TEST_TARGET= check
|
|
|
|
OPTIONS_DEFINE= GLPK HDF5 MPI EXAMPLES
|
|
OPTIONS_DEFAULT= MPI
|
|
GLPK_DESC= Glpk linear programming solver library
|
|
|
|
GLPK_CONFIGURE_ENABLE= glpk
|
|
GLPK_LIB_DEPENDS= libglpk.so:math/glpk
|
|
|
|
HDF5_CONFIGURE_ENABLE= hdf5
|
|
HDF5_LIB_DEPENDS= libhdf5.so:science/hdf5
|
|
|
|
MPI_CONFIGURE_ENABLE= mpi
|
|
MPI_CONFIGURE_ON= --with-mpi=${LOCALBASE} --with-mpi-include=${LOCALBASE}/include --with-mpi-lib=${LOCALBASE}/lib
|
|
MPI_LIB_DEPENDS= libmpi.so:net/mpich
|
|
|
|
EXAMPLES_CONFIGURE_ENABLE= examples
|
|
EXAMPLES_VARS= PKGMESSAGE=pkg-message-examples
|
|
|
|
SUB_FILES= pkg-message-examples
|
|
|
|
PORTEXAMPLES= *
|
|
|
|
post-extract:
|
|
@${FIND} ${WRKSRC} -name "*.orig" -delete
|
|
|
|
post-install:
|
|
@${MKDIR} ${STAGEDIR}${DATADIR}
|
|
@${MV} ${STAGEDIR}${PREFIX}/etc/libmesh/Make.common ${STAGEDIR}${DATADIR}
|
|
@cd ${STAGEDIR}${PREFIX} && ${RM} -r \
|
|
etc/libmesh \
|
|
Make.common \
|
|
contrib \
|
|
libdata/pkgconfig/Make.common # https://github.com/libMesh/libmesh/issues/1539
|
|
# delete metis.h, see https://github.com/libMesh/libmesh/issues/3317
|
|
${RM} ${STAGEDIR}${PREFIX}/include/metis.h
|
|
|
|
post-install-EXAMPLES-on:
|
|
# https://github.com/libMesh/libmesh/issues/1541
|
|
@${MV} ${STAGEDIR}${PREFIX}/examples ${STAGEDIR}${EXAMPLESDIR}
|
|
@${FIND} ${STAGEDIR}${EXAMPLESDIR} -name Makefile | ${XARGS} ${REINPLACE_CMD} -i '' -e ' \
|
|
s|LIBMESH_DIR ?= .*|LIBMESH_DIR ?= ${PREFIX}| ; \
|
|
s|$$(LIBMESH_DIR)/Make.common|${DATADIR}/Make.common| ; \
|
|
s|LIBMESH_DIR/examples|LIBMESH_DIR/share/examples/${PORTNAME}| ; \
|
|
s|$$(libmesh_LDFLAGS)|$$(libmesh_LDFLAGS) -pthread|'
|
|
@${FIND} ${STAGEDIR}${EXAMPLESDIR} -name run.sh | ${XARGS} ${CHMOD} +x
|
|
@${FIND} ${STAGEDIR}${EXAMPLESDIR} -name run.sh | ${XARGS} ${REINPLACE_CMD} -i '' -e ' \
|
|
s|#set -x|export LIBMESH_DIR=${PREFIX}| ; \
|
|
s|#!/bin/bash|#!${LOCALBASE}/bin/bash| ; \
|
|
s|LIBMESH_DIR/examples|LIBMESH_DIR/share/examples/${PORTNAME}| ; \
|
|
s|reference_elements|share/${PORTNAME}/reference_elements|'
|
|
@${REINPLACE_CMD} -i '' -e 's|libmesh_LIBTOOL ?= /usr/local/contrib/bin/libtool|libmesh_LIBTOOL ?= libtool|' \
|
|
${STAGEDIR}${DATADIR}/Make.common
|
|
|
|
.include <bsd.port.mk>
|