# HG changeset patch # User Peter Kovacs # Date 1223723589 -7200 # Node ID 0cf8882c7e7c72ec91bdcdc32831a7287a930c14 # Parent 9388ccf862943f75a0a3ef1f0486a77ea59ad180 Add Intro and Getting Started pages diff -r 9388ccf86294 -r 0cf8882c7e7c Doxyfile --- a/Doxyfile Sat Oct 11 11:29:12 2008 +0200 +++ b/Doxyfile Sat Oct 11 13:13:09 2008 +0200 @@ -84,7 +84,7 @@ #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- -INPUT = ./ \ +INPUT = . \ ./demo INPUT_ENCODING = UTF-8 FILE_PATTERNS = *.h \ @@ -95,7 +95,8 @@ EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = EXCLUDE_SYMBOLS = -EXAMPLE_PATH = ./demo +EXAMPLE_PATH = . \ + ./demo EXAMPLE_PATTERNS = EXAMPLE_RECURSIVE = NO IMAGE_PATH = ./images \ diff -r 9388ccf86294 -r 0cf8882c7e7c LICENSE --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LICENSE Sat Oct 11 13:13:09 2008 +0200 @@ -0,0 +1,33 @@ +LEMON code without an explicit copyright is covered by the following +copyright/license. + +Copyright (C) 2003-2008 Egervary Jeno Kombinatorikus Optimalizalasi +Kutatocsoport (Egervary Combinatorial Optimization Research Group, +EGRES). + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +=========================================================================== +This license is a verbatim copy of the Boost Software License, Version 1.0. + + diff -r 9388ccf86294 -r 0cf8882c7e7c getting_started.dox --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/getting_started.dox Sat Oct 11 13:13:09 2008 +0200 @@ -0,0 +1,160 @@ +/* -*- mode: C++; indent-tabs-mode: nil; -*- + * + * This file is a part of LEMON, a generic C++ optimization library. + * + * Copyright (C) 2003-2008 + * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport + * (Egervary Research Group on Combinatorial Optimization, EGRES). + * + * Permission to use, modify and distribute this software is granted + * provided that this copyright notice appears in all copies. For + * precise terms see the accompanying LICENSE file. + * + * This software is provided "AS IS" with no warranty of any kind, + * express or implied, and with no claim as to its suitability for any + * purpose. + * + */ + +/** +\page getting_started How to Start Using LEMON + +In this page we detail how to start using LEMON, from downloading it to +your computer, through the steps of installation, to showing a simple +"Hello World" type program that already uses LEMON. We assume that you +have a basic knowledge of your operating system and C++ programming +language. The procedure is pretty straightforward, but if you have any +difficulties don't hesitate to +ask. + +\section requirements_lemon Hardware and Software Requirements + +In LEMON we use C++ templates heavily, thus compilation takes a +considerable amount of time and memory. So some decent box would be +advantageous. But otherwise there are no special hardware requirements. + +You will need a recent C++ compiler. Our primary target is the GNU C++ +Compiler (g++), from version 3.3 upwards. We also checked the Intel C++ +Compiler (icc) and Microsoft Visual C++ .NET 2003, 2005. +If you want to develop with LEMON under Windows you could consider +using Cygwin. + +In this description we will suppose a Linux environment and GNU C++ Compiler. + +\subsection requirements_lp LP Solver Requirements + +The LEMON LP solver interface can use the GLPK (GNU Linear Programming +Kit), CPLEX (was tested with CPLEX 7.5) and SoPlex solver. If you want +to use it you will need at least one of these. See \ref configure_flags +how to enable these at compile time. + +\section download_lemon How to Download LEMON + +You can download LEMON from the LEMON web site: +https://lemon.cs.elte.hu/. +There you will find released versions in form of .tar.gz files. +If you want a developer version (for example you want to contribute in +developing the library LEMON) then you might want to use our Mercurial +repository. This case is detailed later, so from now on we suppose that +you downloaded a .tar.gz file. + +\section install_lemon How to Install LEMON + +In order to install LEMON you have to do the following steps. + +Download the tarball (named lemon-x.y.z.tar.gz where \c x, \c y +and \c z are numbers indicating the version of the library, in our example +we will have lemon-1.0.tar.gz) and issue the following commands: + +\verbatim +tar xvzf lemon-1.0.tar.gz +cd lemon-1.0 +./configure +make +make check # This is optional, but recommended. It runs a bunch of tests. +make install +\endverbatim + +These commands install LEMON under \c /usr/local (you will +need root privileges to be able to install to that +directory). If you want to install it to some other place, then +pass the \c --prefix=DIRECTORY flag to ./configure, for example: + +\verbatim +./configure --prefix=/home/username/lemon +\endverbatim + +In what follows we will assume that you were able to install to directory +\c /usr/local, otherwise some extra care is to be taken to use the library. + +We briefly explain these commands below. + +\verbatim +tar xvzf lemon-1.0.tar.gz +\endverbatim +This command untars the tar.gz file into a directory named +lemon-1.0. + +\verbatim +cd lemon-1.0 +\endverbatim +This command enters the directory. + +\verbatim +./configure +\endverbatim +This command runs the configure shell script, which does some checks and +creates the makefiles. + +\verbatim +make +\endverbatim +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. + +\verbatim +make check +\endverbatim +This step is optional, but recommended. It runs the test programs that +we developed for LEMON to check whether the library works properly on +your platform. + +\verbatim +make install +\endverbatim +This command will copy the directory structure to its final destination +(e.g. to \c /usr/local) so that your system can access it. +This command should be issued as "root", unless you provided a +\c --prefix switch to the \c configure to install the library in +non-default location. + +Several other configure flags can be passed to ./configure. +For more information see ./configure --help and the INSTALL +file in the install directory. + +\section hg_checkout How to Checkout LEMON from our Mercurial Repository + +You can obtain the latest version of LEMON from our Mercurial repository. +To do this issue the following command: +\verbatim +hg clone http://lemon.cs.elte.hu/hg/lemon lemon-src +\endverbatim + +\section hg_compile How to Compile the Source from the Repository + +You can compile the code from the repository similarly to the packaged +version, but you will need to run autoreconf -vif or +./bootstrap in some older environment before +./configure. See ./configure --help for options. +For bootstrapping you will need the following tools: + + - automake (1.7 or newer) + - autoconf (2.59 or newer) + - libtool + - pkgconfig + +To generate the documentation, run make html. +You will need Doxygen for this. + +*/ diff -r 9388ccf86294 -r 0cf8882c7e7c intro.dox --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/intro.dox Sat Oct 11 13:13:09 2008 +0200 @@ -0,0 +1,45 @@ +/* -*- mode: C++; indent-tabs-mode: nil; -*- + * + * This file is a part of LEMON, a generic C++ optimization library. + * + * Copyright (C) 2003-2008 + * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport + * (Egervary Research Group on Combinatorial Optimization, EGRES). + * + * Permission to use, modify and distribute this software is granted + * provided that this copyright notice appears in all copies. For + * precise terms see the accompanying LICENSE file. + * + * This software is provided "AS IS" with no warranty of any kind, + * express or implied, and with no claim as to its suitability for any + * purpose. + * + */ + +/** +\page intro Introduction + +\section intro_lemon What is LEMON + +LEMON stands for Library of Efficient Models and +Optimization in Networks. It is a C++ template +library aimed at combinatorial optimization tasks which often involve +in working with graphs. + +LEMON is an open source +project. +You are free to use it in your commercial or non-commercial applications +under very permissive \ref license "license terms". + + +\section intro_tutorial LEMON Tutorial + +This tutorial introduces the reader to the basic concepts and features of +LEMON, and there are some sections about advanced topics showing the power +of the various tools implemented in the library. + +After getting familiar with the basic concepts you may start using LEMON +with the help of the detailed documentation (that can also be used as a +reference manual). + +*/ diff -r 9388ccf86294 -r 0cf8882c7e7c license.dox --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/license.dox Sat Oct 11 13:13:09 2008 +0200 @@ -0,0 +1,25 @@ +/* -*- mode: C++; indent-tabs-mode: nil; -*- + * + * This file is a part of LEMON, a generic C++ optimization library. + * + * Copyright (C) 2003-2008 + * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport + * (Egervary Research Group on Combinatorial Optimization, EGRES). + * + * Permission to use, modify and distribute this software is granted + * provided that this copyright notice appears in all copies. For + * precise terms see the accompanying LICENSE file. + * + * This software is provided "AS IS" with no warranty of any kind, + * express or implied, and with no claim as to its suitability for any + * purpose. + * + */ + +/** + +\page license License Terms + +\verbinclude ./LICENSE + +*/ diff -r 9388ccf86294 -r 0cf8882c7e7c mainpage.dox --- a/mainpage.dox Sat Oct 11 11:29:12 2008 +0200 +++ b/mainpage.dox Sat Oct 11 13:13:09 2008 +0200 @@ -20,7 +20,7 @@ /** \mainpage LEMON Tutorial -

Table of Contents

+\section toc Table of Contents
  1. \ref intro "Introduction"