aboutsummaryrefslogtreecommitdiffstats
path: root/math/vtk5/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'math/vtk5/Makefile')
-rw-r--r--math/vtk5/Makefile246
1 files changed, 211 insertions, 35 deletions
diff --git a/math/vtk5/Makefile b/math/vtk5/Makefile
index d40cfdab3c4f..612883a63d37 100644
--- a/math/vtk5/Makefile
+++ b/math/vtk5/Makefile
@@ -1,54 +1,230 @@
# New ports collection makefile for: vtk
-# Date created: 24 Nov 1997
-# Whom: Thomas Gellekum <tg@FreeBSD.org>
+# Date created: 10 Oct 2003
+# Whom: Mykola Khotyaintsev <ko@irfu.se>
#
# $FreeBSD$
#
+# By default
+#
+# There are some options to tune VTK towards your specific needs.
+# You can activate a feature by typing something like
+# "make -DKNOB" or "make KNOB=yes" instead of just "make"
+#
+# WITH_TESTING build the testing binaries (only for vtk and vtk-java port)
+#
PORTNAME= vtk
-PORTVERSION= 3.2
-PORTREVISION= 1
-CATEGORIES= math
-MASTER_SITES= ftp://public.kitware.com/pub/vtk/vtk${PORTVERSION}/
-DISTNAME= vtk32-src-unix
-EXTRACT_SUFX= .tgz
+PORTVERSION= 4.3.0
+CATEGORIES= math graphics
+MASTER_SITES= http://ovt.irfu.se/vtk/files/
+DISTFILES?= VTK-${PORTVERSION}-cvs${CVSDATE}.tar.gz
-MAINTAINER= ports@FreeBSD.org
-COMMENT= The Visualization Toolkit
-
-LIB_DEPENDS= tk83.1:${PORTSDIR}/x11-toolkits/tk83
+MAINTAINER= ko@irfu.se
+COMMENT?= The Visualization Toolkit shared libs
USE_REINPLACE= yes
-USE_MESA= yes
-WRKSRC= ${WRKDIR}/vtk${PORTVERSION}
+
+LIBVER= 1
+CVSDATE= 20031006
+VTKSRCDIR= ${WRKDIR}/VTK
+TESTINGDIR= ${EXAMPLESDIR}/Testing
+VTKDATAROOT= ${EXAMPLESDIR}/VTKData
+DOCSDIR= ${PREFIX}/share/doc/${PKGNAME}
+PLIST= ${.CURDIR}/pkg-plist
+FILESDIR= ${.CURDIR}/files
+RESTRICTED= yes
+
+VTK_KITS= Common Filtering Graphics Hybrid IO Imaging Rendering Parallel Patented
+
+PLIST_SUB+= LIBVER=${LIBVER} PKGNAME=${PKGNAME}
+
+.if defined(WRAP) || !defined(PKGNAMESUFFIX) || ${PKGNAMESUFFIX}=="-headers"
+
+WRKSRC= ${WRKDIR}/${PORTNAME}${PKGNAMESUFFIX}-build
+
+BUILD_DEPENDS+= ${CMAKE}:${PORTSDIR}/devel/cmake
+
+LIB_DEPENDS+= expat.4:${PORTSDIR}/textproc/expat2 \
+ jpeg.9:${PORTSDIR}/graphics/jpeg \
+ png.5:${PORTSDIR}/graphics/png \
+ tiff.4:${PORTSDIR}/graphics/tiff
+
+.if defined(WITH_TESTING) && (!defined(PKGNAMESUFFIX) || ${PKGNAMESUFFIX}=="-java")
+RUN_DEPENDS= ${VTKDATAROOT}/VTKData.readme:${PORTSDIR}/math/vtk-data
+BUILD_DEPENDS= ${VTKDATAROOT}/VTKData.readme:${PORTSDIR}/math/vtk-data
+.endif
+
+ONLY_FOR_ARCHS= i386 # was not tested on other ARCHS
+USE_GMAKE= yes
+USE_GL= yes
INSTALLS_SHLIB= yes
-GNU_CONFIGURE= yes
-CONFIGURE_ARGS= --with-mesa --with-shared --with-tcl --with-bsdmake
-CONFIGURE_ARGS+= --with-contrib --with-tkwidget
-# Support for Python is compiled in by default.
-.if !defined(WITHOUT_PYTHON)
-CONFIGURE_ARGS+= --with-python
-USE_PYTHON= yes
+# if optimization flag -O2 or -O3 is present - use g++33
+# There is a problems compiling Imaging/vtkImageEuclideanDistance.o by gcc 3.2.2
+# with -02 -march=pentium3
+.if defined(CXXFLAGS)
+TTT= "${CXXFLAGS}" # this quotes are VERY important!
+OPTFLAGPRESENT= ${TTT:C/^.*-O[23].*$/yes/}
+.if ${OPTFLAGPRESENT} == "yes"
+USE_GCC= 3.3
+.endif
+.endif
+
+CMAKE?= ${LOCALBASE}/bin/cmake
+CXXFLAGS+= -Wno-deprecated
+CMAKE_DEFS+= -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX} \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DCMAKE_BUILD_TYPE:STRING=Release \
+ -DCMAKE_SHARED_LINKER_FLAGS:STRING="${LINKERFLAGS}" \
+ -DCMAKE_EXE_LINKER_FLAGS:STRING="${LINKERFLAGS}" \
+ -DCMAKE_THREAD_LIBS:STRING="${PTHREAD_LIBS}"\
+ -DCMAKE_USE_PTHREADS:BOOL=ON \
+ -DCMAKE_C_COMPILER:STRING='${CC}' \
+ -DCMAKE_CXX_COMPILER:STRING=${CXX} \
+ -DCMAKE_C_FLAGS:STRING="${CFLAGS} ${PTHREAD_CFLAGS}" \
+ -DCMAKE_CXX_FLAGS:STRING="${CXXFLAGS} ${PTHREAD_CFLAGS}" \
+ -DVTK_USE_RENDERING:BOOL=ON \
+ -DVTK_USE_HYBRID:BOOL=ON \
+ -DVTK_USE_PARALLEL:BOOL=ON \
+ -DVTK_USE_PATENTED:BOOL=ON \
+ -DVTK_USE_SYSTEM_EXPAT:BOOL=ON \
+ -DVTK_USE_SYSTEM_JPEG:BOOL=ON \
+ -DVTK_USE_SYSTEM_PNG:BOOL=ON \
+ -DVTK_USE_SYSTEM_TIFF:BOOL=ON \
+ -DVTK_USE_SYSTEM_ZLIB:BOOL=ON \
+ -DVTK_DATA_ROOT:PATH=${VTKDATAROOT}
+
+.if defined(WITH_TESTING)
+CMAKE_DEFS+= -DBUILD_TESTING:BOOL=ON
+PLIST_SUB+= TESTING_ONLY=""
+.else
+CMAKE_DEFS+= -DBUILD_TESTING:BOOL=OFF
+PLIST_SUB+= TESTING_ONLY="@comment "
+.endif
+
+################################# vtk port start #############################################
+
+.ifndef(PKGNAMESUFFIX)
+
+EXTRA_LIBS= DICOMParser freetype ftgl
+
+.if defined(WITH_TESTING)
+BINARIES= ${VTK_KITS:C/Parallel//:C/Patented//:S/$/CxxTests/}
+BINARIES+= TestCxxFeatures TestInstantiator TimeRenderer TimeRenderer2 ParallelIsoTest
+BINARIES+= SocketClient SocketServer GenericCommunicator ThreadedCommunicator TestPStream
.endif
-.if defined(WITH_PATENTED)
-CONFIGURE_ARGS+= --with-patented
-PLIST= ${PKGDIR}/pkg-plist.with_patented
+.ifndef(WITH_TESTING)
+pre-everything::
+ @${ECHO_MSG} "---------------------- N O T E ------------------------"
+ @${ECHO_MSG} ""
+ @${ECHO_MSG} "If you want to build C++ Testing binaries press Ctrl-C now"
+ @${ECHO_MSG} "and execute \"make WITH_TESTING=yes\""
+ @${ECHO_MSG} ""
+ @${ECHO_MSG} "-------------------------------------------------------------"
.endif
-post-patch:
- @${REINPLACE_CMD} -e "s|%%PYTHON_INCLUDEDIR%%|${PYTHON_INCLUDEDIR}|g; \
- s|%%PTHREAD_CFLAGS%%|${PTHREAD_CFLAGS}|g; \
- s|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g" \
- ${WRKSRC}/user.make
- @${FIND} ${WRKSRC} -name "*.cxx" | ${XARGS} ${REINPLACE_CMD} -e \
- 's|malloc.h|stdlib.h|'
+do-patch: patch-common
+
+do-install: install-cnotice install-binaries install-libs
-post-install:
-.if !defined(WITHOUT_PYTHON)
- ${PYTHON_CMD} -c "import compileall; compileall.compile_dir( '${PREFIX}/lib/vtk/python' );"
- ${PYTHON_CMD} -Oc "import compileall; compileall.compile_dir( '${PREFIX}/lib/vtk/python' );"
.endif
+################################# vtk port end #############################################
+
+pre-configure:
+ ${MKDIR} ${WRKSRC}
+
+do-configure:
+ cd ${WRKSRC} && ${CMAKE} ${VTKSRCDIR} ${CMAKE_DEFS}
+
+patch-common:
+ @${FIND} ${VTKSRCDIR} -name "*.cxx" | ${XARGS} ${REINPLACE_CMD} -e \
+ 's|malloc.h|stdlib.h|g'
+ @${REINPLACE_CMD} -E 's|lib/vtk\)|lib\)|g' \
+ ${VTKSRCDIR}/vtkGenerateVTKConfig.cmake
+.if defined(WRAP)
+# No need to build many libs, such as: vtkCommon,... Better link to those ones installed by vtk port.
+# Patch (MAIN_KIT_LIB = [Common_LIB Filtering_LIB ...]:
+# ${VTKSRCDIR}/CMakeLists.txt :
+# -SUBDIRS(Wrapping Utilities)
+# +SUBDIRS(Wrapping)
+#
+# ${VTKSRCDIR}/[Common Filtering IO ...]/CMakeLists.txt :
+# -ADD_LIBRARY(vtk${KIT} ...
+# +FIND_LIBRARY(MAIN_KIT_LIB NAMES vtk${KIT} PATHS ${PREFIX}/lib)
+#
+# -TARGET_LINK_LIBRARIES(vtk${KIT}Python vtk${KIT} ...
+# +TARGET_LINK_LIBRARIES(vtk${KIT}Python ${MAIN_KIT_LIB} ...
+#
+# Sometimes TARGET_LINK_LIBRARIES(vtk${KIT}Python vtk${KIT} can be separated to two lines:
+# TARGET_LINK_LIBRARIES(vtk${KIT}Python
+# vtk${KIT}
+# -^[spaces or tabs]vtk${KIT}[spaces or tabs]$
+# +[space]${MAIN_KIT_LIB}
+#
+# -TARGET_LINK_LIBRARIES(vtk${KIT} ${KIT_LIBS})
+#
+# ${VTKSRCDIR}/[Common Filtering IO ...]/Tests/CMakeLists.txt :
+# -SUBDIRS(Cxx)
+#
+ @${REINPLACE_CMD} -E 's|SUBDIRS\(Wrapping Utilities\)|SUBDIRS\(Wrapping\)|g' \
+ ${VTKSRCDIR}/CMakeLists.txt
+
+ @for dir in ${VTK_KITS} ; do \
+ ${ECHO_MSG} "Patching ${WRKDIR}/${VTKSRCDIR}/$$dir/CMakeLists.txt ..." ; \
+ ${REINPLACE_CMD} -E 's|ADD_LIBRARY *\(vtk\$$\{KIT\} .*$$|FIND_LIBRARY\('$$dir'_LIB NAMES vtk\$$\{KIT\} PATHS ${PREFIX}/lib\)|g ; s|TARGET_LINK_LIBRARIES *\(vtk\$$\{KIT\}${WRAP} vtk\$$\{KIT\}|TARGET_LINK_LIBRARIES\(vtk\$$\{KIT\}${WRAP} \$$\{'$$dir'_LIB\}|g ; s|^[ \t]*vtk\$$\{KIT\}[ \t]*$$| \$$\{'$$dir'_LIB\}|g ; s|TARGET_LINK_LIBRARIES *\(vtk\$$\{KIT\} .*$$||g' \
+ ${VTKSRCDIR}/$$dir/CMakeLists.txt ; \
+ done
+
+.if defined(WITH_TESTING)
+ @for dir in ${VTK_KITS} ; do \
+ ${ECHO_MSG} "Patching ${VTKSRCDIR}/$$dir/Testing/CMakeLists.txt ..." ; \
+ ${REINPLACE_CMD} -E 's|SUBDIRS *\(Cxx\).*$$||g' \
+ ${VTKSRCDIR}/$$dir/Testing/CMakeLists.txt ; \
+ done
+.endif
+.endif #end of patch-common
+
+install-binaries:
+.if defined(BINARIES)
+ @${ECHO_MSG} "Installing binaries to ${PREFIX}/bin :"
+.for i in ${BINARIES}
+ @${ECHO_MSG} "Installing ${i} ..."
+ @${INSTALL_PROGRAM} ${WRKSRC}/bin/${i} ${PREFIX}/bin
+.endfor
+.endif
+
+install-libs:
+ @${ECHO_MSG} "Installing shared libraries to ${PREFIX}/lib ..."
+.for i in ${VTK_KITS:S/$/${WRAP}/} ${EXTRA_LIBS}
+ @${ECHO_MSG} "Installing libvtk${i}.so ..."
+ @${INSTALL_PROGRAM} ${WRKSRC}/bin/libvtk${i}.so \
+ ${PREFIX}/lib/libvtk${i}.so.${LIBVER}
+ @${LN} -sf ${PREFIX}/lib/libvtk${i}.so.${LIBVER} \
+ ${PREFIX}/lib/libvtk${i}.so
+.endfor
+
+.endif
+
+install-cnotice:
+ @${ECHO_MSG} "Installing copyright notice to ${DOCSDIR} ..."
+ @${MKDIR} ${DOCSDIR}
+ @${INSTALL_DATA} ${VTKSRCDIR}/README.html ${DOCSDIR}
+ @${INSTALL_DATA} ${VTKSRCDIR}/vtkLogo.jpg ${DOCSDIR}
+ @${ECHO_MSG} -e "A list of the patented classes.\n\n" > ${WRKDIR}/README.patented-classes
+ @cd ${VTKSRCDIR} ; ${LS} Patented/*.h >> ${WRKDIR}/README.patented-classes
+ @${INSTALL_DATA} ${WRKDIR}/README.patented-classes ${DOCSDIR}
+
+print-pkg-message:
+ @if ${TEST} -f ${PKGMESSAGE} ; then \
+ ${ECHO_MSG} -e "-- V T K - N O T E ----------------------------------------------------\n\n" ; \
+ ${CAT} ${PKGMESSAGE} | ${SED} -e 's|%%PREFIX%%|${PREFIX}|' ; \
+ ${ECHO_MSG} -e "\n\n-----------------------------------------------------------------------" ; \
+ fi
+
+post-install: print-pkg-message
+
+.ifndef(PKGNAMESUFFIX)
.include <bsd.port.mk>
+.endif