configure.ac
author Peter Kovacs <kpeter@inf.elte.hu>
Thu, 12 Nov 2009 23:26:13 +0100
changeset 872 fa6f37d7a25b
parent 791 f8c468367dab
child 1039 7f37e5fc416e
permissions -rw-r--r--
Entirely rework CapacityScaling (#180)

- Use the new interface similarly to NetworkSimplex.
- Rework the implementation using an efficient internal structure
for handling the residual network. This improvement made the
code much faster (up to 2-5 times faster on large graphs).
- Handle GEQ supply type (LEQ is not supported).
- Handle negative costs for arcs of finite capacity.
(Note that this algorithm cannot handle arcs of negative cost
and infinite upper bound, thus it returns UNBOUNDED if such
an arc exists.)
- Extend the documentation.
ladanyi@1
     1
dnl Process this file with autoconf to produce a configure script.
ladanyi@1
     2
ladanyi@1
     3
dnl Version information.
alpar@273
     4
m4_define([lemon_version_number],
ladanyi@727
     5
          [m4_normalize(esyscmd([echo ${LEMON_VERSION}]))])
alpar@273
     6
dnl m4_define([lemon_version_number], [])
alpar@273
     7
m4_define([lemon_hg_path], [m4_normalize(esyscmd([./scripts/chg-len.py]))])
ladanyi@727
     8
m4_define([lemon_hg_revision], [m4_normalize(esyscmd([hg id -i 2> /dev/null]))])
alpar@273
     9
m4_define([lemon_version], [ifelse(lemon_version_number(),
ladanyi@727
    10
                           [],
ladanyi@727
    11
                           [ifelse(lemon_hg_revision(),
ladanyi@727
    12
                           [],
ladanyi@727
    13
                           [hg-tip],
ladanyi@727
    14
                           [lemon_hg_path().lemon_hg_revision()])],
ladanyi@727
    15
                           [lemon_version_number()])])
ladanyi@1
    16
ladanyi@1
    17
AC_PREREQ([2.59])
ladanyi@236
    18
AC_INIT([LEMON], [lemon_version()], [lemon-user@lemon.cs.elte.hu], [lemon])
ladanyi@1
    19
AC_CONFIG_AUX_DIR([build-aux])
ladanyi@1
    20
AC_CONFIG_MACRO_DIR([m4])
ladanyi@64
    21
AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects nostdinc])
ladanyi@1
    22
AC_CONFIG_SRCDIR([lemon/list_graph.h])
ladanyi@1
    23
AC_CONFIG_HEADERS([config.h lemon/config.h])
ladanyi@1
    24
ladanyi@725
    25
AC_DEFINE([LEMON_VERSION], [lemon_version()], [The version string])
ladanyi@725
    26
ladanyi@296
    27
dnl Do compilation tests using the C++ compiler.
ladanyi@296
    28
AC_LANG([C++])
ladanyi@296
    29
alpar@515
    30
dnl Check the existence of long long type.
alpar@515
    31
AC_CHECK_TYPE(long long, [long_long_found=yes], [long_long_found=no])
alpar@515
    32
if test x"$long_long_found" = x"yes"; then
ladanyi@540
    33
  AC_DEFINE([LEMON_HAVE_LONG_LONG], [1], [Define to 1 if you have long long.])
alpar@515
    34
fi
alpar@515
    35
ladanyi@1
    36
dnl Checks for programs.
ladanyi@1
    37
AC_PROG_CXX
ladanyi@1
    38
AC_PROG_CXXCPP
ladanyi@1
    39
AC_PROG_INSTALL
ladanyi@1
    40
AC_DISABLE_SHARED
ladanyi@1
    41
AC_PROG_LIBTOOL
ladanyi@1
    42
ladanyi@60
    43
AC_CHECK_PROG([doxygen_found],[doxygen],[yes],[no])
alpar@791
    44
AC_CHECK_PROG([python_found],[python],[yes],[no])
ladanyi@153
    45
AC_CHECK_PROG([gs_found],[gs],[yes],[no])
ladanyi@60
    46
ladanyi@296
    47
dnl Detect Intel compiler.
ladanyi@296
    48
AC_MSG_CHECKING([whether we are using the Intel C++ compiler])
ladanyi@296
    49
AC_COMPILE_IFELSE([#ifndef __INTEL_COMPILER
ladanyi@296
    50
choke me
ladanyi@296
    51
#endif], [ICC=[yes]], [ICC=[no]])
ladanyi@296
    52
if test x"$ICC" = x"yes"; then
ladanyi@296
    53
  AC_MSG_RESULT([yes])
ladanyi@296
    54
else
ladanyi@296
    55
  AC_MSG_RESULT([no])
ladanyi@296
    56
fi
ladanyi@296
    57
alpar@225
    58
dnl Set custom compiler flags when using g++.
ladanyi@375
    59
if test "$GXX" = yes -a "$ICC" = no; then
ladanyi@375
    60
  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"
ladanyi@1
    61
fi
ladanyi@375
    62
AC_SUBST([WARNINGCXXFLAGS])
ladanyi@1
    63
ladanyi@1
    64
dnl Checks for libraries.
deba@481
    65
LX_CHECK_GLPK
deba@481
    66
LX_CHECK_CPLEX
deba@481
    67
LX_CHECK_SOPLEX
ladanyi@615
    68
LX_CHECK_COIN
ladanyi@1
    69
alpar@480
    70
AM_CONDITIONAL([HAVE_LP], [test x"$lx_lp_found" = x"yes"])
alpar@480
    71
AM_CONDITIONAL([HAVE_MIP], [test x"$lx_mip_found" = x"yes"])
ladanyi@1
    72
alpar@225
    73
dnl Disable/enable building the binary tools.
ladanyi@1
    74
AC_ARG_ENABLE([tools],
ladanyi@1
    75
AS_HELP_STRING([--enable-tools], [build additional tools @<:@default@:>@])
ladanyi@1
    76
AS_HELP_STRING([--disable-tools], [do not build additional tools]),
ladanyi@1
    77
              [], [enable_tools=yes])
ladanyi@1
    78
AC_MSG_CHECKING([whether to build the additional tools])
ladanyi@1
    79
if test x"$enable_tools" != x"no"; then
ladanyi@1
    80
  AC_MSG_RESULT([yes])
ladanyi@1
    81
else
ladanyi@1
    82
  AC_MSG_RESULT([no])
ladanyi@1
    83
fi
ladanyi@1
    84
AM_CONDITIONAL([WANT_TOOLS], [test x"$enable_tools" != x"no"])
ladanyi@1
    85
ladanyi@840
    86
dnl Support for running test cases using valgrind.
ladanyi@840
    87
use_valgrind=no
ladanyi@840
    88
AC_ARG_ENABLE([valgrind],
ladanyi@840
    89
AS_HELP_STRING([--enable-valgrind], [use valgrind when running tests]),
ladanyi@840
    90
              [use_valgrind=yes])
ladanyi@840
    91
ladanyi@840
    92
if [[ "$use_valgrind" = "yes" ]]; then
ladanyi@840
    93
  AC_CHECK_PROG(HAVE_VALGRIND, valgrind, yes, no)
ladanyi@840
    94
ladanyi@840
    95
  if [[ "$HAVE_VALGRIND" = "no" ]]; then
ladanyi@840
    96
    AC_MSG_ERROR([Valgrind not found in PATH.])
ladanyi@840
    97
  fi
ladanyi@840
    98
fi
ladanyi@840
    99
AM_CONDITIONAL(USE_VALGRIND, [test "$use_valgrind" = "yes"])
ladanyi@840
   100
ladanyi@1
   101
dnl Checks for header files.
ladanyi@1
   102
AC_CHECK_HEADERS(limits.h sys/time.h sys/times.h unistd.h)
ladanyi@1
   103
ladanyi@1
   104
dnl Checks for typedefs, structures, and compiler characteristics.
ladanyi@1
   105
AC_C_CONST
ladanyi@1
   106
AC_C_INLINE
ladanyi@1
   107
AC_TYPE_SIZE_T
ladanyi@1
   108
AC_HEADER_TIME
ladanyi@1
   109
AC_STRUCT_TM
ladanyi@1
   110
ladanyi@1
   111
dnl Checks for library functions.
ladanyi@1
   112
AC_HEADER_STDC
ladanyi@1
   113
AC_CHECK_FUNCS(gettimeofday times ctime_r)
ladanyi@1
   114
alpar@219
   115
dnl Add dependencies on files generated by configure.
alpar@219
   116
AC_SUBST([CONFIG_STATUS_DEPENDENCIES],
alpar@503
   117
  ['$(top_srcdir)/doc/Doxyfile.in $(top_srcdir)/lemon/lemon.pc.in $(top_srcdir)/cmake/version.cmake.in'])
alpar@219
   118
ladanyi@1
   119
AC_CONFIG_FILES([
ladanyi@1
   120
Makefile
ladanyi@611
   121
demo/Makefile
alpar@503
   122
cmake/version.cmake
ladanyi@1
   123
doc/Doxyfile
ladanyi@1
   124
lemon/lemon.pc
ladanyi@1
   125
])
ladanyi@1
   126
ladanyi@1
   127
AC_OUTPUT
ladanyi@1
   128
ladanyi@1
   129
echo
ladanyi@1
   130
echo '****************************** SUMMARY ******************************'
ladanyi@1
   131
echo
ladanyi@1
   132
echo Package version............... : $PACKAGE-$VERSION
ladanyi@1
   133
echo
ladanyi@1
   134
echo C++ compiler.................. : $CXX
ladanyi@375
   135
echo C++ compiles flags............ : $WARNINGCXXFLAGS $CXXFLAGS
ladanyi@1
   136
echo
alpar@515
   137
echo Compiler supports long long... : $long_long_found
alpar@515
   138
echo
deba@481
   139
echo GLPK support.................. : $lx_glpk_found
deba@481
   140
echo CPLEX support................. : $lx_cplex_found
deba@481
   141
echo SOPLEX support................ : $lx_soplex_found
deba@482
   142
echo CLP support................... : $lx_clp_found
deba@614
   143
echo CBC support................... : $lx_cbc_found
deba@481
   144
echo
alpar@55
   145
echo Build additional tools........ : $enable_tools
ladanyi@840
   146
echo Use valgrind for tests........ : $use_valgrind
ladanyi@1
   147
echo
ladanyi@1
   148
echo The packace will be installed in
ladanyi@1
   149
echo -n '  '
ladanyi@1
   150
echo $prefix.
ladanyi@1
   151
echo
ladanyi@1
   152
echo '*********************************************************************'
ladanyi@1
   153
ladanyi@1
   154
echo
alpar@55
   155
echo Configure complete, now type \'make\' and then \'make install\'.
ladanyi@1
   156
echo