source: trunk/Bonmin/doc/BOUM_Install.tex @ 1

Last change on this file since 1 was 1, checked in by andreasw, 13 years ago

imported initial code

File size: 6.5 KB
Line 
1\PageHead{Installation}
2\StartPageSummary
3\PageSection{Installing \Bonmin}{sec:install}
4\PageSection{Algorithms}{Algos}
5\PageSection{Building the documentation}{sec:ref_man}
6\PageSection{Running the test programs}{sec:test}
7\EndPageSummary
8\NavigationPanel
9
10%\section{Layout of the \Bonmin\ package directory}
11
12%\section{Layout of the \Bonmin\ project directory}
13%The \Bonmin\ directory contains several sub-folders and files. We give here a brief overview of their content:
14%\begin{itemize}
15%\item {\tt Apps/} contains the sources to build the executable {\tt bonmin},
16%\item {\tt BCP/} (undocumented) an experimental MINLP solver for parallel environments using
17%  \href{http://www.coin-or.org/documentation.html\#BCP}{BCP}\footnote{http://www.coin-or.org/documentation.html\#BCP},
18%\item {\BonminBB} contains the source of the library to interface {\tt IpoptInterface}, {\tt Oa} and {\tt Cbc} and
19%to carry out a branch-and-bound algorithm,
20%\item {\tt CbcCopy/} contains a copy of the most recent version of
21%\href{http://www.coin-or.org/Cbc}{\tt Cbc} that has been tested and fully works with \Bonmin,
22%\item {\tt Doc/} contains this documentation and the reference manual
23%(to generate the reference manual see Section \ref{sec:ref_man}),
24%\item {\tt IpoptInterface/} contains the source for an
25%\href{http://www.coin-or.org/projects.html\#OSI}{\tt OsiInterface}\footnote{http://www.coin-or.org/projects.html\#OSI}
26%interface to {\tt Ipopt} ({\tt OsiInterface}'s are mainly for LP solvers, with some
27%rudimentary support for MILP solvers; so it is not truly an {\tt OsiInterface},
28%but it implements sufficient
29%functions for carrying out branch-and-bound),
30%\item {\tt OaInterface} contains the necessary elements for interfacing outer-approximation inside {\tt Cbc} using an
31%{\tt IpoptInterface},
32%\item {\tt Test} contains some test problems (see Section \ref{sec:test}),
33%\item {\tt Makefile} is the main Makefile,
34%\item {\tt Makefile.conf} contains the information for configuring the build process of \Bonmin,
35%\item {\tt Makefile.lib} contains general building rules.
36%\end{itemize}
37
38\PageTitle{Installing \Bonmin}{sec:install}
39The build process for \Bonmin\ should be fairly automatic as it uses
40\link{http://sources.redhat.com/autobook/autobook/}{GNU autotools}.
41  It has been successfully compiled and run on the following platforms:
42\begin{itemize}
43\item Linux using g++ version 3.4 and 4.0
44\item Windows using version Cygwin 1.5.18
45\item Mac OS X using gcc 3.4 and 4.0
46\end{itemize}
47\Bonmin\ is compiled and installed using the commands:
48\begin{verbatim}
49
50./configure
51make
52make install
53
54\end{verbatim}
55
56This installs the executable {\tt bonmin} in {\tt Bonmin-dist/bin}. In what follows, we assume
57that you have put the executable {\tt bonmin} on your path.
58
59The {\tt configure} script attempts to find all of the machine specific settings (compiler, libraries,...)
60necessary to compile and run the code. Although {\tt configure} should find most of the standard
61ones, you may have to manually specify a few of the settings.
62The options for the configure script can be found by issuing the command
63\begin{verbatim}
64
65./configure --help
66
67\end{verbatim}
68For a more in depth description of these options,
69the reader is invited to refer to the COIN-OR {\tt BuildTools} \footlink{\linkCoin BuildTools}{trac page}.
70
71\subsectionH{Specifying the location of {\tt Cplex} libraries}{}
72If you have {\tt Cplex} installed on your machine, you may want to use it
73as the Mixed Integer Linear Programming subsolver in {\tt B-OA} and {\tt B-Hyb}.
74To do so you have to specify the location of the header files and libraries.
75You can either specify the location of the header files directory by passing it as an
76argument to the configure script or by writing it into a {\tt config.site} file.\\
77
78In the former case, specify the location of the {\tt Cplex} header files by using the
79argument {\tt --with-cplexincdir} and the location of the
80{\tt Cplex } library with {\tt --with-cplexlib} (note that on the Linux platform you will also
81need to add {\tt -lpthread} as an argument to {\tt --with-cplexlib}).\\
82
83For example, on a Linux machine if {\tt Cplex} is installed in {\tt /usr/ilog}~, you would
84invoke configure with the arguments as follows:
85\begin{verbatim}
86
87./configure --with-cplex-incdir=/usr/ilog/cplex/include/ilcplex \
88  --with-cplex-lib="/usr/ilog/cplex/lib/libcplex.a -lpthread"
89 \end{verbatim}
90In the latter case, put a file called {\tt config.site} in a subdirectory named
91{\tt share} of the installation directory (if you do not specify an alternate
92installation directory to the {\tt configure} script with the {\tt --prefix}
93argument, the installation directory is the directory where you execute the
94{\tt configure} script). To specify the location of {\tt Cplex}~, insert the
95following lines in the {\tt config.site} file:
96 \begin{verbatim}
97
98 with_cplex_lib="/usr/ilog/cplex/lib/libcplex.a -lpthread"
99 with_cplex_incdir="/usr/ilog/cplex/include/ilcplex"
100 \end{verbatim}
101 (You will find a {\tt config.site} example in the subdirectory {\tt BuildTools} of {\tt Bonmin-dist}.)
102
103\subsectionH{Compiling \Bonmin\ in a external directory}{sec:vpath}
104It is possible to compile \Bonmin\ in a directory different from {\tt Bonmin-dist}.
105This is convenient if you want to have several executables compiled for different a
106rchitectures or have several executables compiled with different options
107(debugging and production, shared and static libraries).\\
108
109To do this just create a new directory, for example {\tt Bonmin-build} in the parent directory of
110{\tt Bonmin-dist} and run the configure command from {\tt Bonmin-build}:
111\begin{verbatim}
112
113../Bonmin-dist/configure
114
115\end{verbatim}
116This will create the makefiles in {\tt Bonmin-dist}, and
117you can then compile with the usual {\tt make} and {\tt make install}
118(in {\tt Bonmin-build}).
119
120\subsectionH{Building the documentation}{sec:ref_man}
121The documentation for \Bonmin\ consists of a users' manual (this document) and a reference manual.
122You can build a local copy of the reference manual provided that you have Latex
123and Doxygen installed on your machine. Issue the command {\tt make
124doxydoc} in {\tt Bonmin-dist}. It calls Doxygen to build a copy of the
125reference manual. An html version of the reference manual can then
126be accessed in {\tt doc/html/index.html}.
127
128%You can also build a pdf
129%version of the reference manual by issuing the command {\tt make
130%refman.pdf} ({\tt refman.pdf} is placed in the {\tt doc} subdirectory).
131
132\subsectionH{Running the test programs}{sec:test}
133By issuing the command {\tt make test}~, you build and run the automatic test program for \Bonmin.
Note: See TracBrowser for help on using the repository browser.