COIN-OR::LEMON - Graph Library

source: lemon-main/m4/lx_check_coin.m4 @ 720:6e8c27ee9079

Last change on this file since 720:6e8c27ee9079 was 627:20dac2104519, checked in by Akos Ladanyi <ladanyi@…>, 16 years ago

Merge and extend the fix of #275

File size: 3.9 KB
Line 
1AC_DEFUN([LX_CHECK_COIN],
2[
3  AC_ARG_WITH([coin],
4AS_HELP_STRING([--with-coin@<:@=PREFIX@:>@], [search for CLP under PREFIX or under the default search paths if PREFIX is not given @<:@default@:>@])
5AS_HELP_STRING([--without-coin], [disable checking for CLP]),
6              [], [with_coin=yes])
7
8  AC_ARG_WITH([coin-includedir],
9AS_HELP_STRING([--with-coin-includedir=DIR], [search for CLP headers in DIR]),
10              [], [with_coin_includedir=no])
11
12  AC_ARG_WITH([coin-libdir],
13AS_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 -lOsiCbc -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])
Note: See TracBrowser for help on using the repository browser.