gravatar
ladanyi@tmit.bme.hu
ladanyi@tmit.bme.hu
Single check macro for all COIN-OR dependencies (#204)
2 2 1
default
5 files changed with 160 insertions and 148 deletions:
↑ Collapse diff ↑
Ignore white space 96 line context
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([HAVE_CLP], [1], [Define to 1 if you have CLP.])
59
      lx_lp_found=yes
60
      AC_DEFINE([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([HAVE_CBC], [1], [Define to 1 if you have CBC.])
119
        lx_lp_found=yes
120
        AC_DEFINE([HAVE_LP], [1], [Define to 1 if you have any LP solver.])
121
        lx_mip_found=yes
122
        AC_DEFINE([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
])
Ignore white space 6 line context
... ...
@@ -105,48 +105,71 @@
105 105

	
106 106
   Disable GLPK support.
107 107

	
108 108
--with-cplex[=PREFIX]
109 109

	
110 110
   Enable CPLEX support (default). You should specify the prefix too
111 111
   if you installed CPLEX to some non-standard location
112 112
   (e.g. /opt/ilog/cplex75). If it is not found, CPLEX support will be
113 113
   disabled.
114 114

	
115 115
--with-cplex-includedir=DIR
116 116

	
117 117
   The directory where the CPLEX header files are located. This is
118 118
   only useful when the CPLEX headers and libraries are not under the
119 119
   same prefix (e.g.  /usr/local/cplex/cplex75/include).
120 120

	
121 121
--with-cplex-libdir=DIR
122 122

	
123 123
   The directory where the CPLEX libraries are located. This is only
124 124
   useful when the CPLEX headers and libraries are not under the same
125 125
   prefix (e.g.
126 126
   /usr/local/cplex/cplex75/lib/i86_linux2_glibc2.2_gcc3.0/static_pic_mt).
127 127

	
128 128
--without-cplex
129 129

	
130 130
   Disable CPLEX support.
131 131

	
132 132
--with-soplex[=PREFIX]
133 133

	
134 134
   Enable SoPlex support (default). You should specify the prefix too if
135 135
   you installed SoPlex to some non-standard location (e.g. your home
136 136
   directory). If it is not found, SoPlex support will be disabled.
137 137

	
138 138
--with-soplex-includedir=DIR
139 139

	
140 140
   The directory where the SoPlex header files are located. This is only
141 141
   useful when the SoPlex headers and libraries are not under the same
142 142
   prefix (which is unlikely).
143 143

	
144 144
--with-soplex-libdir=DIR
145 145

	
146 146
   The directory where the SoPlex libraries are located. This is only
147 147
   useful when the SoPlex headers and libraries are not under the same
148 148
   prefix (which is unlikely).
149 149

	
150 150
--without-soplex
151 151

	
152 152
   Disable SoPlex support.
153

	
154
--with-coin[=PREFIX]
155

	
156
   Enable support for COIN-OR solvers (CLP and CBC). You should
157
   specify the prefix too. (by default, COIN-OR tools install
158
   themselves to the source code directory). This command enables the
159
   solvers that are actually found.
160

	
161
--with-coin-includedir=DIR
162

	
163
   The directory where the COIN-OR header files are located. This is
164
   only useful when the COIN-OR headers and libraries are not under
165
   the same prefix (which is unlikely).
166

	
167
--with-coin-libdir=DIR
168

	
169
   The directory where the COIN-OR libraries are located. This is only
170
   useful when the COIN-OR headers and libraries are not under the
171
   same prefix (which is unlikely).
172

	
173
--without-coin
174

	
175
   Disable COIN-OR support.
Ignore white space 6 line context
... ...
@@ -14,98 +14,97 @@
14 14
AC_PREREQ([2.59])
15 15
AC_INIT([LEMON], [lemon_version()], [lemon-user@lemon.cs.elte.hu], [lemon])
16 16
AC_CONFIG_AUX_DIR([build-aux])
17 17
AC_CONFIG_MACRO_DIR([m4])
18 18
AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects nostdinc])
19 19
AC_CONFIG_SRCDIR([lemon/list_graph.h])
20 20
AC_CONFIG_HEADERS([config.h lemon/config.h])
21 21

	
22 22
dnl Do compilation tests using the C++ compiler.
23 23
AC_LANG([C++])
24 24

	
25 25
dnl Check the existence of long long type.
26 26
AC_CHECK_TYPE(long long, [long_long_found=yes], [long_long_found=no])
27 27
if test x"$long_long_found" = x"yes"; then
28 28
  AC_DEFINE([HAVE_LONG_LONG], [1], [Define to 1 if you have long long.])
29 29
fi
30 30

	
31 31
dnl Checks for programs.
32 32
AC_PROG_CXX
33 33
AC_PROG_CXXCPP
34 34
AC_PROG_INSTALL
35 35
AC_DISABLE_SHARED
36 36
AC_PROG_LIBTOOL
37 37

	
38 38
AC_CHECK_PROG([doxygen_found],[doxygen],[yes],[no])
39 39
AC_CHECK_PROG([gs_found],[gs],[yes],[no])
40 40

	
41 41
dnl Detect Intel compiler.
42 42
AC_MSG_CHECKING([whether we are using the Intel C++ compiler])
43 43
AC_COMPILE_IFELSE([#ifndef __INTEL_COMPILER
44 44
choke me
45 45
#endif], [ICC=[yes]], [ICC=[no]])
46 46
if test x"$ICC" = x"yes"; then
47 47
  AC_MSG_RESULT([yes])
48 48
else
49 49
  AC_MSG_RESULT([no])
50 50
fi
51 51

	
52 52
dnl Set custom compiler flags when using g++.
53 53
if test "$GXX" = yes -a "$ICC" = no; then
54 54
  WARNINGCXXFLAGS="-Wall -W -Wall -W -Wunused -Wformat=2 -Wctor-dtor-privacy -Wnon-virtual-dtor -Wno-char-subscripts -Wwrite-strings -Wno-char-subscripts -Wreturn-type -Wcast-qual -Wcast-align -Wsign-promo -Woverloaded-virtual -ansi -fno-strict-aliasing -Wold-style-cast -Wno-unknown-pragmas"
55 55
fi
56 56
AC_SUBST([WARNINGCXXFLAGS])
57 57

	
58 58
dnl Checks for libraries.
59 59
LX_CHECK_GLPK
60 60
LX_CHECK_CPLEX
61 61
LX_CHECK_SOPLEX
62
LX_CHECK_CLP
63
LX_CHECK_CBC
62
LX_CHECK_COIN
64 63

	
65 64
AM_CONDITIONAL([HAVE_LP], [test x"$lx_lp_found" = x"yes"])
66 65
AM_CONDITIONAL([HAVE_MIP], [test x"$lx_mip_found" = x"yes"])
67 66

	
68 67
dnl Disable/enable building the binary tools.
69 68
AC_ARG_ENABLE([tools],
70 69
AS_HELP_STRING([--enable-tools], [build additional tools @<:@default@:>@])
71 70
AS_HELP_STRING([--disable-tools], [do not build additional tools]),
72 71
              [], [enable_tools=yes])
73 72
AC_MSG_CHECKING([whether to build the additional tools])
74 73
if test x"$enable_tools" != x"no"; then
75 74
  AC_MSG_RESULT([yes])
76 75
else
77 76
  AC_MSG_RESULT([no])
78 77
fi
79 78
AM_CONDITIONAL([WANT_TOOLS], [test x"$enable_tools" != x"no"])
80 79

	
81 80
dnl Checks for header files.
82 81
AC_CHECK_HEADERS(limits.h sys/time.h sys/times.h unistd.h)
83 82

	
84 83
dnl Checks for typedefs, structures, and compiler characteristics.
85 84
AC_C_CONST
86 85
AC_C_INLINE
87 86
AC_TYPE_SIZE_T
88 87
AC_HEADER_TIME
89 88
AC_STRUCT_TM
90 89

	
91 90
dnl Checks for library functions.
92 91
AC_HEADER_STDC
93 92
AC_CHECK_FUNCS(gettimeofday times ctime_r)
94 93

	
95 94
dnl Add dependencies on files generated by configure.
96 95
AC_SUBST([CONFIG_STATUS_DEPENDENCIES],
97 96
  ['$(top_srcdir)/doc/Doxyfile.in $(top_srcdir)/lemon/lemon.pc.in $(top_srcdir)/cmake/version.cmake.in'])
98 97

	
99 98
AC_CONFIG_FILES([
100 99
Makefile
101 100
demo/Makefile
102 101
cmake/version.cmake
103 102
doc/Doxyfile
104 103
lemon/lemon.pc
105 104
])
106 105

	
107 106
AC_OUTPUT
108 107

	
109 108
echo
110 109
echo '****************************** SUMMARY ******************************'
111 110
echo
Ignore white space 6 line context
1
AC_DEFUN([LX_CHECK_CBC],
2
[
3
  AC_ARG_WITH([cbc],
4
AS_HELP_STRING([--with-cbc@<:@=PREFIX@:>@], [search for CBC under PREFIX or under the default search paths if PREFIX is not given @<:@default@:>@])
5
AS_HELP_STRING([--without-cbc], [disable checking for CBC]),
6
              [], [with_cbc=yes])
7

	
8
  AC_ARG_WITH([cbc-includedir],
9
AS_HELP_STRING([--with-cbc-includedir=DIR], [search for CBC headers in DIR]),
10
              [], [with_cbc_includedir=no])
11

	
12
  AC_ARG_WITH([cbc-libdir],
13
AS_HELP_STRING([--with-cbc-libdir=DIR], [search for CBC libraries in DIR]),
14
              [], [with_cbc_libdir=no])
15

	
16
  lx_cbc_found=no
17
  if test x"$with_cbc" != x"no"; then
18
    AC_MSG_CHECKING([for CBC])
19

	
20
    if test x"$with_cbc_includedir" != x"no"; then
21
      CBC_CXXFLAGS="-I$with_cbc_includedir"
22
    elif test x"$with_cbc" != x"yes"; then
23
      CBC_CXXFLAGS="-I$with_cbc/include"
24
    fi
25

	
26
    if test x"$with_cbc_libdir" != x"no"; then
27
      CBC_LDFLAGS="-L$with_cbc_libdir"
28
    elif test x"$with_cbc" != x"yes"; then
29
      CBC_LDFLAGS="-L$with_cbc/lib"
30
    fi
31
    CBC_LIBS="-lOsi -lCbc -lOsiCbc -lCbcSolver -lClp -lOsiClp -lCoinUtils -lVol -lOsiVol -lCgl -lm -llapack -lblas"
32

	
33
    lx_save_cxxflags="$CXXFLAGS"
34
    lx_save_ldflags="$LDFLAGS"
35
    lx_save_libs="$LIBS"
36
    CXXFLAGS="$CBC_CXXFLAGS"
37
    LDFLAGS="$CBC_LDFLAGS"
38
    LIBS="$CBC_LIBS"
39

	
40
    lx_cbc_test_prog='
41
      #include <coin/CbcModel.hpp>
42

	
43
      int main(int argc, char** argv)
44
      {
45
        CbcModel cbc;
46
        return 0;
47
      }'
48

	
49
    AC_LANG_PUSH(C++)
50
    AC_LINK_IFELSE([$lx_cbc_test_prog], [lx_cbc_found=yes], [lx_cbc_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_cbc_found" = x"yes"; then
58
      AC_DEFINE([HAVE_CBC], [1], [Define to 1 if you have CBC.])
59
      lx_lp_found=yes
60
      AC_DEFINE([HAVE_LP], [1], [Define to 1 if you have any LP solver.])
61
      AC_MSG_RESULT([yes])
62
    else
63
      CBC_CXXFLAGS=""
64
      CBC_LDFLAGS=""
65
      CBC_LIBS=""
66
      AC_MSG_RESULT([no])
67
    fi
68
  fi
69
  CBC_LIBS="$CBC_LDFLAGS $CBC_LIBS"
70
  AC_SUBST(CBC_CXXFLAGS)
71
  AC_SUBST(CBC_LIBS)
72
  AM_CONDITIONAL([HAVE_CBC], [test x"$lx_cbc_found" = x"yes"])
73
])
Ignore white space 6 line context
1
AC_DEFUN([LX_CHECK_CLP],
2
[
3
  AC_ARG_WITH([clp],
4
AS_HELP_STRING([--with-clp@<:@=PREFIX@:>@], [search for CLP under PREFIX or under the default search paths if PREFIX is not given @<:@default@:>@])
5
AS_HELP_STRING([--without-clp], [disable checking for CLP]),
6
              [], [with_clp=yes])
7

	
8
  AC_ARG_WITH([clp-includedir],
9
AS_HELP_STRING([--with-clp-includedir=DIR], [search for CLP headers in DIR]),
10
              [], [with_clp_includedir=no])
11

	
12
  AC_ARG_WITH([clp-libdir],
13
AS_HELP_STRING([--with-clp-libdir=DIR], [search for CLP libraries in DIR]),
14
              [], [with_clp_libdir=no])
15

	
16
  lx_clp_found=no
17
  if test x"$with_clp" != x"no"; then
18
    AC_MSG_CHECKING([for CLP])
19

	
20
    if test x"$with_clp_includedir" != x"no"; then
21
      CLP_CXXFLAGS="-I$with_clp_includedir"
22
    elif test x"$with_clp" != x"yes"; then
23
      CLP_CXXFLAGS="-I$with_clp/include"
24
    fi
25

	
26
    if test x"$with_clp_libdir" != x"no"; then
27
      CLP_LDFLAGS="-L$with_clp_libdir"
28
    elif test x"$with_clp" != x"yes"; then
29
      CLP_LDFLAGS="-L$with_clp/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([HAVE_CLP], [1], [Define to 1 if you have CLP.])
59
      lx_lp_found=yes
60
      AC_DEFINE([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
])
0 comments (0 inline)