Update INSTALL to use CMAKE. Also update AUTHORS and 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