dnl Copyright (C) 2004-2006 EDF
dnl
dnl This file is part of the FVM software package.  For license
dnl information, see the COPYING file in the top level directory of the
dnl FVM source distribution.

# FVM_AC_TEST_BFT(Minimal Release string, [Maximal Release string])
#------------------------------------------------------------------
# Check for BFT version ; defines BFT_CPPFLAGS, BFT_LDFLAGS, and BFT_LIBS
# locally (i.e. as simple variables, not AC_SUBST)

AC_DEFUN([FVM_AC_TEST_BFT], [

AC_ARG_WITH(bft-prefix,
  [  --with-bft-prefix=DIR   BFT installed under DIR]
)

if test "x$with_bft_prefix" != "x" ; then
  BFT_CPPFLAGS="-I$with_bft_prefix/include"
  BFT_LDFLAGS="-L$with_bft_prefix/lib"
  bft_config="$with_bft_prefix/bin/bft-config"
else
  BFT_CPPFLAGS=""
  BFT_LDFLAGS=""
  bft_config="bft-config"
fi
BFT_LIBS="-lbft"

type "$bft_config" > /dev/null 2>&1
if test "$?" = "0" ; then
  BFT_CPPFLAGS="$BFT_CPPFLAGS `$bft_config --cppflags`"
  BFT_LDFLAGS="$BFT_LDFLAGS `$bft_config --ldflags`"
  BFT_LIBS="$BFT_LIBS `$bft_config --libs`"
fi

bft_version_min=$1
bft_version_max=$2

if test "x$bft_version_min" != "x" ; then
  if test "x$bft_version_max" != "x" ; then
    AC_MSG_CHECKING([for bft version >= $1 and <= $2])
  else
    AC_MSG_CHECKING([for bft version >= $1])
  fi
else
  bft_version_min="0.0.0"
fi

bft_version_major_min=`echo "$bft_version_min" | cut -f1 -d.`
bft_version_minor_min=`echo "$bft_version_min" | cut -f2 -d.`
bft_version_release_min=`echo "$bft_version_min" | cut -f3 -d.`
if test    "$bft_version_major_min" = "" \
        -o "$bft_version_minor_min" = "" \
        -o "$bft_version_release_min" = ""; then
  AC_MSG_FAILURE([bad BFT version definition in configure.ac: $bft_version_min])
fi

if test "x$bft_version_max" != "x" ; then
  bft_version_major_max=`echo "$bft_version_max" | cut -f1 -d.`
  bft_version_minor_max=`echo "$bft_version_max" | cut -f2 -d.`
  bft_version_release_max=`echo "$bft_version_max" | cut -f3 -d.`
  if test    "$bft_version_major_max" = "" \
          -o "$bft_version_minor_max" = "" \
          -o "$bft_version_release_max" = ""; then
    AC_MSG_FAILURE([bad BFT version definition in configure.ac: $bft_version_max])
  fi
else
  bft_version_major_max=99999999
  bft_version_minor_max=99999999
  bft_version_release_max=99999999
fi

saved_CPPFLAGS=$CPPFLAGS
saved_LDFLAGS=$LDFLAGS
saved_LIBS=$LIBS

CPPFLAGS="${CPPFLAGS} $BFT_CPPFLAGS"
LDFLAGS="${LDFLAGS} $BFT_LDFLAGS"
LIBS="${LIBS} $BFT_LIBS"

AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bft_config.h>
]],
[[#if BFT_MAJOR_VERSION < $bft_version_major_min
#  error BFT major version < $bft_version_major_min
#elif BFT_MAJOR_VERSION == $bft_version_major_min
#  if BFT_MINOR_VERSION < $bft_version_minor_min
#    error BFT minor version < $bft_version_minor_min
#  elif BFT_MINOR_VERSION == $bft_version_minor_min
#    if BFT_RELEASE_VERSION < $bft_version_release_min
#      error BFT release version < $bft_version_release_min
#    endif
#  endif
#endif
#if BFT_MAJOR_VERSION > $bft_version_major_max
#  error BFT major version > $bft_version_major_max
#elif BFT_MAJOR_VERSION == $bft_version_major_max
#  if BFT_MINOR_VERSION > $bft_version_minor_max
#    error BFT minor version > $bft_version_minor_max
#  elif BFT_MINOR_VERSION == $bft_version_minor_max
#    if BFT_RELEASE_VERSION > $bft_version_release_max
#      error BFT release version < $bft_version_release_max
#    endif
#  endif
#endif
]])],
               [AC_MSG_RESULT([compatible bft version found])],
               [AC_MSG_FAILURE([compatible bft version not found])])

unset bft_version_major_min
unset bft_version_minor_min
unset bft_version_release_min
unset bft_version_major_max
unset bft_version_minor_max
unset bft_version_release_max

unset bft_version_min
unset bft_version_max
unset bft_config

# Restore old LIBS to add $BFT_LIBS later, as other tests
# might otherwise not run if a shared library is not found

CPPFLAGS=$saved_CPPFLAGS
LDFLAGS=$saved_LDFLAGS
LIBS=$saved_LIBS

unset saved_CPPFLAGS
unset saved_LDFLAGS
unset saved_LIBS

AC_SUBST(BFT_CPPFLAGS)
AC_SUBST(BFT_LDFLAGS)
AC_SUBST(BFT_LIBS)

])dnl


syntax highlighted by Code2HTML, v. 0.9.1