[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