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