Ignore:
Timestamp:
Feb 14, 2013, 12:26:01 PM (12 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
Children:
1b01e9
Parents:
0a7834
git-author:
Frederik Heber <heber@…> (01/03/13 13:49:00)
git-committer:
Frederik Heber <heber@…> (02/14/13 12:26:01)
Message:

DOCU: Extended installation explanations extensively.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/documentation/install.dox

    r0a7834 r6752dc  
    1616 *  \page install Installation
    1717 *
     18 * \section install-prerequisites Prerequisites
     19 *
     20 * Several packages are required or advised for compilation of the code.
     21 * The code has been developed under ubuntu 10.04 and 12.04, so in the
     22 * following we concentrate on these systems.
     23 *
     24 * A specific section will be added when (cross-)compilation for Windows
     25 * has succeeded. Note that compiling without Qt under GNU/Cygwin is
     26 * relatively straight-forward along the lines of the required packages
     27 * for Ubuntu.
     28 *
     29 * \subsection install-prerequisites-ubuntu ... for Ubuntu
     30 *
     31 *  Under Ubuntu 12.04 the following packages are required:
     32 *  -# C++ compiler: e.g. g++
     33 *  -# LAPACK: liblapack-dev
     34 *  -# GSL: libgsl0-dev
     35 *  -# BLAS: e.g. libopenblas-dev or libatlas-base-dev
     36 *  -# Many Boost Libraries: libboost1.48-all-dev
     37 *  -# gawk: gawk
     38 *  -# pkg-config: pkg-config
     39 *  -# CodePatterns: see below for instructions
     40 *
     41 *  The following packages are optional. Note however that certain features
     42 *  are not available when these packages are missing:
     43 *  -# MoleCuilder scripting and start scripts
     44 *    -# Python:  python, python-dev
     45 *  -# Documentation generated from source code:
     46 *    -# doxygen: doxygen
     47 *    -# GraphViz: dot
     48 *  -# Unit tests
     49 *    -# CppUnit: libcppunit-dev
     50 *  -# Graphical User Interface
     51 *    -# Qt: qt4-dev-tools libqt4-core qt4-qmake
     52 *    -# Qt3D: see below for instructions
     53 *  -# BOSSANOVA scheme
     54 *    -# JobMarket: see below for instructions
     55 *    -# MPQC: see below for instructions
     56 *    -# ScaFaCoS: see below for instructions
     57 *
     58 *  If you are programming with or for MoleCuilder, the following packages are
     59 *  advised to use:
     60 *  -# ccache: ccache
     61 *  -# git: git
     62 *  -# autotools: autoconf automake autoheader autoconf libtool
     63 *
     64 * \subsection install-prerequisites-other Other packages
     65 *
     66 *  Here, we want to give some advice on how we managed to compile packages that
     67 *  don't come as a Debian/Ubuntu package:
     68 *
     69 *  \subsubsection install-prerequisites-other-codepatterns CodePatterns
     70 *
     71 *   CodePatterns are some general object oriented patterns implemented in C++
     72 *   which are a sort of novice attempt to what some of the boost libraries can
     73 *   do. E.g. a thread-safe singleton pattern.
     74 *
     75 *   Refer to the project's webpage for further instructions.
     76 *
     77 *  \subsubsection install-prerequisites-other-qt3d Qt3D
     78 *
     79 *   The graphical user interface heavily relies on Qt3D to display atoms and
     80 *   their bonds and to allow for selections. As the GUI has been developed with
     81 *   Qt4.8 where Qt3D is not yet implemented - this has been done with Qt5 --
     82 *   Qt3D has to be compiled and installed manually. Required for compilation
     83 *   are the complete dev-tools of Qt4. Then, obtain the code from the repository
     84 *   as described here: http://doc-snapshot.qt-project.org/qt3d-1.0/qt3d-building.html
     85 *   Make sure that the branch \b qt4 is checked out.
     86 *   Afterwards, create the Makefiles (check that qt4's qmake is used!), compile, and
     87 *   install via
     88 *   \code
     89 *   qmake-qt4 quick3d.pro
     90 *   sudo make
     91 *   sudo make install
     92 *   \endcode
     93 *   Note that I had to manually create \b /usr/include/qt4/Qt3D to pass
     94 *   compilation and installation with error.
     95 *
     96 *   Furthermore, we require a Qt3D pkg-config file, which is sadly not created.
     97 *   This can be easily created by copying e.g. QtOpenGl.pc and search&replacing
     98 *   OpenGl to Qt3D (check for double QtQt appearances).
     99 *
     100 *  \subsubsection install-prerequisites-other-jobmarket JobMarket
     101 *
     102 *   JobMarket is a package for allowing a server to give wrapped-up jobs to
     103 *   clients which work on the given job and return some wrapped-up results.
     104 *   This has been implemented with boost::asio.
     105 *
     106 *   The package is private property of Frederik Heber. Contact the author for
     107 *   further information on how to obtain the code and installation instructions.
     108 *
     109 *  \subsubsection install-prerequisites-other-scafacos ScaFaCoS
     110 *
     111 *  ScaFaCoS is a library of fast Coulomb solvers, created by the same-named BMBF
     112 *  funded project. The library contains Versatile MultiGrid (vmg) as one of its
     113 *  solvers which is used in the BOSSANOVA scheme for the calculation of
     114 *  long-range forces.
     115 *
     116 *  ScaFaCoS requires the following packages to compile:
     117 *  -# MPI: mpi-default-dev libopenmpi-dev
     118 *  -# F2C: libf2c2-dev
     119 *  -# Fortran compiler: gfortan
     120 *  Compilation additionally required use of
     121 *  \code CPPFLAGS="-fPIC" \endcode
     122 *  to generate position-independent code. This is because ScaFaCoS so far does
     123 *  not use libtool which would otherwise take care of this and created shared
     124 *  libraries. Note that VMG is the only required solver, others are not used, e.g.
     125 *  for a debug compile you might want to use:
     126 *  \code
     127 *  ../configure -C --prefix=<path> --enable-shared BSPLINE_DEG=3 MPICC=mpicc.openmpi
     128 *  MPICXX=mpicxx.openmpi MPIEXEC=mpirun.openmpi CPPFLAGS="-Wall -g3 -O0 -ggdb -fPIC"
     129 *  --enable-mpi --with-boost-libdir=/usr/lib --with-boost=/usr --enable-fcs-solvers=vmg
     130 *  \endcode
     131 *
     132 *  \subsubsection install-prerequisites-other-mpqc MPQC
     133 *
     134 *  Massively Parallel Quantum Chemistry (http://www.mpqc.org/) is a Hartree-Fock
     135 *  solver with emphasis on concurrency. We, however, require only the solver part.
     136 *  The code base has been adapted a bit to allow use within JobMarket.
     137 *  Also, it uses the ScaFaCoS package to calculate long-range forces.
     138 *
    18139 * \section install-compiling Compiling the Code
    19140 *
     
    34155 * \endcode
    35156 *
    36  * which will run the configure script that checks whether you have a current
    37  * version of the following required packages:
    38  *
     157 * which will run the configure script that checks whether you meet all the
     158 * requirements. Note that you may supply system-specific paths as follows:
    39159 * -# GNU Scientific Library (specify via LDFLAGS, ...)
    40160 * -# Qt4 framework (--with-Qt=<dir> or --with-Qt-include-dir, --with-Qt-bin-dir,
    41161 *  --with-Qt-lib-dir and --with-Qt-lib)
    42  * -# Boost library 1.40 or newer with program_options and threads (--with-boost=<dir>)
     162 * -# Boost library 1.40 or newer with program_options and threads (--with-boost=<dir>,
     163 * --with-boost-lib=<path>)
    43164 * -# CPPUnit framework (--with-cppunit-prefix=<dir>)
    44165 * -# CodePatterns (--with-codepatterns=<dir>)
     
    94215 *  the code by a factor of 5
    95216 *
     217 * \subsection install-difficulties  Difficulties
     218 *
     219 *  You might encounter some problems along the way, which we list up here:
     220 *  -# Switching from Lucid Lynx to Precise Pangolin, libtool has been patched to
     221 *  \b link_all_deplibs=no which causes linking to fail. A temporary way around it
     222 *  is to seek&replace all instances in your build directory (replace no with
     223 *  unknown). The more general way is to replace packaged and patched libtool
     224 *  with an unpatched version you have to compile yourself.
     225 *
    96226 * \section install-install Installing
    97227 *
Note: See TracChangeset for help on using the changeset viewer.