diff --git a/m4/ipopt.m4 b/m4/ipopt.m4 index 1df26d222a6770878d8e04cdc8cab9dbe2ccce45..2477f9c1f849e0448003313d8e5f49968a17580b 100644 --- a/m4/ipopt.m4 +++ b/m4/ipopt.m4 @@ -30,20 +30,23 @@ AS_IF([test x$with_ipopt != xno], [ IPOPT_LIB_PATH="$IPOPTROOT/lib" - # Check whether ipopt is installed at all + # Check for ipopt and set IPOPT_* export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$IPOPT_LIB_PATH/pkgconfig" - PKG_CHECK_EXISTS([ipopt], [ + PKG_CHECK_MODULES([IPOPT], [ipopt], [ HAVE_IPOPT="1" ], [ dnl default rule would fail AC_MSG_WARN([IPOpt not found in $IPOPTROOT]) ]) + dnl FIXME: We have two problems with the information provided by pkg-config: + dnl (1) What we would expect in IPOPT_CPPFLAGS (namely, -I<path>) + dnl ends up in IPOPT_CFLAGS with ipopt 3.10.1 + dnl (2) IPOPT_CFLAGS contain -I<prefix>/include/coin rather than + dnl -I<prefix>/include. We currently include <coin/..> everywhere. + IPOPT_CPPFLAGS="-I$IPOPTROOT/include" - IPOPT_LDFLAGS="`PKG_CONFIG_PATH=$IPOPT_LIB_PATH/pkgconfig $PKG_CONFIG --libs-only-L ipopt`" LDFLAGS="$LDFLAGS $IPOPT_LDFLAGS" - IPOPT_CPPFLAGS="-I$IPOPTROOT/include" CPPFLAGS="$CPPFLAGS $IPOPT_CPPFLAGS" - IPOPT_LIBS="`PKG_CONFIG_PATH=$IPOPT_LIB_PATH/pkgconfig $PKG_CONFIG --libs-only-l ipopt`" LIBS="$LIBS $IPOPT_LIBS" AC_LANG_PUSH([C++])