diff --git a/m4/ipopt.m4 b/m4/ipopt.m4
index 44b5007f70e211e94527ee33c582a121b122e4c3..9cd7bd40cbdbbf4722bd0590b4dc693a4ec0b209 100644
--- a/m4/ipopt.m4
+++ b/m4/ipopt.m4
@@ -46,14 +46,13 @@ CPPFLAGS="$IPOPT_CPPFLAGS"
 
 # if header is found...
 if test x$HAVE_IPOPT = x1 ; then
-   LIBS="$LIBS -lipopt -llapack -lblas -lgfortran"
+   LIBS="$LIBS `PKG_CONFIG_PATH=$IPOPT_LIB_PATH/pkgconfig $PKG_CONFIG --libs ipopt`"
 
    AC_LINK_IFELSE(AC_LANG_PROGRAM(
         [#include "coin/IpIpoptApplication.hpp"],
         [Ipopt::SmartPtr<Ipopt::IpoptApplication> app = new Ipopt::IpoptApplication();]),
-	[IPOPT_LIBS="-lipopt -llapack -lblas -lgfortran"
-         IPOPT_LDFLAGS="-L$IPOPT_LIB_PATH"
-         LIBS="$LIBS $IPOPT_LIBS"],
+	[IPOPT_LIBS="`PKG_CONFIG_PATH=$IPOPT_LIB_PATH/pkgconfig $PKG_CONFIG --libs-only-l ipopt`"
+         IPOPT_LDFLAGS="`PKG_CONFIG_PATH=$IPOPT_LIB_PATH/pkgconfig $PKG_CONFIG --libs-only-L ipopt`"],
 	[HAVE_IPOPT="0"
 	AC_MSG_WARN(IPOpt not found!)])
 fi