freebsd-ports/cad/salome/Makefile.ext
2011-07-15 07:00:46 +00:00

366 lines
12 KiB
Makefile

COMMENT= ${SAL_MODULE_UPPER} module of Salome platform
USE_PYTHON= 2.5+
USE_GMAKE= yes
USE_LDCONFIG= yes
SAL_MODULE= ${PKGNAMESUFFIX:S/-//}
USE_GCC= 4.4
FC:= gfortran44
F77:= gfortran44
CONFIGURE_ENV+= F77="${F77}" FC="${FC}" FFLAGS="${FFLAGS}"
MAKE_ENV+= F77="${F77}" FC="${FC}" FFLAGS="${FFLAGS}"
#SAL_MODULE_UPPER= `${ECHO} ${SAL_MODULE} | ${AWK} '{ print(toupper($$1)); }'`
#SAL_MODULE_UPPER= YACS
USE_TK= 84+
PLIST= ../salome${PKGNAMESUFFIX}/pkg-plist
#dependencies between modules
KERNEL_DEPEND= ""
GUI_DEPEND= KERNEL QWT
GEOM_DEPEND= KERNEL GUI
MED_DEPEND= KERNEL GUI MED2
SMESH_DEPEND= KERNEL GUI MED GEOM
NETGENPLUGIN_DEPEND= KERNEL GUI MED GEOM MED SMESH NETGEN
VISU_DEPEND= KERNEL GUI MED
LIGHT_DEPEND= KERNEL GUI
YACS_DEPEND= KERNEL GUI
RANDOMIZER_DEPEND= KERNEL GUI
JOBMANAGER_DEPEND= KERNEL GUI
SIERPINSKY_DEPEND= KERNEL GUI VISU MED RANDOMIZER
FILTER_DEPEND= KERNEL GUI MED
MULTIPR_DEPEND= KERNEL GUI MED MED2 HDF5 CAS QT OMNIORB
.if !${SAL_MODULE} == "jobmanager"
RELEASENAME= 5.1.4
.else
RELEASENAME= 0.1
.endif
HAS_CONFIGURE= yes
CONFIGURE_ARGS+= --prefix=${PREFIX}
CONFIGURE_ARGS+= --enable-debug
CONFIGURE_ENV+= MACHINE=${OPSYS:U}
CPPFLAGS+= -L${LOCALBASE}/lib -I/usr/include -I${LOCALBASE}/include -D__freebsd__ -DFREEBSD -DHAVE_IOSTREAM -DHAVE_LIMITS_H -DHAVE_IOMANIP -DMPICH_IGNORE_CXX_SEEK
CXXFLAGS+= -ffriend-injection -fno-inline -fpermissive -fPIC -L${LOCALBASE}/lib -L${LOCALBASE}/lib/salome
CONFIGURE_SCRIPT= ../configure
PATCH_WRKSRC= ${WRKDIR}/${DISTNAME}/${SAL_MODULE_UPPER}_SRC_${RELEASENAME}
WRKSRC= ${PATCH_WRKSRC}
CONFIGURE_WRKSRC= ${WRKSRC}/${SAL_MODULE_UPPER}_build
BUILD_WRKSRC= ${WRKSRC}/${SAL_MODULE_UPPER}_build
INSTALL_WRKSRC= ${BUILD_WRKSRC}
EXTRACT_AFTER_ARGS= | ${TAR} -xf - ${DISTNAME}/${SAL_MODULE_UPPER}_SRC_${RELEASENAME}/*
PATCHDIR= ${MASTERDIR}/../salome-${SAL_MODULE}/files/
#Depend from other modules
.if !${SAL_MODULE} == "kernel"
.for D in ${${SAL_MODULE_UPPER}_DEPEND}
CONFIGURE_ENV+= ${D}_ROOT_DIR=${LOCALBASE}
AUTOTOOLS_ENV+= ${D}_ROOT_DIR=${LOCALBASE}
CPPFLAGS+= -L${LOCALBASE}/lib/salome
.endfor
.endif
#Depndency from KERNEL module
.if !${SAL_MODULE} == "kernel"
BUILD_DEPENDS+= ${RESOURCEDIR}/kernel:${PORTSDIR}/cad/salome-kernel
RUN_DEPENDS+= ${RESOURCEDIR}/kernel:${PORTSDIR}/cad/salome-kernel
.endif
#Depndency from GUI module
.if !${SAL_MODULE} == "kernel" && !${SAL_MODULE} == "gui"
BUILD_DEPENDS+= ${RESOURCEDIR}/gui:${PORTSDIR}/cad/salome-gui
RUN_DEPENDS+= ${RESOURCEDIR}/gui:${PORTSDIR}/cad/salome-gui
.endif
#Depndency from MED module
.if ${SAL_MODULE} == "smesh" || ${SAL_MODULE} == "sierpinsky" || ${SAL_MODULE} == "multipr" || ${SAL_MODULE} == "visu"
BUILD_DEPENDS+= ${RESOURCEDIR}/med:${PORTSDIR}/cad/salome-med
RUN_DEPENDS+= ${RESOURCEDIR}/med:${PORTSDIR}/cad/salome-med
AUTOTOOLS_ENV+= MED2HOME=${LOCALBASE}
.endif
#Depndency from GEOM module
.if ${SAL_MODULE} == "smesh"
BUILD_DEPENDS+= ${RESOURCEDIR}/geom:${PORTSDIR}/cad/salome-geom
RUN_DEPENDS+= ${RESOURCEDIR}/geom:${PORTSDIR}/cad/salome-geom
.endif
#Depndency from SMESH module
.if ${SAL_MODULE} == "netgenplugin"
BUILD_DEPENDS+= ${RESOURCEDIR}/smesh:${PORTSDIR}/cad/salome-smesh
RUN_DEPENDS+= ${RESOURCEDIR}/smesh:${PORTSDIR}/cad/salome-smesh
.endif
#Dependency for SIERPINSKY
.if ${SAL_MODULE} == "sierpinsky"
BUILD_DEPENDS+= ${RESOURCEDIR}/visu:${PORTSDIR}/cad/salome-visu \
${RESOURCEDIR}/randomizer:${PORTSDIR}/cad/salome-randomizer
RUN_DEPENDS+= ${RESOURCEDIR}/visu:${PORTSDIR}/cad/salome-visu \
${RESOURCEDIR}/randomizer:${PORTSDIR}/cad/salome-randomizer
.endif
###########################################################################
#Dependency from other ports
###########################################################################
#Dependency from autotools
USE_AUTOTOOLS= autoconf automake libtool aclocal
.if ${SAL_MODULE} == "kernel"
ACLOCAL_ARGS= -I salome_adm/unix/config_files
.else
. if ${SAL_MODULE} == "yacs"
ACLOCAL_ARGS= -I adm/unix/config_files
USE_AUTOTOOLS+= autoheader
AUTOHEADER_ARGS= -I adm/unix/config_files
. else
. if ${SAL_MODULE} != "jobmanager"
ACLOCAL_ARGS= -I adm_local/unix/config_files -I ${LOCALBASE}/salome_adm/unix/config_files
. else
ACLOCAL_ARGS= -I m4
AUTOHEADER_ARGS+= -I m4
. endif
. if ${SAL_MODULE} != "gui" && ${SAL_MODULE} != "jobmanager"
ACLOCAL_ARGS+= -I ${LOCALBASE}/adm_local/unix/config_files
. endif
. endif
.endif
LIBTOOLFLAGS=--force --copy --automake
AUTOMAKE_ARGS=--add-missing --copy --gnu
#Dependency from HDF5
.if !${SAL_MODULE} == "randomizer" && !${SAL_MODULE} == "yacs" && !${SAL_MODULE} == "hello" && !${SAL_MODULE} == "pyhello"
LIB_DEPENDS+= hdf5.7:${PORTSDIR}/science/hdf5-18
CONFIGURE_ARGS+= --with-hdf5=${LOCALBASE}
AUTOTOOLS_ENV+= HDF5HOME=${LOCALBASE}
.endif
#Dependency from Opencascade
.if !${SAL_MODULE} == "kernel"
LIB_DEPENDS+= TKernel.0:${PORTSDIR}/cad/opencascade
CASROOT= ${LOCALBASE}/OpenCAS/ros
CONFIGURE_ENV+= CASROOT=${CASROOT}
AUTOTOOLS_ENV+= CASROOT=${CASROOT}
#CXXFLAGS+= -I${CASROOT}/inc
.endif
#Dependency from swig
.if !${SAL_MODULE} == "randomizer" && !${SAL_MODULE} == "light" && !${SAL_MODULE} == "multipr"
BUILD_DEPENDS+= swig:${PORTSDIR}/devel/swig13
.endif
#Dependency from libxml2
.if ${SAL_MODULE} == "gui" || ${SAL_MODULE} == "kernel" || ${SAL_MODULE} == "med" || ${SAL_MODULE} == "yacs"
LIB_DEPENDS+= xml2.5:${PORTSDIR}/textproc/libxml2
CPPFLAGS+= -I${LOCALBASE}/include/libxml2
CONFIGURE_ENV+= LIBXML_DIR=${LOCALBASE}
.endif
#Dependency from boost
.if !${SAL_MODULE} == "light" && !${SAL_MODULE} == "randomizer" && !${SAL_MODULE} == "pycalculator" && !${SAL_MODULE} == "light"
CONFIGURE_ENV+= BOOSTDIR=${LOCALBASE}
LIB_DEPENDS+= boost_thread:${PORTSDIR}/devel/boost-all
###python boost support off by default
RUN_DEPENDS+= ${LOCALBASE}/lib/libboost_python.so:${PORTSDIR}/devel/boost-python-libs
BUILD_DEPENDS+= ${LOCALBASE}/lib/libboost_python.so:${PORTSDIR}/devel/boost-python-libs
.endif
#Dependency from qt4
.if !${SAL_MODULE} == "kernel" && !${SAL_MODULE} == "randomizer"
USE_QT_VER= 4
CONFIGURE_ENV+= QTDIR=${LOCALBASE}
QTFLAGS+= -I${LOCALBASE}/include/qt4 -L${LOCALBASE}/lib/qt4
QT_COMPONENTS= gui opengl svg xml qmake_build moc_build rcc_build uic_build linguist
AUTOTOOLS_ENV+= QTDIR=${LOCALBASE}
.endif
#Dependency from qscintilla2
.if ${SAL_MODULE} == "yacs"
LIB_DEPEDNS+= qscintilla2.5:${PORTSDIR}/devel/qscintilla2
CONFIGURE_ARGS+= --with-qsci4-libraries=${QT_LIBDIR} --with-qsci4-includes=${QT_INCDIR}
.endif
#Dependency from vtk
.if !${SAL_MODULE} == "kernel" && !${SAL_MODULE} == "randomizer"
LIB_DEPENDS+= vtkCommon.5:${PORTSDIR}/math/vtk5
CONFIGURE_ARGS+= --with-vtk=${LOCALBASE}
#CONFIGURE_ENV+= VTKHOME=${LOCALBASE}
.endif
#Dependency from cad/netgen
.if ${SAL_MODULE} == "netgenplugin"
LIB_DEPENDS+= nglib.1:${PORTSDIR}/cad/netgen
CONFIGURE_ENV+= NETGENHOME=${LOCALBASE}
AUTOTOOLS_ENV+= NETGENHOME=${LOCALBASE}
.endif
#Dependency from qwt5
.if ${SAL_MODULE} == "gui" || ${SAL_MODULE} == "component" || ${SAL_MODULE} == "smesh" || ${SAL_MODULE} == "visu" || ${SAL_MODULE} == "filter"
LIB_DEPENDS+= qwt.5:${PORTSDIR}/x11-toolkits/qwt5
CONFIGURE_ARGS+= --with-qwt=${LOCALBASE}
CPPFLAGS+= -I/${LOCALBASE}/include/qwt/
AUTOTOOLS_ENV+= QWTHOME=${LOCALBASE}
.endif
#Dependency from omniORB & py-omniorb
.if !${SAL_MODULE} == "light"
LIB_DEPENDS+= omniORB4.1:${PORTSDIR}/devel/omniORB
RUN_DEPENDS+= ${LOCALBASE}/include/omniORBpy.h:${PORTSDIR}/devel/py-omniorb
RUN_DEPENDS+= notifd:${PORTSDIR}/devel/omniNotify
AUTOTOOLS_ENV+= OMNIORBDIR=${LOCALBASE}
.endif
#Dependency from sip
.if ${SAL_MODULE} == "gui" || ${SAL_MODULE} == "component"
BUILD_DEPENDS+= sip:${PORTSDIR}/devel/py-sip
RUN_DEPENDS+= sip:${PORTSDIR}/devel/py-sip
.endif
#Dependency from Pyqt4
.if ${SAL_MODULE} == "gui" || ${SAL_MODULE} == "component"
CONFIGURE_ENV+= PYQTDIR=${PYTHON_SITELIBDIR} PYQT_SIPS=${LOCALBASE}/share/py-sip
RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/PyQt4/QtGui.so:${PORTSDIR}/x11-toolkits/py-qt4-gui
BUILD_DEPENDS+= ${PYTHON_SITELIBDIR}/PyQt4/QtGui.so:${PORTSDIR}/x11-toolkits/py-qt4-gui
RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/PyQt4/QtXml.so:${PORTSDIR}/textproc/py-qt4-xml
BUILD_DEPENDS+= ${PYTHON_SITELIBDIR}/PyQt4/QtXml.so:${PORTSDIR}/textproc/py-qt4-xml
.endif
#Dependency from metis & scotsch
.if ${SAL_MODULE} == "med"
. if exists(${LOCALBASE}/bin/graphchk)
BUILD_DEPENDS+= kmetis:${PORTSDIR}/math/metis
RUN_DEPENDS+= kmetis:${PORTSDIR}/math/metis
. else
BUILD_DEPENDS+= kmetis:${PORTSDIR}/math/metis-edf
RUN_DEPENDS+= kmetis:${PORTSDIR}/math/metis-edf
.endif
BUILD_DEPENDS+= gmap:${PORTSDIR}/cad/scotch
RUN_DEPENDS+= gmap:${PORTSDIR}/cad/scotch
CONFIGURE_ENV+= METISDIR=${LOCALBASE} SCOTCHDIR=${LOCALBASE}
CPPFLAGS+= -I${LOCALBASE}/include/metis
.endif
#Dependency from MED
.if ${SAL_MODULE} == "med"
LIB_DEPENDS+= med.2:${PORTSDIR}/french/med
CONFIGURE_ENV+= MED2HOME=${LOCALBASE}
.endif
#Dependency from gd
.if ${SAL_MODULE} == "sierpinsky"
LIB_DEPENDS+= gd.4:${PORTSDIR}/graphics/gd
.endif
.if ${SAL_MODULE} == "yacs"
LIB_DEPENDS+= argp.0:${PORTSDIR}/devel/argp-standalone
LIB_DEPENDS+= expat.6:${PORTSDIR}/textproc/expat2
LIB_DEPENDS+= gvc:${PORTSDIR}/graphics/graphviz
LDFLAGS+= -largp
.endif
#Don't strip binaries
.if ${SAL_MODULE} == "multipr"
STRIP=
.endif
#turn off cppunit support
.if ${SAL_MODULE} == "kernel" || ${SAL_MODULE} == "gui" || ${SAL_MODULE} == "yacs" || ${SAL_MODULE} == "med"
#.if defined(WITH_CPPUNIT)
#CONFIGURE_ARGS+= --with-cppunit=${LOCALBASE} --with-cppunit_inc=${LOCALBASE}/include/cppunit
#BUILD_DEPENDS+= cppunit-config:${PORTSDIR}/devel/cppunit
#PLIST_SUB+= CPPUNIT=""
#. else
CONFIGURE_ARGS+= --with-cppunit=no
PLIST_SUB+= CPPUNIT="@comment "
#.endif
.endif
#optionally dependency from mpich2
.if ${SAL_MODULE} == "kernel" || ${SAL_MODULE} == "med"
.if defined(WITH_MPI)
LIB_DEPENDS+= mpich.2:${PORTSDIR}/net/mpich2
CONFIGURE_ARGS+= --with-mpich=${LOCALBASE}/mpich2 --with-mpi=${LOCALBASE}/mpich2
PLIST_SUB+= MPI=""
. else
#CONFIGURE_ARGS+= --with-mpich=NO --with-mpi=NO
PLIST_SUB+= MPI="@comment "
.endif
.endif
CONFIGURE_ENV+= LDFLAGS="${LDFLAGS}" CXXFLAGS="${QSCIFLAGS} ${QTFLAGS} ${CXXFLAGS} " CPPFLAGS="${CPPFLAGS}"
.include <bsd.port.pre.mk>
#MAKE_JOBS_SAFE= yes
.if ${SAL_MODULE} == "kernel"
post-patch:
. if ${PYTHON_REL} > 260
${REINPLACE_CMD} 's|fromlist=None)|fromlist=None, level=-1)|g' ${WRKSRC}/src/KERNEL_PY/import_hook.py
. endif
${REINPLACE_CMD} 's|/bin/bash|${LOCALBASE}/bin/bash|g' ${WRKSRC}/bin/appli_clean.sh ${WRKSRC}/bin/runSalome
.endif
.if ${SAL_MODULE} == "gui"
post-patch:
${REINPLACE_CMD} 's|/bin/bash|${LOCALBASE}/bin/bash|g' ${WRKSRC}/bin/runLightSalome.sh
.endif
.if ${SAL_MODULE} == "yacs"
post-patch:
${CP} ${WRKSRC}/configure.in.base ${WRKSRC}/configure.in
.endif
.if ${SAL_MODULE} == "kernel"
pre-patch:
${MKDIR} ${WRKSRC}/src/Communication/rpc
${CP} /usr/include/rpc/xdr.h ${WRKSRC}/src/Communication/rpc
${REINPLACE_CMD} 's|__rpc_xdr|XDR|g' ${WRKSRC}/src/Communication/rpc/xdr.h
.endif
MMDEPENDS=${SAL_MODULE_UPPER}_DEPEND
AUTOTOOLS_ENV+= ${SAL_MODULE_UPPER}_ROOT_DIR=${PREFIX}
.for D in ${MMDEPENDS}
AUTOTOOLS_ENV+=${D}_ROOT_DIR=${LOCALBASE}
.endfor
run-autotools-aclocal:
echo "Start of aclocal"
@(cd ${PATCH_WRKSRC} && ${SETENV} ${AUTOTOOLS_ENV} ${ACLOCAL} \
${ACLOCAL_ARGS})
echo "End of aclocal"
run-autotools-autoconf:
echo "Start of autoconf"
@(cd ${PATCH_WRKSRC} && ${SETENV} ${AUTOTOOLS_ENV} ${AUTOCONF} \
${AUTOCONF_ARGS})
echo "End of autotools"
run-autotools-automake:
echo "Start of automake"
@(cd ${PATCH_WRKSRC} && ${SETENV} ${AUTOTOOLS_ENV} ${AUTOMAKE} \
${AUTOMAKE_ARGS})
echo "End of automake"
.if ${SAL_MODULE} == "yacs" || ${SAL_MODULE} == "jobmanager"
run-autotools-autoheader:
echo "Start of autoheader"
@(cd ${PATCH_WRKSRC} && ${SETENV} ${AUTOTOOLS_ENV} ${AUTOHEADER} \
${AUTOHEADER_ARGS})
echo "End of autoheader"
.endif
patch-autotools-libtool:
@(cd ${PATCH_WRKSRC}; ${LIBTOOLIZE} --force;)
pre-configure:
${MKDIR} ${BUILD_WRKSRC}
.include <bsd.port.post.mk>