Update INSTALL to use CMAKE. Also update AUTHORS and LICENSE
authorAlpar Juttner <alpar@cs.elte.hu>
Thu, 22 Dec 2011 20:55:43 +0100
changeset 99278434a448b5e
parent 991 a10624ed1997
child 994 20ae244b4779
Update INSTALL to use CMAKE. Also update AUTHORS and LICENSE
AUTHORS
INSTALL
LICENSE
     1.1 --- a/AUTHORS	Fri Jun 22 16:42:05 2012 +0200
     1.2 +++ b/AUTHORS	Thu Dec 22 20:55:43 2011 +0100
     1.3 @@ -1,15 +1,15 @@
     1.4 -The authors of the 1.x series are
     1.5 +The main developers of release series 1.x are
     1.6  
     1.7   * Balazs Dezso <deba@inf.elte.hu>
     1.8   * Alpar Juttner <alpar@cs.elte.hu>
     1.9   * Peter Kovacs <kpeter@inf.elte.hu>
    1.10   * Akos Ladanyi <ladanyi@tmit.bme.hu>
    1.11  
    1.12 -For more details on the actual contribution, please visit the history
    1.13 -of the main LEMON source repository: http://lemon.cs.elte.hu/hg/lemon
    1.14 +For more complete list of contributors, please visit the history of
    1.15 +the LEMON source code repository: http://lemon.cs.elte.hu/hg/lemon
    1.16  
    1.17 -Moreover, this version is heavily based on the 0.x series of
    1.18 -LEMON. Here is the list of people who contributed to those versions.
    1.19 +Moreover, this version is heavily based on version 0.x of LEMON. Here
    1.20 +is the list of people who contributed to those versions.
    1.21  
    1.22   * Mihaly Barasz <klao@cs.elte.hu>
    1.23   * Johanna Becker <beckerjc@cs.elte.hu>
     2.1 --- a/INSTALL	Fri Jun 22 16:42:05 2012 +0200
     2.2 +++ b/INSTALL	Thu Dec 22 20:55:43 2011 +0100
     2.3 @@ -1,197 +1,121 @@
     2.4  Installation Instructions
     2.5  =========================
     2.6  
     2.7 -Since you are reading this I assume you already obtained one of the release
     2.8 -tarballs and successfully extracted it. The latest version of LEMON is
     2.9 -available at our web page (http://lemon.cs.elte.hu/).
    2.10 +This file contains instructions for building and installing LEMON from
    2.11 +source on Linux. The process on Windows is similar.
    2.12  
    2.13 -LEMON provides two different build environments, one is based on "autotool",
    2.14 -while the other is based on "cmake". This file contains instructions only for
    2.15 -the former one, which is the recommended build environment on Linux, Mac OSX
    2.16 -and other unices or if you use Cygwin on Windows. For cmake installation
    2.17 -instructions visit http://lemon.cs.elte.hu.
    2.18 +Note that it is not necessary to install LEMON in order to use
    2.19 +it. Instead, you can easily integrate it with your own code
    2.20 +directly. For instructions, see
    2.21 +https://lemon.cs.elte.hu/trac/lemon/wiki/HowToCompile
    2.22 +
    2.23  
    2.24  In order to install LEMON from the extracted source tarball you have to
    2.25  issue the following commands:
    2.26  
    2.27 -   1. `cd lemon-x.y.z'
    2.28 +   1. Step into the root of the source directory.
    2.29  
    2.30 -      This command changes to the directory which was created when you
    2.31 -      extracted the sources. The x.y.z part is a version number.
    2.32 +      $ cd lemon-x.y.z
    2.33  
    2.34 -   2. `./configure'
    2.35 +   2. Create a build subdirectory and step into it.
    2.36  
    2.37 -      This command runs the configure shell script, which does some checks and
    2.38 -      creates the makefiles.
    2.39 +      $ mkdir build
    2.40 +      $ cd build
    2.41  
    2.42 -   3. `make'
    2.43 +   3. Perform system checks and create the makefiles.
    2.44  
    2.45 -      This command compiles the non-template part of LEMON into libemon.a
    2.46 -      file. It also compiles the programs in the tools subdirectory by
    2.47 -      default.
    2.48 +      $ cmake ..
    2.49  
    2.50 -   4. `make check'
    2.51 +   4. Build LEMON.
    2.52  
    2.53 -      This step is optional, but recommended. It runs the test programs that
    2.54 -      we developed for LEMON to check whether the library works properly on
    2.55 -      your platform.
    2.56 +      $ make 
    2.57  
    2.58 -   5. `make install'
    2.59 +      This command compiles the non-template part of LEMON into
    2.60 +      libemon.a file. It also compiles the programs in the 'tools' and
    2.61 +      'demo' subdirectories.
    2.62 +
    2.63 +   5. [Optional] Compile and run the self-tests.
    2.64 +
    2.65 +      $ make check
    2.66 +
    2.67 +   5. [Optional] Generate the user documentation.
    2.68 +
    2.69 +      $ make html
    2.70 +
    2.71 +      The release tarballs already include the documentation.
    2.72 +
    2.73 +      Note that for this step you need to have the following tools
    2.74 +      installed: Python, Doxygen, Graphviz, Ghostscript, LaTeX.
    2.75 +
    2.76 +   6. [Optional] Install LEMON
    2.77 +
    2.78 +      $ make install
    2.79  
    2.80        This command installs LEMON under /usr/local (you will need root
    2.81 -      privileges to be able to do that). If you want to install it to some
    2.82 -      other location, then pass the --prefix=DIRECTORY flag to configure in
    2.83 -      step 2. For example: `./configure --prefix=/home/username/lemon'.
    2.84 -
    2.85 -   6. `make install-html'
    2.86 -
    2.87 -      This command installs the documentation under share/doc/lemon/docs. The
    2.88 -      generated documentation is included in the tarball. If you want to
    2.89 -      generate it yourself, then run `make html'. Note that for this you need
    2.90 -      to have the following programs installed: Doxygen, Graphviz, Ghostscript,
    2.91 -      Latex.
    2.92 -
    2.93 +      privileges to be able to do that). If you want to install it to
    2.94 +      some other location, then pass the
    2.95 +      -DCMAKE_INSTALL_PREFIX=DIRECTORY flag to cmake in Step 3.
    2.96 +      For example:
    2.97 +      
    2.98 +      $ cmake -DCMAKE_INSTALL_PREFIX=/home/username/lemon'
    2.99  
   2.100  Configure Options and Variables
   2.101  ===============================
   2.102  
   2.103 -In step 2 you can customize the actions of configure by setting variables
   2.104 -and passing options to it. This can be done like this:
   2.105 -`./configure [OPTION]... [VARIABLE=VALUE]...'
   2.106 +In Step 3, you can customize the build process by passing options to CMAKE.
   2.107  
   2.108 -Below you will find some useful variables and options (see `./configure --help'
   2.109 -for more):
   2.110 +$ cmake [OPTIONS] ..
   2.111  
   2.112 -CXX='comp'
   2.113 +You find a list of the most useful options below.
   2.114  
   2.115 -  Change the C++ compiler to 'comp'.
   2.116 -
   2.117 -CXXFLAGS='flags'
   2.118 -
   2.119 -  Pass the 'flags' to the compiler. For example CXXFLAGS='-O3 -march=pentium-m'
   2.120 -  turns on generation of aggressively optimized Pentium-M specific code.
   2.121 -
   2.122 ---prefix=PREFIX
   2.123 +-DCMAKE_INSTALL_PREFIX=PREFIX
   2.124  
   2.125    Set the installation prefix to PREFIX. By default it is /usr/local.
   2.126  
   2.127 ---enable-tools
   2.128 +-DCMAKE_BUILD_TYPE=[Release|Debug|Maintainer|...]
   2.129  
   2.130 -   Build the programs in the tools subdirectory (default).
   2.131 +  This sets the compiler options. The choices are the following
   2.132  
   2.133 ---disable-tools
   2.134 +  'Release': A strong optimization is turned on (-O3 with gcc). This
   2.135 +    is the default setting and we strongly recommend using this for
   2.136 +    the final compilation.
   2.137  
   2.138 -   Do not build the programs in the tools subdirectory.
   2.139 +  'Debug': Optimization is turned off and debug info is added (-O0
   2.140 +    -ggdb with gcc). If is recommended during the development.
   2.141  
   2.142 ---with-glpk[=PREFIX]
   2.143 +  'Maintainer': The same as 'Debug' but the compiler warnings are
   2.144 +    converted to errors (-Werror with gcc). In addition, 'make' will
   2.145 +    also automatically compile and execute the test codes. It is the
   2.146 +    best way of ensuring that LEMON codebase is clean and safe.
   2.147  
   2.148 -   Enable GLPK support (default). You should specify the prefix too if
   2.149 -   you installed GLPK to some non-standard location (e.g. your home
   2.150 -   directory). If it is not found, GLPK support will be disabled.
   2.151 +  'RelWithDebInfo': Optimized build with debug info.
   2.152  
   2.153 ---with-glpk-includedir=DIR
   2.154 +  'MinSizeRel': Size optimized build (-Os with gcc)
   2.155  
   2.156 -   The directory where the GLPK header files are located. This is only
   2.157 -   useful when the GLPK headers and libraries are not under the same
   2.158 -   prefix (which is unlikely).
   2.159 +-DTEST_WITH_VALGRIND=YES
   2.160  
   2.161 ---with-glpk-libdir=DIR
   2.162 +  Using this, the test codes will be executed using valgrind. It is a
   2.163 +  very effective way of identifying indexing problems and memory leaks.
   2.164  
   2.165 -   The directory where the GLPK libraries are located. This is only
   2.166 -   useful when the GLPK headers and libraries are not under the same
   2.167 -   prefix (which is unlikely).
   2.168 +-DCMAKE_CXX_COMPILER=path-to-compiler
   2.169  
   2.170 ---without-glpk
   2.171 +  Change the compiler to be used.
   2.172  
   2.173 -   Disable GLPK support.
   2.174 +-DBUILD_SHARED_LIBS=TRUE
   2.175  
   2.176 ---with-cplex[=PREFIX]
   2.177 +  Build shared library instead of static one. Think twice if you
   2.178 +  really want to use this option.
   2.179  
   2.180 -   Enable CPLEX support (default). You should specify the prefix too
   2.181 -   if you installed CPLEX to some non-standard location
   2.182 -   (e.g. /opt/ilog/cplex75). If it is not found, CPLEX support will be
   2.183 -   disabled.
   2.184 +-DGLPK_ROOT_DIR=DIRECTORY
   2.185 +-DCOIN_ROOT_DIR=DIRECTORY
   2.186 +-DCPLEX_ROOT_DIR=DIRECTORY
   2.187  
   2.188 ---with-cplex-includedir=DIR
   2.189 -
   2.190 -   The directory where the CPLEX header files are located. This is
   2.191 -   only useful when the CPLEX headers and libraries are not under the
   2.192 -   same prefix (e.g.  /usr/local/cplex/cplex75/include).
   2.193 -
   2.194 ---with-cplex-libdir=DIR
   2.195 -
   2.196 -   The directory where the CPLEX libraries are located. This is only
   2.197 -   useful when the CPLEX headers and libraries are not under the same
   2.198 -   prefix (e.g.
   2.199 -   /usr/local/cplex/cplex75/lib/i86_linux2_glibc2.2_gcc3.0/static_pic_mt).
   2.200 -
   2.201 ---without-cplex
   2.202 -
   2.203 -   Disable CPLEX support.
   2.204 -
   2.205 ---with-soplex[=PREFIX]
   2.206 -
   2.207 -   Enable SoPlex support (default). You should specify the prefix too if
   2.208 -   you installed SoPlex to some non-standard location (e.g. your home
   2.209 -   directory). If it is not found, SoPlex support will be disabled.
   2.210 -
   2.211 ---with-soplex-includedir=DIR
   2.212 -
   2.213 -   The directory where the SoPlex header files are located. This is only
   2.214 -   useful when the SoPlex headers and libraries are not under the same
   2.215 -   prefix (which is unlikely).
   2.216 -
   2.217 ---with-soplex-libdir=DIR
   2.218 -
   2.219 -   The directory where the SoPlex libraries are located. This is only
   2.220 -   useful when the SoPlex headers and libraries are not under the same
   2.221 -   prefix (which is unlikely).
   2.222 -
   2.223 ---without-soplex
   2.224 -
   2.225 -   Disable SoPlex support.
   2.226 -
   2.227 ---with-coin[=PREFIX]
   2.228 -
   2.229 -   Enable support for COIN-OR solvers (CLP and CBC). You should
   2.230 -   specify the prefix too. (by default, COIN-OR tools install
   2.231 -   themselves to the source code directory). This command enables the
   2.232 -   solvers that are actually found.
   2.233 -
   2.234 ---with-coin-includedir=DIR
   2.235 -
   2.236 -   The directory where the COIN-OR header files are located. This is
   2.237 -   only useful when the COIN-OR headers and libraries are not under
   2.238 -   the same prefix (which is unlikely).
   2.239 -
   2.240 ---with-coin-libdir=DIR
   2.241 -
   2.242 -   The directory where the COIN-OR libraries are located. This is only
   2.243 -   useful when the COIN-OR headers and libraries are not under the
   2.244 -   same prefix (which is unlikely).
   2.245 -
   2.246 ---without-coin
   2.247 -
   2.248 -   Disable COIN-OR support.
   2.249 -
   2.250 +  Install root directory prefixes of optional third party libraries.
   2.251  
   2.252  Makefile Variables
   2.253  ==================
   2.254  
   2.255 -Some Makefile variables are reserved by the GNU Coding Standards for
   2.256 -the use of the "user" - the person building the package. For instance,
   2.257 -CXX and CXXFLAGS are such variables, and have the same meaning as
   2.258 -explained in the previous section. These variables can be set on the
   2.259 -command line when invoking `make' like this:
   2.260 -`make [VARIABLE=VALUE]...'
   2.261 +make VERBOSE=1
   2.262  
   2.263 -WARNINGCXXFLAGS is a non-standard Makefile variable introduced by us
   2.264 -to hold several compiler flags related to warnings. Its default value
   2.265 -can be overridden when invoking `make'. For example to disable all
   2.266 -warning flags use `make WARNINGCXXFLAGS='.
   2.267 -
   2.268 -In order to turn off a single flag from the default set of warning
   2.269 -flags, you can use the CXXFLAGS variable, since this is passed after
   2.270 -WARNINGCXXFLAGS. For example to turn off `-Wold-style-cast' (which is
   2.271 -used by default when g++ is detected) you can use
   2.272 -`make CXXFLAGS="-g -O2 -Wno-old-style-cast"'.
   2.273 +   This results in a more verbose output by showing the full
   2.274 +   compiler and linker commands.
   2.275 \ No newline at end of file
     3.1 --- a/LICENSE	Fri Jun 22 16:42:05 2012 +0200
     3.2 +++ b/LICENSE	Thu Dec 22 20:55:43 2011 +0100
     3.3 @@ -1,7 +1,7 @@
     3.4  LEMON code without an explicit copyright notice is covered by the following
     3.5  copyright/license.
     3.6  
     3.7 -Copyright (C) 2003-2010 Egervary Jeno Kombinatorikus Optimalizalasi
     3.8 +Copyright (C) 2003-2012 Egervary Jeno Kombinatorikus Optimalizalasi
     3.9  Kutatocsoport (Egervary Combinatorial Optimization Research Group,
    3.10  EGRES).
    3.11