| 1 | AC_DEFUN([LX_CHECK_COIN], | 
|---|
| 2 | [ | 
|---|
| 3 |   AC_ARG_WITH([coin], | 
|---|
| 4 | AS_HELP_STRING([--with-coin@<:@=PREFIX@:>@], [search for CLP under PREFIX or under the default search paths if PREFIX is not given @<:@default@:>@]) | 
|---|
| 5 | AS_HELP_STRING([--without-coin], [disable checking for CLP]), | 
|---|
| 6 |               [], [with_coin=yes]) | 
|---|
| 7 |  | 
|---|
| 8 |   AC_ARG_WITH([coin-includedir], | 
|---|
| 9 | AS_HELP_STRING([--with-coin-includedir=DIR], [search for CLP headers in DIR]), | 
|---|
| 10 |               [], [with_coin_includedir=no]) | 
|---|
| 11 |  | 
|---|
| 12 |   AC_ARG_WITH([coin-libdir], | 
|---|
| 13 | AS_HELP_STRING([--with-coin-libdir=DIR], [search for CLP libraries in DIR]), | 
|---|
| 14 |               [], [with_coin_libdir=no]) | 
|---|
| 15 |  | 
|---|
| 16 |   lx_clp_found=no | 
|---|
| 17 |   if test x"$with_coin" != x"no"; then | 
|---|
| 18 |     AC_MSG_CHECKING([for CLP]) | 
|---|
| 19 |  | 
|---|
| 20 |     if test x"$with_coin_includedir" != x"no"; then | 
|---|
| 21 |       CLP_CXXFLAGS="-I$with_coin_includedir" | 
|---|
| 22 |     elif test x"$with_coin" != x"yes"; then | 
|---|
| 23 |       CLP_CXXFLAGS="-I$with_coin/include" | 
|---|
| 24 |     fi | 
|---|
| 25 |  | 
|---|
| 26 |     if test x"$with_coin_libdir" != x"no"; then | 
|---|
| 27 |       CLP_LDFLAGS="-L$with_coin_libdir" | 
|---|
| 28 |     elif test x"$with_coin" != x"yes"; then | 
|---|
| 29 |       CLP_LDFLAGS="-L$with_coin/lib" | 
|---|
| 30 |     fi | 
|---|
| 31 |     CLP_LIBS="-lClp -lCoinUtils -lm" | 
|---|
| 32 |  | 
|---|
| 33 |     lx_save_cxxflags="$CXXFLAGS" | 
|---|
| 34 |     lx_save_ldflags="$LDFLAGS" | 
|---|
| 35 |     lx_save_libs="$LIBS" | 
|---|
| 36 |     CXXFLAGS="$CLP_CXXFLAGS" | 
|---|
| 37 |     LDFLAGS="$CLP_LDFLAGS" | 
|---|
| 38 |     LIBS="$CLP_LIBS" | 
|---|
| 39 |  | 
|---|
| 40 |     lx_clp_test_prog=' | 
|---|
| 41 |       #include <coin/ClpModel.hpp> | 
|---|
| 42 |  | 
|---|
| 43 |       int main(int argc, char** argv) | 
|---|
| 44 |       { | 
|---|
| 45 |         ClpModel clp; | 
|---|
| 46 |         return 0; | 
|---|
| 47 |       }' | 
|---|
| 48 |  | 
|---|
| 49 |     AC_LANG_PUSH(C++) | 
|---|
| 50 |     AC_LINK_IFELSE([$lx_clp_test_prog], [lx_clp_found=yes], [lx_clp_found=no]) | 
|---|
| 51 |     AC_LANG_POP(C++) | 
|---|
| 52 |  | 
|---|
| 53 |     CXXFLAGS="$lx_save_cxxflags" | 
|---|
| 54 |     LDFLAGS="$lx_save_ldflags" | 
|---|
| 55 |     LIBS="$lx_save_libs" | 
|---|
| 56 |  | 
|---|
| 57 |     if test x"$lx_clp_found" = x"yes"; then | 
|---|
| 58 |       AC_DEFINE([LEMON_HAVE_CLP], [1], [Define to 1 if you have CLP.]) | 
|---|
| 59 |       lx_lp_found=yes | 
|---|
| 60 |       AC_DEFINE([LEMON_HAVE_LP], [1], [Define to 1 if you have any LP solver.]) | 
|---|
| 61 |       AC_MSG_RESULT([yes]) | 
|---|
| 62 |     else | 
|---|
| 63 |       CLP_CXXFLAGS="" | 
|---|
| 64 |       CLP_LDFLAGS="" | 
|---|
| 65 |       CLP_LIBS="" | 
|---|
| 66 |       AC_MSG_RESULT([no]) | 
|---|
| 67 |     fi | 
|---|
| 68 |   fi | 
|---|
| 69 |   CLP_LIBS="$CLP_LDFLAGS $CLP_LIBS" | 
|---|
| 70 |   AC_SUBST(CLP_CXXFLAGS) | 
|---|
| 71 |   AC_SUBST(CLP_LIBS) | 
|---|
| 72 |   AM_CONDITIONAL([HAVE_CLP], [test x"$lx_clp_found" = x"yes"]) | 
|---|
| 73 |  | 
|---|
| 74 |  | 
|---|
| 75 |   lx_cbc_found=no | 
|---|
| 76 |   if test x"$lx_clp_found" = x"yes"; then | 
|---|
| 77 |     if test x"$with_coin" != x"no"; then | 
|---|
| 78 |       AC_MSG_CHECKING([for CBC]) | 
|---|
| 79 |  | 
|---|
| 80 |       if test x"$with_coin_includedir" != x"no"; then | 
|---|
| 81 |         CBC_CXXFLAGS="-I$with_coin_includedir" | 
|---|
| 82 |       elif test x"$with_coin" != x"yes"; then | 
|---|
| 83 |         CBC_CXXFLAGS="-I$with_coin/include" | 
|---|
| 84 |       fi | 
|---|
| 85 |  | 
|---|
| 86 |       if test x"$with_coin_libdir" != x"no"; then | 
|---|
| 87 |         CBC_LDFLAGS="-L$with_coin_libdir" | 
|---|
| 88 |       elif test x"$with_coin" != x"yes"; then | 
|---|
| 89 |         CBC_LDFLAGS="-L$with_coin/lib" | 
|---|
| 90 |       fi | 
|---|
| 91 |       CBC_LIBS="-lOsi -lCbc -lCbcSolver -lClp -lOsiClp -lCoinUtils -lVol -lOsiVol -lCgl -lm -llapack -lblas" | 
|---|
| 92 |  | 
|---|
| 93 |       lx_save_cxxflags="$CXXFLAGS" | 
|---|
| 94 |       lx_save_ldflags="$LDFLAGS" | 
|---|
| 95 |       lx_save_libs="$LIBS" | 
|---|
| 96 |       CXXFLAGS="$CBC_CXXFLAGS" | 
|---|
| 97 |       LDFLAGS="$CBC_LDFLAGS" | 
|---|
| 98 |       LIBS="$CBC_LIBS" | 
|---|
| 99 |  | 
|---|
| 100 |       lx_cbc_test_prog=' | 
|---|
| 101 |         #include <coin/CbcModel.hpp> | 
|---|
| 102 |  | 
|---|
| 103 |         int main(int argc, char** argv) | 
|---|
| 104 |         { | 
|---|
| 105 |           CbcModel cbc; | 
|---|
| 106 |           return 0; | 
|---|
| 107 |         }' | 
|---|
| 108 |  | 
|---|
| 109 |       AC_LANG_PUSH(C++) | 
|---|
| 110 |       AC_LINK_IFELSE([$lx_cbc_test_prog], [lx_cbc_found=yes], [lx_cbc_found=no]) | 
|---|
| 111 |       AC_LANG_POP(C++) | 
|---|
| 112 |  | 
|---|
| 113 |       CXXFLAGS="$lx_save_cxxflags" | 
|---|
| 114 |       LDFLAGS="$lx_save_ldflags" | 
|---|
| 115 |       LIBS="$lx_save_libs" | 
|---|
| 116 |  | 
|---|
| 117 |       if test x"$lx_cbc_found" = x"yes"; then | 
|---|
| 118 |         AC_DEFINE([LEMON_HAVE_CBC], [1], [Define to 1 if you have CBC.]) | 
|---|
| 119 |         lx_lp_found=yes | 
|---|
| 120 |         AC_DEFINE([LEMON_HAVE_LP], [1], [Define to 1 if you have any LP solver.]) | 
|---|
| 121 |         lx_mip_found=yes | 
|---|
| 122 |         AC_DEFINE([LEMON_HAVE_MIP], [1], [Define to 1 if you have any MIP solver.]) | 
|---|
| 123 |         AC_MSG_RESULT([yes]) | 
|---|
| 124 |       else | 
|---|
| 125 |         CBC_CXXFLAGS="" | 
|---|
| 126 |         CBC_LDFLAGS="" | 
|---|
| 127 |         CBC_LIBS="" | 
|---|
| 128 |         AC_MSG_RESULT([no]) | 
|---|
| 129 |       fi | 
|---|
| 130 |     fi | 
|---|
| 131 |   fi | 
|---|
| 132 |   CBC_LIBS="$CBC_LDFLAGS $CBC_LIBS" | 
|---|
| 133 |   AC_SUBST(CBC_CXXFLAGS) | 
|---|
| 134 |   AC_SUBST(CBC_LIBS) | 
|---|
| 135 |   AM_CONDITIONAL([HAVE_CBC], [test x"$lx_cbc_found" = x"yes"]) | 
|---|
| 136 | ]) | 
|---|