1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
############################################################################
# Usage:
# SIM_AC_HAVE_COIN_IFELSE( IF-FOUND, IF-NOT-FOUND )
#
# Description:
# This macro locates the Coin development system. If it is found,
# the set of variables listed below are set up as described and made
# available to the configure script.
#
# The $sim_ac_coin_desired variable can be set to false externally to
# make Coin default to be excluded.
#
# Autoconf Variables:
# > $sim_ac_coin_desired true | false (defaults to true)
# < $sim_ac_coin_avail true | false
# < $sim_ac_coin_cppflags (extra flags the preprocessor needs)
# < $sim_ac_coin_ldflags (extra flags the linker needs)
# < $sim_ac_coin_libs (link library flags the linker needs)
# < $sim_ac_coin_datadir (location of Coin data files)
# < $sim_ac_coin_includedir (location of Coin headers)
# < $sim_ac_coin_version (the libCoin version)
# < $sim_ac_coin_msvcrt (the MSVC++ C library Coin was built with)
# < $sim_ac_coin_configcmd (the path to coin-config or "false")
#
# Authors:
# Lars J. Aas, <larsa@sim.no>
# Morten Eriksen, <mortene@sim.no>
#
# TODO:
#
AC_DEFUN([SIM_AC_HAVE_COIN_IFELSE], [
AC_PREREQ([2.14a])
# official variables
sim_ac_coin_avail=false
sim_ac_coin_cppflags=
sim_ac_coin_cflags=
sim_ac_coin_cxxflags=
sim_ac_coin_ldflags=
sim_ac_coin_libs=
sim_ac_coin_datadir=
sim_ac_coin_includedir=
sim_ac_coin_version=
# internal variables
: ${sim_ac_coin_desired=true}
sim_ac_coin_extrapath=
AC_ARG_WITH([coin],
AC_HELP_STRING([--with-coin], [enable use of Coin [[default=yes]]])
AC_HELP_STRING([--with-coin=DIR], [give prefix location of Coin]),
[ case $withval in
no) sim_ac_coin_desired=false ;;
yes) sim_ac_coin_desired=true ;;
*) sim_ac_coin_desired=true
sim_ac_coin_extrapath=$withval ;;
esac],
[])
if $sim_ac_coin_desired; then
sim_ac_path=$PATH
test -z "$sim_ac_coin_extrapath" || ## search in --with-coin path
sim_ac_path=$sim_ac_coin_extrapath/bin:$sim_ac_path
test x"$prefix" = xNONE || ## search in --prefix path
sim_ac_path=$sim_ac_path:$prefix/bin
AC_PATH_PROG(sim_ac_coin_configcmd, coin-config, false, $sim_ac_path)
if $sim_ac_coin_configcmd; then
test -n "$CONFIG" &&
$sim_ac_coin_configcmd --alternate=$CONFIG >/dev/null 2>/dev/null &&
sim_ac_coin_configcmd="$sim_ac_coin_configcmd --alternate=$CONFIG"
sim_ac_coin_cppflags=`$sim_ac_coin_configcmd --cppflags`
sim_ac_coin_cflags=`$sim_ac_coin_configcmd --cflags`
sim_ac_coin_cxxflags=`$sim_ac_coin_configcmd --cxxflags`
sim_ac_coin_ldflags=`$sim_ac_coin_configcmd --ldflags`
sim_ac_coin_libs=`$sim_ac_coin_configcmd --libs`
sim_ac_coin_msvcrt=`$sim_ac_coin_configcmd --msvcrt`
sim_ac_coin_datadir=`$sim_ac_coin_configcmd --datadir`
sim_ac_coin_includedir=`$sim_ac_coin_configcmd --includedir`
sim_ac_coin_version=`$sim_ac_coin_configcmd --version`
AC_CACHE_CHECK(
[whether libCoin is available],
sim_cv_coin_avail,
[sim_ac_save_cppflags=$CPPFLAGS
sim_ac_save_ldflags=$LDFLAGS
sim_ac_save_libs=$LIBS
CPPFLAGS="$CPPFLAGS $sim_ac_coin_cppflags"
LDFLAGS="$LDFLAGS $sim_ac_coin_ldflags"
LIBS="$sim_ac_coin_libs $LIBS"
AC_LANG_PUSH(C++)
AC_TRY_LINK(
[#include <Inventor/SoDB.h>],
[SoDB::init();],
[sim_cv_coin_avail=true],
[sim_cv_coin_avail=false])
AC_LANG_POP
CPPFLAGS=$sim_ac_save_cppflags
LDFLAGS=$sim_ac_save_ldflags
LIBS=$sim_ac_save_libs
])
sim_ac_coin_avail=$sim_cv_coin_avail
else
locations=`IFS=:; for p in $sim_ac_path; do echo " -> $p/coin-config"; done`
AC_MSG_WARN([cannot find 'coin-config' at any of these locations:
$locations])
fi
fi
if $sim_ac_coin_avail; then
ifelse([$1], , :, [$1])
else
ifelse([$2], , :, [$2])
fi
]) # SIM_AC_HAVE_COIN_IFELSE()
|