/* * Project: MoleCuilder * Description: creates and alters molecular systems * Copyright (C) 2010 University of Bonn. All rights reserved. * Please see the LICENSE file or "Copyright notice" in builder.cpp for details. */ /** * \file install.dox * * Created on: Oct 28, 2011 * Author: heber */ /** * \page install Installation * * \section install-compiling Compiling the Code * * After you obtained the code, you do the following: * * \code * ./bootstrap * \endcode * * This creates the necessary autoconf and automake files. * * After this, * * \code * mkdir build * cd build * ../configure --prefix=`pwd` * \endcode * * which will run the configure script that checks whether you have a current * version of the following required packages * * -# GNU Scientific Library (specify via LDFLAGS, ...) * -# Qt4 framework (--with-Qt= or --with-Qt-include-dir, --with-Qt-bin-dir, * --with-Qt-lib-dir and --with-Qt-lib) * -# Boost library 1.40 or newer with program_options and threads (--with-boost=) * -# CPPUnit framework (--with-cppunit-prefix=) * -# CodePatterns (--with-codepatterns=) * * \a --prefix is the argument to tell configure where all program code should go * to (pwd is the unix command for the current working directory). There are * others, see * * \code * ../configure --help * \endcode * * and some enable/disable switches you should check out: * * - \a --enable-ecut - says that the TestRunner, comprising all unit tests in one * exectuable, shall make use of the Eclipse CppUnitTest (ECUT). If this is * started within eclipse with this plugin installed, a shiny interface will tell * you what failed and what not. * - \a --enable-debug - activates many internal asserts, memory debugger and more * (makes code a lot slower but gives information in case something fails) * * \note A note about configure: If one library is found only under some specific path, you * can add CFLAGS, CPPFLAGS, LDFLAGS, ... to the configure call, like this * \code * ../configure --prefix=`pwd` --enable-hydrogen CFLAGS="-Wall -g3" CXXFLAGS="-Wall -g3" * \endcode * which enables all compiler warnings and full debugging of the code without any * optimization. configure saves these variables, too, such that when it is called * to re-configure it will still make use of them from its cache file. * * There are several flags that change the way molecuilder is compiled and probably * make it run faster, more unsafe, ... * -# \a -DLOG_OBSERVER, What the Observers do is logged, the log is printed on exit * -# \a -DNO_MEMDEBUG, MemDebug (memory debugger) is disabled * -# \a -DNO_CACHING, Cachable are short-wired, i.e. always recalculate, this slows * down the code a lot * -# \a -DNDEBUG, include NO_MEMDEBUG, also ASSERTs are not checked, this speeds up * the code by a factor of 5 * * \section install-install Installing * * Now, we are ready to compile and install. * * \code * make * make install * \endcode * * \attention If you have a multi-core system, it is highly recommended to use the * \a -j option of make to allow for multiple threads to work on compiling or * checking the codfe simultaneously. * * And if everything went well, you should launch the unit tests and the testsuite * by (see section \ref tests on how to launch the tests individually) * * \code * make check * \endcode * * If everything is OK, you have a working version of MoleCuilder in form of the * executables \b bin/molecuilder and \b bin/molecuildergui. * * If you have to delete all compiled stuff, enter * * \code * make clean * \endcode * * or * * \code * make distclean * \endcode * * which will also delete all autoconf stuff for configure. * * distclean is at times necessary when stuff does not compile and there's * seemingly no logic behind it, i.e. especially when paths of modules have * changed. To recover your configure options, either look at \b config.log in * the build directory or enter * * \code * ./config.status --version * \endcode * * Further useful commands are * -# make clean uninstall: deletes .o-files and removes executable from the given * binary directory * -# make doc: Creates these html pages out of the documented source * -# make check: Runs an extensive set of unit tests and a testsuite which also gives * a good overview on the set of functions. * * \date 2011-10-31 */