mirror of
https://github.com/OpenCMT/uLib.git
synced 2025-12-06 15:31:31 +01:00
167 lines
5.0 KiB
Plaintext
167 lines
5.0 KiB
Plaintext
dnl ======================================================================================
|
|
dnl Author: Francesco Montorsi
|
|
dnl RCS-ID: $Id: vtk.m4,v 1.1 2005/11/20 14:47:40 frm Exp $
|
|
dnl
|
|
dnl Implements the AM_OPTIONS_VTK, to add the --with-vtk=path option, and the
|
|
dnl AM_PATH_VTK macro used to detect VTK presence, location and version.
|
|
dnl ======================================================================================
|
|
|
|
|
|
|
|
dnl
|
|
dnl AM_OPTIONS_VTK
|
|
dnl ------------------------------------------------------------------------
|
|
dnl Adds the --with-vtk=path option to the configure options
|
|
dnl
|
|
AC_DEFUN([AM_OPTIONS_VTK],
|
|
[
|
|
AC_ARG_WITH([vtk-path],
|
|
[AC_HELP_STRING([--with-vtk-path],
|
|
[The prefix where VTK is installed (default is /usr/local)])],
|
|
[with_vtk=$withval],
|
|
[with_vtk="/usr/local"])
|
|
|
|
AC_ARG_WITH([vtk-version],
|
|
[AC_HELP_STRING([--with-vtk-version],
|
|
[VTK's include directory name is vtk-suffix, e.g. vtk-5.0/. What's the suffix? (Default -5.10)])],
|
|
[vtk_suffix=$withval],
|
|
[vtk_suffix="-5.10"])
|
|
|
|
])# AM_OPTIONS_VTK
|
|
|
|
|
|
|
|
dnl
|
|
dnl AM_PATH_VTK([minimum-version], [action-if-found], [action-if-not-found])
|
|
dnl ------------------------------------------------------------------------
|
|
dnl
|
|
dnl NOTE: [minimum-version] must be in the form [X.Y.Z]
|
|
dnl
|
|
AC_DEFUN([AM_PATH_VTK],
|
|
[
|
|
dnl do we want to check for VTK ?
|
|
if test "$with_vtk" = yes; then
|
|
dnl in case user wrote --with-vtk=yes
|
|
with_vtk="/usr/local"
|
|
fi
|
|
|
|
if test "$with_vtk" != no; then
|
|
dnl
|
|
dnl A path was provided in $with_vtk...try hard to find the VTK library {{{
|
|
VTK_PREFIX="$with_vtk"
|
|
|
|
AC_CHECK_FILE([$VTK_PREFIX/include/vtk$vtk_suffix/vtkObject.h], [vtkFound="OK"])
|
|
AC_MSG_CHECKING([if VTK is installed in $VTK_PREFIX])
|
|
|
|
if test -z "$vtkFound"; then
|
|
dnl
|
|
dnl VTK was not found! ...execute $3 unconditionally {{{
|
|
AC_MSG_RESULT([no])
|
|
$3
|
|
dnl }}}
|
|
dnl
|
|
else
|
|
dnl
|
|
dnl VTK was found! ...execute $2 if version matches {{{
|
|
AC_MSG_RESULT([yes])
|
|
|
|
dnl these are the VTK libraries of a default build
|
|
VTK_LIBS=""
|
|
|
|
dnl set VTK c,cpp,ld flags
|
|
VTK_CFLAGS="-I$VTK_PREFIX/include/vtk$vtk_suffix"
|
|
VTK_CXXFLAGS="$VTK_CFLAGS"
|
|
VTK_LDFLAGS="-L$VTK_PREFIX/lib/vtk$vtk_suffix $VTK_LIBS"
|
|
|
|
|
|
AC_SUBST(VTK_LIBS)
|
|
AC_SUBST(VTK_CFLAGS)
|
|
AC_SUBST(VTK_CXXFLAGS)
|
|
AC_SUBST(VTK_LDFLAGS)
|
|
|
|
dnl now, eventually check version {{{
|
|
if test -n "$1"; then
|
|
dnl
|
|
dnl A version was specified... parse the version string in $1 {{{
|
|
|
|
dnl The version of VTK that we need: {{{
|
|
maj=`echo $1 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
|
min=`echo $1 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
|
rel=`echo $1 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
|
AC_MSG_CHECKING([if VTK version is at least $maj.$min.$rel])
|
|
dnl }}}
|
|
|
|
dnl Compare required version of VTK against installed version: {{{
|
|
dnl
|
|
dnl Note that in order to be able to compile the following test program,
|
|
dnl we need to add to the current flags, the VTK settings...
|
|
OLD_CFLAGS=$CFLAGS
|
|
OLD_CXXFLAGS=$CXXFLAGS
|
|
OLD_LDFLAGS=$LDFLAGS
|
|
CFLAGS="$VTK_CFLAGS $CFLAGS"
|
|
CXXFLAGS="$VTK_CXXFLAGS $CXXFLAGS"
|
|
LDFLAGS="$VTK_LDFLAGS $LDFLAGS"
|
|
dnl
|
|
dnl check if the installed VTK is greater or not
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
|
|
[
|
|
#include <vtkConfigure.h>
|
|
#include <stdio.h>
|
|
],
|
|
[
|
|
printf("VTK version is: %d.%d.%d", VTK_MAJOR_VERSION, VTK_MINOR_VERSION, VTK_BUILD_VERSION);
|
|
if VTK_MAJOR_VERSION < $maj
|
|
error Installed VTK is too old !
|
|
endif
|
|
if VTK_MINOR_VERSION < $min
|
|
error Installed VTK is too old !
|
|
endif
|
|
if VTK_BUILD_VERSION < $rel
|
|
error Installed VTK is too old !
|
|
endif
|
|
])
|
|
], [vtkVersion="OK"])
|
|
dnl
|
|
dnl restore all flags without VTK values
|
|
CFLAGS=$OLD_CFLAGS
|
|
CXXFLAGS=$OLD_CXXFLAGS
|
|
LDFLAGS=$OLD_LDFLAGS
|
|
dnl }}}
|
|
|
|
dnl Execute $2 if version is ok, otherwise execute $3 {{{
|
|
if test "$vtkVersion" = "OK"; then
|
|
AC_MSG_RESULT([yes])
|
|
$2
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
$3
|
|
fi
|
|
dnl }}}
|
|
|
|
dnl }}}
|
|
dnl
|
|
else
|
|
dnl
|
|
dnl A target version number was not provided... execute $2 unconditionally {{{
|
|
|
|
dnl if we don't have to check for minimum version (because the user did not set that option),
|
|
dnl then we can execute here the block action-if-found
|
|
CFLAGS="$VTK_CFLAGS $CFLAGS"
|
|
CXXFLAGS="$VTK_CXXFLAGS $CXXFLAGS"
|
|
LDFLAGS="$VTK_LDFLAGS $LDFLAGS"
|
|
$2
|
|
dnl }}}
|
|
dnl
|
|
fi
|
|
dnl }}}
|
|
|
|
dnl }}}
|
|
dnl
|
|
fi
|
|
dnl }}}
|
|
dnl
|
|
fi
|
|
])# AM_PATH_VTK
|
|
dnl
|
|
dnl vim: foldmethod=marker foldlevel=1 ts=2 sw=2
|