c86e9d9724
Approved by: portmgr blanket
137 lines
4.9 KiB
Makefile
137 lines
4.9 KiB
Makefile
# Created by: Pedro Giffuni <giffunip@asme.org>
|
|
# $FreeBSD$
|
|
|
|
PORTNAME= gmsh
|
|
PORTVERSION= 2.12.0
|
|
CATEGORIES= cad
|
|
MASTER_SITES= http://www.geuz.org/gmsh/src/ \
|
|
http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/
|
|
DISTNAME= ${PORTNAME}-${PORTVERSION}-source
|
|
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
|
|
DIST_SUBDIR= gmsh
|
|
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
|
|
|
|
MAINTAINER= stephen@FreeBSD.org
|
|
COMMENT= Automatic 3D finite element mesh generator
|
|
|
|
LIB_DEPENDS= libfltk.so:x11-toolkits/fltk \
|
|
libpng.so:graphics/png \
|
|
liblapack.so:math/lapack
|
|
RUN_DEPENDS= getdp:science/getdp
|
|
|
|
BROKEN_powerpc64= Does not build on powerpc64
|
|
|
|
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}-source
|
|
|
|
SLAVEDIRS= cad/gmsh-occ
|
|
|
|
USES= cmake fortran gmake jpeg tar:tgz
|
|
USE_GL= yes
|
|
ALL_TARGET= all
|
|
|
|
MAKE_JOBS_UNSAFE= yes
|
|
|
|
CMAKE_ARGS+= -DCMAKE_SKIP_RPATH:BOOL=YES
|
|
|
|
OPTIONS_DEFINE= STATIC_LIB SHARED_LIB TETGEN METIS TAUCS MED CGNS GMM OCC
|
|
OPTIONS_DEFAULT= STATIC_LIB SHARED_LIB TETGEN METIS MED CGNS GMM
|
|
|
|
STATIC_LIB_DESC= Build static library
|
|
SHARED_LIB_DESC= Build shared library
|
|
TETGEN_LIB_DESC= Enable tetgen as an alternative 3D mesh generator
|
|
METIS_LIB_DESC= Enable metis as an alternative 3D mesh generator
|
|
TAUCS_LIB_DESC= Enable the Taucs linear algebra solver
|
|
MED_LIB_DESC= Enable MED support
|
|
CGNS_LIB_DESC= Enable CGNS support
|
|
GMM_LIB_DESC= Enable gmm++ support
|
|
OCC_LIB_DESC= Enable STEP, IGES and BREP support
|
|
|
|
OPTIONS_SUB= yes
|
|
|
|
STATIC_LIB_CMAKE_ON= -DENABLE_BUILD_LIB=ON
|
|
STATIC_LIB_ALL_TARGET= lib
|
|
SHARED_LIB_CMAKE_ON= -DENABLE_BUILD_SHARED=ON
|
|
SHARED_LIB_ALL_TARGET= shared
|
|
SHARED_LIB_VARS= use_ldconfig=yes
|
|
PLIST_SUB+= SHARED_LIB="" VER=${PORTVERSION} VE=${PORTVERSION:R}
|
|
DOCS_CMAKE_OFF= -DINSTALL_DOCS=OFF
|
|
TETGEN_CMAKE_ON= -DENABLE_TETGEN=ON
|
|
TETGEN_CMAKE_OFF= -DENABLE_TETGEN=OFF
|
|
TETGEN_VARS= "no_cdrom=Contact appropriate authors for commercial purposes if including Tetgen or Metis"
|
|
METIS_CMAKE_ON= -DENABLE_METIS=ON
|
|
METIS_CMAKE_OFF= -DENABLE_METIS=OFF
|
|
METIS_VARS= "no_cdrom=Contact appropriate authors for commercial purposes if including Tetgen or Metis"
|
|
METIS_VARS= distfiles+=manual.pdf
|
|
TAUCS_LIB_DEPENDS= libtaucs.so:math/taucs
|
|
TAUCS_CMAKE_ON= -DENABLE_TAUCS=ON
|
|
TAUCS_CMAKE_OFF= -DENABLE_TAUCS=OFF
|
|
MED_LIB_DEPENDS= libmed.so:french/med
|
|
MED_CMAKE_ON= -DENABLE_MED=ON
|
|
MED_CMAKE_OFF= -DENABLE_MED=OFF
|
|
CGNS_LIB_DEPENDS= libcgns.so:science/cgnslib
|
|
CGNS_CMAKE_ON= -DENABLE_CGNS=ON
|
|
CGNS_CMAKE_OFF= -DENABLE_CGNS=OFF
|
|
GMM_CMAKE_OFF= -DENABLE_GMM=OFF
|
|
OCC_LIB_DEPENDS= libTKernel.so:cad/opencascade
|
|
OCC_CMAKE_ON= -DENABLE_OCC=ON -DOCC_INC=${LOCALBASE}/include/OpenCASCADE
|
|
OCC_CFLAGS= -DHAVE_CONFIG_H -DHAVE_WOK_CONFIG_H -DFREEBSD
|
|
OCC_CONFLICTS= gmsh-2.*
|
|
OCC_CMAKE_OFF= -DENABLE_OCC=OFF
|
|
OCC_CONFLICTS_OFF= gmsh-occ-2.*
|
|
|
|
.include <bsd.port.options.mk>
|
|
|
|
# Even though the taucs port pulls in the metis port, we will still need
|
|
# METIS set when TAUCS is set, otherwise the linker does not find the
|
|
# libraries installed by the metis port.
|
|
.if ${PORT_OPTIONS:MTAUCS} && !${PORT_OPTIONS:MMETIS}
|
|
IGNORE= METIS must be set if TAUCS is set
|
|
.endif
|
|
|
|
.if !${PORT_OPTIONS:MMETIS} && ${PORT_OPTIONS:MDOCS}
|
|
IGNORE= the license for Metis requires that its documentation is included
|
|
.endif
|
|
|
|
# TODO
|
|
# Dependencies against PythonLibs, swig and petsc are found and registered if installed
|
|
# => add knobs to handle them.
|
|
|
|
PKGMESSAGE= ${WRKDIR}/pkg-message
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
post-extract:
|
|
${CP} ${DISTDIR}/${DIST_SUBDIR}/manual.pdf ${WRKDIR}
|
|
${TOUCH} ${PKGMESSAGE}
|
|
.if ${PORT_OPTIONS:MTETGEN}
|
|
@${ECHO} >> ${PKGMESSAGE}
|
|
@${ECHO} "The FreeBSD project has been granted redistribution rights" >> ${PKGMESSAGE}
|
|
@${ECHO} "but anyone attempting to redistribute Gmsh with Tetgen" >> ${PKGMESSAGE}
|
|
@${ECHO} "for strict commercial purposes must still contact the author" >> ${PKGMESSAGE}
|
|
@${ECHO} "(Hang Si) and license the code." >> ${PKGMESSAGE}
|
|
.endif
|
|
.if ${PORT_OPTIONS:MMETIS}
|
|
@${ECHO} >> ${PKGMESSAGE}
|
|
@${ECHO} "The FreeBSD project has been granted redistribution rights" >> ${PKGMESSAGE}
|
|
@${ECHO} "but anyone attempting to redistribute Gmsh with Metis" >> ${PKGMESSAGE}
|
|
@${ECHO} "must still contact the author" >> ${PKGMESSAGE}
|
|
@${ECHO} "http://glaros.dtc.umn.edu/gkhome/metis/metis/faq?q=metis/metis/faq#distribute" >> ${PKGMESSAGE}
|
|
@${ECHO} "\"A Fast and Highly Quality Multilevel Scheme for Partitioning Irregular Graphs\". George Karypis and Vipin Kumar. SIAM Journal on Scientific Computing, Vol. 20, No. 1, pp. 359-392, 1999." >> ${PKGMESSAGE}
|
|
.endif
|
|
.if ${PORT_OPTIONS:MTAUCS}
|
|
@${ECHO} >> ${PKGMESSAGE}
|
|
@${ECHO} "There might be licensing issues with using Taucs with Gmsh" >> ${PKGMESSAGE}
|
|
@${ECHO} "because Taucs requires Metis." >> ${PKGMESSAGE}
|
|
.endif
|
|
|
|
pre-configure:
|
|
${REINPLACE_CMD} -e s+share/doc/gmsh+${DOCSDIR_REL}+ \
|
|
-e s+share/man/man1+man/man1+ ${WRKSRC}/CMakeLists.txt
|
|
|
|
post-install:
|
|
.if ${PORT_OPTIONS:MMETIS}
|
|
${MKDIR} ${STAGEDIR}${DOCSDIR}/metis
|
|
${INSTALL_DATA} ${WRKDIR}/manual.pdf ${STAGEDIR}${DOCSDIR}/metis
|
|
.endif
|
|
|
|
.include <bsd.port.post.mk>
|