[Lemon-commits] Alpar Juttner: Merge
Lemon HG
hg at lemon.cs.elte.hu
Thu Dec 10 17:25:44 CET 2009
details: http://lemon.cs.elte.hu/hg/lemon/rev/994c7df296c9
changeset: 867:994c7df296c9
user: Alpar Juttner <alpar [at] cs.elte.hu>
date: Thu Dec 10 17:05:35 2009 +0100
description:
Merge
diffstat:
.hgignore | 12 +-
CMakeLists.txt | 85 +-
INSTALL | 33 +-
LICENSE | 2 +-
Makefile.am | 14 +-
NEWS | 87 +
README | 6 +-
cmake/FindCOIN.cmake | 88 +
cmake/FindCPLEX.cmake | 38 +
cmake/FindGLPK.cmake | 61 +
cmake/LEMONConfig.cmake.in | 13 +
cmake/version.cmake.in | 3 +-
configure.ac | 55 +-
demo/CMakeLists.txt | 11 +-
demo/Makefile.am | 25 +-
demo/arg_parser_demo.cc | 2 +-
demo/graph_to_eps_demo.cc | 18 +-
demo/lgf_demo.cc | 2 +-
doc/CMakeLists.txt | 75 +-
doc/Doxyfile.in | 2 +-
doc/Makefile.am | 34 +-
doc/coding_style.dox | 2 +-
doc/dirs.dox | 4 +-
doc/groups.dox | 330 +-
doc/images/bipartite_matching.eps | 586 ++++
doc/images/bipartite_partitions.eps | 114 +
doc/images/connected_components.eps | 159 +
doc/images/edge_biconnected_components.eps | 159 +
doc/images/grid_graph.eps | 286 ++
doc/images/node_biconnected_components.eps | 159 +
doc/images/strongly_connected_components.eps | 180 +
doc/lgf.dox | 2 +-
doc/license.dox | 2 +-
doc/mainpage.dox | 22 +-
doc/migration.dox | 12 +-
doc/min_cost_flow.dox | 153 +
doc/named-param.dox | 2 +-
doc/namespaces.dox | 2 +-
doc/template.h | 2 +-
lemon/CMakeLists.txt | 45 +-
lemon/Makefile.am | 115 +-
lemon/adaptors.h | 3614 +++++++++++++++++++++++++++++
lemon/arg_parser.cc | 2 +-
lemon/arg_parser.h | 2 +-
lemon/assert.h | 2 +-
lemon/base.cc | 4 +-
lemon/bfs.h | 265 +-
lemon/bin_heap.h | 153 +-
lemon/bits/alteration_notifier.h | 74 +-
lemon/bits/array_map.h | 45 +-
lemon/bits/base_extender.h | 494 ----
lemon/bits/bezier.h | 2 +-
lemon/bits/default_map.h | 13 +-
lemon/bits/edge_set_extender.h | 625 +++++
lemon/bits/enable_if.h | 2 +-
lemon/bits/graph_adaptor_extender.h | 399 +++
lemon/bits/graph_extender.h | 27 +-
lemon/bits/map_extender.h | 57 +-
lemon/bits/path_dump.h | 9 +-
lemon/bits/solver_bits.h | 193 +
lemon/bits/traits.h | 178 +-
lemon/bits/variant.h | 494 ++++
lemon/bits/vector_map.h | 38 +-
lemon/bits/windows.h | 4 +-
lemon/bucket_heap.h | 567 ++++
lemon/cbc.cc | 463 +++
lemon/cbc.h | 129 +
lemon/circulation.h | 794 ++++++
lemon/clp.cc | 453 +++
lemon/clp.h | 163 +
lemon/color.cc | 2 +-
lemon/color.h | 2 +-
lemon/concept_check.h | 2 +-
lemon/concepts/digraph.h | 27 +-
lemon/concepts/graph.h | 70 +-
lemon/concepts/graph_components.h | 1087 ++++----
lemon/concepts/heap.h | 50 +-
lemon/concepts/maps.h | 11 +-
lemon/concepts/path.h | 23 +-
lemon/config.h.cmake | 7 +
lemon/config.h.in | 22 +-
lemon/connectivity.h | 1665 +++++++++++++
lemon/core.h | 239 +-
lemon/counter.h | 2 +-
lemon/cplex.cc | 951 +++++++
lemon/cplex.h | 276 ++
lemon/dfs.h | 303 +-
lemon/dijkstra.h | 284 +-
lemon/dim2.h | 2 +-
lemon/dimacs.h | 448 +++
lemon/edge_set.h | 1416 +++++++++++
lemon/elevator.h | 982 ++++++++
lemon/error.h | 2 +-
lemon/euler.h | 287 ++
lemon/fib_heap.h | 468 +++
lemon/full_graph.h | 612 +++++
lemon/glpk.cc | 967 +++++++
lemon/glpk.h | 236 +
lemon/gomory_hu.h | 570 ++++
lemon/graph_to_eps.h | 73 +-
lemon/grid_graph.h | 703 +++++
lemon/hao_orlin.h | 988 ++++++++
lemon/hypercube_graph.h | 438 +++
lemon/kruskal.h | 22 +-
lemon/lemon.pc.in | 4 +-
lemon/lgf_reader.h | 274 +-
lemon/lgf_writer.h | 256 +-
lemon/list_graph.h | 30 +-
lemon/lp.h | 93 +
lemon/lp_base.cc | 30 +
lemon/lp_base.h | 2088 +++++++++++++++++
lemon/lp_skeleton.cc | 136 +
lemon/lp_skeleton.h | 227 +
lemon/maps.h | 820 +++---
lemon/matching.h | 3244 ++++++++++++++++++++++++++
lemon/math.h | 11 +-
lemon/min_cost_arborescence.h | 807 ++++++
lemon/nauty_reader.h | 113 +
lemon/network_simplex.h | 1489 ++++++++++++
lemon/path.h | 36 +-
lemon/preflow.h | 965 +++++++
lemon/radix_heap.h | 433 +++
lemon/radix_sort.h | 487 ++++
lemon/random.cc | 2 +-
lemon/random.h | 80 +-
lemon/smart_graph.h | 57 +-
lemon/soplex.cc | 452 +++
lemon/soplex.h | 157 +
lemon/suurballe.h | 535 ++++
lemon/time_measure.h | 6 +-
lemon/tolerance.h | 2 +-
lemon/unionfind.h | 46 +-
m4/lx_check_coin.m4 | 136 +
m4/lx_check_cplex.m4 | 4 +
m4/lx_check_glpk.m4 | 9 +
m4/lx_check_soplex.m4 | 6 +-
scripts/chg-len.py | 46 +-
scripts/mk-release.sh | 2 +-
scripts/unify-sources.sh | 414 ++-
test/CMakeLists.txt | 98 +-
test/Makefile.am | 55 +-
test/adaptors_test.cc | 1486 ++++++++++++
test/bfs_test.cc | 61 +-
test/circulation_test.cc | 163 +
test/connectivity_test.cc | 297 ++
test/counter_test.cc | 105 +-
test/dfs_test.cc | 55 +-
test/digraph_test.cc | 274 ++-
test/dijkstra_test.cc | 94 +-
test/dim_test.cc | 2 +-
test/edge_set_test.cc | 380 +++
test/error_test.cc | 2 +-
test/euler_test.cc | 223 +
test/gomory_hu_test.cc | 123 +
test/graph_copy_test.cc | 2 +-
test/graph_test.cc | 492 +++-
test/graph_test.h | 11 +-
test/graph_utils_test.cc | 14 +-
test/hao_orlin_test.cc | 163 +
test/heap_test.cc | 39 +-
test/kruskal_test.cc | 22 +-
test/lp_test.cc | 419 +++
test/maps_test.cc | 10 +-
test/matching_test.cc | 424 +++
test/min_cost_arborescence_test.cc | 206 +
test/min_cost_flow_test.cc | 450 +++
test/mip_test.cc | 158 +
test/path_test.cc | 2 +-
test/preflow_test.cc | 245 ++
test/radix_sort_test.cc | 147 +
test/random_test.cc | 2 +-
test/suurballe_test.cc | 241 +
test/test_tools.h | 2 +-
test/test_tools_fail.cc | 2 +-
test/test_tools_pass.cc | 2 +-
test/time_measure_test.cc | 12 +-
test/unionfind_test.cc | 2 +-
tools/CMakeLists.txt | 31 +
tools/Makefile.am | 13 +-
tools/dimacs-solver.cc | 277 ++
tools/dimacs-to-lgf.cc | 148 +
tools/lemon-0.x-to-1.x.sh | 242 +-
tools/lgf-gen.cc | 834 ++++++
183 files changed, 43585 insertions(+), 3446 deletions(-)
diffs (truncated from 54561 to 300 lines):
diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -22,11 +22,16 @@
lemon/libemon.la
lemon/stamp-h2
doc/Doxyfile
-cmake/cmake.version
+cmake/version.cmake
.dirstamp
.libs/*
.deps/*
demo/*.eps
+m4/libtool.m4
+m4/ltoptions.m4
+m4/ltsugar.m4
+m4/ltversion.m4
+m4/lt~obsolete.m4
syntax: regexp
(.*/)?\#[^/]*\#$
@@ -35,10 +40,11 @@
^doc/.*\.tag
^autom4te.cache/.*
^build-aux/.*
-^objs.*/.*
+^.*objs.*/.*
^test/[a-z_]*$
+^tools/[a-z-_]*$
^demo/.*_demo$
-^build/.*
+^.*build.*/.*
^doc/gen-images/.*
CMakeFiles
DartTestfile.txt
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,37 +1,73 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-IF(EXISTS ${CMAKE_SOURCE_DIR}/cmake/version.cmake)
- INCLUDE(${CMAKE_SOURCE_DIR}/cmake/version.cmake)
-ELSE(EXISTS ${CMAKE_SOURCE_DIR}/cmake/version.cmake)
- SET(PROJECT_NAME "LEMON")
- SET(PROJECT_VERSION "hg-tip" CACHE STRING "LEMON version string.")
-ENDIF(EXISTS ${CMAKE_SOURCE_DIR}/cmake/version.cmake)
-
+SET(PROJECT_NAME "LEMON")
PROJECT(${PROJECT_NAME})
-SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
+IF(EXISTS ${PROJECT_SOURCE_DIR}/cmake/version.cmake)
+ INCLUDE(${PROJECT_SOURCE_DIR}/cmake/version.cmake)
+ELSEIF(DEFINED ENV{LEMON_VERSION})
+ SET(LEMON_VERSION $ENV{LEMON_VERSION} CACHE STRING "LEMON version string.")
+ELSE()
+ EXECUTE_PROCESS(
+ COMMAND hg id -i
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ OUTPUT_VARIABLE HG_REVISION
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ IF(HG_REVISION STREQUAL "")
+ SET(HG_REVISION "hg-tip")
+ ENDIF()
+ SET(LEMON_VERSION ${HG_REVISION} CACHE STRING "LEMON version string.")
+ENDIF()
-INCLUDE(FindDoxygen)
-INCLUDE(FindGhostscript)
+SET(PROJECT_VERSION ${LEMON_VERSION})
-ADD_DEFINITIONS(-DHAVE_CONFIG_H)
+SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
+
+FIND_PACKAGE(Doxygen)
+FIND_PACKAGE(Ghostscript)
+FIND_PACKAGE(GLPK 4.33)
+FIND_PACKAGE(CPLEX)
+FIND_PACKAGE(COIN)
INCLUDE(CheckTypeSize)
-CHECK_TYPE_SIZE("long long" LEMON_LONG_LONG)
+CHECK_TYPE_SIZE("long long" LONG_LONG)
+SET(LEMON_HAVE_LONG_LONG ${HAVE_LONG_LONG})
ENABLE_TESTING()
ADD_SUBDIRECTORY(lemon)
-ADD_SUBDIRECTORY(demo)
-ADD_SUBDIRECTORY(doc)
-ADD_SUBDIRECTORY(test)
+IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
+ ADD_SUBDIRECTORY(demo)
+ ADD_SUBDIRECTORY(tools)
+ ADD_SUBDIRECTORY(doc)
+ ADD_SUBDIRECTORY(test)
+ENDIF()
-IF(WIN32)
+CONFIGURE_FILE(
+ ${PROJECT_SOURCE_DIR}/cmake/LEMONConfig.cmake.in
+ ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake
+ @ONLY
+)
+IF(UNIX)
+ INSTALL(
+ FILES ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake
+ DESTINATION share/lemon/cmake
+ )
+ELSEIF(WIN32)
+ INSTALL(
+ FILES ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake
+ DESTINATION cmake
+ )
+ENDIF()
+
+IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR} AND WIN32)
SET(CPACK_PACKAGE_NAME ${PROJECT_NAME})
SET(CPACK_PACKAGE_VENDOR "EGRES")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY
- "LEMON - Library of Efficient Models and Optimization in Networks")
- SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
+ "LEMON - Library for Efficient Modeling and Optimization in Networks")
+ SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
SET(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
@@ -40,16 +76,19 @@
SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
"${PROJECT_NAME} ${PROJECT_VERSION}")
- SET(CPACK_COMPONENTS_ALL headers library html_documentation)
+ SET(CPACK_COMPONENTS_ALL headers library html_documentation bin)
SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ headers")
SET(CPACK_COMPONENT_LIBRARY_DISPLAY_NAME "Dynamic-link library")
+ SET(CPACK_COMPONENT_BIN_DISPLAY_NAME "Command line utilities")
SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DISPLAY_NAME "HTML documentation")
SET(CPACK_COMPONENT_HEADERS_DESCRIPTION
"C++ header files")
SET(CPACK_COMPONENT_LIBRARY_DESCRIPTION
"DLL and import library")
+ SET(CPACK_COMPONENT_BIN_DESCRIPTION
+ "Command line utilities")
SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DESCRIPTION
"Doxygen generated documentation")
@@ -71,9 +110,9 @@
SET(CPACK_COMPONENT_HTML_DOCUMENTATION_INSTALL_TYPES Full)
SET(CPACK_GENERATOR "NSIS")
- SET(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis/lemon.ico")
- SET(CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}/cmake/nsis/uninstall.ico")
- #SET(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis\\\\installer.bmp")
+ SET(CPACK_NSIS_MUI_ICON "${PROJECT_SOURCE_DIR}/cmake/nsis/lemon.ico")
+ SET(CPACK_NSIS_MUI_UNIICON "${PROJECT_SOURCE_DIR}/cmake/nsis/uninstall.ico")
+ #SET(CPACK_PACKAGE_ICON "${PROJECT_SOURCE_DIR}/cmake/nsis\\\\installer.bmp")
SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\lemon.ico")
SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} ${PROJECT_NAME}")
SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\lemon.cs.elte.hu")
@@ -88,4 +127,4 @@
")
INCLUDE(CPack)
-ENDIF(WIN32)
+ENDIF()
diff --git a/INSTALL b/INSTALL
--- a/INSTALL
+++ b/INSTALL
@@ -27,8 +27,8 @@
3. `make'
This command compiles the non-template part of LEMON into libemon.a
- file. It also compiles the programs in the tools and demo subdirectories
- when enabled.
+ file. It also compiles the programs in the tools subdirectory by
+ default.
4. `make check'
@@ -75,14 +75,6 @@
Set the installation prefix to PREFIX. By default it is /usr/local.
---enable-demo
-
- Build the examples in the demo subdirectory.
-
---disable-demo
-
- Do not build the examples in the demo subdirectory (default).
-
--enable-tools
Build the programs in the tools subdirectory (default).
@@ -158,3 +150,26 @@
--without-soplex
Disable SoPlex support.
+
+--with-coin[=PREFIX]
+
+ Enable support for COIN-OR solvers (CLP and CBC). You should
+ specify the prefix too. (by default, COIN-OR tools install
+ themselves to the source code directory). This command enables the
+ solvers that are actually found.
+
+--with-coin-includedir=DIR
+
+ The directory where the COIN-OR header files are located. This is
+ only useful when the COIN-OR headers and libraries are not under
+ the same prefix (which is unlikely).
+
+--with-coin-libdir=DIR
+
+ The directory where the COIN-OR libraries are located. This is only
+ useful when the COIN-OR headers and libraries are not under the
+ same prefix (which is unlikely).
+
+--without-coin
+
+ Disable COIN-OR support.
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,7 +1,7 @@
LEMON code without an explicit copyright notice is covered by the following
copyright/license.
-Copyright (C) 2003-2008 Egervary Jeno Kombinatorikus Optimalizalasi
+Copyright (C) 2003-2009 Egervary Jeno Kombinatorikus Optimalizalasi
Kutatocsoport (Egervary Combinatorial Optimization Research Group,
EGRES).
diff --git a/Makefile.am b/Makefile.am
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,7 @@
ACLOCAL_AMFLAGS = -I m4
+AM_CXXFLAGS = $(WARNINGCXXFLAGS)
+
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir)
LDADD = $(top_builddir)/lemon/libemon.la
@@ -9,8 +11,12 @@
m4/lx_check_cplex.m4 \
m4/lx_check_glpk.m4 \
m4/lx_check_soplex.m4 \
+ m4/lx_check_coin.m4 \
CMakeLists.txt \
cmake/FindGhostscript.cmake \
+ cmake/FindCPLEX.cmake \
+ cmake/FindGLPK.cmake \
+ cmake/FindCOIN.cmake \
cmake/version.cmake.in \
cmake/version.cmake \
cmake/nsis/lemon.ico \
@@ -36,9 +42,13 @@
include lemon/Makefile.am
include test/Makefile.am
include doc/Makefile.am
-include demo/Makefile.am
include tools/Makefile.am
+DIST_SUBDIRS = demo
+
+demo:
+ $(MAKE) $(AM_MAKEFLAGS) -C demo
+
MRPROPERFILES = \
aclocal.m4 \
config.h.in \
@@ -65,4 +75,4 @@
zcat $(PACKAGE)-$(VERSION).tar.gz | \
bzip2 --best -c > $(PACKAGE)-$(VERSION).tar.bz2
-.PHONY: mrproper dist-bz2 distcheck-bz2
+.PHONY: demo mrproper dist-bz2 distcheck-bz2
diff --git a/NEWS b/NEWS
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,90 @@
+2009-05-13 Version 1.1 released
+
+ This is the second stable release of the 1.x series. It
+ features a better coverage of the tools available in the 0.x
+ series, a thoroughly reworked LP/MIP interface plus various
+ improvements in the existing tools.
+
+ * Much improved M$ Windows support
+ * Various improvements in the CMAKE build system
+ * Compilation warnings are fixed/suppressed
+ * Support IBM xlC compiler
+ * New algorithms
+ * Connectivity related algorithms (#61)
More information about the Lemon-commits
mailing list